{"_id":"@evologi/fixed-width","_rev":"12-04ff07ce713ef6a9f0a1e7c267df3f18","name":"@evologi/fixed-width","dist-tags":{"latest":"1.2.1"},"versions":{"0.1.0":{"name":"@evologi/fixed-width","version":"0.1.0","keywords":["fields","fixed-width","fixed","width","parse","parser","stringify","stringifier","stream","streaming"],"author":{"url":"https://www.evologi.it/","name":"Evologi S.r.l.","email":"support@evologi.it"},"license":"MIT","_id":"@evologi/fixed-width@0.1.0","maintainers":[{"name":"orderpod","email":"support@evologi.it"}],"dist":{"shasum":"0ad624b1e36e8a435916e11d1d2d76b579fee22f","tarball":"https://registry.npmjs.org/@evologi/fixed-width/-/fixed-width-0.1.0.tgz","fileCount":6,"integrity":"sha512-w8eSINYTAydvNheEY3ZmnIeJlCpAFRZP4Lw9+zKcQka9QpY9XOGacSEf2f9Hs+fLQufK7v0Dvz3xHAzZyjqVMQ==","signatures":[{"sig":"MEQCIH8gsbTqQPSGIiAUj4/pPxYOGU55ZTVMGdEYWEmafcBGAiAZ71ow9yRRrJPjkzeqz2+bAbXDMD9q6OYGPpbrrYEUBA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27884,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiRBxMACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmolAg//c+RKB8YzwplyViQseaoKVHFftjV36yc9JScCPEGePQC97W+2\r\nMYcW+tHxro+thidwlEUH/pxblc1vPuTUYPi9jFhRjFZup+CyOg/+t5MntvEF\r\nz5B0h4/Fymp2qKY9OZIOubKUn13Jjjd1Z0omHKMg0YUqFWPntQMIolRfJ6kh\r\nIsl4h/nWndyH7rHo8+ILfP7a99on1QuvGmBnlEwu6IsvZLU5m7DP6A8+wRpm\r\nK42dhrD68ytO9XNvktYqahEvkVTosJs8gcpqIfqPoxe8AW6og0fG2xVNMYWg\r\noFQEa8BCv6B1uhTAY2sSja6P9TxkB+Du9bN7AJUl1knR3MZRtObPtZR8iQZc\r\neGIvngWP5qie8BPJp5jQNhb0eVcV4GsLHBV1hfb5/4v8cvUS+JEq5K8oS0Se\r\ni18qndSmRwedwd72JvLO3Mhhc6dMuMadrjr4fmCTkJD5R31YxdyA4xUP2sru\r\nsZjKBd+RYc8rKbC7v56900rymynTMOAbZB1jWBca71FRjfi38G+xsskiqAe7\r\nLKOigWrGwtt0ud/ezlj7P5IL9Sd2vXiZWww4uhceLUGEPr7oTV6Vop0GUtMb\r\n2umHOiBFVFJQDhSrU+9qmBFdxmQAY2s0ZGYeipvUuaS/39eVfceu4dgp//Y5\r\nWqZKV6xB9gzewfs9f4SSJNuza/vHwMaCHLI=\r\n=Uq+z\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./fixed-width.cjs","type":"module","types":"./fixed-width.d.ts","exports":{"import":"./fixed-width.mjs","require":"./fixed-width.cjs"},"scripts":{"lint":"standard src","test":"c8 ava","build":"rollup -c","prepublishOnly":"npm run lint && npm run build && npm test"},"_npmUser":{"name":"orderpod","email":"support@evologi.it"},"_npmVersion":"7.19.1","description":"A fixed-width file format toolset with streaming support and flexible options.","directories":{},"_nodeVersion":"16.5.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^7.11.0","ava":"^4.1.0","rollup":"^2.70.1","standard":"^16.0.4"},"_npmOperationalInternal":{"tmp":"tmp/fixed-width_0.1.0_1648630860509_0.07313465092857241","host":"s3://npm-registry-packages"}},"0.2.0":{"name":"@evologi/fixed-width","version":"0.2.0","keywords":["fields","fixed-width","fixed","width","parse","parser","stringify","stringifier","stream","streaming"],"author":{"url":"https://www.evologi.it/","name":"Evologi S.r.l.","email":"support@evologi.it"},"license":"MIT","_id":"@evologi/fixed-width@0.2.0","maintainers":[{"name":"orderpod","email":"support@evologi.it"}],"homepage":"https://github.com/evologi/fixed-width#readme","bugs":{"url":"https://github.com/evologi/fixed-width/issues"},"dist":{"shasum":"cb1694ecf6a2efd3bce7a8448a61c45fa5d59468","tarball":"https://registry.npmjs.org/@evologi/fixed-width/-/fixed-width-0.2.0.tgz","fileCount":6,"integrity":"sha512-x9b50z+h6kJz2M6IWpp9KxNPH2qY4JTmCYfYopZpk3ORQuVGaaOzfKsPHaQZZATkfJG1Bvu/Dwc1H1uRglEFOw==","signatures":[{"sig":"MEQCIQCe7H5cwh58ZX70yg7au5m35RSvCw9ojQ1KpyUAcO9o6gIfEA0ujAetj83mNG/Mc7/8oFfjrE76rT7SWyhV34Yvpg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":39594,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiRb13ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrYdA/7BqeJRcNbYq2X2AdjHWf5TtDtguF0jl3vBrdF+94RipMWaHVD\r\nOJxOs1slvpoWSeo3zkigNnQbA/Vue3xDn9ZYgDz5jeEg7eGi/hf44EeRyHYx\r\npm9lamZ3zwB+7Ho9u+4/f49XUkhhskGefVIz6U9/2v2Z/e/IJ+JYXaQe/22x\r\nZyMhVuBK4bavqT0BhASTqoN95mHZfMeKHke9CmFs+11ogjatO8Z3UCfvyWlb\r\ng9AOMMBGvxWDU7/HPST/e0+uJhprGTz54hLXdDVkC5VlE+dIxWs0+3bdVeKL\r\ngYo2HRbLULsTAek2PkygVovmhfMvgGRvON3eUtDNXsFxsbxwLhp+VARbN6Zf\r\ndWJhxrByPsp5f8R7I9Vakgo5YtttL/JtuyTwp0EZB90x8CCE4hJiBo5GxyHb\r\ngKf4nuSUkGC1cOTnsbdHOM/QZdgQBEqB4PqKpabvfsmu5+6l/GEg0BvGt7aC\r\nVjIyJpAEkRDQVkG5x24g1xJhjuiMkMmIIE1IEd1xXFtSD3Hn3gaHU61mLkUI\r\nQvUgI0G01N9zVnPraL8xVwvtr1QN9BnxpvBzZI6gBH/OEo/7f5zwmsD6otfZ\r\nwFHBbETS9d3smvvxMMb6+/XqfXeVlUJaUuTTP1A98H9lT2eMvVWRyk/AKZqW\r\nqy+Re41a91fL4C24EreayxrIDfirIE+Rpeg=\r\n=g1qk\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./fixed-width.cjs","type":"module","types":"./fixed-width.d.ts","exports":{"import":"./fixed-width.mjs","require":"./fixed-width.cjs"},"gitHead":"36158c6893b7837b06bf1b9c69e3605a492a7233","scripts":{"lint":"standard src","test":"c8 ava","build":"rollup -c","prepublishOnly":"npm run lint && npm run build && npm test"},"_npmUser":{"name":"orderpod","email":"support@evologi.it"},"repository":{"url":"git+https://github.com/evologi/fixed-width.git","type":"git"},"_npmVersion":"7.19.1","description":"A fixed-width file format toolset with streaming support and flexible options.","directories":{},"_nodeVersion":"16.5.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^7.11.0","ava":"^4.1.0","rollup":"^2.70.1","standard":"^16.0.4"},"_npmOperationalInternal":{"tmp":"tmp/fixed-width_0.2.0_1648737655494_0.41724700605821696","host":"s3://npm-registry-packages"}},"0.2.1":{"name":"@evologi/fixed-width","version":"0.2.1","keywords":["fields","fixed-width","fixed","width","parse","parser","stringify","stringifier","stream","streaming"],"author":{"url":"https://www.evologi.it/","name":"Evologi S.r.l.","email":"support@evologi.it"},"license":"MIT","_id":"@evologi/fixed-width@0.2.1","maintainers":[{"name":"orderpod","email":"support@evologi.it"}],"homepage":"https://github.com/evologi/fixed-width#readme","bugs":{"url":"https://github.com/evologi/fixed-width/issues"},"dist":{"shasum":"587fdb80e7f76c5bceb6ef4b8b93380c8db3bf01","tarball":"https://registry.npmjs.org/@evologi/fixed-width/-/fixed-width-0.2.1.tgz","fileCount":6,"integrity":"sha512-8nx7d2cLarPnqxJna+40t4fk0NJ1i5mWQnH3RDcqan+Jlnl/gj/s7fuNqnNWgDMefvZ2lgzzVwr76qECOZKk6g==","signatures":[{"sig":"MEUCIQDDBb+j6C6oz0fBPTALaltZgwjiCt9oQK0MawcQcbwJvAIgT+4rktNrhHMucjU1dtAKQaDMnuJ6xR3xDKNpGkP6SBQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40212,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJia74kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpnxBAAjOayPj+KZp6R7KFBXoEIuDy2VUA1rPQS/CD2Y1VDlBTrZe8u\r\nxLHCMXvCSh1dPOi90SkxgxRcS5f3JKBN+K4L+VDeEbJRJfsSjbttfMvvE6Qa\r\n4HGw+vejvHSIoQCRGB4iWpi73gn/iRy1N/6MuIOzSqUrJhZarfO2bB/DITAY\r\nkDUlZHXm3qdklV61WpVAEi0J+sPiF/thv7P71CinmHzi6NyzmyfNxCyqd8ml\r\ndX5c4LVGRhY6erWOjx6QYdw6NqqMhM/gtLbfLWqbCYh6o3oHRDWfpz48HLZD\r\ndpL8RDUvr5OLSRfWT7wL2a9svXN5KcHSDDn5XRgq8KYEhkCc8AsAFQgaDtz1\r\niEGnKEgVURhP4nWyRmK/GxVG1zS1jtYOmaRzptY2vHygI3MTxqCHH4P+UaYi\r\nPDPpVsPbSkCr+P3+U92x9ZYhDidzqmNjkFkAqNnSIwxYtE7ZjKx9dWF8mujA\r\npGgTrPhlyCfIGDFdV/umqeU+Sg74QFY/f8vDqb3/DKcjpkdOGG9CobANszDO\r\nMKjSXGHZDYegDTPp68fmlkLUvAilxTBemarrymfMwhd+qIeyAxao2GCH3A/b\r\n93mLbi/pNMlGRz55g/gP2SDCEhtbKj+xrww9jTh3mRa/FkQu8VN7/bbDHkAE\r\nfKnLtZOD6+Jg8wYOqYbkD1BO+XZDVM8ywRg=\r\n=dHa8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./fixed-width.cjs","type":"module","types":"./fixed-width.d.ts","exports":{"import":"./fixed-width.mjs","require":"./fixed-width.cjs"},"gitHead":"9928eb9a7f200b3cb1fb22a2871f2e53ee6a7852","scripts":{"lint":"standard src","test":"c8 ava","build":"rollup -c","prepublishOnly":"npm run lint && npm run build && npm test"},"_npmUser":{"name":"orderpod","email":"support@evologi.it"},"repository":{"url":"git+https://github.com/evologi/fixed-width.git","type":"git"},"_npmVersion":"7.19.1","description":"A fixed-width file format toolset with streaming support and flexible options.","directories":{},"_nodeVersion":"16.5.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^7.11.0","ava":"^4.1.0","rollup":"^2.70.1","standard":"^16.0.4"},"_npmOperationalInternal":{"tmp":"tmp/fixed-width_0.2.1_1651228196095_0.3342259515574202","host":"s3://npm-registry-packages"}},"0.3.0":{"name":"@evologi/fixed-width","version":"0.3.0","keywords":["fields","fixed-width","fixed","width","parse","parser","stringify","stringifier","stream","streaming"],"author":{"url":"https://www.evologi.it/","name":"Evologi S.r.l.","email":"support@evologi.it"},"license":"MIT","_id":"@evologi/fixed-width@0.3.0","maintainers":[{"name":"orderpod","email":"support@evologi.it"}],"homepage":"https://github.com/evologi/fixed-width#readme","bugs":{"url":"https://github.com/evologi/fixed-width/issues"},"dist":{"shasum":"673caee7df62c52e42d2526fa9885b226f233259","tarball":"https://registry.npmjs.org/@evologi/fixed-width/-/fixed-width-0.3.0.tgz","fileCount":6,"integrity":"sha512-yIMh/IGR04/bmzWbXNj5IZfCiyO0vIycTIPejxManv0hRzzlL8STIiIu/2TYYgQQpWF+zIZPH64oEPaS9Pt6hQ==","signatures":[{"sig":"MEYCIQCFZsCzY7MUhbDoldZ2Pu88tKXrs2wyxGwBkTNwdjBhrwIhAIvwd3PxSw0R0UpiRimUf0RvvVexeFqMiR26W28ebSMZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":42079,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJigkWEACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoGUQ/8DuntFkjXG101TMYMxF2VUwee1YsU9handMpnJ1+BuQ8M6XEg\r\nr3dMFPT86pMSkrKMHMhJRTWzRRWh8IzutzIlMemHP+RS15hvF7jFH0MVxPb8\r\nZykDlcyEc3U8mR+h7ch6dnFagd8xcm5IaNa4QwGjh+8mo7nmrmxKxlI+gypM\r\nDky1aS1xmf9Mz5natAYhK4GW5y2kgSwWeA3LWnGby9jbD/hiEruNkg8oVIo8\r\nswsF7BhT9K/Lc1G6WOVskIdLLSEQzIEJ14vlrY0sQ02QPMYlemudwTJJypwU\r\nWJcJ+NW4Ez/PI8ceZCqL/lXTK4vIH2kTI14H09JxETl4JhbTQhho3P19FuOq\r\nXeSQWVaJ8AsOdXMygJ+WRhQWFcu2ePv18p3iZfv9ArDXb81DYEnGwC/0ypyu\r\nnyTUaiexFitA+vCGAcdr31mnuqv0WQuYfak5pWTvBxIaMqPxfDGuhULqL0wq\r\ngBYUzwhJn2FOppWHGNyOqPEuAjLjF9i/ikBhMw/S6tooEexOeAoMAib7A/HR\r\n4TwN0kfZ+CEtnrGRFbzs/9kk0JYB5wtrDz1A5UOA6AVadrRZEcknAcicKT//\r\nUGEMpOI+1S7i+xrzUCi0LZuXdVbF3C1EmitDYSuUXWURiSUfsjLnZkLGm72F\r\n+1vRGhe6hnh8HR61nR3LnGk9gQtWVFcmGtk=\r\n=WKJS\r\n-----END PGP SIGNATURE-----\r\n"},"main":"./fixed-width.cjs","type":"module","types":"./fixed-width.d.ts","exports":{"import":"./fixed-width.mjs","require":"./fixed-width.cjs"},"gitHead":"1a08f188c9961246e6e236bf2bac6840a3cfc7fa","scripts":{"lint":"standard src","test":"c8 ava","build":"rollup -c","prepublishOnly":"npm run lint && npm run build && npm test"},"_npmUser":{"name":"orderpod","email":"support@evologi.it"},"repository":{"url":"git+https://github.com/evologi/fixed-width.git","type":"git"},"_npmVersion":"7.19.1","description":"A fixed-width file format toolset with streaming support and flexible options.","directories":{},"_nodeVersion":"16.5.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^7.11.0","ava":"^4.1.0","rollup":"^2.70.1","standard":"^16.0.4"},"_npmOperationalInternal":{"tmp":"tmp/fixed-width_0.3.0_1652704644502_0.6794057903125434","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"@evologi/fixed-width","version":"1.0.0","keywords":["fields","fixed-width","fixed","width","parse","parser","stringify","stringifier","stream","streaming"],"author":{"url":"https://www.evologi.it/","name":"Evologi S.r.l.","email":"support@evologi.it"},"license":"MIT","_id":"@evologi/fixed-width@1.0.0","maintainers":[{"name":"orderpod","email":"support@evologi.it"}],"homepage":"https://github.com/evologi/fixed-width#readme","bugs":{"url":"https://github.com/evologi/fixed-width/issues"},"dist":{"shasum":"b5fa559fb1591bc78e0866e793d2715d62a838c6","tarball":"https://registry.npmjs.org/@evologi/fixed-width/-/fixed-width-1.0.0.tgz","fileCount":6,"integrity":"sha512-a8XdteHqyZTkN8aNUCcQjDhd6Z791ICIeo9DDta1YBuvClHUc0SxgYw0Ao89E16TVzIxO61ZEHeY6qDMiUuvzw==","signatures":[{"sig":"MEUCIQDeKzJ0sCRDHtIGQalfMj2nvjZTf7U0Vt+qeFOdklScowIgP1CM3TyqJiczzk+rf/4iKgvAZOLeDS9V5raZT+Ujlg4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47265},"main":"./fixed-width.cjs","type":"module","types":"./fixed-width.d.ts","exports":{"import":"./fixed-width.mjs","require":"./fixed-width.cjs"},"gitHead":"b40980a29be1a4c9cb19a9d624c795b980b4fbf4","scripts":{"lint":"standard src","test":"c8 ava","build":"rollup -c","prepublishOnly":"npm run lint && npm run build && npm test"},"_npmUser":{"name":"orderpod","email":"support@evologi.it"},"repository":{"url":"git+https://github.com/evologi/fixed-width.git","type":"git"},"_npmVersion":"9.6.6","description":"A fixed-width file format toolset with streaming support and flexible options.","directories":{},"_nodeVersion":"20.2.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^7.14.0","ava":"^5.3.0","rollup":"^3.23.1","standard":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fixed-width_1.0.0_1686561536274_0.44218734232458456","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@evologi/fixed-width","version":"1.0.1","keywords":["fields","fixed-width","fixed","width","parse","parser","stringify","stringifier","stream","streaming"],"author":{"url":"https://www.evologi.it/","name":"Evologi S.r.l.","email":"support@evologi.it"},"license":"MIT","_id":"@evologi/fixed-width@1.0.1","maintainers":[{"name":"orderpod","email":"support@evologi.it"}],"homepage":"https://github.com/evologi/fixed-width#readme","bugs":{"url":"https://github.com/evologi/fixed-width/issues"},"dist":{"shasum":"9ed671f4d6943f6c17f13eb1c3d991ea2c97c16d","tarball":"https://registry.npmjs.org/@evologi/fixed-width/-/fixed-width-1.0.1.tgz","fileCount":6,"integrity":"sha512-9CaxvfQakskATW/r+we6Xtekn2kS65rFAXJW6UE+kb8JpI14+4ffyX36et3wnZcRQSu5lg0FD4oii7bdE/CAJg==","signatures":[{"sig":"MEUCIEcRdnVfgO/HvkH7kxXSCFnR9zIc4aQfCbC2BUDXrs/fAiEAk3Bncn6I1rIbRMXpDoTD60DnpSFnxkyd4xxl41jWxtA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47298},"main":"./fixed-width.cjs","type":"module","types":"./fixed-width.d.ts","exports":{"types":"./fixed-width.d.ts","import":"./fixed-width.mjs","require":"./fixed-width.cjs"},"gitHead":"e422ac9e8d6ca03ca705bf8bef4a8a716ba628cb","scripts":{"lint":"standard src","test":"c8 ava","build":"rollup -c","prepublishOnly":"npm run lint && npm run build && npm test"},"_npmUser":{"name":"orderpod","email":"support@evologi.it"},"repository":{"url":"git+https://github.com/evologi/fixed-width.git","type":"git"},"_npmVersion":"9.5.1","description":"A fixed-width file format toolset with streaming support and flexible options.","directories":{},"_nodeVersion":"18.16.1","_hasShrinkwrap":false,"devDependencies":{"c8":"^8.0.1","ava":"^5.3.1","rollup":"^4.1.4","standard":"^17.1.0"},"_npmOperationalInternal":{"tmp":"tmp/fixed-width_1.0.1_1697798657779_0.6639386240906029","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@evologi/fixed-width","version":"1.1.0","keywords":["fields","fixed-width","fixed","width","parse","parser","stringify","stringifier","stream","streaming"],"author":{"url":"https://www.evologi.it/","name":"Evologi S.r.l.","email":"support@evologi.it"},"license":"MIT","_id":"@evologi/fixed-width@1.1.0","maintainers":[{"name":"orderpod","email":"support@evologi.it"},{"name":"greguz","email":"gregolettogiacomo@gmail.com"}],"homepage":"https://github.com/evologi/fixed-width#readme","bugs":{"url":"https://github.com/evologi/fixed-width/issues"},"dist":{"shasum":"45ff1034758f1d84dccc1debf7f7e66fe3714f6f","tarball":"https://registry.npmjs.org/@evologi/fixed-width/-/fixed-width-1.1.0.tgz","fileCount":6,"integrity":"sha512-biSBheawjYwPrAqzvJBQ3BI+bzlqkXKSMVJoKSDCURdof5gdofIkWytY39ykRhz0mV/kLjy6wZMIXCmLyPpN2g==","signatures":[{"sig":"MEUCIQCsOFv34mJJ3VJhQzZFGQ1o76Pz/KsDQjHW0OXAi+9fYQIgLetVfYYfAIIR9CJSjt6Y6ULzyuMER6zxmuHnoESQHBc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47948},"main":"./fixed-width.cjs","type":"module","types":"./fixed-width.d.ts","exports":{"types":"./fixed-width.d.ts","import":"./fixed-width.mjs","require":"./fixed-width.cjs"},"gitHead":"d5b8b5e2afd12b54cecf8fcc344469d9921d1d64","scripts":{"lint":"standard src","test":"c8 ava","build":"rollup -c","prepublishOnly":"npm run lint && npm run build && npm test"},"_npmUser":{"name":"greguz","actor":{"name":"greguz","type":"user","email":"gregolettogiacomo@gmail.com"},"email":"gregolettogiacomo@gmail.com"},"repository":{"url":"git+https://github.com/evologi/fixed-width.git","type":"git"},"_npmVersion":"11.3.0","description":"A fixed-width file format toolset with streaming support and flexible options.","directories":{},"_nodeVersion":"24.2.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","ava":"^6.4.0","rollup":"^4.44.1","standard":"^17.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fixed-width_1.1.0_1751028914150_0.8619692449423382","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@evologi/fixed-width","version":"1.2.0","keywords":["fields","fixed-width","fixed","width","parse","parser","stringify","stringifier","stream","streaming"],"author":{"url":"https://www.evologi.it/","name":"Evologi S.r.l.","email":"support@evologi.it"},"license":"MIT","_id":"@evologi/fixed-width@1.2.0","maintainers":[{"name":"orderpod","email":"support@evologi.it"},{"name":"greguz","email":"gregolettogiacomo@gmail.com"}],"homepage":"https://github.com/evologi/fixed-width#readme","bugs":{"url":"https://github.com/evologi/fixed-width/issues"},"dist":{"shasum":"c47fb5cbe098e0c3e5b9d66be9d0e922237c2661","tarball":"https://registry.npmjs.org/@evologi/fixed-width/-/fixed-width-1.2.0.tgz","fileCount":6,"integrity":"sha512-uE0CVre/Aqj5KyQ3JEBouWoYWtKyNXVyQ+6AHHfwiEMa+yAPsQnzgMHmqWqfIgIRlHkFxNjhSAvmEUQQN5StUA==","signatures":[{"sig":"MEUCIQDG/Xw+1MXukW1jT9GkSiqXw3MVqvEUnzQ742jtF8jwtgIgErKEPpvubuoDQIrPN53XrOZQSLykfnVcA6i+6vARFmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49837},"main":"./fixed-width.cjs","type":"module","types":"./fixed-width.d.ts","exports":{"types":"./fixed-width.d.ts","import":"./fixed-width.mjs","require":"./fixed-width.cjs"},"gitHead":"1fe808181242703981903b451dfab079e31727e6","scripts":{"lint":"standard src","test":"c8 ava","build":"rollup -c","prepublishOnly":"npm run lint && npm run build && npm test"},"_npmUser":{"name":"greguz","email":"gregolettogiacomo@gmail.com"},"repository":{"url":"git+https://github.com/evologi/fixed-width.git","type":"git"},"_npmVersion":"11.3.0","description":"A fixed-width file format toolset with streaming support and flexible options.","directories":{},"_nodeVersion":"24.2.0","_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","ava":"^6.4.1","rollup":"^4.50.2","standard":"^17.1.2"},"_npmOperationalInternal":{"tmp":"tmp/fixed-width_1.2.0_1757942367797_0.7246660221243963","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@evologi/fixed-width","version":"1.2.1","description":"A fixed-width file format toolset with streaming support and flexible options.","type":"module","main":"./fixed-width.cjs","exports":{"import":"./fixed-width.mjs","require":"./fixed-width.cjs","types":"./fixed-width.d.ts"},"types":"./fixed-width.d.ts","scripts":{"build":"rollup -c","lint":"standard src","test":"c8 ava","prepublishOnly":"npm run lint && npm run build && npm test"},"keywords":["fields","fixed-width","fixed","width","parse","parser","stringify","stringifier","stream","streaming"],"author":{"name":"Evologi S.r.l.","email":"support@evologi.it","url":"https://www.evologi.it/"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/evologi/fixed-width.git"},"devDependencies":{"ava":"^6.4.1","c8":"^10.1.3","rollup":"^4.52.2","standard":"^17.1.2"},"_id":"@evologi/fixed-width@1.2.1","gitHead":"79edfb60fa40d6ddcbf4750c1838b2fd92f7e1ee","bugs":{"url":"https://github.com/evologi/fixed-width/issues"},"homepage":"https://github.com/evologi/fixed-width#readme","_nodeVersion":"24.2.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-mmi3huO0JJxdf7rteQtR45kXOonxRCzfgE5b+FPPwX0311J7JtplIct9xZPoQaNK5ATYqDHww8W5+yjchJefsg==","shasum":"2ce56d49f13ad8ea4594a300ed04f46b3f654bc5","tarball":"https://registry.npmjs.org/@evologi/fixed-width/-/fixed-width-1.2.1.tgz","fileCount":6,"unpackedSize":50456,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC+BfA7eglaosje082bUbl1bF0yGi2vxf8lzyWsr5JylQIhALJ1uEBG257I69F/k857Zjc1iqD7kVpoRjpAXbqwbIPw"}]},"_npmUser":{"name":"greguz","email":"gregolettogiacomo@gmail.com"},"directories":{},"maintainers":[{"name":"orderpod","email":"support@evologi.it"},{"name":"greguz","email":"gregolettogiacomo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fixed-width_1.2.1_1758866319888_0.9736461273231323"},"_hasShrinkwrap":false}},"time":{"created":"2022-03-30T09:01:00.509Z","modified":"2025-09-26T05:58:40.286Z","0.1.0":"2022-03-30T09:01:00.730Z","0.2.0":"2022-03-31T14:40:55.634Z","0.2.1":"2022-04-29T10:29:56.263Z","0.3.0":"2022-05-16T12:37:24.743Z","1.0.0":"2023-06-12T09:18:56.475Z","1.0.1":"2023-10-20T10:44:17.957Z","1.1.0":"2025-06-27T12:55:14.328Z","1.2.0":"2025-09-15T13:19:27.971Z","1.2.1":"2025-09-26T05:58:40.057Z"},"bugs":{"url":"https://github.com/evologi/fixed-width/issues"},"author":{"name":"Evologi S.r.l.","email":"support@evologi.it","url":"https://www.evologi.it/"},"license":"MIT","homepage":"https://github.com/evologi/fixed-width#readme","keywords":["fields","fixed-width","fixed","width","parse","parser","stringify","stringifier","stream","streaming"],"repository":{"type":"git","url":"git+https://github.com/evologi/fixed-width.git"},"description":"A fixed-width file format toolset with streaming support and flexible options.","maintainers":[{"name":"orderpod","email":"support@evologi.it"},{"name":"greguz","email":"gregolettogiacomo@gmail.com"}],"readme":"# fixed-width\n\n[![npm](https://img.shields.io/npm/v/@evologi/fixed-width)](https://www.npmjs.com/package/@evologi/fixed-width)\n![Libraries.io dependency status for latest release](https://img.shields.io/librariesio/release/npm/@evologi/fixed-width)\n[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)\n[![ci](https://github.com/evologi/fixed-width/actions/workflows/ci.yaml/badge.svg?branch=master)](https://github.com/evologi/fixed-width/actions/workflows/ci.yaml)\n\nA fixed-width file format toolset with streaming support and flexible options.\n\n- [Features](#features)\n- [File format specs](#fixed-width-file-format)\n- [Install](#install)\n- [Usage](#usage)\n  - [In memory parsing](#parsestringorbuffer-options)\n  - [Parse with Node.js streams](#parserstreamoptions)\n  - [Custom parsing](#new-parseroptions)\n  - [In memory serializing](#stringifyiterable-options)\n  - [Serialize with Node.js streams](#stringifierstreamoptions)\n  - [Custom serializing](#new-stringifieroptions)\n- [Options](#options)\n- [Errors](#errors)\n\n## Features\n\n- **Flexible**: lots of options\n- **Zero dependencies**: small footprint\n- **Native streaming support**\n- **Well tested**: code coverage above 90%\n- **Support big datasets**: production ready\n- **Native ESM support**: future proof\n- **TypeScript support**\n\n## Fixed width file format\n\nThe fixed-width file format is a simple method to store data on a file. A separator divides rows (typically a newline char), and all fields have a fixed width on the row.\n\nThis format is useful to seek data directly from the file without any parsing procedure, but It has no compression mechanism. This limit will result in an over-usage of memory (both RAM and disk) to store the same data with other file formats (like JSON or XML).\n\nBut, in the year [insert current year here] A.D., you can still find someone using such file format. Fear not, my friend! This Node.js library will provide a toolset to parse and generate fixed-width files.\n\n### Example file\n\nThe next section will contain an example of fixed-width data with two fields: username and age. The first field has a width of 12 chars, and the second one has a width of 3 chars right-aligned.\n\n```\nusername    age\nalice       024\nbob         030\n```\n\n## Install\n\n```\nnpm i @evologi/fixed-width\n```\n\n## Usage\n\n```javascript\nimport { parse, stringify, Parser, Stringifier } from '@evologi/fixed-width'\n```\n\n### `parse(input, options)`\n\nIt parses a text or a buffer into an array of elements. If It receives string of buffer It returns an array of all parsed items. It It receives an iterable (could be `async`), returns the same type of iterable inputted.\n\n- `input` `<String> | <Buffer> | <Iterable> | <AsyncIterable>` The raw data to parse.\n- `options` `<Object>` See [options section](#options).\n- Returns: `<Array> | <Iterable> | <AsyncIterable>`\n\n```javascript\nimport { parse } from '@evologi/fixed-width'\n\nconst text = 'alice       024\\nbob         030\\n'\n\nconst users = parse(text, {\n  eol: '\\n',\n  fields: [\n    {\n      property: 'username',\n      width: 12\n    },\n    {\n      cast: value => parseInt(value, 10),\n      property: 'age',\n      width: 3\n    }\n  ]\n})\n\n// [{ username: 'alice', age: 24 }, { username: 'bob', age: 30 }]\nconsole.log(users)\n```\n\n### `stringify(input, options)`\n\nIt serializes an array of elements into a string. If the argument is an array, the output will be a string. The whole conversion is performed at the moment and in-memory. If the argument is some kind of iterable (sync or async), the output will be the same kind of inputted iterable.\n\n- `input` `<Array> | <Iterable> | <AsyncIterable>`\n- `options` `<Object>` See [options section](#options).\n- Returns: `<String> | <Iterable> | <AsyncIterable>`\n\n```javascript\nimport { stringify } from '@evologi/fixed-width'\n\nconst users = [\n  { username: 'alice', age: 24 },\n  { username: 'bob', age: 30 }\n]\n\nconst text = stringify(users, {\n  eof: true,\n  eol: '\\n',\n  fields: [\n    {\n      align: 'left',\n      property: 'username',\n      width: 12\n    },\n    {\n      align: 'right',\n      pad: '0',\n      property: 'age',\n      width: 3\n    }\n  ]\n})\n\n// 'alice       024\\nbob         030\\n'\nconsole.log(text)\n```\n\n### `Parser.stream(options)`\n\nIt returns a [`Transform stream`](https://nodejs.org/api/stream.html#class-streamtransform) that accepts strings (or buffers) as input and emits the parsed elements.\n\n- `options` `<Object>` See [options section](#options).\n- Returns: [`<Transform>`](https://nodejs.org/api/stream.html#class-streamtransform)\n\n```javascript\nimport { Parser } from '@evologi/fixed-width'\n\nconst stream = Parser.stream({\n  eol: '\\n',\n  fields: [\n    {\n      property: 'username',\n      width: 12\n    },\n    {\n      cast: value => parseInt(value, 10),\n      property: 'age',\n      width: 3\n    }\n  ]\n})\n\nstream\n  .on('error', err => console.error(err))\n  .on('data', data => console.log(data))\n  .on('end', () => console.log('end'))\n\nstream.write('alice       024\\nbob         030')\nstream.end()\n```\n\n### `Stringifier.stream(options)`\n\nIt returns a [`Transform stream`](https://nodejs.org/api/stream.html#class-streamtransform) that accepts objects (o arrays) as input and emits the serialized strings.\n\n- `options` `<Object>` See [options section](#options).\n- Returns: [`<Transform>`](https://nodejs.org/api/stream.html#class-streamtransform)\n\n```javascript\nimport { Stringifier } from '@evologi/fixed-width'\n\nconst stream = Stringifier.stream({\n  eof: true,\n  eol: '\\n',\n  fields: [\n    {\n      align: 'left',\n      property: 'username',\n      width: 12\n    },\n    {\n      align: 'right',\n      pad: '0',\n      property: 'age',\n      width: 3\n    }\n  ]\n})\n\nlet text = ''\n\nstream\n  .on('error', err => console.error(err))\n  .on('data', data => { text += data.toString() })\n  .on('end', () => {\n    // 'alice       024\\nbob         030\\n'\n    console.log(text)\n  })\n\nstream.write({ username: 'alice', age: 24 })\nstream.write({ username: 'bob', age: 30 })\nstream.end()\n```\n\n### `new Parser(options)`\n\nIt creates a `Parser` instance. This object is useful when a custom optimized procedure is necessary. This object is used internally by the Node.js stream and the `parse()` function.\n\n- `options` `<Object>` See [options section](#options).\n- Returns: `<Parser>`\n\nIt consists of only two methods, and all those methods are strictly synchronous.\n\n#### `Parser#write(stringOrBuffer)`\n\nIt accepts a string or a buffer as input and returns an iterable that outputs all parsed objects up to the last completed row (line).\n\n- `stringOrBuffer` `<String> | <Buffer>`\n- Returns: `<Iterable>`\n\n#### `Parser#end()`\n\nIt resets the `Parser` status and returns an iterable that could output other objects contained on the last partial row (line).\n\n- Returns: `<Iterable>`\n\n```javascript\nimport { Parser } from '@evologi/fixed-width'\n\nconst parser = new Parser({\n  eol: '\\n',\n  fields: [\n    {\n      property: 'username',\n      width: 12\n    },\n    {\n      cast: value => parseInt(value, 10),\n      property: 'age',\n      width: 3\n    }\n  ]\n})\n\nconst users = Array.from(\n  parser.write('alice       024\\nbob         030')\n).concat(\n  Array.from(\n    parser.end()\n  )\n)\n\n// [{ username: 'alice', age: 24 }, { username: 'bob', age: 30 }]\nconsole.log(users)\n```\n\n### `new Stringifier(options)`\n\nIt creates a `Stringifier` instance. This object is useful when a custom optimized procedure is necessary. This object is used internally by the Node.js stream and the `stringify()` function.\n\n- `options` `<Object>` See [options section](#options).\n- Returns: `<Stringifier>`\n\nIt consists of only two methods, and all those methods are strictly synchronous.\n\n#### `Stringifier#write(obj)`\n\nPush an object to serialize. Returns the serialized text of the passed object, including new line terminators.\n\n- `obj` `<*>`\n- Returns: `<String>`\n\n#### `Stringifier#end()`\n\nClose the parsing and returns a final string.\n\n- Returns: `<String>`\n\n```javascript\nimport { Stringifier } from '@evologi/fixed-width'\n\nconst stringifier = new Stringifier({\n  eof: true,\n  eol: '\\n',\n  fields: [\n    {\n      align: 'left',\n      property: 'username',\n      width: 12\n    },\n    {\n      align: 'right',\n      pad: '0',\n      property: 'age',\n      width: 3\n    }\n  ]\n})\n\nlet text = ''\ntext += stringifier.write({ username: 'alice', age: 24 })\ntext += stringifier.write({ username: 'bob', age: 30 })\ntext += stringifier.end()\n\n// 'alice       024\\nbob         030\\n'\nconsole.log(text)\n```\n\n## Options\n\n### `encoding`\n\nType: `<String>`\n\nDefault: `\"uft8\"`\n\nThe encoding used to handle strings and buffers. Only [Node.js encodings](https://nodejs.org/api/buffer.html#buffers-and-character-encodings) are supported.\n\n### `eol`\n\nType: `<String>`\n\nThe **E**nd **O**f **L**ine character that divides record rows.\nIt will defautl to [`os.EOL`](https://nodejs.org/api/os.html#oseol) for serialization.\nFor parsing, the `Parser` will try to guess the correct line separator.\n\n### `eof`\n\nType: `<Boolean>`\n\nDefault: `true`\n\nAppends the **E**nd **O**f **F**ile char. If `true`, an [End Of Line](#eol) character is added at the end of the file.\n\n### `pad`\n\nType: `string`\n\nDefault: `\" \"`\n\nValues shorter than their field's width will be padded with this value while serializing. It's also the trimming value removed while parsing.\n\nSee [`trim`](#trim), [`field.pad`](#fieldpad), and [`field.align`](#fieldalign) options.\n\n### `trim`\n\nType: `<Boolean> | <String>`\n\nDefault: `true`\n\nIt enables or disables values' trimming while parsing. Possibles values are:\n\n- `true`: Trim the value from both sides (left and right)\n- `false`: Disable trim \n- `\"left\"`: Trim value's left side\n- `\"right\"`: Trim value's right side\n- `\"auto\"`: Guess the trim side by looking at field's [`align`](#fieldalign) option:\n  - if `field.align: \"right\"` then trim left\n  - if `field.align: \"left\"` then trim right\n\n> The trimmed value corresponds to the field's [padding value](#pad).\n\n```javascript\ntrim('004200', { pad: '0', trim: 'right' })\n// the trimmed value will be '0042'\n```\n\n### `from`\n\nType: `<Number>`\n\nDefault: `1`\n\nThe first line to consider while parsing (inclusive).\nIt is a **1-based** integer (`1` is the first line).\n\n### `to`\n\nType: `<Number>`\n\nDefault: `Infinity`\n\nThe last line to consider while parsing (inclusive).\nIt is a **1-based** integer (`1` is the first line).\n\n### `allowLongerLines`\n\nType: `<Boolean>`\n\nAllow lines to be longer than the declared fields while parsing.\n\nDefault: `true`\n\n### `allowShorterLines`\n\nType: `<Boolean>`\n\nAllow lines to be shorter than the declared fields while parsing.\n\nDefault: `false`\n\n### `skipEmptyLines`\n\nType: `<Boolean>`\n\nCompletely ignore all empty lines. This options does **not** change the behaviour of the `allowShorterLines` option.\n\nDefault: `true`\n\n### `fields`\n\nType: `<Array>`\n\nThis option is the only required one. It contains the specs for all the fields.\n\n#### `field.align`\n\nType: `<String>`\n\nDefault: `\"left\"`\n\nField's value alignment. Can be `\"left\"` or `\"right\"`.\n\n#### `field.cast`\n\nType: `<Function>`\n\nA casting function that accepts the raw string value and returns the parsed one. It also provides a context object as second argument. Only used while parsing.\n\n```javascript\nconst options = {\n  fields: [\n    {\n      width: 5,\n      cast: (value, ctx) => {\n        // value is always a string\n        // ctx = { column: 1, line: 1, width: 5 }\n        return parseInt(value)\n      }\n    }\n  ]\n}\n```\n\n#### `field.column`\n\nType: `<Number>`\n\nField's columns. This is **1-based** value (one is the first column). It defaults to the sum of all the previously defined fields' widths.\n\n#### `field.pad`\n\nType: `<Number>`\n\nField level padding value. It defaults to the [global](#pad) one.\n\n#### `field.property`\n\nType: `<String> | <Symbol>`\n\nThis option controls the expected format of both input and output objects.\n\n##### Parsing\n\nBy defining this option, the `Parser` will emit objects. If the option is omitted, the emitted values will be arrays.\n\n##### Serializing\n\nBy defining this option, the `Stringifier` will expect objects. If the option is omitted, the expected values will be arrays.\n\n#### `field.width`\n\nType: `<Number>`\n\nField's width. Required.\n\n#### `field.stringify`\n\nType: `<Function>`\n\nA function that converts the field into a custom string. Useful for custom formatting, for example, formatting a Date into DD/MM/YYYY format. Only used while stringifying.\n\n#### `field.trim`\n\nType: `<Boolean> | <String>`\n\nDefault: fallbacks to global [`trim`](#trim) option value.\n\nField-level `trim` option.\nSee [`trim` option](#trim) docs.\n\n## Errors\n\nAll errors that can occur during the parsing or serializing phase contain an error code. Error objects also contain enough info (properties) to debug the problem.\n\nIt's possible to detect custom fixed-width errors with their constructor:\n\n```javascript\nimport { FixedWidthError } from '@evologi/fixed-width'\n\ntry {\n  // parse or stringify...\n} catch (err) {\n  if (err instanceof FixedWidthError) {\n    console.log(err.code)\n  } else {\n    console.log('UNKNOWN_ERROR')\n  }\n}\n```\n\n### `UNEXPECTED_LINE_LENGTH`\n\nThis error is raised when a partial line is found.\n\nYou can suppress this error with [`allowLongerLines`](#allowLongerLines) or [`allowShorterLines`](#allowShorterLines) options.\n\n### `EXPECTED_STRING_VALUE`\n\nThis error is raised when a value cannot be serialized into a string.\n\n### `FIELD_VALUE_OVERFLOW`\n\nThis error is raised when a string value has a width that exceeds its field's width.\n","readmeFilename":"README.md"}