{"_id":"@agracio/node-expat","_rev":"2-08d3fede6617dc6622c45868b161c348","name":"@agracio/node-expat","dist-tags":{"latest":"2.4.4"},"versions":{"2.4.3":{"name":"@agracio/node-expat","version":"2.4.3","keywords":["xml","sax","expat","libexpat","parse","parsing"],"author":{"url":"http://spaceboyz.net/~astro/","name":"Astro","email":"astro@spaceboyz.net"},"license":"MIT","_id":"@agracio/node-expat@2.4.3","maintainers":[{"name":"agracio","email":"antonas.graciovas@outlook.com"}],"contributors":[{"name":"Stephan Maka"},{"name":"Derek Hammer"},{"name":"Iein Valdez"},{"name":"Peter Körner"},{"name":"Camilo Aguilar"},{"name":"Michael Weibel"},{"name":"Alexey Zhuchkov"},{"name":"Satyam Shekhar"},{"name":"Dhruv Matani"},{"name":"Andreas Botsikas"},{"name":"Tom Hughes-Croucher"},{"name":"Nathan Rajlich"},{"name":"Julien Genestoux"},{"name":"Sonny Piers"},{"name":"Lloyd Watkin"},{"name":"AJ ONeal"},{"name":"Rod Vagg"},{"name":"Christoph Hartmann"},{"name":"Corbin Uselton"},{"name":"Julian Duque"},{"name":"Lovell Fuller"},{"name":"Antonio Bustos"}],"homepage":"http://github.com/astro/node-expat","bugs":{"url":"https://github.com/PruvoNet/node-expat/issues"},"dist":{"shasum":"673d9f8e48ed0a74272e2af05a83a7901e1fc04c","tarball":"https://registry.npmjs.org/@agracio/node-expat/-/node-expat-2.4.3.tgz","fileCount":97,"integrity":"sha512-AU3NYxqwFvuH/e2+9H1gu9t4iBli1RLBAFvgiAkjeiX6ZszOx+qwXFkMU2Svgw4Vwwn7z/yzj/8CvyjuetT4cA==","signatures":[{"sig":"MEQCIBXJusQNNoCMkI0VCseL9daCIqVglFCdtv3es05QEXywAiAPfzGeBVfs1Qfxiur0fdQMPhkqqj2gbS6+8rnpeAYBKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2284947},"main":"./lib/node-expat","gitHead":"53dc81e5947780f0ee3a53893295619e072e798e","gypfile":true,"scripts":{"lint":"standard","test":"npm run unit && npm run lint","unit":"vows --spec ./test/**/*.js","install":"node-gyp rebuild --enable_thin_lto=false --enable_lto=false","rebuild":"node-gyp rebuild --enable_thin_lto=false --enable_lto=false","benchmark":"node ./benchmark.js","preversion":"npm test"},"_npmUser":{"name":"agracio","email":"antonas.graciovas@outlook.com"},"licenses":[{"type":"MIT"}],"repository":{"url":"git+https://github.com/PruvoNet/node-expat.git","type":"git"},"_npmVersion":"11.16.0","description":"NodeJS binding for fast XML parsing.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"nan":"^2.27.0","node-gyp":"^12.3.0"},"_hasShrinkwrap":false,"devDependencies":{"ltx":"^3.1.2","sax":"^1.6.0","vows":"^0.8.3","debug":"^4.4.3","node-xml":"^1.0.2","prebuild":"^13.0.1","standard":"^17.1.2","benchmark":"^2.1.4"},"_npmOperationalInternal":{"tmp":"tmp/node-expat_2.4.3_1780530565307_0.9973969763375445","host":"s3://npm-registry-packages-npm-production"}},"2.4.4":{"name":"@agracio/node-expat","publishConfig":{"access":"public"},"version":"2.4.4","main":"./lib/node-expat","gypfile":true,"description":"NodeJS binding for fast XML parsing.","keywords":["xml","sax","expat","libexpat","parse","parsing"],"scripts":{"install":"node-gyp rebuild --enable_thin_lto=false --enable_lto=false","rebuild":"node-gyp rebuild --enable_thin_lto=false --enable_lto=false","preversion":"npm test","lint":"standard","unit":"vows --spec ./test/**/*.js","test":"npm run unit && npm run lint","benchmark":"node ./benchmark.js"},"dependencies":{"nan":"^2.27.0","node-gyp":"^12.3.0"},"devDependencies":{"benchmark":"^2.1.4","debug":"^4.4.3","ltx":"^3.1.2","node-xml":"^1.0.2","prebuild":"^13.0.1","sax":"^1.6.0","standard":"^17.1.2","vows":"^0.8.3"},"repository":{"type":"git","url":"git+https://github.com/agracio/node-expat.git"},"homepage":"http://github.com/agracio/node-expat","bugs":{"url":"https://github.com/agracio/node-expat/issues"},"author":{"name":"Astro","email":"astro@spaceboyz.net","url":"http://spaceboyz.net/~astro/"},"contributors":[{"name":"Stephan Maka"},{"name":"Derek Hammer"},{"name":"Iein Valdez"},{"name":"Peter Körner"},{"name":"Camilo Aguilar"},{"name":"Michael Weibel"},{"name":"Alexey Zhuchkov"},{"name":"Satyam Shekhar"},{"name":"Dhruv Matani"},{"name":"Andreas Botsikas"},{"name":"Tom Hughes-Croucher"},{"name":"Nathan Rajlich"},{"name":"Julien Genestoux"},{"name":"Sonny Piers"},{"name":"Lloyd Watkin"},{"name":"AJ ONeal"},{"name":"Rod Vagg"},{"name":"Christoph Hartmann"},{"name":"Corbin Uselton"},{"name":"Julian Duque"},{"name":"Lovell Fuller"},{"name":"Antonio Bustos"}],"licenses":[{"type":"MIT"}],"license":"MIT","allowScripts":{"es5-ext@0.10.64":true},"gitHead":"6c4a2ac8a7a6e722bf42da75f18a83f7a104ef4a","_id":"@agracio/node-expat@2.4.4","_nodeVersion":"26.3.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-0ZgYAqoDOLSk0Qc+LF82iWV5IrpsIvyvAxpBQ13fV4SSFX+oJ2mkzN8ssxhx//88iE+A8wrKwgdWMZKD4kMZQA==","shasum":"4baade5616d79773f18890f615f0d1fde797e35e","tarball":"https://registry.npmjs.org/@agracio/node-expat/-/node-expat-2.4.4.tgz","fileCount":97,"unpackedSize":2284850,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEdcdxi1Asa0vrhVaeQ64UKf1MpZVgGFEftcNvRhoHpRAiAOZrv5xh5g2ilSX4ejqNOUr/QdMPnkqtEAtTubExWfNg=="}]},"_npmUser":{"name":"agracio","email":"antonas.graciovas@outlook.com"},"directories":{},"maintainers":[{"name":"agracio","email":"antonas.graciovas@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/node-expat_2.4.4_1780592481641_0.6403299806828417"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-03T23:49:25.142Z","modified":"2026-06-04T17:01:21.975Z","2.4.3":"2026-06-03T23:49:25.475Z","2.4.4":"2026-06-04T17:01:21.843Z"},"bugs":{"url":"https://github.com/agracio/node-expat/issues"},"author":{"name":"Astro","email":"astro@spaceboyz.net","url":"http://spaceboyz.net/~astro/"},"license":"MIT","homepage":"http://github.com/agracio/node-expat","keywords":["xml","sax","expat","libexpat","parse","parsing"],"repository":{"type":"git","url":"git+https://github.com/agracio/node-expat.git"},"description":"NodeJS binding for fast XML parsing.","contributors":[{"name":"Stephan Maka"},{"name":"Derek Hammer"},{"name":"Iein Valdez"},{"name":"Peter Körner"},{"name":"Camilo Aguilar"},{"name":"Michael Weibel"},{"name":"Alexey Zhuchkov"},{"name":"Satyam Shekhar"},{"name":"Dhruv Matani"},{"name":"Andreas Botsikas"},{"name":"Tom Hughes-Croucher"},{"name":"Nathan Rajlich"},{"name":"Julien Genestoux"},{"name":"Sonny Piers"},{"name":"Lloyd Watkin"},{"name":"AJ ONeal"},{"name":"Rod Vagg"},{"name":"Christoph Hartmann"},{"name":"Corbin Uselton"},{"name":"Julian Duque"},{"name":"Lovell Fuller"},{"name":"Antonio Bustos"}],"maintainers":[{"name":"agracio","email":"antonas.graciovas@outlook.com"}],"readme":"# node-expat\r\n\r\n### Fork of node-expat compatible with Node 26.\r\n\r\n## Motivation\r\n\r\nYou use [Node.js](https://nodejs.org) for speed? You process XML streams? Then you want the fastest XML parser: [libexpat](https://github.com/libexpat/libexpat)!\r\n\r\n## Install\r\n\r\n```\r\nnpm install @agracio/node-expat\r\n```\r\n\r\n## Usage\r\n\r\nImportant events emitted by a parser:\r\n\r\n```javascript\r\n(function () {\r\n  \"use strict\";\r\n\r\n  var expat = require('@agracio/node-expat')\r\n  var parser = new expat.Parser('UTF-8')\r\n\r\n  parser.on('startElement', function (name, attrs) {\r\n    console.log(name, attrs)\r\n  })\r\n\r\n  parser.on('endElement', function (name) {\r\n    console.log(name)\r\n  })\r\n\r\n  parser.on('text', function (text) {\r\n    console.log(text)\r\n  })\r\n\r\n  parser.on('error', function (error) {\r\n    console.error(error)\r\n  })\r\n\r\n  parser.write('<html><head><title>Hello World</title></head><body><p>Foobar</p></body></html>')\r\n\r\n}())\r\n\r\n```\r\n\r\n## API\r\n\r\n* `#on('startElement' function (name, attrs) {})`\r\n* `#on('endElement' function (name) {})`\r\n* `#on('text' function (text) {})`\r\n* `#on('processingInstruction', function (target, data) {})`\r\n* `#on('comment', function (s) {})`\r\n* `#on('xmlDecl', function (version, encoding, standalone) {})`\r\n* `#on('startCdata', function () {})`\r\n* `#on('endCdata', function () {})`\r\n* `#on('entityDecl', function (entityName, isParameterEntity, value, base, systemId, publicId, notationName) {})`\r\n* `#on('error', function (e) {})`\r\n* `#stop()` pauses\r\n* `#resume()` resumes\r\n\r\n## Error handling\r\n\r\nWe don't emit an error event because libexpat doesn't use a callback\r\neither. Instead, check that `parse()` returns `true`. A descriptive\r\nstring can be obtained via `getError()` to provide user feedback.\r\n\r\nAlternatively, use the Parser like a node Stream. `write()` will emit\r\nerror events.\r\n\r\n## Namespace handling\r\n\r\nA word about special parsing of *xmlns:* this is not necessary in a\r\nbare SAX parser like this, given that the DOM replacement you are\r\nusing (if any) is not relevant to the parser.\r\n\r\n## Benchmark\r\n\r\n`npm run benchmark`\r\n\r\n| module                                                                                | ops/sec | native | XML compliant | stream         |\r\n|---------------------------------------------------------------------------------------|--------:|:------:|:-------------:|:--------------:|\r\n| [sax-js](https://github.com/isaacs/sax-js)                                            |  99,412 | ☐      | ☑             | ☑              |\r\n| [node-xml](https://github.com/dylang/node-xml)                                        | 130,631 | ☐      | ☑             | ☑              |\r\n| [libxmljs](https://github.com/polotek/libxmljs)                                       | 276,136 | ☑      | ☑             | ☐              |\r\n| **node-expat**                                                                        | 322,769 | ☑      | ☑             | ☑              |\r\n\r\nHigher is better.\r\n\r\n## Testing\r\n\r\n```\r\nnpm install -g standard\r\nnpm test\r\n```\r\n\r\n## Windows\r\n\r\nIf you fail to install node-expat as a dependency of node-xmpp, please update node-xmpp as it doesn't use node-expat anymore.\r\n\r\nDependencies for `node-gyp` https://github.com/TooTallNate/node-gyp#installation\r\n\r\nSee https://github.com/astro/node-expat/issues/78 if you are getting errors about not finding `nan.h`.\r\n\r\n### expat.vcproj\r\n\r\n```\r\nVCBUILD : error : project file 'node-expat\\build\\deps\\libexpat\\expat.vcproj' was not found or not a valid proj\r\nect file. [C:\\Users\\admin\\AppData\\Roaming\\npm\\node_modules\\node-expat\\build\\bin\r\nding.sln]\r\n```\r\n\r\nInstall [Visual Studio C++ 2012](http://go.microsoft.com/?linkid=9816758) and run npm with the [`--msvs_version=2012` flag](http://stackoverflow.com/a/16854333/937891).\r\n","readmeFilename":"README.md"}