{"_id":"@akolosovich/rss-parser","_rev":"4-56b63351105b6c523ccb9102718fa769","name":"@akolosovich/rss-parser","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"version":"0.1.0","name":"@akolosovich/rss-parser","author":{"name":"Artem Kolosovich"},"module":"dist/rss-parser.esm.js","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"devDependencies":{"@size-limit/preset-small-lib":"^4.9.1","@types/lodash":"^4.14.167","husky":"^4.3.7","size-limit":"^4.9.1","tsdx":"^0.14.1","tslib":"^2.1.0","typescript":"^4.1.3"},"dependencies":{"fast-xml-parser":"^3.17.6"},"peerDependencies":{},"engines":{"node":">=10"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":120,"semi":true,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/rss-parser.cjs.production.min.js","limit":"10 KB"},{"path":"dist/rss-parser.esm.js","limit":"10 KB"}],"gitHead":"a36543fe9543f1977dde89f1ff2b1aca31095279","description":"## Usage","_id":"@akolosovich/rss-parser@0.1.0","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-Njxi11lwhWTC/HToIJCk7PhS3GKcQKCY4067huGPEGuaQotL2jmDF1kkCYXI9iSz78IWQv+hqd+qhctsy+2Mfg==","shasum":"490693b8941ef0f0299214c2b51caafb85979365","tarball":"https://registry.npmjs.org/@akolosovich/rss-parser/-/rss-parser-0.1.0.tgz","fileCount":38,"unpackedSize":201570,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCFI1CRA9TVsSAnZWagAABOsP/j1uJhr7TGIHcEDRWOa9\nmWPex/Wa6SuQNrAbMOMH+SofHrcmJ0DWOXwXjz4Zwgh8cvqRccujDpaNzj9I\nySj08xiqbrZf5qe/PMST+BqWEg9w894y2A3+DYU3aUl4KrYdpD3mwVqDRROc\npCXn2SCUxciki9BOhLz0PA1nFnzJCAGyau3KcHxTuk1JU4dxC3xUQHG7A6D1\nl46k4FhApFwL/tDr4FH667efDsGCp2Tk0axQpr86rvTLWJXNm0LSWGubLoMT\nH4Sx7T2qsT+fcXOXFXj3Pxag0I2h/lkYL9MqslX6M0X8QWTrI9q+YUAxYUIJ\np96mPQB/qC5IpwZ13UQx56xKcYxvA1yGjFjW00N504xMVqOe19mCY0A1tlXG\nqMn4FF+0/tCBcq0g85eWwlOCg2Zzr9ELGM8v0VzbSQQkQutHOX9lxt7ibTmV\nDh6Ty1CBorxQJDkJtMhg/kGjsV1A78eAxf1llqvA5EVyWmVMZKpjYG3wIVIE\nVZWWIOej4xpbyjIkSwGJiJvIIJSVD5QF+tgOY2h+GMInGhfob5jy+j+Q+SCn\n85K3d4aV9vyqMOzcvK+1ErlOdse3Ng0CA0XNn9qtPaJZRwx0zNvvxRvhTSuZ\nxpb0Sf5iDupvqAkDNruYbeU3W6M1/D3W3ZpY7lAyU3MnJIkIeSDh8NgnozfV\nmBpi\r\n=PCMf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWjkpjjFNb0g19lMtxDOEvpcBmIUNHoRbTclx0u4rrJAIhAOqHuiit6T3xoJinnxFGjZDVLKzfoWj9ofL5jpVZ0ruo"}]},"_npmUser":{"name":"akolosovich","email":"akolosovich@pm.me"},"directories":{},"maintainers":[{"name":"akolosovich","email":"akolosovich@pm.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rss-parser_0.1.0_1611158069361_0.776927329706373"},"_hasShrinkwrap":false},"0.1.1":{"version":"0.1.1","name":"@akolosovich/rss-parser","author":{"name":"Artem Kolosovich"},"module":"dist/rss-parser.esm.js","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"devDependencies":{"@size-limit/preset-small-lib":"^4.9.1","husky":"^4.3.7","size-limit":"^4.9.1","tsdx":"^0.14.1","tslib":"^2.1.0","typescript":"^4.1.3"},"dependencies":{"fast-xml-parser":"^3.17.6"},"peerDependencies":{},"engines":{"node":">=10"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":120,"semi":true,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/rss-parser.cjs.production.min.js","limit":"10 KB"},{"path":"dist/rss-parser.esm.js","limit":"10 KB"}],"keywords":["xml","rss","atom","parser"],"gitHead":"67b5837c9e7b49d80c49630b4b39bbcfdc007a7d","description":"## Usage","_id":"@akolosovich/rss-parser@0.1.1","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-KgQBaaPJHL2BXNt79YLnV0egrgOCSofb5Bd1KnQBZRTOuBOdu0XfIM1+LWahZuxCbYpeHyRgsa89Hq9dli63hA==","shasum":"f0c9388cd8429c00d041b024f5a353897da80992","tarball":"https://registry.npmjs.org/@akolosovich/rss-parser/-/rss-parser-0.1.1.tgz","fileCount":38,"unpackedSize":197694,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCGrwCRA9TVsSAnZWagAA8B8P/0e4zi9NYeNIO6bxaYDD\nx3BpgsxKP9pQl+zv2zlNrXxFLP+b4AhG+U2NIM/U6P+eGaNxPjtGTpTpz+Ru\nIhdIfO0LoTgFpljt8eunVhU7Y6r7gh2l19zk/N/xWjI2mMxzVlkXOBK7UYYt\ntlLBGIjQnblCTsHnM+Cz0iO9NIFY02Qlq/7Iqwxe4UuIsq/2JoWbXsmEatNy\npRw9kgzytrLdW/3P7RNGRn1xFhZLuj6wiyJt4ABP353uGoQ4csrgfK+NMBgF\nlFxHhRQxGtJdZ+be6WQt8T5UvYtRhltuA7bynk9PdESL1447COYzkEGxgxmJ\nRYCZd7AzUCFMVs4DTZGkJNyvtRWxqnrtWxGM7I8tVFIzpyE56E3+AeqY7nsB\nLFQ10YEDwwiaNrBGxPSByor1IbatLZjZgkbVEszs/h4OtY0+AM1Jlxo4VNnX\nu+gAFIddhvG2A16nfXJuU6iqomb8j35gHbuOxl/etsKN1x1QTR8RFEKmXOYv\ngioeokfagg/oexve/QVhvvTgyk2yMV1eZKNsR8rSnoo3OMVkZe9zizm1uq1d\nAa3SWQ3Ha2wlclSx6ygJ5Nl2lWgHDnHIxcezSoF2vne4bjgtoi46QC2Np3QV\no0C+yJ19IucgKVKBjCurFDfbJMzWwY3MxYknXhsG29vl6UqIIUf80Dm3sGni\n56fz\r\n=nXdj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAa2g3o7wQKCWQOX7LxRQeNJFBM9VAbQrqt/Iu/neUxAIgM/llqAIPwxXU0F1gjavwmCEnjhaqDY/xU6VuK84/xGs="}]},"_npmUser":{"name":"akolosovich","email":"akolosovich@pm.me"},"directories":{},"maintainers":[{"name":"akolosovich","email":"akolosovich@pm.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rss-parser_0.1.1_1611164399856_0.9858121678158445"},"_hasShrinkwrap":false},"0.1.2":{"version":"0.1.2","name":"@akolosovich/rss-parser","author":{"name":"Artem Kolosovich"},"module":"dist/rss-parser.esm.js","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"devDependencies":{"@size-limit/preset-small-lib":"^4.9.1","husky":"^4.3.7","size-limit":"^4.9.1","tsdx":"^0.14.1","tslib":"^2.1.0","typescript":"^4.1.3","variable-diff":"^2.0.2"},"dependencies":{"fast-xml-parser":"^3.17.6"},"peerDependencies":{},"engines":{"node":">=10"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":120,"semi":true,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/rss-parser.cjs.production.min.js","limit":"10 KB"},{"path":"dist/rss-parser.esm.js","limit":"10 KB"}],"keywords":["xml","rss","atom","parser"],"gitHead":"0faa002e901d98fcf9c7c87bbe43318fd6011e2d","description":"Lightweight and fast rss-parser with minimal dependencies.","_id":"@akolosovich/rss-parser@0.1.2","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-nAyN3iLIEz1NeGDlY9U9SyLGknSCbr/JvMUCyhxf/S7Ss85n3zApW3mKz8nChfAgLk378MF21IT2OQqC7EdLng==","shasum":"ea522db796045f8e397b99c52168bd28ee388dd8","tarball":"https://registry.npmjs.org/@akolosovich/rss-parser/-/rss-parser-0.1.2.tgz","fileCount":42,"unpackedSize":215208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgDB1kCRA9TVsSAnZWagAAtREP/iBMZMwG07zpllsISMis\nqA378dZSpi3DFFselx9pWuWA9O+gBhBK4SJ4miG90otMMCkXuorOz1zewU7x\nMyoh+ol0JBdF/Mi+xmd4y9RuYWTiQPzV/HeZAf2MXxn3nuC/7qJXMd2Ro0VH\nXV3bk1jTzzDnguzfPHiScoOdfK7R/ZoNzU2xHSgT8KISHz+/oO4fBA3Wpfh5\neGdVXVNDcLz6VMyCfO6qiqHI7Kuq6VpEBhmvabsJo/J6FxSGqxpzEMOJDXSc\nN6TnMBy0ehrFAuJOPIteI091G/RWsv/wf6Rg1fNUOx34AxRjOIbY5U4QFIn4\ncTPKlGZwlwv1gHNWpKNS+ufQhArcppZbRc3cKU8mgTwKWO5/XDttE9hQTzpe\nbft0dG7Yxv1BRanUBFTfRshurJS0Nr+fbIL4i/4EXbICDDMr7BeylE4e1Rw2\ny49YXpnOvXPLdA4NiDPaV2caww2RAtBKa5jcMEr424aHi8UKxTnzwHx09ZGz\n5sutKN9W6yte2y3sGrJHhNeDk3rn1Am2lRs9g1pZfb5BVFSesqSAaXjLvrkM\nK88Ktq+ttN4DBv7QYexidPWAfFN4u4GdtzImFuQnlfy+RWT7M4fjauTKh567\ngYYda1iMT+0Dm+2xXe+4O0m8DM82Q/0ywoR/tmNsnIX6Wl0lULcOfPAGc1UR\nKdoC\r\n=58AQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZd89/SyM7g09YmMN7b12ibZ2G66W28d2Bmk7FlTHEkAIhAMJ4yiX8PHg4ww3md1CnRkM4E7iTel1tUG+mY4y7IhTf"}]},"_npmUser":{"name":"akolosovich","email":"artem@kolosovich.me"},"directories":{},"maintainers":[{"name":"akolosovich","email":"artem@kolosovich.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rss-parser_0.1.2_1611406691648_0.967833686009556"},"_hasShrinkwrap":false},"0.1.3":{"version":"0.1.3","name":"@akolosovich/rss-parser","author":{"name":"Artem Kolosovich"},"module":"dist/rss-parser.esm.js","license":"MIT","main":"dist/index.js","typings":"dist/index.d.ts","scripts":{"start":"tsdx watch","build":"tsdx build","test":"tsdx test","lint":"tsdx lint","prepare":"tsdx build","size":"size-limit","analyze":"size-limit --why"},"devDependencies":{"@size-limit/preset-small-lib":"^4.9.1","husky":"^4.3.7","size-limit":"^4.9.1","tsdx":"^0.14.1","tslib":"^2.1.0","typescript":"^4.1.3","variable-diff":"^2.0.2"},"dependencies":{"fast-xml-parser":"^3.17.6"},"peerDependencies":{},"engines":{"node":">=10"},"husky":{"hooks":{"pre-commit":"tsdx lint"}},"prettier":{"printWidth":120,"semi":true,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/rss-parser.cjs.production.min.js","limit":"10 KB"},{"path":"dist/rss-parser.esm.js","limit":"10 KB"}],"keywords":["xml","rss","atom","parser"],"gitHead":"15b0523d53d6798d8d568d6f8325a88eff336dfa","description":"Lightweight and fast rss-parser with minimal dependencies.","_id":"@akolosovich/rss-parser@0.1.3","_nodeVersion":"14.15.4","_npmVersion":"6.14.10","dist":{"integrity":"sha512-eQ6hFzy/yo6/acO71IjWeMtEGpHjWO7NRZ2WV5gbjOrwLh32WkPQm5Qya5ebMVYAjveuWBCZHvE2b+DYtxt9Pg==","shasum":"5841cd72656a302ff383b551ccced8b58332c44c","tarball":"https://registry.npmjs.org/@akolosovich/rss-parser/-/rss-parser-0.1.3.tgz","fileCount":42,"unpackedSize":226376,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEUb4CRA9TVsSAnZWagAAfLUP/3aaDt3b9+58ncSKaoKk\ntVv0gaefyKF5GXdvMwY6BJQk5D7LSqsbjMXoQBRjmDUc0KkXT4EO2BbBi+ds\n11aUzPtVr0ugVwoOTPQ1wcizEAdqm6N4AEJUayEVoF0pfFQTMQMG1BrLxh2N\nwCMQImjlPngGZ5VFS0nQ9mcyvPu/mW46LwT32mKu4PhQSix4ES8raGeBOt0e\n1r4Eghif1SHrsHLAZ1DXhjGGoXQRa2X6JPmV6K/i8C6SjAe5hDDv1Numu754\nxHoQZK91FTu7Vg9Dfk75rGG9VsSKK5r2Q8yo660qJ2S64j8OdbfEnC5Z2ZUa\nPpjxb76nb0F8sjIrCMk8hDb9s4ZxB91tXoY/gkI7PIaY63TCliLI4qzQXhsU\nKm/YDhb32rdvYedkPOIsFFBQhsZt7CEwBGuSQBNY8Y+FU/9JAX6A5GDrmETl\nmqLHbSMD4gcYvc+h6S4ASH2zeUcFNcZi18E4+0eyheQnOVFr2QHCCcEyQyb9\np5xm7GaoVhQ3qIYjjCPIDF/JBSlHA5At2FEQ3j7OxOj4kI10ynxhEXM8KVmM\nphvrzR4mqr69N56+isChizWN/uFP1Mf7/nZgewIKTY5L1oEO0AY5A2V4FM2d\nOyRqKUMqGQ0xQke7+IXCNvYT03gDaJfiFelRncytYJvuh/lLRhNvoIe95RxF\n+VVK\r\n=79iw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCQn7vZcCK3w+DOjC+L7YlyWpnRY9MDu19ZdblgzGxeOQIhAJghbuSXFBFb9x0lLULso8889XjJ2VOFUbSF6BPzSIwL"}]},"_npmUser":{"name":"akolosovich","email":"artem@kolosovich.me"},"directories":{},"maintainers":[{"name":"akolosovich","email":"artem@kolosovich.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rss-parser_0.1.3_1611745016106_0.6024849095871982"},"_hasShrinkwrap":false}},"time":{"created":"2021-01-20T15:54:29.283Z","0.1.0":"2021-01-20T15:54:29.498Z","modified":"2022-04-04T12:31:01.402Z","0.1.1":"2021-01-20T17:40:00.002Z","0.1.2":"2021-01-23T12:58:11.828Z","0.1.3":"2021-01-27T10:56:56.278Z"},"maintainers":[{"name":"akolosovich","email":"artem@kolosovich.me"}],"description":"Lightweight and fast rss-parser with minimal dependencies.","author":{"name":"Artem Kolosovich"},"license":"MIT","readme":"# RSS Parser\n\nLightweight and fast rss-parser with minimal dependencies.\n\n## Usage\n\n```javascript\nconst { rssParser } = require('@akolosovich/rss-parser');\n\n// import { rssParser } from '@akolosovich/rss-parser';\n\nconst data = rssParser.parseString(...);\n\nconsole.log(data);\n```\n\n- [Output Example](https://github.com/akolosovich/rss-parser/blob/master/test/general/expected.json)\n- [Types](https://github.com/akolosovich/rss-parser/blob/master/src/dtos/rss.ts)\n\n## Motivation\n\nWhy to write my own parser instead of using existing one?\n\nFirstly, I didn't find any parsers which return the same data format no matter which RSS feed I submit.\n\nSecondly, since no one is following proper specification in their RSS feeds, I wanted to be able to parse any \"incorrect\" feeds (eg, Enclosure according to spec is only one per item, however many feeds add more than one).\n\nThirdly, I wanted to create private RSS server as a replacement for public one (eg feedly), and for this purpose I wanted to have better understanding of RSS data structure.\n\n## TODO\n\n- fix dates\n- parse and filter languages\n- use proper tests\n\n## Specs and Namespaces\n\n- [RSS 1.0 spec](https://validator.w3.org/feed/docs/rss1.html)\n- [RSS 2.0 spec](https://validator.w3.org/feed/docs/rss2.html)\n- [Atom spec](https://validator.w3.org/feed/docs/atom.html)\n- [Media Namespace](https://www.rssboard.org/media-rss)\n- [Dublin Core Namespace](https://web.resource.org/rss/1.0/modules/dc)\n\n## Links\n\n- [Really Simple Syndication Best Practices Profile](https://www.rssboard.org/rss-profile)\n","readmeFilename":"README.md","keywords":["xml","rss","atom","parser"]}