{"_id":"@abstract_/exodusmeme","_rev":"12-2e5fb9924db7f3d63e0374828c651539","name":"@abstract_/exodusmeme","dist-tags":{"latest":"1.2.11"},"versions":{"1.1.0":{"name":"@abstract_/exodusmeme","version":"1.1.0","keywords":["meme","discord","reddit","engine","fetcher","embed","bot"],"author":{"name":"PhoenixUchiha"},"license":"MIT","_id":"@abstract_/exodusmeme@1.1.0","maintainers":[{"name":"not_avalible_","email":"mark.pezo30@gmail.com"}],"dist":{"shasum":"fbc38cea21f2202d3fffc4dab6fefdf963e63cae","tarball":"https://registry.npmjs.org/@abstract_/exodusmeme/-/exodusmeme-1.1.0.tgz","fileCount":8,"integrity":"sha512-W5Eb/yTo23sJfDFL0s5EWuniHORXbWLfY62BQbkmA5H5HqovlQi6uJ1HLoMuh9ettMIn1we8h/gGmRRjjnYvAg==","signatures":[{"sig":"MEYCIQDHKHR61bMstN5H43rrftwifbyleC8k+gqRNG17hNcEfQIhAI44rm5NwoDZjvlZN35vHsoIe9MfB1U+3tmwWGyeM9oB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77135},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"2b86d46b09cdd5b7adb173fe659afdccdaa94179","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"not_avalible_","email":"mark.pezo30@gmail.com"},"_npmVersion":"10.9.2","description":"High-performance, extensible meme engine for Discord bots and Node.js.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"axios":"^1.6.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vitest":"^1.3.0","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/exodusmeme_1.1.0_1770784103123_0.8648137660969537","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@abstract_/exodusmeme","version":"1.2.0","keywords":["meme","discord","reddit","engine","fetcher","embed","bot"],"author":{"name":"PhoenixUchiha"},"license":"MIT","_id":"@abstract_/exodusmeme@1.2.0","maintainers":[{"name":"not_avalible_","email":"mark.pezo30@gmail.com"}],"dist":{"shasum":"7d4a3a1f13b2fc48e37af2f159fbbac3075c25b4","tarball":"https://registry.npmjs.org/@abstract_/exodusmeme/-/exodusmeme-1.2.0.tgz","fileCount":8,"integrity":"sha512-1KqHyLUB3VPhvoMvMNex2trbw14q5xaYz5oqwcGEyH4fx2+huDu3PdXUxnUh4LXNxcdmG0kFRx4QM3nkdPvtwA==","signatures":[{"sig":"MEYCIQCaHz/FKZaj6HFDXFZ8liFe4mZ24HsSluQ8iHP8ZQ8SrQIhAPlbTOnGTd7jULtf7u4B+IgWnU9P2Vagezncw6L4wvcq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84317},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"da1c503059cfb04285383259f70e6233ac8c45c9","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"not_avalible_","email":"mark.pezo30@gmail.com"},"_npmVersion":"10.9.2","description":"High-performance, extensible meme engine for Discord bots and Node.js.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"axios":"^1.6.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vitest":"^1.3.0","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/exodusmeme_1.2.0_1770786477189_0.7055827017556293","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@abstract_/exodusmeme","version":"1.2.1","keywords":["meme","discord","reddit","engine","fetcher","embed","bot"],"author":{"name":"PhoenixUchiha"},"license":"MIT","_id":"@abstract_/exodusmeme@1.2.1","maintainers":[{"name":"not_avalible_","email":"mark.pezo30@gmail.com"}],"dist":{"shasum":"224dc392ede892292d17e3c590d3968c839725c6","tarball":"https://registry.npmjs.org/@abstract_/exodusmeme/-/exodusmeme-1.2.1.tgz","fileCount":8,"integrity":"sha512-0d32G2rg3MocdMrPt5/IQqHGoaWgR/m6XdCGrkx90e29h3Otll92rWHBFUGTQI4aI6GQmT23bNK+2yVhD+ZgrA==","signatures":[{"sig":"MEQCIALjQ3mBNDjFVCANETkTqKgch/mNSse31qYln/SRlFQ9AiB8Ifd5SF2qZVinEZScv/lfyK5+I9tTrHjmLwYCAlhiOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80345},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b9ef2be49d7a12c6ea19250974cf202d655a090f","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"not_avalible_","email":"mark.pezo30@gmail.com"},"_npmVersion":"10.9.2","description":"High-performance, extensible meme engine for Discord bots and Node.js.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"axios":"^1.6.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vitest":"^1.3.0","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/exodusmeme_1.2.1_1770790443717_0.7865670847318367","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@abstract_/exodusmeme","version":"1.2.2","keywords":["meme","discord","reddit","engine","fetcher","embed","bot"],"author":{"name":"PhoenixUchiha"},"license":"MIT","_id":"@abstract_/exodusmeme@1.2.2","maintainers":[{"name":"not_avalible_","email":"mark.pezo30@gmail.com"}],"dist":{"shasum":"1fd06f31d6ed0fbb2404ea67864867aa96e2947a","tarball":"https://registry.npmjs.org/@abstract_/exodusmeme/-/exodusmeme-1.2.2.tgz","fileCount":8,"integrity":"sha512-3qL2+JBXC0BD8Sd0ss9GPADeYCtVwvshKGms75sZZahnr274MUnSmo3eCkdAixNwK6t+qXeSXLEiJFs0pfyujQ==","signatures":[{"sig":"MEUCIC3aurCc7NYRhdk4O1rVASUEoE8nWH/ATOYHfF728KXwAiEA0F7oQH2ajKhgyfmrwoVTv+5M6lcGxBksxMon0BWMgC8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81919},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b9ef2be49d7a12c6ea19250974cf202d655a090f","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"not_avalible_","email":"mark.pezo30@gmail.com"},"_npmVersion":"10.9.2","description":"High-performance, extensible meme engine for Discord bots and Node.js.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"axios":"^1.6.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vitest":"^1.3.0","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/exodusmeme_1.2.2_1770790726966_0.6080727190626156","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@abstract_/exodusmeme","version":"1.2.3","keywords":["meme","discord","reddit","engine","fetcher","embed","bot"],"author":{"name":"PhoenixUchiha"},"license":"MIT","_id":"@abstract_/exodusmeme@1.2.3","maintainers":[{"name":"not_avalible_","email":"mark.pezo30@gmail.com"}],"dist":{"shasum":"75bc7641b0ec8eea7eee66b349b66302d670f003","tarball":"https://registry.npmjs.org/@abstract_/exodusmeme/-/exodusmeme-1.2.3.tgz","fileCount":8,"integrity":"sha512-vXq8BQNtvF+Hj4V0KuqDP+TjhqA8XBtKAwCj4PqbKCoZ5lur4h56S/A/86DU/yRxr6Tr4kF8tWo9HGgZIwUdiA==","signatures":[{"sig":"MEUCIQC3ouqgEZnAzGq/aPO8X8RIQ8+I/FOQM0B66Ap6KOpNLAIgSujWbf7u0/5cwJDvG5xgS23uucgexABY+2FzFzouST4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82271},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b9ef2be49d7a12c6ea19250974cf202d655a090f","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"not_avalible_","email":"mark.pezo30@gmail.com"},"_npmVersion":"10.9.2","description":"High-performance, extensible meme engine for Discord bots and Node.js.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"axios":"^1.6.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vitest":"^1.3.0","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/exodusmeme_1.2.3_1770793695363_0.46657131589459944","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@abstract_/exodusmeme","version":"1.2.4","keywords":["meme","discord","reddit","engine","fetcher","embed","bot"],"author":{"name":"PhoenixUchiha"},"license":"MIT","_id":"@abstract_/exodusmeme@1.2.4","maintainers":[{"name":"not_avalible_","email":"mark.pezo30@gmail.com"}],"dist":{"shasum":"c110021333778db1ca20f71cb52af5b8ed27aa70","tarball":"https://registry.npmjs.org/@abstract_/exodusmeme/-/exodusmeme-1.2.4.tgz","fileCount":8,"integrity":"sha512-r8u9FBLRE7m7gtPP7oRrOy/QA7SPJbkz+idcj6SF1SOo+B+Y+g355cn+gXHaQafvnC+9eLLA1ZWqz8ZVbqT9PA==","signatures":[{"sig":"MEUCIQDuSV4nma+cl8xqre9ofqo9GGC00Y7ekq5gZsRb0GHV9wIgBjl7pvZDFPBPRKzQzVzvauhX5ENmXW2H0Ptcr9ekl9c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84623},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b9ef2be49d7a12c6ea19250974cf202d655a090f","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"not_avalible_","email":"mark.pezo30@gmail.com"},"_npmVersion":"10.9.2","description":"High-performance, extensible meme engine for Discord bots and Node.js.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"axios":"^1.6.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vitest":"^1.3.0","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/exodusmeme_1.2.4_1770852018218_0.04086175602840858","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@abstract_/exodusmeme","version":"1.2.6","keywords":["meme","discord","reddit","engine","fetcher","embed","bot"],"author":{"name":"Abstract_"},"license":"MIT","_id":"@abstract_/exodusmeme@1.2.6","maintainers":[{"name":"not_avalible_","email":"mark.pezo30@gmail.com"}],"dist":{"shasum":"ae7bc66385b4c2a6df4d978fbe6a4dc8a5b5c2a9","tarball":"https://registry.npmjs.org/@abstract_/exodusmeme/-/exodusmeme-1.2.6.tgz","fileCount":8,"integrity":"sha512-zzfKXWkWJwU+3iYbEcrh7TYkhNnaMNaWF07foO0AxkfwuE3R+0BihTJiDuHDoUzHAJrkixidIXvnnyeKCTqDAw==","signatures":[{"sig":"MEUCIDNuJ8tfYvkn2A0G20BqW9Xua8f/LuHDfAkgX208Q62xAiEA7nxwIzikhAyjmz0aMalXGn6ntzunTA73NQDSHEoXepw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87339},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b9ef2be49d7a12c6ea19250974cf202d655a090f","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"not_avalible_","email":"mark.pezo30@gmail.com"},"_npmVersion":"10.9.2","description":"High-performance, extensible meme engine for Discord bots and Node.js.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"axios":"^1.6.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vitest":"^1.3.0","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/exodusmeme_1.2.6_1770854734512_0.4785737305001039","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"@abstract_/exodusmeme","version":"1.2.7","keywords":["meme","discord","reddit","engine","fetcher","embed","bot"],"author":{"name":"Abstract_"},"license":"MIT","_id":"@abstract_/exodusmeme@1.2.7","maintainers":[{"name":"not_avalible_","email":"mark.pezo30@gmail.com"}],"dist":{"shasum":"a56458139e0e754b64ff847b1701055d896ef5aa","tarball":"https://registry.npmjs.org/@abstract_/exodusmeme/-/exodusmeme-1.2.7.tgz","fileCount":9,"integrity":"sha512-mqe8hPjhwWk29OrjN3Npwxp3uDHOmFO2dpWwgmNcdJpSzqjZWud5ukGhy2KQ9jhqe0yX1a6hqWYXexDO//wGvQ==","signatures":[{"sig":"MEYCIQDx/V1IgJgKHsab2cpDdEtuVGrUrtltHAymklCAEkeTUgIhAJqVvkXtKvo0dO0V0PpoFBiQobbWqIGQaGn2mOnWRQQQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90105},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b9ef2be49d7a12c6ea19250974cf202d655a090f","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"not_avalible_","email":"mark.pezo30@gmail.com"},"_npmVersion":"10.9.2","description":"High-performance, extensible meme engine for Discord bots and Node.js.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"axios":"^1.6.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vitest":"^1.3.0","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/exodusmeme_1.2.7_1770873528803_0.44620855215973676","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"@abstract_/exodusmeme","version":"1.2.8","keywords":["meme","discord","reddit","engine","fetcher","embed","bot"],"author":{"name":"Abstract_"},"license":"MIT","_id":"@abstract_/exodusmeme@1.2.8","maintainers":[{"name":"not_avalible_","email":"mark.pezo30@gmail.com"}],"dist":{"shasum":"5ab243586700a82755b5c5e1045e9899752e4c92","tarball":"https://registry.npmjs.org/@abstract_/exodusmeme/-/exodusmeme-1.2.8.tgz","fileCount":9,"integrity":"sha512-8uNACuivkqEqAaNAihCLk9PzWd5X9wVYIiLm/mbipNn8Ht9a+ljiqV+1L+OMunVoITXoIORsCMFs1bn8vt+LoQ==","signatures":[{"sig":"MEUCIGnICYEa1s1v3F28ejrShJHttv3aWHs1oTks2ZTBgiPkAiEA6Su11KQLSgd9e8bUmEpQwhysTujW+xiX8Sr4Xx1YvDU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90708},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"38e0ab7f65943bdd766d659bffb8c0e15324e06d","scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"not_avalible_","email":"mark.pezo30@gmail.com"},"_npmVersion":"10.9.2","description":"High-performance, extensible meme engine for Discord bots and Node.js.","directories":{},"_nodeVersion":"22.17.0","dependencies":{"axios":"^1.6.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vitest":"^1.3.0","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/exodusmeme_1.2.8_1770941763477_0.34088887197857454","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"@abstract_/exodusmeme","version":"1.2.9","keywords":["meme","discord","reddit","engine","fetcher","embed","bot"],"author":{"name":"Abstract_"},"license":"MIT","_id":"@abstract_/exodusmeme@1.2.9","maintainers":[{"name":"not_avalible_","email":"mark.pezo30@gmail.com"}],"dist":{"shasum":"8fbada88318b61873ceff4d188fe8c269d472c89","tarball":"https://registry.npmjs.org/@abstract_/exodusmeme/-/exodusmeme-1.2.9.tgz","fileCount":9,"integrity":"sha512-tsMHBC+JZSFQEqiZZqEcP9u6UEROf3ZpJu4h5sE1iVLLA97kTqB3vJ+c2vhOTw9hLNCpiYEkZn0HjdBH4yxYMQ==","signatures":[{"sig":"MEUCIDM5jHmBMfj24/+W2/2OyMHtlSsEoA2SJoCspDcomf96AiEA2rLBpqa6bqnolwXu60Om+w10IC3e58RRmr5X/yhUJTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95218},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"not_avalible_","email":"mark.pezo30@gmail.com"},"_npmVersion":"11.13.0","description":"High-performance, extensible meme engine for Discord bots and Node.js.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"axios":"^1.6.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vitest":"^1.3.0","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/exodusmeme_1.2.9_1783006673086_0.9826082983715028","host":"s3://npm-registry-packages-npm-production"}},"1.2.10":{"name":"@abstract_/exodusmeme","version":"1.2.10","keywords":["meme","discord","reddit","engine","fetcher","embed","bot"],"author":{"name":"Abstract_"},"license":"MIT","_id":"@abstract_/exodusmeme@1.2.10","maintainers":[{"name":"not_avalible_","email":"exodus.bot22@gmail.com"}],"dist":{"shasum":"b5a65457cf364ff1f724d3dd38b5514189ea9299","tarball":"https://registry.npmjs.org/@abstract_/exodusmeme/-/exodusmeme-1.2.10.tgz","fileCount":9,"integrity":"sha512-L0WDBTLRn8G9EL9sWNOYAQK0TlB0OByDE0Brdrwgz4vw1rXzuQiTy9upebZLIcvG/5rLq8CpiY9UE2JnxidRUw==","signatures":[{"sig":"MEUCIDJC+T4aFqtQhs+n6yCxXt54/CaTtVTdlCkvM/bunPvRAiEA31We/lTCXrfwvV0hGV6aDKPQHpwF9KsC9gQnW3P0P8g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95219},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","lint":"tsc --noEmit","test":"vitest run","build":"tsup","test:watch":"vitest"},"_npmUser":{"name":"not_avalible_","email":"exodus.bot22@gmail.com"},"_npmVersion":"11.13.0","description":"High-performance, extensible meme engine for Discord bots and Node.js.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"axios":"^1.6.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vitest":"^1.3.0","typescript":"^5.3.3","@types/node":"^20.11.19"},"_npmOperationalInternal":{"tmp":"tmp/exodusmeme_1.2.10_1783011490300_0.037139810697941256","host":"s3://npm-registry-packages-npm-production"}},"1.2.11":{"name":"@abstract_/exodusmeme","version":"1.2.11","description":"High-performance, extensible meme engine for Discord bots and Node.js.","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"require":"./dist/index.js","import":"./dist/index.mjs","types":"./dist/index.d.ts"}},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","lint":"tsc --noEmit"},"keywords":["meme","discord","reddit","engine","fetcher","embed","bot"],"author":{"name":"Abstract_"},"license":"MIT","dependencies":{"axios":"^1.6.7"},"devDependencies":{"@types/node":"^20.11.19","tsup":"^8.0.2","typescript":"^5.3.3","vitest":"^1.3.0"},"_id":"@abstract_/exodusmeme@1.2.11","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-fMCAAF+yrtCwexSpFOtS1O49DnH+TK9NAgU9k46+thtTDsEp6dsvDGKT5Lvg/YH71DYDbMZKaLxdcvZUrNH5Zg==","shasum":"3dcfd4faa1af3cddb3a3bee980b92c25e172a5d6","tarball":"https://registry.npmjs.org/@abstract_/exodusmeme/-/exodusmeme-1.2.11.tgz","fileCount":9,"unpackedSize":107959,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIA+FuWx3IW+KX1s2AX9BsgHus/8Dzj6FXIGlbEtCTYphAiAS1jCb74qAQMU+Idb1fGku4KjIqEia+w/ZevE4EhJXIA=="}]},"_npmUser":{"name":"not_avalible_","email":"exodus.bot22@gmail.com"},"directories":{},"maintainers":[{"name":"not_avalible_","email":"exodus.bot22@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/exodusmeme_1.2.11_1783056067782_0.10189333982577509"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-11T04:28:23.037Z","modified":"2026-07-03T05:21:08.056Z","1.1.0":"2026-02-11T04:28:23.275Z","1.2.0":"2026-02-11T05:07:57.339Z","1.2.1":"2026-02-11T06:14:03.883Z","1.2.2":"2026-02-11T06:18:47.135Z","1.2.3":"2026-02-11T07:08:15.522Z","1.2.4":"2026-02-11T23:20:18.357Z","1.2.6":"2026-02-12T00:05:34.684Z","1.2.7":"2026-02-12T05:18:48.933Z","1.2.8":"2026-02-13T00:16:03.682Z","1.2.9":"2026-07-02T15:37:53.279Z","1.2.10":"2026-07-02T16:58:10.467Z","1.2.11":"2026-07-03T05:21:07.944Z"},"author":{"name":"Abstract_"},"license":"MIT","keywords":["meme","discord","reddit","engine","fetcher","embed","bot"],"description":"High-performance, extensible meme engine for Discord bots and Node.js.","maintainers":[{"name":"not_avalible_","email":"exodus.bot22@gmail.com"}],"readme":"# ExodusMeme 🚀\r\n\r\n**Motor de memes de alto rendimiento para Node.js y Discord bots.**  \r\n*Optimizado para Discord, diseñado para velocidad y extensibilidad.*\r\n\r\n[![npm version](https://img.shields.io/npm/v/@abstract_/exodusmeme?color=cb3837&style=for-the-badge&logo=npm)](https://www.npmjs.com/package/@abstract_/exodusmeme)\r\n[![npm downloads](https://img.shields.io/npm/dm/@abstract_/exodusmeme?color=333&style=for-the-badge)](https://www.npmjs.com/package/@abstract_/exodusmeme)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge&logo=opensourceinitiative&logoColor=white)](https://opensource.org/licenses/MIT)\r\n[![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue.svg?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)\r\n\r\n---\r\n\r\n## 🧠 ¿Qué es ExodusMeme?\r\n\r\nExodusMeme no es solo otro fetcher de Reddit. Es un **motor completo de orquestación de memes** con múltiples fuentes integradas. Ya sea que estés construyendo un bot de Discord, una herramienta de automatización de redes sociales, o simplemente necesites un flujo constante de memes, ExodusMeme proporciona una API robusta, type-safe y con caché.\r\n\r\n## ✨ Características Principales\r\n\r\n- 🎯 **Rendimiento Extremo**: Capa de caché integrada (TTL) y throttling de peticiones\r\n- 🔌 **Múltiples Fuentes**: Sistema multi-API que combina want.cat, Reddit APIs y más fuentes integradas\r\n- 🌐 **Arquitectura Pluggable**: Añade fácilmente fuentes personalizadas de Reddit, Twitter o tus propias APIs\r\n- 🛡️ **Filtros Inteligentes**: Detección NSFW avanzada, umbrales de upvotes y filtrado por tipo de media\r\n- 🤖 **Nativo de Discord**: Soporte de primera clase para embeds de Discord con truncamiento y formato automático\r\n- 🧬 **Type Safety**: Escrito desde cero en TypeScript para mejor experiencia de desarrollo\r\n- 🚀 **Anti-Duplicados**: Sistema de deduplicación con Set para evitar memes repetidos\r\n- ⚡ **Caché Inteligente**: Caché en memoria con duración de 3-5 minutos para máxima frescura\r\n\r\n---\r\n\r\n## 📦 Instalación\r\n```bash\r\nnpm install @abstract_/exodusmeme\r\n```\r\n\r\n## 🚀 Inicio Rápido\r\n\r\n> **Nota**: ExodusMeme usa por defecto la fuente `multiapi` que combina múltiples APIs para mayor variedad y disponibilidad.\r\n\r\n### 1. Fetch Simple (CommonJS)\r\n```javascript\r\nconst { memeForge } = require('@abstract_/exodusmeme');\r\n\r\nasync function getMemes() {\r\n    const memes = await memeForge.fetch({\r\n        limit: 5,\r\n        minUpvotes: 500,\r\n        nsfw: false\r\n    });\r\n    \r\n    console.log(memes);\r\n}\r\n\r\ngetMemes();\r\n```\r\n\r\n### 2. Fetch Simple (ES Modules)\r\n```javascript\r\nimport { memeForge } from '@abstract_/exodusmeme';\r\n\r\nconst memes = await memeForge.fetch({\r\n    limit: 5,\r\n    minUpvotes: 500,\r\n    nsfw: false\r\n});\r\n\r\nconsole.log(memes);\r\n```\r\n\r\n### 3. Bot de Discord con discord.js v14 (CommonJS)\r\n```javascript\r\nconst { Client, GatewayIntentBits } = require('discord.js');\r\nconst { memeForge } = require('@abstract_/exodusmeme');\r\n\r\nconst client = new Client({\r\n    intents: [GatewayIntentBits.Guilds]\r\n});\r\n\r\nclient.on('interactionCreate', async (interaction) => {\r\n    if (!interaction.isChatInputCommand()) return;\r\n    \r\n    if (interaction.commandName === 'meme') {\r\n        await interaction.deferReply();\r\n        \r\n        const memes = await memeForge.fetch({\r\n            limit: 1,\r\n            minUpvotes: 500,\r\n            nsfw: false,\r\n            mediaType: 'image'\r\n        });\r\n        \r\n        if (memes.length === 0) {\r\n            await interaction.editReply('No se encontraron memes 😢');\r\n            return;\r\n        }\r\n        \r\n        const meme = memes[0];\r\n        \r\n        const embed = {\r\n            title: meme.title,\r\n            url: meme.sourceUrl,\r\n            image: { url: meme.url },\r\n            color: 0xff4500,\r\n            footer: {\r\n                text: `👍 ${meme.upvotes.toLocaleString()} • r/${meme.subreddit}`\r\n            }\r\n        };\r\n        \r\n        await interaction.editReply({ embeds: [embed] });\r\n    }\r\n});\r\n\r\nclient.login('YOUR_TOKEN');\r\n```\r\n\r\n### 4. Bot de Discord (ES Modules)\r\n```javascript\r\nimport { Client, GatewayIntentBits } from 'discord.js';\r\nimport { memeForge } from '@abstract_/exodusmeme';\r\n\r\nconst client = new Client({\r\n    intents: [GatewayIntentBits.Guilds]\r\n});\r\n\r\nclient.on('interactionCreate', async (interaction) => {\r\n    if (!interaction.isChatInputCommand()) return;\r\n    \r\n    if (interaction.commandName === 'meme') {\r\n        await interaction.deferReply();\r\n        \r\n        const memes = await memeForge.fetch({\r\n            limit: 1,\r\n            minUpvotes: 500,\r\n            nsfw: false,\r\n            mediaType: 'image'\r\n        });\r\n        \r\n        if (memes.length === 0) {\r\n            await interaction.editReply('No se encontraron memes 😢');\r\n            return;\r\n        }\r\n        \r\n        const meme = memes[0];\r\n        \r\n        const embed = {\r\n            title: meme.title,\r\n            url: meme.sourceUrl,\r\n            image: { url: meme.url },\r\n            color: 0xff4500,\r\n            footer: {\r\n                text: `👍 ${meme.upvotes.toLocaleString()} • r/${meme.subreddit}`\r\n            }\r\n        };\r\n        \r\n        await interaction.editReply({ embeds: [embed] });\r\n    }\r\n});\r\n\r\nclient.login('YOUR_TOKEN');\r\n```\r\n\r\n### 5. Bot con Comandos de Prefijo (CommonJS)\r\n```javascript\r\nconst { Client, GatewayIntentBits } = require('discord.js');\r\nconst { memeForge } = require('@abstract_/exodusmeme');\r\n\r\nconst client = new Client({\r\n    intents: [\r\n        GatewayIntentBits.Guilds,\r\n        GatewayIntentBits.GuildMessages,\r\n        GatewayIntentBits.MessageContent\r\n    ]\r\n});\r\n\r\nconst prefix = '!';\r\n\r\nclient.on('messageCreate', async (message) => {\r\n    if (message.author.bot || !message.content.startsWith(prefix)) return;\r\n    \r\n    const args = message.content.slice(prefix.length).trim().split(/ +/);\r\n    const command = args.shift().toLowerCase();\r\n    \r\n    if (command === 'meme') {\r\n        const memes = await memeForge.fetch({\r\n            limit: 1,\r\n            minUpvotes: 500,\r\n            nsfw: false,\r\n            mediaType: 'image'\r\n        });\r\n        \r\n        if (memes.length === 0) {\r\n            await message.reply('No se encontraron memes 😢');\r\n            return;\r\n        }\r\n        \r\n        const meme = memes[0];\r\n        \r\n        const embed = {\r\n            title: meme.title,\r\n            url: meme.sourceUrl,\r\n            image: { url: meme.url },\r\n            color: 0xff4500,\r\n            footer: {\r\n                text: `👍 ${meme.upvotes.toLocaleString()} • r/${meme.subreddit}`\r\n            }\r\n        };\r\n        \r\n        await message.reply({ embeds: [embed] });\r\n    }\r\n});\r\n\r\nclient.login('YOUR_TOKEN');\r\n```\r\n\r\n### 6. Subreddits Personalizados\r\n```javascript\r\nconst { memeForge } = require('@abstract_/exodusmeme');\r\n\r\nconst memes = await memeForge.fetch({\r\n    subreddits: ['MAAU', 'yo_elvr', 'LatinoPeopleTwitter'],\r\n    limit: 10,\r\n    minUpvotes: 1000\r\n});\r\n```\r\n\r\n---\r\n\r\n## ⚙️ Configuración Avanzada\r\n\r\n| Opción | Tipo | Default | Descripción |\r\n| --- | --- | --- | --- |\r\n| `source` | `string` | `'multiapi'` | Motor de fuente: `multiapi`, `reddit`, `memeapi` o personalizado |\r\n| `subreddits` | `string[]` | - | Lista de subreddits (solo aplica para fuente `reddit`) |\r\n| `limit` | `number` | `1` | Número de memes a obtener |\r\n| `nsfw` | `boolean` | `true` | ¿Incluir contenido NSFW? |\r\n| `minUpvotes`| `number` | `0` | Filtro de upvotes mínimos |\r\n| `mediaType` | `string` | `'any'` | `image`, `gif`, `video`, o `any` |\r\n| `format` | `string` | `'json'` | `json` o `discord-embed` |\r\n| `cache` | `boolean` | `true` | Activar/Desactivar caché en memoria |\r\n\r\n### 📡 Fuentes Disponibles\r\n\r\n**MultiAPI (Default)** - Combina múltiples APIs para máxima variedad:\r\n- want.cat API\r\n- Reddit MAAU\r\n- Reddit yo_elvr\r\n- Reddit LatinoPeopleTwitter\r\n\r\n**MemeAPI** - Fuente alternativa usando meme-api.com:\r\n```javascript\r\nconst memes = await memeForge.fetch({\r\n    source: 'memeapi',\r\n    limit: 10\r\n});\r\n```\r\n\r\n**Reddit** - Acceso directo a Reddit JSON:\r\n```javascript\r\nconst memes = await memeForge.fetch({\r\n    source: 'reddit',\r\n    subreddits: ['memes', 'dankmemes'],\r\n    limit: 10\r\n});\r\n```\r\n\r\n---\r\n\r\n## 🔄 Características Avanzadas\r\n\r\n### Sistema Anti-Duplicados\r\n\r\nExodusMeme implementa un sistema de deduplicación que mantiene un Set de los últimos 150-300 IDs de memes vistos, dependiendo de la fuente. Esto garantiza que no veas el mismo meme repetidas veces:\r\n\r\n```javascript\r\nconst memes = await memeForge.fetch({ limit: 20 });\r\n```\r\n\r\n### Caché Inteligente\r\n\r\nCada fuente implementa su propio sistema de caché con diferentes duraciones:\r\n- **MultiAPI**: 3 minutos (180 segundos)\r\n- **MemeAPI**: 5 minutos (300 segundos)\r\n- **Reddit**: 2 minutos (120 segundos)\r\n\r\nEsto asegura un balance entre frescura de contenido y eficiencia:\r\n\r\n```javascript\r\nconst memes = await memeForge.fetch({ \r\n    limit: 10,\r\n    cache: true\r\n});\r\n```\r\n\r\n### Rate Limiting\r\n\r\nLas fuentes implementan throttling automático para evitar sobrecarga de las APIs:\r\n\r\n```javascript\r\nconst rateLimiter = new RateLimiter(0.5);\r\nawait rateLimiter.throttle('multiapi');\r\n```\r\n\r\n---\r\n\r\n## 🆘 Soporte y Comunidad\r\n\r\n¿Tienes problemas? ¡Estamos aquí para ayudar!\r\n\r\n- 🐛 **¿Encontraste un bug?** Abre un [Issue](https://github.com/NotAvalible111/Exodus-Meme/issues)\r\n- 💬 **¿Necesitas ayuda?** [Únete a nuestro Discord](https://discord.gg/A8WZwsx6cZ)\r\n- 🛠️ **¿Error en la docs?** ¡Los pull requests son bienvenidos!\r\n\r\n## 📜 Licencia\r\n\r\n\r\nMIT © [NotAvalible111](https://github.com/NotAvalible111)\r\n","readmeFilename":"README.md"}