{"_id":"@eksml/xml","_rev":"8-34c06e3054d29d7b5fe25808902500df","name":"@eksml/xml","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@eksml/xml","version":"0.1.0","keywords":["xml","html","parser","serializer","sax","streaming","transform-stream","dom","fast","lightweight"],"author":{"name":"Liam Potter","email":"liam@liampotter.co.uk"},"license":"MIT","_id":"@eksml/xml@0.1.0","maintainers":[{"name":"evoactivity","email":"radioactivity@gmail.com"}],"homepage":"https://github.com/evoactivity/eksml#readme","bugs":{"url":"https://github.com/evoactivity/eksml/issues"},"dist":{"shasum":"b41ec63d6214788afd3bf049a1b31c054b1064b3","tarball":"https://registry.npmjs.org/@eksml/xml/-/xml-0.1.0.tgz","fileCount":63,"integrity":"sha512-O7Dcj7qj0cZX8cRWjtICD/vRnhgQPBllgL77EPMt2WkjZPcioAJJDHVkxzlRoFdo+BzLKXO+qXQhfp++OBbbOA==","signatures":[{"sig":"MEYCIQDuGEpkvhvBk3leJyCDOAA4dmhsDSZP07YBuyQm5O0qVAIhANPB7nIn5ie4RzSKfYeItvnqn6CWTYKZ43zldLJFfxjA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":446726},"type":"module","_from":"file:eksml-xml-0.1.0.tgz","exports":{"./sax":{"types":"./dist/sax.d.mts","import":"./dist/sax.mjs"},"./lossy":{"types":"./dist/converters/lossy.d.mts","import":"./dist/converters/lossy.mjs"},"./parser":{"types":"./dist/parser.d.mts","import":"./dist/parser.mjs"},"./stream":{"types":"./dist/xmlParseStream.d.mts","import":"./dist/xmlParseStream.mjs"},"./writer":{"types":"./dist/writer.d.mts","import":"./dist/writer.mjs"},"./lossless":{"types":"./dist/converters/lossless.d.mts","import":"./dist/converters/lossless.mjs"},"./utilities":{"types":"./dist/utilities/index.d.mts","import":"./dist/utilities/index.mjs"},"./from-lossy":{"types":"./dist/converters/fromLossy.d.mts","import":"./dist/converters/fromLossy.mjs"},"./from-lossless":{"types":"./dist/converters/fromLossless.d.mts","import":"./dist/converters/fromLossless.mjs"}},"imports":{"#src/*":"./src/*"},"scripts":{"test":"vitest run","bench":"vitest bench","build":"tsdown","examples":"vite","typecheck":"tsc --noEmit","test:watch":"vitest","examples:build":"vite build"},"_npmUser":{"name":"evoactivity","email":"radioactivity@gmail.com"},"_resolved":"/private/var/folders/rw/zh799lvx7lzb46z1mh_r851m0000gn/T/c7f2483bde4561f409419134488bdd77/eksml-xml-0.1.0.tgz","_integrity":"sha512-O7Dcj7qj0cZX8cRWjtICD/vRnhgQPBllgL77EPMt2WkjZPcioAJJDHVkxzlRoFdo+BzLKXO+qXQhfp++OBbbOA==","repository":{"url":"git+https://github.com/evoactivity/eksml.git","type":"git","directory":"eksml"},"_npmVersion":"11.6.2","description":"Fast, lightweight XML/HTML parser, serializer, and streaming toolkit","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"entities":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"sax":"^1.6.0","txml":"^5.2.1","vite":"^8.0.3","saxes":"^6.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","xml2js":"^0.6.2","@types/sax":"^1.2.7","typescript":"^6.0.2","@types/node":"^25.5.0","htmlparser2":"^12.0.0","@types/xml2js":"^0.4.14","modern-monaco":"^0.4.0","@xmldom/xmldom":"^0.9.9","fast-xml-parser":"^5.5.9"},"_npmOperationalInternal":{"tmp":"tmp/xml_0.1.0_1775407490705_0.7457313175837503","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@eksml/xml","version":"0.1.1","keywords":["xml","html","parser","serializer","sax","streaming","transform-stream","dom","fast","lightweight"],"author":{"name":"Liam Potter","email":"liam@liampotter.co.uk"},"license":"MIT","_id":"@eksml/xml@0.1.1","maintainers":[{"name":"evoactivity","email":"radioactivity@gmail.com"}],"homepage":"https://github.com/evoactivity/eksml#readme","bugs":{"url":"https://github.com/evoactivity/eksml/issues"},"dist":{"shasum":"dfe05fa5d2e739500012b8fd076d823ca4717600","tarball":"https://registry.npmjs.org/@eksml/xml/-/xml-0.1.1.tgz","fileCount":63,"integrity":"sha512-oM+4lVWhbmYo4x71o6EZskc1Tk/XwLsFOQzBL/6PKRRbP5g28ilvoJXVsPFrh6bdG0rvA7AbAK0SzMRVHrJU/g==","signatures":[{"sig":"MEYCIQDUW1GKjeIBnNliT41ypRyUVSyc9wdJWXHdKDtXP/XsvQIhAK2jbxBYLhXFlnhc0ePPidZjw77a4y3KxesjA8zODC/4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":446891},"type":"module","_from":"file:eksml-xml-0.1.1.tgz","exports":{"./sax":{"types":"./dist/sax.d.mts","import":"./dist/sax.mjs"},"./lossy":{"types":"./dist/converters/lossy.d.mts","import":"./dist/converters/lossy.mjs"},"./parser":{"types":"./dist/parser.d.mts","import":"./dist/parser.mjs"},"./stream":{"types":"./dist/xmlParseStream.d.mts","import":"./dist/xmlParseStream.mjs"},"./writer":{"types":"./dist/writer.d.mts","import":"./dist/writer.mjs"},"./lossless":{"types":"./dist/converters/lossless.d.mts","import":"./dist/converters/lossless.mjs"},"./utilities":{"types":"./dist/utilities/index.d.mts","import":"./dist/utilities/index.mjs"},"./from-lossy":{"types":"./dist/converters/fromLossy.d.mts","import":"./dist/converters/fromLossy.mjs"},"./from-lossless":{"types":"./dist/converters/fromLossless.d.mts","import":"./dist/converters/fromLossless.mjs"}},"imports":{"#src/*":"./src/*"},"scripts":{"test":"vitest run","bench":"vitest bench","build":"tsdown","examples":"vite","typecheck":"tsc --noEmit","test:watch":"vitest","examples:build":"vite build"},"_npmUser":{"name":"evoactivity","email":"radioactivity@gmail.com"},"_resolved":"/private/var/folders/rw/zh799lvx7lzb46z1mh_r851m0000gn/T/67be0091986b3a445aa1862b352ddca1/eksml-xml-0.1.1.tgz","_integrity":"sha512-oM+4lVWhbmYo4x71o6EZskc1Tk/XwLsFOQzBL/6PKRRbP5g28ilvoJXVsPFrh6bdG0rvA7AbAK0SzMRVHrJU/g==","repository":{"url":"git+https://github.com/evoactivity/eksml.git","type":"git","directory":"eksml"},"_npmVersion":"11.6.2","description":"Fast, lightweight XML/HTML parser, serializer, and streaming toolkit","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"entities":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"sax":"^1.6.0","txml":"^5.2.1","vite":"^8.0.3","saxes":"^6.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","xml2js":"^0.6.2","@types/sax":"^1.2.7","typescript":"^6.0.2","@types/node":"^25.5.0","htmlparser2":"^12.0.0","@types/xml2js":"^0.4.14","modern-monaco":"^0.4.0","@xmldom/xmldom":"^0.9.9","fast-xml-parser":"^5.5.9"},"_npmOperationalInternal":{"tmp":"tmp/xml_0.1.1_1775407984565_0.6777615572374147","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@eksml/xml","version":"0.1.2","keywords":["xml","html","parser","serializer","sax","streaming","transform-stream","dom","fast","lightweight"],"author":{"name":"Liam Potter","email":"liam@liampotter.co.uk"},"license":"MIT","_id":"@eksml/xml@0.1.2","maintainers":[{"name":"evoactivity","email":"radioactivity@gmail.com"}],"homepage":"https://github.com/evoactivity/eksml#readme","bugs":{"url":"https://github.com/evoactivity/eksml/issues"},"dist":{"shasum":"d2540e37bef79fe86537a4947182d126658e6399","tarball":"https://registry.npmjs.org/@eksml/xml/-/xml-0.1.2.tgz","fileCount":63,"integrity":"sha512-P8HpBCeTfkxcHpA/vzSGeoz1gwi4fL8wMekp9MfuVGa3B+6CmXvyQiBReQpGLfmRWrXzsX63DOO77fvKF6kPbg==","signatures":[{"sig":"MEUCIQD4UY6oxCYXJu/YUZW8KJT2cmUwCjBygszSXSr45MGhWwIgEOT+4uMYA+4NTFPWCZKOnnZpwmHlDIO4UsKNl44cEbQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":450633},"type":"module","_from":"file:eksml-xml-0.1.2.tgz","exports":{"./sax":{"types":"./dist/sax.d.mts","import":"./dist/sax.mjs"},"./lossy":{"types":"./dist/converters/lossy.d.mts","import":"./dist/converters/lossy.mjs"},"./parser":{"types":"./dist/parser.d.mts","import":"./dist/parser.mjs"},"./stream":{"types":"./dist/xmlParseStream.d.mts","import":"./dist/xmlParseStream.mjs"},"./writer":{"types":"./dist/writer.d.mts","import":"./dist/writer.mjs"},"./lossless":{"types":"./dist/converters/lossless.d.mts","import":"./dist/converters/lossless.mjs"},"./utilities":{"types":"./dist/utilities/index.d.mts","import":"./dist/utilities/index.mjs"},"./from-lossy":{"types":"./dist/converters/fromLossy.d.mts","import":"./dist/converters/fromLossy.mjs"},"./from-lossless":{"types":"./dist/converters/fromLossless.d.mts","import":"./dist/converters/fromLossless.mjs"}},"imports":{"#src/*":"./src/*"},"scripts":{"test":"vitest run","bench":"vitest bench","build":"tsdown","examples":"vite","typecheck":"tsc --noEmit","test:smoke":"node scripts/smoke-test.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","examples:build":"vite build"},"_npmUser":{"name":"evoactivity","email":"radioactivity@gmail.com"},"_resolved":"/private/var/folders/rw/zh799lvx7lzb46z1mh_r851m0000gn/T/e9ce218b9b57e3ea1c7f3c35233b4c5a/eksml-xml-0.1.2.tgz","_integrity":"sha512-P8HpBCeTfkxcHpA/vzSGeoz1gwi4fL8wMekp9MfuVGa3B+6CmXvyQiBReQpGLfmRWrXzsX63DOO77fvKF6kPbg==","repository":{"url":"git+https://github.com/evoactivity/eksml.git","type":"git","directory":"eksml"},"_npmVersion":"11.6.2","description":"Fast, lightweight XML/HTML parser, serializer, and streaming toolkit","directories":{},"sideEffects":false,"_nodeVersion":"24.11.1","dependencies":{"entities":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"sax":"^1.6.0","txml":"^5.2.1","vite":"^8.0.3","saxes":"^6.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","xml2js":"^0.6.2","@types/sax":"^1.2.7","typescript":"^6.0.2","@types/node":"^25.5.0","htmlparser2":"^12.0.0","@types/xml2js":"^0.4.14","modern-monaco":"^0.4.0","@xmldom/xmldom":"^0.9.9","fast-xml-parser":"^5.5.9","@vitest/coverage-v8":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/xml_0.1.2_1775473210020_0.6405243813730424","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@eksml/xml","version":"0.1.3","keywords":["xml","html","parser","serializer","sax","streaming","transform-stream","dom","fast","lightweight"],"author":{"name":"Liam Potter","email":"liam@liampotter.co.uk"},"license":"MIT","_id":"@eksml/xml@0.1.3","maintainers":[{"name":"evoactivity","email":"radioactivity@gmail.com"}],"homepage":"https://github.com/evoactivity/eksml#readme","bugs":{"url":"https://github.com/evoactivity/eksml/issues"},"dist":{"shasum":"955e38e30cb0c75a5003b363e7244e96cf42e183","tarball":"https://registry.npmjs.org/@eksml/xml/-/xml-0.1.3.tgz","fileCount":63,"integrity":"sha512-ra7mrW97Tuyl5vqUZ7WAfv4d5Yv5SqhKQ6jLqh6f+RSW6fVXOA3i4kc/2UCdomErJqPiBPpIssSWStYscXWlUg==","signatures":[{"sig":"MEQCIFrstOu0JIGEKK4AOFUIz11DXeqLTAxV8CUjKrSGKmosAiAPYcc4AOPAiEx+9HDH5cljhjRtw0vGWA8y9P32gp2MHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eksml%2fxml@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":520849},"type":"module","_from":"file:eksml-xml-0.1.3.tgz","exports":{"./sax":{"types":"./dist/sax.d.mts","import":"./dist/sax.mjs"},"./lossy":{"types":"./dist/converters/lossy.d.mts","import":"./dist/converters/lossy.mjs"},"./parser":{"types":"./dist/parser.d.mts","import":"./dist/parser.mjs"},"./stream":{"types":"./dist/xmlParseStream.d.mts","import":"./dist/xmlParseStream.mjs"},"./writer":{"types":"./dist/writer.d.mts","import":"./dist/writer.mjs"},"./lossless":{"types":"./dist/converters/lossless.d.mts","import":"./dist/converters/lossless.mjs"},"./utilities":{"types":"./dist/utilities/index.d.mts","import":"./dist/utilities/index.mjs"},"./from-lossy":{"types":"./dist/converters/fromLossy.d.mts","import":"./dist/converters/fromLossy.mjs"},"./from-lossless":{"types":"./dist/converters/fromLossless.d.mts","import":"./dist/converters/fromLossless.mjs"}},"imports":{"#src/*":"./src/*"},"scripts":{"test":"vitest run","bench":"vitest bench","build":"tsdown","examples":"vite","typecheck":"tsc --noEmit","test:smoke":"node scripts/smoke-test.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","examples:build":"vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66b22093-1da0-4cb9-ad1b-f9c2fde9a06d"}},"_resolved":"/tmp/25c01f6c7b4df8885dc8a29825e131ca/eksml-xml-0.1.3.tgz","_integrity":"sha512-ra7mrW97Tuyl5vqUZ7WAfv4d5Yv5SqhKQ6jLqh6f+RSW6fVXOA3i4kc/2UCdomErJqPiBPpIssSWStYscXWlUg==","repository":{"url":"git+https://github.com/evoactivity/eksml.git","type":"git","directory":"eksml"},"_npmVersion":"12.0.1","description":"Fast, lightweight XML/HTML parser, serializer, and streaming toolkit","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"entities":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"sax":"^1.6.0","txml":"^5.2.1","vite":"^8.0.3","saxes":"^6.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","xml2js":"^0.6.2","easysax":"^0.4.2","@types/sax":"^1.2.7","typescript":"^6.0.2","@types/node":"^25.5.0","htmlparser2":"^12.0.0","@types/xml2js":"^0.4.14","modern-monaco":"^0.4.0","@xmldom/xmldom":"^0.9.9","fast-xml-parser":"^5.5.9","@tuananh/sax-parser":"^1.2.0","@vitest/coverage-v8":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/xml_0.1.3_1784415833752_0.6488669706462622","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@eksml/xml","version":"0.1.4","keywords":["xml","html","parser","serializer","sax","streaming","transform-stream","dom","fast","lightweight"],"author":{"name":"Liam Potter","email":"liam@liampotter.co.uk"},"license":"MIT","_id":"@eksml/xml@0.1.4","maintainers":[{"name":"evoactivity","email":"radioactivity@gmail.com"}],"homepage":"https://github.com/evoactivity/eksml#readme","bugs":{"url":"https://github.com/evoactivity/eksml/issues"},"dist":{"shasum":"fe8ed59d3e40ad27e45224a4af581a853998df3c","tarball":"https://registry.npmjs.org/@eksml/xml/-/xml-0.1.4.tgz","fileCount":66,"integrity":"sha512-3zUZLNC3muNXgaU4PWb7md2ip4la456aw4K/epKCYszrdQo0n3uDvO1AYD/3xDNipNddWiCudnXynV5tYjMIYQ==","signatures":[{"sig":"MEUCIQCR7jv3VEkcN41ijZxo8jj/Tcdg9EXDSRAe0FCBF7iRyAIgUD45hkjOTMDXDF4mQlDOZqIMrKF5HaLYufhf09PAP/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eksml%2fxml@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":527022},"type":"module","_from":"file:eksml-xml-0.1.4.tgz","exports":{"./sax":{"types":"./dist/sax.d.mts","import":"./dist/sax.mjs"},"./lossy":{"types":"./dist/converters/lossy.d.mts","import":"./dist/converters/lossy.mjs"},"./parser":{"types":"./dist/parser.d.mts","import":"./dist/parser.mjs"},"./stream":{"types":"./dist/xmlParseStream.d.mts","import":"./dist/xmlParseStream.mjs"},"./writer":{"types":"./dist/writer.d.mts","import":"./dist/writer.mjs"},"./lossless":{"types":"./dist/converters/lossless.d.mts","import":"./dist/converters/lossless.mjs"},"./utilities":{"types":"./dist/utilities/index.d.mts","import":"./dist/utilities/index.mjs"},"./from-lossy":{"types":"./dist/converters/fromLossy.d.mts","import":"./dist/converters/fromLossy.mjs"},"./from-lossless":{"types":"./dist/converters/fromLossless.d.mts","import":"./dist/converters/fromLossless.mjs"}},"imports":{"#src/*":"./src/*"},"scripts":{"test":"vitest run","bench":"vitest bench","build":"tsdown","examples":"vite","typecheck":"tsc --noEmit","test:smoke":"node scripts/smoke-test.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","examples:build":"vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66b22093-1da0-4cb9-ad1b-f9c2fde9a06d"}},"_resolved":"/tmp/6f328127aaf5a49c835f8919b8434c79/eksml-xml-0.1.4.tgz","_integrity":"sha512-3zUZLNC3muNXgaU4PWb7md2ip4la456aw4K/epKCYszrdQo0n3uDvO1AYD/3xDNipNddWiCudnXynV5tYjMIYQ==","repository":{"url":"git+https://github.com/evoactivity/eksml.git","type":"git","directory":"eksml"},"_npmVersion":"12.0.1","description":"Fast, lightweight XML/HTML parser, serializer, and streaming toolkit","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"entities":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"sax":"^1.6.0","txml":"^5.2.1","vite":"^8.0.3","saxes":"^6.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","xml2js":"^0.6.2","easysax":"^0.4.2","@types/sax":"^1.2.7","typescript":"^6.0.2","@types/node":"^25.5.0","htmlparser2":"^12.0.0","@types/xml2js":"^0.4.14","modern-monaco":"^0.4.0","@xmldom/xmldom":"^0.9.9","fast-xml-parser":"^5.5.9","@tuananh/sax-parser":"^1.2.0","@vitest/coverage-v8":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/xml_0.1.4_1784421136260_0.8841512147315391","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@eksml/xml","version":"0.1.5","keywords":["xml","html","parser","serializer","sax","streaming","transform-stream","dom","fast","lightweight"],"author":{"name":"Liam Potter","email":"liam@liampotter.co.uk"},"license":"MIT","_id":"@eksml/xml@0.1.5","maintainers":[{"name":"evoactivity","email":"radioactivity@gmail.com"}],"homepage":"https://github.com/evoactivity/eksml#readme","bugs":{"url":"https://github.com/evoactivity/eksml/issues"},"dist":{"shasum":"75db71675f7320dc50141c9dc39766855a193e86","tarball":"https://registry.npmjs.org/@eksml/xml/-/xml-0.1.5.tgz","fileCount":66,"integrity":"sha512-UJG+Vaj7o48qGlW8EVqZnzE9QDX2KVpJvuv/qugALKEqtytLRsWV+85eMFY8v2AFvlTWJyOQbDjxsL9MuywKBw==","signatures":[{"sig":"MEYCIQD9AXWcG/w9wxTJosZ1S25Fihc0m1xzUwBXEgPdKtkI0wIhAPxAB/kvkAt66g8Lb7TpYjQb7t5XoC9v0vf48q6CPr4J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eksml%2fxml@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":631657},"type":"module","_from":"file:eksml-xml-0.1.5.tgz","exports":{"./sax":{"types":"./dist/sax.d.mts","import":"./dist/sax.mjs"},"./lossy":{"types":"./dist/converters/lossy.d.mts","import":"./dist/converters/lossy.mjs"},"./parser":{"types":"./dist/parser.d.mts","import":"./dist/parser.mjs"},"./stream":{"types":"./dist/xmlParseStream.d.mts","import":"./dist/xmlParseStream.mjs"},"./writer":{"types":"./dist/writer.d.mts","import":"./dist/writer.mjs"},"./lossless":{"types":"./dist/converters/lossless.d.mts","import":"./dist/converters/lossless.mjs"},"./utilities":{"types":"./dist/utilities/index.d.mts","import":"./dist/utilities/index.mjs"},"./from-lossy":{"types":"./dist/converters/fromLossy.d.mts","import":"./dist/converters/fromLossy.mjs"},"./from-lossless":{"types":"./dist/converters/fromLossless.d.mts","import":"./dist/converters/fromLossless.mjs"}},"imports":{"#src/*":"./src/*"},"scripts":{"test":"vitest run","bench":"vitest bench","build":"tsdown","examples":"vite","typecheck":"tsc --noEmit","test:smoke":"node scripts/smoke-test.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","examples:build":"vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66b22093-1da0-4cb9-ad1b-f9c2fde9a06d"}},"_resolved":"/tmp/df3813847595bfa93c97de8d7b8b6285/eksml-xml-0.1.5.tgz","_integrity":"sha512-UJG+Vaj7o48qGlW8EVqZnzE9QDX2KVpJvuv/qugALKEqtytLRsWV+85eMFY8v2AFvlTWJyOQbDjxsL9MuywKBw==","repository":{"url":"git+https://github.com/evoactivity/eksml.git","type":"git","directory":"eksml"},"_npmVersion":"12.0.1","description":"Fast, lightweight XML/HTML parser, serializer, and streaming toolkit","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"entities":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"sax":"^1.6.0","txml":"^5.2.1","vite":"^8.0.3","saxes":"^6.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","xml2js":"^0.6.2","easysax":"^0.4.2","@types/sax":"^1.2.7","typescript":"^6.0.2","@types/node":"^25.5.0","htmlparser2":"^12.0.0","@types/xml2js":"^0.4.14","modern-monaco":"^0.4.0","@xmldom/xmldom":"^0.9.9","fast-xml-parser":"^5.5.9","@tuananh/sax-parser":"^1.2.0","@vitest/coverage-v8":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/xml_0.1.5_1784488595079_0.7533248815493707","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@eksml/xml","version":"0.1.6","keywords":["xml","html","parser","serializer","sax","streaming","transform-stream","dom","fast","lightweight"],"author":{"name":"Liam Potter","email":"liam@liampotter.co.uk"},"license":"MIT","_id":"@eksml/xml@0.1.6","maintainers":[{"name":"evoactivity","email":"radioactivity@gmail.com"}],"homepage":"https://github.com/evoactivity/eksml#readme","bugs":{"url":"https://github.com/evoactivity/eksml/issues"},"dist":{"shasum":"7b12c1dccca8210567053b682e556ce1f9edc336","tarball":"https://registry.npmjs.org/@eksml/xml/-/xml-0.1.6.tgz","fileCount":66,"integrity":"sha512-FGZ5YbU2KHvd8KxgitTzEEJnF0+rreyTXhursa/UpNu7aSk3N5epheAwrL5bQrYbhNVd3AbpVmpIJcWALkOKkw==","signatures":[{"sig":"MEUCIQCPc4VS91rwb9Xw0rkHhwiZKv6enLkk7371YV8AXZY1xQIgZEMGQirZGoiZKFuFowu7huVwXdZH+r2rx6bV3uDR7oA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eksml%2fxml@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":637480},"type":"module","_from":"file:eksml-xml-0.1.6.tgz","exports":{"./sax":{"types":"./dist/sax.d.mts","import":"./dist/sax.mjs"},"./lossy":{"types":"./dist/converters/lossy.d.mts","import":"./dist/converters/lossy.mjs"},"./parser":{"types":"./dist/parser.d.mts","import":"./dist/parser.mjs"},"./stream":{"types":"./dist/xmlParseStream.d.mts","import":"./dist/xmlParseStream.mjs"},"./writer":{"types":"./dist/writer.d.mts","import":"./dist/writer.mjs"},"./lossless":{"types":"./dist/converters/lossless.d.mts","import":"./dist/converters/lossless.mjs"},"./utilities":{"types":"./dist/utilities/index.d.mts","import":"./dist/utilities/index.mjs"},"./from-lossy":{"types":"./dist/converters/fromLossy.d.mts","import":"./dist/converters/fromLossy.mjs"},"./from-lossless":{"types":"./dist/converters/fromLossless.d.mts","import":"./dist/converters/fromLossless.mjs"}},"imports":{"#src/*":"./src/*"},"scripts":{"test":"vitest run","bench":"vitest bench","build":"tsdown","examples":"vite","typecheck":"tsc --noEmit","test:smoke":"node scripts/smoke-test.mjs","test:watch":"vitest","test:coverage":"vitest run --coverage","examples:build":"vite build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66b22093-1da0-4cb9-ad1b-f9c2fde9a06d"}},"_resolved":"/tmp/45bf1feaf94698f447fa06555eb9e1cb/eksml-xml-0.1.6.tgz","_integrity":"sha512-FGZ5YbU2KHvd8KxgitTzEEJnF0+rreyTXhursa/UpNu7aSk3N5epheAwrL5bQrYbhNVd3AbpVmpIJcWALkOKkw==","repository":{"url":"git+https://github.com/evoactivity/eksml.git","type":"git","directory":"eksml"},"_npmVersion":"12.0.1","description":"Fast, lightweight XML/HTML parser, serializer, and streaming toolkit","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","dependencies":{"entities":"^8.0.0"},"_hasShrinkwrap":false,"devDependencies":{"sax":"^1.6.0","txml":"^5.2.1","vite":"^8.0.3","saxes":"^6.0.0","tsdown":"^0.21.7","vitest":"^4.1.2","xml2js":"^0.6.2","easysax":"^0.4.2","@types/sax":"^1.2.7","typescript":"^6.0.2","@types/node":"^25.5.0","htmlparser2":"^12.0.0","@types/xml2js":"^0.4.14","modern-monaco":"^0.4.0","@xmldom/xmldom":"^0.9.9","fast-xml-parser":"^5.5.9","@tuananh/sax-parser":"^1.4.0","@vitest/coverage-v8":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/xml_0.1.6_1784498415210_0.42336927626848486","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@eksml/xml","version":"0.2.0","description":"Fast, lightweight XML/HTML parser, serializer, and streaming toolkit","type":"module","sideEffects":false,"imports":{"#src/*":"./src/*"},"exports":{"./parser":{"types":"./dist/parser.d.mts","import":"./dist/parser.mjs"},"./writer":{"types":"./dist/writer.d.mts","import":"./dist/writer.mjs"},"./sax":{"types":"./dist/sax.d.mts","import":"./dist/sax.mjs"},"./stream":{"types":"./dist/xmlParseStream.d.mts","import":"./dist/xmlParseStream.mjs"},"./lossy":{"types":"./dist/converters/lossy.d.mts","import":"./dist/converters/lossy.mjs"},"./lossless":{"types":"./dist/converters/lossless.d.mts","import":"./dist/converters/lossless.mjs"},"./from-lossy":{"types":"./dist/converters/fromLossy.d.mts","import":"./dist/converters/fromLossy.mjs"},"./from-lossless":{"types":"./dist/converters/fromLossless.d.mts","import":"./dist/converters/fromLossless.mjs"},"./utilities":{"types":"./dist/utilities/index.d.mts","import":"./dist/utilities/index.mjs"}},"keywords":["xml","html","parser","serializer","sax","streaming","transform-stream","dom","fast","lightweight"],"author":{"name":"Liam Potter","email":"liam@liampotter.co.uk"},"repository":{"type":"git","url":"git+https://github.com/evoactivity/eksml.git","directory":"eksml"},"license":"MIT","devDependencies":{"@tuananh/sax-parser":"^1.4.0","@types/node":"^25.5.0","@types/sax":"^1.2.7","@types/xml2js":"^0.4.14","@vitest/coverage-v8":"^4.1.2","@xmldom/xmldom":"^0.9.9","easysax":"^0.4.2","fast-xml-parser":"^5.5.9","htmlparser2":"^12.0.0","modern-monaco":"^0.4.0","sax":"^1.6.0","saxes":"^6.0.0","tsdown":"^0.21.7","txml":"^5.2.1","typescript":"^6.0.2","vite":"^8.0.3","vitest":"^4.1.2","xml2js":"^0.6.2"},"dependencies":{"entities":"^8.0.0"},"scripts":{"build":"tsdown","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","test:smoke":"node scripts/smoke-test.mjs","bench":"vitest bench","typecheck":"tsc --noEmit","examples":"vite","examples:build":"vite build"},"_id":"@eksml/xml@0.2.0","bugs":{"url":"https://github.com/evoactivity/eksml/issues"},"homepage":"https://github.com/evoactivity/eksml#readme","_integrity":"sha512-/MpwSx0jnhhKTzDzLb3yzZN/Rm73nGoDvLFEfsicZY3OWcw6DTkbgGPcIKbkoOPtloSESGK7eVLoVnNmHrIVOQ==","_resolved":"/tmp/91e4578222a8a446216ba13e4eaec7b5/eksml-xml-0.2.0.tgz","_from":"file:eksml-xml-0.2.0.tgz","_nodeVersion":"22.23.1","_npmVersion":"12.0.1","dist":{"integrity":"sha512-/MpwSx0jnhhKTzDzLb3yzZN/Rm73nGoDvLFEfsicZY3OWcw6DTkbgGPcIKbkoOPtloSESGK7eVLoVnNmHrIVOQ==","shasum":"80b5d6615669f872b910da6f9f10c938c6ce4fac","tarball":"https://registry.npmjs.org/@eksml/xml/-/xml-0.2.0.tgz","fileCount":66,"unpackedSize":638394,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eksml%2fxml@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGnaeOSFNE01r8vqZMW1pA1b20xnQCBay4MlRSYsSoFDAiBp4fBMc5OjQeLVEjeIMU6xcJyl5qlHdvR6LFtF6E4buw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:66b22093-1da0-4cb9-ad1b-f9c2fde9a06d"}},"directories":{},"maintainers":[{"name":"evoactivity","email":"radioactivity@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/xml_0.2.0_1784550986884_0.7960467084989411"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-05T16:44:50.604Z","modified":"2026-07-20T12:36:27.432Z","0.1.0":"2026-04-05T16:44:50.849Z","0.1.1":"2026-04-05T16:53:04.779Z","0.1.2":"2026-04-06T11:00:10.168Z","0.1.3":"2026-07-18T23:03:53.928Z","0.1.4":"2026-07-19T00:32:16.427Z","0.1.5":"2026-07-19T19:16:35.222Z","0.1.6":"2026-07-19T22:00:15.368Z","0.2.0":"2026-07-20T12:36:27.046Z"},"bugs":{"url":"https://github.com/evoactivity/eksml/issues"},"author":{"name":"Liam Potter","email":"liam@liampotter.co.uk"},"license":"MIT","homepage":"https://github.com/evoactivity/eksml#readme","keywords":["xml","html","parser","serializer","sax","streaming","transform-stream","dom","fast","lightweight"],"repository":{"type":"git","url":"git+https://github.com/evoactivity/eksml.git","directory":"eksml"},"description":"Fast, lightweight XML/HTML parser, serializer, and streaming toolkit","maintainers":[{"name":"evoactivity","email":"radioactivity@gmail.com"}],"readme":"<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/evoactivity/eksml/main/logo-dark.svg\">\n  <source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/evoactivity/eksml/main/logo.svg\">\n  <img alt=\"Eksml\" src=\"https://raw.githubusercontent.com/evoactivity/eksml/main/logo.svg\">\n</picture>\n\n# Eksml\n\n[![CI](https://github.com/evoactivity/eksml/actions/workflows/ci.yml/badge.svg)](https://github.com/evoactivity/eksml/actions/workflows/ci.yml)\n[![coverage](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/evoactivity/a81d2cb6fcee7165ffe898a8cfff9f4c/raw/eksml-coverage.json)](https://github.com/evoactivity/eksml/actions/workflows/ci.yml)\n[![npm](https://img.shields.io/npm/v/@eksml/xml)](https://www.npmjs.com/package/@eksml/xml)\n[![license](https://img.shields.io/npm/l/@eksml/xml)](https://github.com/evoactivity/eksml/blob/main/LICENSE)\n\nA fast, lightweight XML/HTML parser, serializer, and streaming toolkit for JavaScript and TypeScript. Import only what you need, tree parsing, SAX streaming, object conversion, or serialization, each as a standalone export.\n\nBuilt on the same core parsing architecture as [tXml](https://github.com/tobiasNickel/tXml) by Tobias Nickel, Eksml improves the performance and extends it with additional features.\n\n**[Try the interactive demo](https://evoactivity.github.io/eksml/)**\n\n## Installation\n\n```bash\npnpm add @eksml/xml\n# or: npm install @eksml/xml / yarn add @eksml/xml\n```\n\nEksml is **ESM-only** and requires Node.js 18+ (or any modern browser, Deno, or Bun). There are no CommonJS exports.\n\n## Parsing\n\n`parse()` turns an XML string into an array of plain-object nodes:\n\n```ts\nimport { parse } from '@eksml/xml/parser';\n\nconst dom = parse('<feed><item id=\"1\">Hello</item></feed>');\n// [\n//   {\n//     tagName: 'feed',\n//     attributes: null,\n//     children: [\n//       { tagName: 'item', attributes: { id: '1' }, children: ['Hello'] },\n//     ],\n//   },\n// ]\n```\n\nEvery element is a `TNode`, `{ tagName, attributes, children }`, and text is a plain string. That's the whole tree model, it's JSON-serializable and safe to clone.\n\nPrefer working with simple objects instead of a tree? Convert directly:\n\n```ts\nimport { lossy } from '@eksml/xml/lossy';\n\nlossy('<user><name>Alice</name><age>30</age></user>');\n// => { user: { name: 'Alice', age: '30' } }\n```\n\nSee [parsing](https://github.com/evoactivity/eksml/blob/main/docs/parsing.md) for all options (HTML mode, strict mode, entity decoding, targeted extraction) and [converters](https://github.com/evoactivity/eksml/blob/main/docs/converters.md) for the lossy and lossless object formats.\n\n## Writing\n\n`write()` serializes a tree (or a lossy/lossless object, auto-detected) back to a string:\n\n```ts\nimport { write } from '@eksml/xml/writer';\n\nwrite(dom);\n// => '<feed><item id=\"1\">Hello</item></feed>'\n\nwrite(dom, { pretty: true });\n// => '<feed>\\n  <item id=\"1\">Hello</item>\\n</feed>'\n\nwrite({ user: { name: 'Alice' } });\n// => '<user><name>Alice</name></user>'\n```\n\nSee [writing](https://github.com/evoactivity/eksml/blob/main/docs/writing.md) for pretty-printing, entity encoding, HTML output, and validation options.\n\n## Streaming\n\nFor documents too large to hold in memory, or data arriving over the network, `XmlParseStream` is a standard web `TransformStream` that emits parsed subtrees as they complete:\n\n```ts\nimport { XmlParseStream } from '@eksml/xml/stream';\n\nconst response = await fetch('/feed.xml');\nconst nodes = response.body\n  .pipeThrough(new TextDecoderStream())\n  .pipeThrough(new XmlParseStream({ select: 'item' }));\n\nfor await (const item of nodes) {\n  console.log(item.tagName); // each <item> as soon as it closes\n}\n```\n\nThe `select` option emits matching elements individually instead of waiting for the whole document. Works in browsers, Node.js 18+, Deno, and Bun; Node streams bridge in with `Readable.toWeb()`.\n\nIf you want raw events instead of trees (or maximum throughput), there's also an EventEmitter-style SAX parser:\n\n```ts\nimport { createSaxParser } from '@eksml/xml/sax';\n\nconst parser = createSaxParser();\nparser.on('openTag', (tagName, attributes) => console.log(tagName));\nparser.write('<feed><item id=\"1\">');\nparser.write('Hello</item></feed>');\nparser.close();\n```\n\nSee [web streams](https://github.com/evoactivity/eksml/blob/main/docs/web-streams.md) and [SAX parser](https://github.com/evoactivity/eksml/blob/main/docs/sax-parser.md) for options, output formats, and Node stream interop.\n\n## Documentation\n\n<table>\n  <tr>\n    <th>Topic</th>\n    <th>Covers</th>\n  </tr>\n  <tr>\n    <td><a href=\"https://github.com/evoactivity/eksml/blob/main/docs/parsing.md\">Parsing</a></td>\n    <td><code>parse()</code>, all options, the <code>TNode</code> tree model, strict mode, entity decoding, targeted extraction</td>\n  </tr>\n  <tr>\n    <td><a href=\"https://github.com/evoactivity/eksml/blob/main/docs/writing.md\">Writing</a></td>\n    <td><code>write()</code>, pretty-printing, entity encoding, validation, input auto-detection</td>\n  </tr>\n  <tr>\n    <td><a href=\"https://github.com/evoactivity/eksml/blob/main/docs/web-streams.md\">Web streams</a></td>\n    <td><code>XmlParseStream</code>, the <code>select</code> option, output formats, chunk buffering, Node interop</td>\n  </tr>\n  <tr>\n    <td><a href=\"https://github.com/evoactivity/eksml/blob/main/docs/sax-parser.md\">SAX parser</a></td>\n    <td><code>createSaxParser()</code>, events, dynamic handlers, using with Node streams</td>\n  </tr>\n  <tr>\n    <td><a href=\"https://github.com/evoactivity/eksml/blob/main/docs/converters.md\">Converters</a></td>\n    <td><code>lossy()</code>, <code>lossless()</code>, shape rules, round-tripping back to XML</td>\n  </tr>\n  <tr>\n    <td><a href=\"https://github.com/evoactivity/eksml/blob/main/docs/utilities.md\">Utilities</a></td>\n    <td><code>filter()</code>, <code>getElementById()</code>, <code>getElementsByClassName()</code>, type guards, HTML constants</td>\n  </tr>\n  <tr>\n    <td><a href=\"https://github.com/evoactivity/eksml/blob/main/docs/html.md\">HTML support</a></td>\n    <td>What <code>html: true</code> does in each API, and where Eksml stops short of a spec-compliant HTML parser</td>\n  </tr>\n  <tr>\n    <td><a href=\"https://github.com/evoactivity/eksml/blob/main/docs/security.md\">Security</a></td>\n    <td>Prototype pollution and circular reference protections, why billion laughs and XXE don't apply</td>\n  </tr>\n  <tr>\n    <td><a href=\"https://github.com/evoactivity/eksml/blob/main/docs/limitations.md\">Limitations</a></td>\n    <td>No DTD/schema validation, no namespace resolution, no XPath, and the workarounds</td>\n  </tr>\n</table>\n\n## Benchmarks\n\nEksml is consistently the fastest JavaScript library at DOM parsing, SAX streaming, and raw tokenization, and leads serialization with `validate: false`. Full per-fixture results: **[BENCHMARKS.md](https://github.com/evoactivity/eksml/blob/main/eksml/BENCHMARKS.md)**.\n\nThere is also an **[interactive benchmark](https://evoactivity.github.io/eksml/benchmark)** that runs in your browser. It is a separate suite from BENCHMARKS.md: it only includes libraries that run on the web, and uses its own fixtures (or XML you paste in), so its numbers are not directly comparable.\n\n## Acknowledgments\n\nEksml's DOM parser is built on the work of **[Tobias Nickel](https://github.com/tobiasNickel)** and his [tXml](https://github.com/tobiasNickel/tXml) library. The core parsing architecture, a single-pass, position-tracking string scanner that builds the tree as it goes, is what makes both libraries so fast. Thank you, Tobias, for the elegant approach that made all of this possible.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}