{"_id":"opmlparser","_rev":"35-ccf7ccdffea42c235f71184f86c2541c","name":"opmlparser","description":"OPML parsing using sax js","dist-tags":{"latest":"0.8.0","0.5":"0.5.1"},"versions":{"0.1.0":{"name":"opmlparser","author":{"name":"Dan MacTough","email":"danmactough@gmail.com"},"description":"OPML parsing using sax js","version":"0.1.0","repository":{"type":"git","url":"git://github.com/danmactough/node-opmlparser.git"},"keywords":["opml","feed","outline","xml","syndication"],"main":"./lib/opmlparser","engines":{"node":">= 0.4.0"},"dependencies":{"sax":"0.3.x","request":"2.1.x"},"devDependencies":{},"_npmUser":{"name":"danmactough","email":"danmactough@gmail.com"},"_id":"opmlparser@0.1.0","_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"3d565006434e32118e738ea8a61bc3cb3f09adb2","tarball":"https://registry.npmjs.org/opmlparser/-/opmlparser-0.1.0.tgz","integrity":"sha512-3fqxBu+20A29wI5b6Hjo2UL35V+3fDdyhL3Vu07FBz282ltUSH9aOoBHLGAencxha1q59DALtATfqW14zDCsQA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZNIIknbmz1g8Q1LL/7JGhQMpwIWKBbqJhzw8DPMRxsgIhAL4WMODIUitsaW2p/b+Zf5TQRYm4Nk0iq87ZlJSaIgI8"}]},"maintainers":[{"name":"danmactough","email":"danmactough@gmail.com"}],"directories":{}},"0.2.0":{"name":"opmlparser","author":{"name":"Dan MacTough","email":"danmactough@gmail.com"},"description":"OPML parsing using sax js","version":"0.2.0","repository":{"type":"git","url":"git://github.com/danmactough/node-opmlparser.git"},"keywords":["opml","feed","outline","xml","syndication"],"main":"./lib/opmlparser","engines":{"node":">= 0.4.0"},"dependencies":{"sax":"0.3.x","request":"2.1.x"},"devDependencies":{},"_npmUser":{"name":"danmactough","email":"danmactough@gmail.com"},"_id":"opmlparser@0.2.0","_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"a52b2ef11a65d1c7fdedc8ec8c78c75058b09342","tarball":"https://registry.npmjs.org/opmlparser/-/opmlparser-0.2.0.tgz","integrity":"sha512-FlnjbYTgrPJYi17aErdeyBwsi4cOacGq9iQvrxMt4ULhpW01RHESK21eMOrtoX2aR5FnpvT+SJDfKvy6Xd/voA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC2Rw+KCv060oUR8VI1XKCJ1fAzuDZp5bqehX5WbcMKRAiEAoleVdAaQ2es0o9j+B18KN+lZPTiFsvEi3zzralTayo0="}]},"maintainers":[{"name":"danmactough","email":"danmactough@gmail.com"}]},"0.2.1":{"name":"opmlparser","author":{"name":"Dan MacTough","email":"danmactough@gmail.com"},"description":"OPML parsing using sax js","version":"0.2.1","repository":{"type":"git","url":"git://github.com/danmactough/node-opmlparser.git"},"keywords":["opml","feed","outline","xml","syndication"],"main":"./lib/opmlparser","engines":{"node":">= 0.4.0"},"dependencies":{"sax":"0.3.x","request":"2.2.x"},"devDependencies":{},"_npmUser":{"name":"danmactough","email":"danmactough@gmail.com"},"_id":"opmlparser@0.2.1","_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"1a96086f47c68aba01ec3d4e3b59d57333311bdb","tarball":"https://registry.npmjs.org/opmlparser/-/opmlparser-0.2.1.tgz","integrity":"sha512-8vF2ZIPgJEhLNMYbBucrodxc9BHAzIu/em8APMd/V9MQ5AZb+2SJkPIVn0ux6iWGPRF3L/U5uFORH9G/VFMysQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGEZ09DaS+V5pJXDIf9G1Dpck1bBQx53vhRGWbI5SKdgIgMti2qLyNp71AwIz2ekqaGvDyenNmmACEr2WSrqo0rmo="}]},"maintainers":[{"name":"danmactough","email":"danmactough@gmail.com"}]},"0.2.2":{"name":"opmlparser","author":{"name":"Dan MacTough","email":"danmactough@gmail.com"},"description":"OPML parsing using sax js","version":"0.2.2","repository":{"type":"git","url":"git://github.com/danmactough/node-opmlparser.git"},"keywords":["opml","feed","outline","xml","syndication"],"main":"./lib/opmlparser","engines":{"node":">= 0.4.0"},"dependencies":{"sax":"0.3.x","request":"2.2.x"},"devDependencies":{},"_npmUser":{"name":"danmactough","email":"danmactough@gmail.com"},"_id":"opmlparser@0.2.2","_engineSupported":true,"_npmVersion":"1.0.103","_nodeVersion":"v0.4.12","_defaultsLoaded":true,"dist":{"shasum":"f2e75d0f9ae7403827542beda0db96af21f3e464","tarball":"https://registry.npmjs.org/opmlparser/-/opmlparser-0.2.2.tgz","integrity":"sha512-qeilgh2wowr4bPC+N9skYcn7Lu+98V5axueu5UCi4b2EMmiY7F8ZwI8Qn3EPzE2R6fwL1etzai6FQTI/sNQLhQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbVh1Y61fu0AxTkg19JKgbx5jMsIwvlMpUYef5MWUATgIgIgRBwhoS6FzkMFhshY9DDhgXJP0w8dTsmA4ECPhARqQ="}]},"maintainers":[{"name":"danmactough","email":"danmactough@gmail.com"}]},"0.2.3":{"name":"opmlparser","author":{"name":"Dan MacTough","email":"danmactough@gmail.com"},"description":"OPML parsing using sax js","version":"0.2.3","repository":{"type":"git","url":"git://github.com/danmactough/node-opmlparser.git"},"keywords":["opml","feed","outline","xml","syndication"],"main":"./lib/opmlparser","engines":{"node":">= 0.4.0"},"dependencies":{"sax":"0.3.x","request":"2.9.x"},"devDependencies":{},"_npmUser":{"name":"danmactough","email":"danmactough@gmail.com"},"_id":"opmlparser@0.2.3","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.0-2","_nodeVersion":"v0.6.8","_defaultsLoaded":true,"dist":{"shasum":"f64686d421ecaf74ae08c236a92d379f2d4b485d","tarball":"https://registry.npmjs.org/opmlparser/-/opmlparser-0.2.3.tgz","integrity":"sha512-HYIKbl74Ouix88jPOjMZLKM04AiE9NRx+nyg8/hXf9QNXkBKDAgBjVRIU3KZZQ2d3r1dV4C6t4ax9MR65Q7low==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBreTLb56dFaukgQNa8k6NnG6Ravv8jtzlSh6bhuEq6zAiEAwuTB4af2KfH57gn1MuU/hiDMb5L7/LJxy+WwN1HjxHg="}]},"maintainers":[{"name":"danmactough","email":"danmactough@gmail.com"}]},"0.3.0":{"name":"opmlparser","author":{"name":"Dan MacTough","email":"danmactough@gmail.com"},"description":"OPML parsing using sax js","version":"0.3.0","repository":{"type":"git","url":"git://github.com/danmactough/node-opmlparser.git"},"keywords":["opml","feed","outline","xml","syndication"],"main":"./lib/opmlparser","engines":{"node":">= 0.4.0"},"dependencies":{"sax":"0.3.x","request":"2.9.x"},"devDependencies":{},"_npmUser":{"name":"danmactough","email":"danmactough@gmail.com"},"_id":"opmlparser@0.3.0","optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"4fbc6152e0dbcc169ef66506b50aaf170d62e8cb","tarball":"https://registry.npmjs.org/opmlparser/-/opmlparser-0.3.0.tgz","integrity":"sha512-2psxqA2Y5O85Ho6VsBh0CJhP1DThld/DsHMsT9bcWZetoqHxNx3EgCfgrt5m5tiAsg9kwMCkP2lMOqeMxy4e2Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeF5R/TRU5VJ0SOjbagKOFUAy+yOLP8fzw+2417pi9NAIhAM/bGHSvr0RM1niBThQK/p6Np18n9ICSoD3MpMuMlHoY"}]},"maintainers":[{"name":"danmactough","email":"danmactough@gmail.com"}]},"0.4.0":{"name":"opmlparser","author":{"name":"Dan MacTough","email":"danmactough@gmail.com"},"description":"OPML parsing using sax js","version":"0.4.0","homepage":"http://github.com/danmactough/node-opmlparser","repository":{"type":"git","url":"git://github.com/danmactough/node-opmlparser.git"},"bugs":{"url":"http://github.com/danmactough/node-opmlparser/issues"},"keywords":["opml","feed","outline","xml","syndication"],"main":"./main.js","engines":{"node":">= 0.4.0"},"dependencies":{"sax":"0.4.x","request":"2.9.x"},"devDependencies":{},"_id":"opmlparser@0.4.0","dist":{"shasum":"3b49033e9ab68959a5cf9953c726cc8f6595c6d2","tarball":"https://registry.npmjs.org/opmlparser/-/opmlparser-0.4.0.tgz","integrity":"sha512-4kL2LoTyvAHwAZPzxkz5nN7Wvo0yHzSf/5rEsXqkbE+jiijsxTYB7dtUjLZoKSsKM7W9nLly4xQcXEO5JxumTw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLC3djeoTY0JxEyok9GDqKUK4/L1G04AQOA4vW2HnQSQIhALMdO+45eRGFpfT0L4y1NGbY4lbMZCm5M0MYEhh6Q8GA"}]},"_npmVersion":"1.1.70","_npmUser":{"name":"danmactough","email":"danmactough@gmail.com"},"maintainers":[{"name":"danmactough","email":"danmactough@gmail.com"}]},"0.4.1":{"name":"opmlparser","author":{"name":"Dan MacTough","email":"danmactough@gmail.com"},"description":"OPML parsing using sax js","version":"0.4.1","homepage":"http://github.com/danmactough/node-opmlparser","repository":{"type":"git","url":"git://github.com/danmactough/node-opmlparser.git"},"bugs":{"url":"http://github.com/danmactough/node-opmlparser/issues"},"keywords":["opml","feed","outline","xml","syndication"],"main":"./main.js","engines":{"node":">= 0.4.0"},"dependencies":{"sax":"0.5.x","request":"2.9.x"},"devDependencies":{},"_id":"opmlparser@0.4.1","dist":{"shasum":"f44055e8c3616e249a8a1e1a710312f7b6a67a50","tarball":"https://registry.npmjs.org/opmlparser/-/opmlparser-0.4.1.tgz","integrity":"sha512-Qutk578mx34PS7GrNe+uLBsOmbaPD/9x/52XS9uju2ubjZ56Ubty0WKQHixLeYAD2MZfdVIeSNrqLnrv8z43ww==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwhMaAtbzKhPqaUe3TzbkvhX9PUIZelS/S/Vx0TlWCgQIhALhDZs3ToTjMcYJgXab90nNHWSMVe1cQpWfmmdPcCvHF"}]},"_npmVersion":"1.1.69","_npmUser":{"name":"danmactough","email":"danmactough@gmail.com"},"maintainers":[{"name":"danmactough","email":"danmactough@gmail.com"}]},"0.4.2-alpha":{"name":"opmlparser","author":{"name":"Dan MacTough","email":"danmactough@gmail.com"},"description":"OPML parsing using sax js","version":"0.4.2-alpha","homepage":"http://github.com/danmactough/node-opmlparser","repository":{"type":"git","url":"git://github.com/danmactough/node-opmlparser.git"},"bugs":{"url":"http://github.com/danmactough/node-opmlparser/issues"},"keywords":["opml","feed","outline","xml","syndication"],"main":"./main.js","engines":{"node":">= 0.4.0"},"dependencies":{"sax":"0.5.x","request":"2.9.x"},"devDependencies":{},"_id":"opmlparser@0.4.2-alpha","dist":{"shasum":"7c4e262f814ae25227ce8d08b66752c780c0b793","tarball":"https://registry.npmjs.org/opmlparser/-/opmlparser-0.4.2-alpha.tgz","integrity":"sha512-+duIknFWwxe2BrFlFtZmNTBSlDs0noRIjwFaMQBLn2lp+aJtuEksgin7Oqd54FKeP5DgeOTjJoBnSTfLy6TSoA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDqDdcVoRZz/8Cje6LbUajWTk5qqxYshmM7LkyHjJYKlAiB+FLLM4MnA0k+gnVkqJUYYXXQFFoO8lF2eMtlAlaaqMg=="}]},"_npmVersion":"1.1.70","_npmUser":{"name":"danmactough","email":"danmactough@gmail.com"},"maintainers":[{"name":"danmactough","email":"danmactough@gmail.com"}]},"0.5.0":{"name":"opmlparser","author":{"name":"Dan MacTough","email":"danmactough@gmail.com"},"description":"OPML parsing using sax js","version":"0.5.0","homepage":"http://github.com/danmactough/node-opmlparser","repository":{"type":"git","url":"git://github.com/danmactough/node-opmlparser.git"},"bugs":{"url":"http://github.com/danmactough/node-opmlparser/issues"},"keywords":["opml","feed","outline","xml","syndication"],"main":"./main.js","engines":{"node":">= 0.8.0"},"dependencies":{"sax":"0.5.x","request":"2.9.x"},"devDependencies":{"mocha":"~1.9.0"},"scripts":{"test":"make test"},"_id":"opmlparser@0.5.0","dist":{"shasum":"2e50d721e58a17104927d45c16ed17f26c7baab2","tarball":"https://registry.npmjs.org/opmlparser/-/opmlparser-0.5.0.tgz","integrity":"sha512-cHobbbLbQKALaiYrueioLuEeyH5uWsRiHsi8BZb6quMQ5Ad+wscCrrP2aoTJKYqmsu5roqslc8L8Ykg+zyFtdw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXt/tueCIIQnXdmTNMMqtxHw2Vb2ia5A6Sd/fIMHjheAIgH4AQHOkfL223UFqklD7rMcAv5uMbNHmAzrssC58Mq58="}]},"_from":".","_npmVersion":"1.2.14","_npmUser":{"name":"danmactough","email":"danmactough@gmail.com"},"maintainers":[{"name":"danmactough","email":"danmactough@gmail.com"}]},"0.5.1":{"name":"opmlparser","author":{"name":"Dan MacTough","email":"danmactough@gmail.com"},"description":"OPML parsing using sax js","version":"0.5.1","homepage":"http://github.com/danmactough/node-opmlparser","repository":{"type":"git","url":"git://github.com/danmactough/node-opmlparser.git"},"bugs":{"url":"http://github.com/danmactough/node-opmlparser/issues"},"keywords":["opml","feed","outline","xml","syndication"],"main":"./main.js","engines":{"node":">= 0.8.0"},"dependencies":{"sax":"0.5.x","request":"2.9.x"},"devDependencies":{"mocha":"~1.9.0"},"publishConfig":{"tag":"0.5"},"scripts":{"test":"make test"},"_id":"opmlparser@0.5.1","dist":{"shasum":"c76972a0932795eee4963733938dd43cde1bc57a","tarball":"https://registry.npmjs.org/opmlparser/-/opmlparser-0.5.1.tgz","integrity":"sha512-OFA+ooNtNkCVXvyKxEzmNJdsYqYU/TjSqdp1YwIxvvwszplpMvE9LSxJy5yEpVlOeU9mP6Sg884GTqOtGeAM/A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCIFB2BJP5OAeWbEycJkzbGC7wQkzGF5bD0HR+7mer6fOuAh9cNtVjFnTtfWrnzFgOMrSO7E+MHD+LZR26ujLurZ1T"}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"danmactough","email":"danmactough@gmail.com"},"maintainers":[{"name":"danmactough","email":"danmactough@gmail.com"}]},"0.6.0":{"name":"opmlparser","author":{"name":"Dan MacTough","email":"danmactough@gmail.com"},"description":"OPML parsing using sax js","version":"0.6.0","homepage":"http://github.com/danmactough/node-opmlparser","repository":{"type":"git","url":"git://github.com/danmactough/node-opmlparser.git"},"bugs":{"url":"http://github.com/danmactough/node-opmlparser/issues"},"keywords":["opml","feed","outline","xml","syndication"],"main":"./main.js","engines":{"node":">= 0.8.0"},"dependencies":{"sax":"~0.6.0","readable-stream":"~1.1.10"},"devDependencies":{"mocha":"~1.9.0","request":"~2.33.0"},"scripts":{"test":"make test"},"_id":"opmlparser@0.6.0","dist":{"shasum":"04f00248b9e5c511444bce863567d17ef2364e7d","tarball":"https://registry.npmjs.org/opmlparser/-/opmlparser-0.6.0.tgz","integrity":"sha512-TpmPHKLHR0SCar9b0eAlFi1EeTC88cGSp1CiX8OhPWjlAs+YlKsmx/JT/Fmkg5QpLxQNm4FwCS+SLpEnzzTjLA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBHWlEsV4t5r67+Z0mbtS0Dzrbj5Qj2ITPwVkvzPF7QAAiEAzir3OMqWqDNMoc1w4DNG1C1vCrX2kvrMifxepRoP1l8="}]},"_from":".","_npmVersion":"1.3.21","_npmUser":{"name":"danmactough","email":"danmactough@gmail.com"},"maintainers":[{"name":"danmactough","email":"danmactough@gmail.com"}]},"0.7.0":{"name":"opmlparser","author":{"name":"Dan MacTough","email":"danmactough@gmail.com"},"description":"OPML parsing using sax js","version":"0.7.0","homepage":"http://github.com/danmactough/node-opmlparser","repository":{"type":"git","url":"git://github.com/danmactough/node-opmlparser.git"},"bugs":{"url":"http://github.com/danmactough/node-opmlparser/issues"},"keywords":["opml","feed","outline","xml","syndication"],"main":"./main.js","engines":{"node":">= 0.8.0"},"dependencies":{"sax":"~0.6.0","readable-stream":"~1.1.10"},"devDependencies":{"mocha":"~1.9.0","request":"~2.33.0"},"scripts":{"test":"make test"},"gitHead":"1a293bafa6398d44466c49630ef1fa55a66c605f","_id":"opmlparser@0.7.0","_shasum":"46395cc9b163212006ad799396adb22d3fa6cca5","_from":".","_npmVersion":"1.4.21","_npmUser":{"name":"danmactough","email":"danmactough@gmail.com"},"maintainers":[{"name":"danmactough","email":"danmactough@gmail.com"}],"dist":{"shasum":"46395cc9b163212006ad799396adb22d3fa6cca5","tarball":"https://registry.npmjs.org/opmlparser/-/opmlparser-0.7.0.tgz","integrity":"sha512-Aasu341yYGxk/q4GDF34LjR0WE+/FCAAhBuvmMqQyUcGVp6X19KnxfG9Pzo3CwWbkBt5n1RZFP2jbCcuZ59qtg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfWN2SKNGfRC4FzHYkTjTn1q4qbIcHclgB2izsAEeZpAIhAIeAvhkf0EcLdyR35epCEMrUHTbSVtoU62SEhX96S4Lf"}]}},"0.8.0":{"name":"opmlparser","author":{"name":"Dan MacTough","email":"danmactough@gmail.com"},"description":"OPML parsing using sax js","version":"0.8.0","homepage":"http://github.com/danmactough/node-opmlparser","repository":{"type":"git","url":"git://github.com/danmactough/node-opmlparser.git"},"bugs":{"url":"http://github.com/danmactough/node-opmlparser/issues"},"keywords":["opml","feed","outline","xml","syndication"],"main":"./main.js","engines":{"node":">= 0.8.0"},"dependencies":{"sax":"~0.6.0","readable-stream":"~1.1.10"},"devDependencies":{"mocha":"~1.9.0","request":"~2.33.0"},"scripts":{"test":"make test"},"gitHead":"2bda9da31547204de3086685237e262bc1e74e40","_id":"opmlparser@0.8.0","_shasum":"a5d74834b136af9a639013f5dc39746b7c27063f","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"danmactough","email":"danmactough@gmail.com"},"maintainers":[{"name":"danmactough","email":"danmactough@gmail.com"}],"dist":{"shasum":"a5d74834b136af9a639013f5dc39746b7c27063f","tarball":"https://registry.npmjs.org/opmlparser/-/opmlparser-0.8.0.tgz","integrity":"sha512-kQqMYInALr4hDWOvsoXqJ04nNtaINWXFcX3CNwuAd6/8RnRGK+RNotFzN57h6Suq+JU/Tz/4BVWcovBhQUBP5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCgbCJHeovBnenlcx7wQ1vS2VMOyTPzPSgg3HyufCgIOQIhALsxKTeAaeyn4xmWL5NB1qneMOAb6igqjSAdMWV/UMeg"}]}}},"maintainers":[{"name":"danmactough","email":"danmactough@gmail.com"}],"time":{"modified":"2022-06-23T00:55:39.031Z","created":"2011-11-11T05:38:11.165Z","0.1.0":"2011-11-11T05:38:11.549Z","0.2.0":"2011-11-12T02:32:55.647Z","0.2.1":"2011-11-28T05:59:13.473Z","0.2.2":"2011-12-07T04:40:38.009Z","0.2.3":"2012-01-31T14:22:02.667Z","0.3.0":"2012-03-13T04:51:39.795Z","0.4.0":"2013-01-01T04:26:50.751Z","0.4.1":"2013-01-07T18:10:25.324Z","0.4.2-alpha":"2013-01-08T14:48:04.574Z","0.5.0":"2013-04-06T07:01:06.395Z","0.5.1":"2014-02-12T05:17:55.950Z","0.6.0":"2014-02-12T05:24:46.365Z","0.7.0":"2014-08-02T01:52:03.011Z","0.8.0":"2015-05-12T05:21:03.513Z"},"author":{"name":"Dan MacTough","email":"danmactough@gmail.com"},"repository":{"type":"git","url":"git://github.com/danmactough/node-opmlparser.git"},"readme":"[![Build Status](https://secure.travis-ci.org/danmactough/node-opmlparser.png?branch=master)](https://travis-ci.org/danmactough/node-opmlparser)\n#  Opmlparser - OPML parsing in Node.js\n\nThis module adds methods for OPML parsing in node.js using Isaac Schlueter's\n[sax](https://github.com/isaacs/sax-js) parser.\n\n## Requirements\n\n- [sax](https://github.com/isaacs/sax-js)\n- [readable-stream](https://github.com/isaacs/readable-stream) (only if using Node <= v0.8.x)\n\n## Installation\n\n    npm install opmlparser\n\n## Changes since v0.5.x\n\n- The libxml-like helper methods have been removed. There is now just one input\ninterface: the stream interface.\n\n- The `addmeta` option was removed, as it is unnecessary and only adds bloat.\n\n- Events:\n\n    - `304`, `response` - removed, as Opmlparser no longer fetches urls\n    - `meta`, `outline`, `feed`, `complete` - removed; use the stream interface\n    - `data` - all readable streams will emit a `data` event, but this puts the\n      stream into \"old\" v0.8-style push streams\n    - `end` - stream behavior dictates that the `end` event will never fire if\n      you don't read any data from the stream; you can kick the Opmlparser stream\n      to work like an \"old\" v0.8-style push stream (and get the old `end` event\n      behavior) by calling `.resume()`.\n\n- `SAXErrors` are emitted as `error` events. By default, they are automatically\nresumed. Pass `{ resume_saxerror: false }` as an option if you want to manually\nhandle `SAXErrors` (abort parsing, perhaps).\n\n```js\n\nvar OpmlParser = require('opmlparser')\n  , request = require('request');\n\nvar req = request('http://someopmlurl.opml');\nvar opmlparser = new OpmlParser([options]);\n\nreq.on('error', function (error) {\n  // handle any request errors\n});\nreq.on('response', function (res) {\n  var stream = this;\n\n  if (res.statusCode != 200) return this.emit('error', new Error('Bad status code'));\n\n  stream.pipe(opmlparser);\n});\n\n\nopmlparser.on('error', function(error) {\n  // always handle errors\n});\nopmlparser.on('readable', function() {\n  var stream = this\n    , meta = this.meta // **NOTE** the \"meta\" is always available in the context of the opmlparser instance\n    , outline;\n\n  while (outline = stream.read()) {\n    console.log(outline);\n  }\n});\n```\n\n### options\n\n- `opmlurl` - The url (string) of the OPML. Opmlparser is very good at\nresolving relative urls in OPML files. But OPML files could use relative urls\nwithout declaring the `xml:base` attribute any place in the file. This is\nperfectly valid, but we don't know know the file's url before we start parsing\nthe file and trying to resolve those relative urls. If we discover the file's\nurl, we will go back and resolve the relative urls we've already seen, but this\ntakes a little time (not much). If you want to be sure we never have to re-\nresolve relative urls (or if Opmlparser is failing to properly resolve relative\nurls), you should set the `opmlurl` option. Otherwise, feel free to ignore this\noption.\n\n- `resume_saxerror` - Set to `false` to override Opmlparser's default behavior,\nwhich is to emit any `SAXError` on `error` and then automatically resume\nparsing. In my experience, `SAXErrors` are not usually fatal, so this is usually\nhelpful behavior. If you want total control over handling these errors and\noptionally aborting parsing the OPML, use this option.\n\n## Examples\n\nSee the [`examples`](examples/) directory.\n\n## API\n\n### Transform Stream\n\nOpmlparser is a [transform stream](http://nodejs.org/api/stream.html#stream_class_stream_transform) operating in \"object mode\": XML in -> Javascript objects out.\nEach readable chunk is an object representing an `<outline>` element in the OPML.\n\n## What is the parsed output produced by opmlparser?\n\nOpmlparser parses each OPML file into readable `outline` chunks, as well as a\n`meta` object.\n\nThe `meta` will be the information in the OPML's `<head>` element, plus some\nadditional metadata, such as OPML version, any namespaces defined, etc.\n\nEach `outline` chunk will simply translate an `<outline>` element in the OPML's\n`<body>` from XML to a Javascript object. Each chunk is assigned a\nsimple counter-based id when it is parsed and references its immediate ancestor's\nid, which will allow you to recreate the tree if you want.\n\n### List of meta propreties\n\nNo validation is performed. Each of the meta properties will be defined, but any\nof them may be `null`.\n\n* title\n* datecreated\n* datemodified\n* ownername\n* ownerid\n* docs\n* expansionstate\n* vertscrollstate\n* windowtop\n* windowleft\n* windowbottom\n* windowright\n\n### List of outline properties\n\nNo validation is performed. Any or all of the following properties may be\nabsent, and other arbitrary (and invalid) properties may be present.\n\n* title\n* text\n* xmlurl\n* htmlurl\n* description\n* type\n* language\n* version\n\nSee the [OPML Spec](http://dev.opml.org/spec2.html) for more info about what to\nexpect to see in various kinds of OPML files.\n\nIn addition, Opmlparser adds the following properties:\n\n* #id - this outline element's id\n* #parentid - this id of this outline element's immediate ancestor\n* #type (optional) - this outline element contains a feed\n\n## License\n\n(The MIT License)\n\nCopyright (c) 2011-2014 Dan MacTough <danmactough@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","readmeFilename":"README.md","homepage":"http://github.com/danmactough/node-opmlparser","keywords":["opml","feed","outline","xml","syndication"],"bugs":{"url":"http://github.com/danmactough/node-opmlparser/issues"}}