{"_id":"strife.js","_rev":"37-6588a3af80038d888e77ee0525ef7c22","name":"strife.js","dist-tags":{"dev":"3.1.4-dev.4","latest":"4.4.0"},"versions":{"0.0.0":{"name":"strife.js","version":"0.0.0","_id":"strife.js@0.0.0","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"8708959241a876851a7e5f6cedeb9de8efa1ad44","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-0.0.0.tgz","fileCount":2,"integrity":"sha512-zzel2yYqrAz/wl1IJzfEvBiH7TYyFLbwWQBg8DpBogFxjtreYFOu6b/QFLpLhyDVQD+PQUJb49KjzW87NfIAXw==","signatures":[{"sig":"MEYCIQDPXUmalJnSZv/x5e4pSn059PXhBslX0dDxNbrJRA0+SgIhAP8xWTlJ9NdEfUKTJqooFvmvdGgfpSqBblT+JhGg4y25","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":96243,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj8uYSACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqzUQ//U+LZphc7b2pAF7xYoL44blEkmZ3JnZ4dyY6Y53UIolL5tlQe\r\nhmu8LAHZi2xBKOEP3x9GiUhb5VyPtaGkljD3WZsUWMbmeYZi+kJZzaP0d9es\r\n6tuAVgYRwXDdelYWMUplnZcCcTuOi1Rw6IO+kPU8vA7VEESSKIaZ83BRboXV\r\nJhRpXkrgolUawak8g00VzLDwGAxKHnxwaY3r6yAisCETcn+eb+ZoMuFLpe3d\r\nNXDjXhTPFVEiLfJe3IVsSqNM+a0GUmq762HdbPah84pfvO4I/zYSIZO9Tkui\r\nH8EX4Y044iAs0thYMQEcUKVaplNipR26oEOSjueP9pAiWXZNkxX477Rv+rQw\r\nKU8KebT2Xf6GqFUFqoO9YudPtH3gmgc7i8QxmveqZVFAWOEq1rZt1bTiIKDt\r\nkxNcyF2GLsLvP0vk8G8zxeVApl5ourw1iQw23oCoR7qIefjzL30UWhvvjtX/\r\nRWwUQYGxoDze5eaOFvSYH6mydakKxdIxTz39n54QTXVgBf+jO03BE4o8tW5a\r\nuYl/dhqOsGEbelLUItTv4q6cRGjMVRT4tLO9vBl5HVzI+NGjhYnXjAEsr9zH\r\nBxH0NzrVbkagoxtd0AWCeBJn14Dd5WK+sDoYFJMo6vUJ5JfAH49vhCgyUmE/\r\n1dJaiDCCPljmtmt4oTqifLYg11WdMs2ZkHs=\r\n=W+D9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","type":"module","engines":{"npm":"8.13.2","node":"18.12.1"},"gitHead":"d31f87b77c8faa43891563a203904bd78a64dedc","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"tsc --project tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.13.2","directories":{},"_nodeVersion":"18.12.1","dependencies":{"@discordjs/ws":"0.6.0","@discordjs/core":"0.3.0","@discordjs/rest":"1.5.0"},"_hasShrinkwrap":true,"devDependencies":{"prettier":"2.8.0","typescript":"4.9.5","@redguy12/prettier-config":"2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_0.0.0_1676862994132_0.4165626211429161","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"strife.js","version":"1.0.0","_id":"strife.js@1.0.0","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"12a0d846f56eadd2ebac59a7d916705b917a3ce4","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-1.0.0.tgz","fileCount":9,"integrity":"sha512-UipZu6wRBSX9OCdQj32PuwvoOUVUagToxQAXmVX+LkueY68OhEbDgpCnAT8leUPIIORBe/cGhPgoh/1ODDoJzA==","signatures":[{"sig":"MEQCIGrjkmykPchS2pnNuDc2jsMw2c8F4cJBMP+pCvXQv6FCAiBJB1hERpCdtzcjJP6r8WkdmAsuckNjU/uI28Mcla92Ng==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":122811},"main":"dist/index.js","type":"module","engines":{"npm":"8.13.2","node":"18.12.1"},"gitHead":"d1f69cf772139518a02c629612811c4f15316d3d","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"tsc --project tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.13.2","directories":{},"_nodeVersion":"18.12.1","_hasShrinkwrap":true,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"^14.11.0"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_1.0.0_1686673533627_0.21180163550740927","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"strife.js","version":"1.0.1","_id":"strife.js@1.0.1","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"97e780d360b5a65e642be98789af3a132f28d977","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-1.0.1.tgz","fileCount":21,"integrity":"sha512-J9ys/SL8nr6d8wiPmhzmUiHuG/PMVxmG6GQvGXfmFLPq3T3h2uL6+eb7HY/O/1Nzg/1qaFfCyrc5oB4ruf1UwQ==","signatures":[{"sig":"MEUCIQDew8KkdJseUwvHGRQv3iBXY6COCgGAgP0wE7Ks9zqJTQIgOCV3D3FpUmviaR+Mf35IvR+tohDaD+QnQ3ANJ9YFMVM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":142071},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","engines":{"npm":"8.13.2","node":"18.12.1"},"gitHead":"4388d9e1d6f1c1c7956c19bcd87634f1041b6fb4","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"tsc --project tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.13.2","directories":{},"_nodeVersion":"18.12.1","_hasShrinkwrap":true,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"^14.11.0"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_1.0.1_1686676173402_0.9942795800557929","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"strife.js","version":"1.0.2","_id":"strife.js@1.0.2","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"887499a47977a2e443c1469ab9b955b6ae55a7b2","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-1.0.2.tgz","fileCount":21,"integrity":"sha512-6qe/gXtwZC1tu/4rrJpNFsEav1HCtMNcYqIwnzrkLzf/sWrkXKusTrtWgAat9pfNDy25sNrZrNFsIzW0zHFS3w==","signatures":[{"sig":"MEQCIHN0QwXGileC5JlrwnPMcQNN2S3EpPOz3/ipRvdWER7eAiAVK4qyrqKHGgflO168T0sbhDaXEBcPHzV2B8JuQiu2Bg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":142068},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","engines":{"npm":"8.13.2","node":"18.12.1"},"gitHead":"bcf72b86c79860b6e509898e228779dbe59eeee4","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"tsc --project tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.13.2","directories":{},"_nodeVersion":"18.12.1","_hasShrinkwrap":true,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"^14.9"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_1.0.2_1686676514080_0.534261234327926","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"strife.js","version":"1.0.3","_id":"strife.js@1.0.3","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"4a1c3dfa01c86bcb5fc5356752a30a2e053c52f5","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-1.0.3.tgz","fileCount":21,"integrity":"sha512-pMndhemXXtFXFYEN/Iz5fpUHQP5K5tk7riZ2V+4pyR+wIt4knIng3yu71acY7Uf74pxNp/kYt0obCgRsAlGfEA==","signatures":[{"sig":"MEUCIAuQPmQaJiNeF6pahu8tux3Q80lUV8LFXhIotPan6eF3AiEA0HHE8lqJEQpgXFBHkn1tM0pg2o4b7e3z4XnsMGVZonw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":141959},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","engines":{"npm":"8.13.2","node":"18.12.1"},"gitHead":"bcf72b86c79860b6e509898e228779dbe59eeee4","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"tsc --project tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.13.2","directories":{},"_nodeVersion":"18.12.1","_hasShrinkwrap":true,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":">= 14.9 < 15.0"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_1.0.3_1686677271504_0.49078867955580474","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"strife.js","version":"1.0.4","_id":"strife.js@1.0.4","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"4adad84b9bb6e7abf51e5b21bc40a110704b3d7c","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-1.0.4.tgz","fileCount":21,"integrity":"sha512-SpOUgf7iaDEiEnxoHQ1CP6L+BZad96m3riMRUynaGfBj8aipv0+SjZz2Xn76oML9MMdXvtfeBt52rqZddFTEmw==","signatures":[{"sig":"MEYCIQDgaU5mHUdR71wHv+ieaGnpf8gmjwMDl7z0bmV0h2Fd8QIhAKdMsJtURI6OId+Y7C0dFn8/kHXAXmjGAXYgoGOaXdhA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":141939},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","engines":{"npm":"8.13.2","node":"18.12.1"},"gitHead":"bcf72b86c79860b6e509898e228779dbe59eeee4","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"tsc --project tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.13.2","directories":{},"_nodeVersion":"18.12.1","_hasShrinkwrap":true,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"14.x"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_1.0.4_1686677354580_0.8047666656502539","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"strife.js","version":"1.0.5","_id":"strife.js@1.0.5","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"abf9cb4f1eb350f9fafcc90c39b499ec963f8357","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-1.0.5.tgz","fileCount":21,"integrity":"sha512-zYiwjLsvGOir6QIDKzBz0HdJeA5Me9AB+xilBGErTGwU6yf6RoSablx6XoU16dYsqnHayIEcqVPnBX6+qLB8OQ==","signatures":[{"sig":"MEQCIBV1zw9OwoZbKMQKCSdD4KoFBhlrGtMOnZ4mMnh4P1NkAiBTS0Tnl2sMgzpDKVmoMVLJQb877LJGm9evyB2Do8FVZA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":51075},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","engines":{"npm":"8.13.2","node":"18.12.1"},"gitHead":"a68f885e62fb784cbf51c34fea9bf3e0be31b0a1","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"tsc --project tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.13.2","description":"A Discord bot framework.","directories":{},"_nodeVersion":"18.12.1","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_1.0.5_1686783098315_0.7670188823057893","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"strife.js","version":"1.0.6","_id":"strife.js@1.0.6","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"97c80c6c4c3d4047c5a3da3f2c929036e5b84fd0","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-1.0.6.tgz","fileCount":21,"integrity":"sha512-W1oMyG1BICz9RS4eygmc30R0NcA32YuJjX3DFY2CyXB4ODt+cWQD6+1rhFX8OfoH60zcGOeGKs0q/8rcWQ0QJA==","signatures":[{"sig":"MEQCIEWxAMqeCyyNRXBQ1NkrkK1Uh2AiNb9zid2BahKKj56MAiB5QC/8EV8E2/EkC17wOuPREd3FVwCb4o334ZPljX0r7A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":51963},"main":"dist/src/index.js","type":"module","types":"dist/src/index.d.ts","engines":{"npm":"8.13.2","node":"18.12.1"},"gitHead":"371c8d9bee22452d6005d8212a4db2905f253859","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"tsc --project tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.13.2","description":"A Discord bot framework.","directories":{},"_nodeVersion":"18.12.1","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_1.0.6_1686865088753_0.3974798941076001","host":"s3://npm-registry-packages"}},"2.0.0-dev.0":{"name":"strife.js","version":"2.0.0-dev.0","_id":"strife.js@2.0.0-dev.0","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"6d5f1f6c4b98cb58abfe7890e9e20b1f39faa163","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-2.0.0-dev.0.tgz","fileCount":43,"integrity":"sha512-oQ0LIJuEyt8VmJpG6KReOYNMrKjIr21yUl8FCzmoI5NGMvR2fO0vnt0148FmnoVkAaV5RGPl5MfUDZljGpJiOA==","signatures":[{"sig":"MEQCIGuDOwDP+eATEaI5fp+8x4mj5kWdF9RNK5oGftTXwNKnAiAbgBEnDHeTIIuNdoi9fL0jBHl5SVGkR3i8egfo0iGPrw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":94084},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"npm":"^8.0.0","node":"^18.11.1"},"gitHead":"f87c37d8c3d66e4618376a66e354b905e7f72ae1","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"tsc --project tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"18.12.1","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_2.0.0-dev.0_1693798741253_0.7577258144277395","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"strife.js","version":"2.0.0","_id":"strife.js@2.0.0","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"e4e2f5e9ef6f575cf1a09bff33c6151a3760bbed","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-2.0.0.tgz","fileCount":43,"integrity":"sha512-2Tuqtnbxh12HJMcOENc55b6ZqnqOdL6iSW25KRx1pRNF9d5yX7gCYh0mFp+Ut3qmGrkzTvYzrKw3scxt3tN8Jg==","signatures":[{"sig":"MEUCIQDWBIYWF3iJsjFODU6HSGHNWQtFtcJcoqB2jLDlv6y6JgIgHsxRm7/ueoHdS97S7f1XBSgmIvDJqYcukvNLVIVfI6s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":94249},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"npm":"^8.0.0","node":"^18.11.1"},"gitHead":"8c22c0db74888a7c5411a8d56e06b771d18f773a","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"tsc --project tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"18.12.1","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_2.0.0_1693883428362_0.7145458518687928","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"strife.js","version":"2.0.1","_id":"strife.js@2.0.1","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"2b4da6af575a7962fd664c5f5cb9135630b7980c","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-2.0.1.tgz","fileCount":27,"integrity":"sha512-onrpHN6rp1txLwAYi/OaPe1cDUD1fiNjYK0gQjGhNC4yfB3R7V0SgkudAv6z8SBsgD+esiXzlOewn0JdYOEyHw==","signatures":[{"sig":"MEUCIC0AHoVySsRAEGGHRimnTlsWAeisT/qnIuUqpxaGQWKiAiEA56vgylKxju7WiGMe2sY9zeMsYMqNvH+JxtxyeSmBSEA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":53512},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"npm":"^8.0.0","node":"^18.11.1"},"gitHead":"a280c6e7b963def1f789da420d76df9438d3914f","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"tsc --project tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"18.12.1","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_2.0.1_1694488859459_0.7912072142103013","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"strife.js","version":"3.0.0","_id":"strife.js@3.0.0","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"95a608648f1aa1c475eb34e59c7fd04f79e1bc80","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-3.0.0.tgz","fileCount":27,"integrity":"sha512-feWmTipXCk1AcE57i5BmaGsotOOIBTeRNNDiJgCv9xw+pLQdcySrXa8J7xMYneXPF8dOT9GzFRdeJpQq9mH/FQ==","signatures":[{"sig":"MEYCIQDH9r/UOEHugBqJyxTl5NZQlibRHvS6KUKpl+aRJZzUmAIhAJuKXkjS8vlCwfJAjXW4PmxtpDCKTeF8KwZ4g37k/RAA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":53512},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"npm":"^8.0.0","node":"^18.11.1"},"gitHead":"488c9f9a674531cea3ee9e34ea9d80b4f847bc73","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"tsc --project tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"18.12.1","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_3.0.0_1694994428999_0.6438122470206173","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"strife.js","version":"3.0.1","_id":"strife.js@3.0.1","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"b7d5cd8793880f03a14c3781a41ad69279c5ea73","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-3.0.1.tgz","fileCount":27,"integrity":"sha512-CmxN5psMeBAdmA/JDPP/ozYGfL9PB2hXNAXj41ZX0Zm1fIoo57sc9hhgJskk1TCZjdC7BV23DUPOjem6Ur8b2w==","signatures":[{"sig":"MEYCIQDKIfQn2+9oYKvZQcuiXKfGI1t9c5kb9Vbv8i0iOnfLGwIhAJ+zb6aBz9xDObx1XfIrcMwpsOyGMJz7ARwxPGiHeIxz","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":54234},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"npm":"^8.0.0","node":"^18.11.1"},"gitHead":"c99c788cd81fb75eb5309aad5ac830fd4648b3a8","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"tsc --project tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"18.12.1","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_3.0.1_1694994978688_0.7683311991624915","host":"s3://npm-registry-packages"}},"3.1.0":{"name":"strife.js","version":"3.1.0","_id":"strife.js@3.1.0","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"2012a94fde7f3499f5c2a7f2a6c01565eaa881a2","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-3.1.0.tgz","fileCount":27,"integrity":"sha512-wsB7sBJAuLvLevdQYez0VDppwMwbUd0wxiMnlMVtU6ZT9ln7vRRbI3gGJm3wHKiAn3uCPPPQw7mqFuJcuWCy3w==","signatures":[{"sig":"MEQCIHy7327vrFB0euC1wZU+bhPfhOPu4GzddrLTLfzuOmSRAiAR1d6frYW6v9nUdSrwuHu1NWDn3ujEZZkTWJEYQ7nJ4w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":59815},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.11.1"},"gitHead":"e762be24bd1694f51e0588691301e79978a7e663","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"tsc --project tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"20.7.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_3.1.0_1702662526062_0.42189013740082637","host":"s3://npm-registry-packages"}},"3.1.1":{"name":"strife.js","version":"3.1.1","_id":"strife.js@3.1.1","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"ff6077cef40232a773f24819fbd53e458aa89f1b","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-3.1.1.tgz","fileCount":76,"integrity":"sha512-nqDDfHAMvSzjaGU90h5HvVZgWiGDzC72PaUV9x6eP9/pVzu1jJM+Pl65EOIgMmccklXAGj2wSKuffEEVE3jszQ==","signatures":[{"sig":"MEYCIQC9fqldXIF85L6456ANUYWKP+HBrYvOwltzsHjWinidLgIhAKhvE9p4HfJX4otJJn8RZo0Cdlb02ZWGkiRsZb7sDqcg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":149883},"engines":{"npm":">=8.0.0","node":">=18.11.1"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"b16f61c91e21df27c170eaf4f24db4468e8e4338","scripts":{"dev":"npm run build && tsc --project tsconfig.esm.json --watch","build":"rm -rf dist && tsc --build tsconfig.cjs.json tsconfig.esm.json tsconfig.types.json && echo '{\"type\": \"module\"}' > ./dist/esm/package.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"20.7.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_3.1.1_1702693942665_0.84276959834483","host":"s3://npm-registry-packages"}},"3.1.2":{"name":"strife.js","version":"3.1.2","_id":"strife.js@3.1.2","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"44dac3373624ffdeb9390beef9bcbd6035f87357","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-3.1.2.tgz","fileCount":76,"integrity":"sha512-gZZC6TYrzBfyr0VxYgVXCnrG8uAml0QlEaZXE6b4OexBp9V1lLmlnQPwsJBPwocrYO1AUcEmyzf/F7g+xUylmw==","signatures":[{"sig":"MEYCIQCBVt83uyr120LO6l0MbOZ+vb6UM5ZcJDkacKOhKRFRugIhAO81JnvYse0uRzQ90NQTNyvVfPD/iTqA8e+5lyQRMGlh","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":149880},"engines":{"npm":">=8.0.0","node":">=18.11.1"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"ebd98b311c8dc1ea183a02de748397c14480e98f","scripts":{"dev":"npm run build && tsc --project tsconfig.esm.json --watch","build":"rm -rf dist && tsc --build tsconfig.cjs.json tsconfig.esm.json tsconfig.types.json && echo {\"type\":\"module\"} > ./dist/esm/package.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"20.7.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_3.1.2_1702694327383_0.7094336757742483","host":"s3://npm-registry-packages"}},"3.1.3":{"name":"strife.js","version":"3.1.3","_id":"strife.js@3.1.3","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"f707d6001b6b9f769c915a449693d80c348a997b","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-3.1.3.tgz","fileCount":76,"integrity":"sha512-iLJf5v+Qp5d58ORoQXyzLP4idxS4PY3I9uOfnTF+ukmKNU2Ze8GsykU3M5Tk4YALG9aAc9IM1BYYBwzx6r1cXA==","signatures":[{"sig":"MEYCIQDjq9ZCaGqEnsfDatigAR1QK8tALkDxmoMniSzW9k7yzgIhALlIjkL8RSu5Nag9gE1sk1SE0uZjChuL0k6BJN4VwU78","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":149876},"engines":{"npm":">=8.0.0","node":">=18.11.1"},"exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"gitHead":"20ed478ae85dfaecd33a47139bcd17a4f37b2cfd","scripts":{"dev":"npm run build && tsc --project tsconfig.esm.json --watch","build":"rm -rf dist && tsc --build tsconfig.cjs.json tsconfig.esm.json tsconfig.types.json && echo {\"type\":\"module\"} > ./dist/esm/package.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"20.7.0","_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_3.1.3_1702694509242_0.8791901545471232","host":"s3://npm-registry-packages"}},"3.1.4-dev.0":{"name":"strife.js","version":"3.1.4-dev.0","_id":"strife.js@3.1.4-dev.0","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"707d55e5a516daf1aff9cc3d91126195d4b9deea","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-3.1.4-dev.0.tgz","fileCount":55,"integrity":"sha512-Yjn02BvXnLfvTYpCY/X0D6fEBJAz4DazzH7/DRBJkqR05mxAWQ2+LNBNLt9Fd0KyQ00+D+F3U50U49khqMg++w==","signatures":[{"sig":"MEUCIQD262pUbVvmPPvawiaOj46RQtM4/2Z8uvNqO4Ca1vTzeAIgBmQRNFIwuFRC89ySi3vvUaOEE5GUzdROoYnt6hT/OIA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110531},"engines":{"npm":">=8.0.0","node":">=18.11.1"},"exports":{"import":"./src/index.mjs","require":"./dist/index.js"},"gitHead":"20ed478ae85dfaecd33a47139bcd17a4f37b2cfd","scripts":{"dev":"npm run build && tsc --project tsconfig.esm.json --watch","build":"rm -rf dist && tsc --build tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"20.7.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_3.1.4-dev.0_1703022649270_0.6476074044092608","host":"s3://npm-registry-packages"}},"3.1.4-dev.1":{"name":"strife.js","version":"3.1.4-dev.1","_id":"strife.js@3.1.4-dev.1","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"1c4480e304356cf3f8e6999a9cc857f55b244047","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-3.1.4-dev.1.tgz","fileCount":55,"integrity":"sha512-a0FHv08piAtD5h9k+TcVUVhSbbPYqCKNbOMBmGGQ7dw9VknmPk58OihBZteJpCapdA8V7gavrmd5iS7aiAVGQA==","signatures":[{"sig":"MEUCIFY8FhXpahhhriM9rEgn25ZEF5IhGjQjYAak9xP5KYcKAiEAnhp4vGEbXz08k+Nptk9uyzjvB311uD4B/f579E3RW10=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":110567},"engines":{"npm":">=8.0.0","node":">=18.11.1"},"exports":{"import":"./src/index.mjs","require":"./dist/index.js"},"gitHead":"20ed478ae85dfaecd33a47139bcd17a4f37b2cfd","scripts":{"dev":"npm run build && tsc --project tsconfig.esm.json --watch","build":"rm -rf dist && tsc --build tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"20.7.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_3.1.4-dev.1_1703022852737_0.8398046432699671","host":"s3://npm-registry-packages"}},"3.1.4-dev.2":{"name":"strife.js","version":"3.1.4-dev.2","_id":"strife.js@3.1.4-dev.2","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"1ff32d8b3bf199bfaf0c711d1dc15deae69478fe","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-3.1.4-dev.2.tgz","fileCount":55,"integrity":"sha512-0t00SQUC80npNqyKQKEgnfvoVievL9WonMdGQWtNghFe1cER8BmbY93FlmM1RlJCsSz9fX5Ut1SW3p1t27WE/Q==","signatures":[{"sig":"MEUCICVRt6mHTWDgXddUDH53lZkI/szlX31Fp0u86LvNh/zPAiEAkR2jhQ7Y0FaWCLtEr2VSZXMB9CfXYilXtg7iuDV5Obo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":111044},"engines":{"npm":">=8.0.0","node":">=18.11.1"},"exports":{"import":"./dist/index.mjs","require":"./dist/index.js"},"gitHead":"20ed478ae85dfaecd33a47139bcd17a4f37b2cfd","scripts":{"dev":"npm run build && tsc --project tsconfig.esm.json --watch","build":"rm -rf dist && tsc --build tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"20.7.0","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_3.1.4-dev.2_1703024395974_0.8765846264305188","host":"s3://npm-registry-packages"}},"3.1.4-dev.3":{"name":"strife.js","version":"3.1.4-dev.3","_id":"strife.js@3.1.4-dev.3","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"96380defc759f17828b4ff0f5908c85e8167a5a8","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-3.1.4-dev.3.tgz","fileCount":68,"integrity":"sha512-h34OrzxaMpcrg17dlTxNZHpPtAJIMizbNAVJ2ds0HKN8M//wflTCJUmZ/QK4NwF495gfh31HX/1HsB361LnPJA==","signatures":[{"sig":"MEUCIQCfV02QhE8jW/ytAsNp0x8r8OIP0I//Q70wyrwIq15n9AIgbRVEhIkQsT7Ntu89/qTgkgHevpl2b84po1C2bDtiH9M=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":128571},"main":"./dist/index.js","type":"commonjs","types":"./dist/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.11.1"},"exports":{"import":"./dist/index.mjs","require":"./dist/index.js"},"gitHead":"20ed478ae85dfaecd33a47139bcd17a4f37b2cfd","scripts":{"dev":"npm run build && tsc --project tsconfig.esm.json --watch","build":"rm -rf dist && tsc --build tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"20.7.0","dependencies":{"tslib":"^2.6.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@types/node":"<=18.11.1","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_3.1.4-dev.3_1703028855639_0.8799394584683189","host":"s3://npm-registry-packages"}},"3.1.4-dev.4":{"name":"strife.js","version":"3.1.4-dev.4","_id":"strife.js@3.1.4-dev.4","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"52005df584e38ea7901929ad9ef5db1d2f176381","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-3.1.4-dev.4.tgz","fileCount":63,"integrity":"sha512-OnGE3tdCTW5TcIhfJp4vSB0AnxvGpdwVNz4A2kuDeulo+nmCjxAFcFp8Vik8/qLEHRqaOPXtXUVOj81CxX838Q==","signatures":[{"sig":"MEYCIQCTJnovLqOh3nT0v9dkEWDRvNewEI0ov6IyCkrX15tWpQIhAMuvaPil5kpf2a6wjDAALTY/d1ucjFabMYKsm1qyIUGd","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":124878},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.11.1"},"gitHead":"20ed478ae85dfaecd33a47139bcd17a4f37b2cfd","scripts":{"dev":"npm run build && tsc --project tsconfig.esm.json --watch","build":"rm -rf dist && tsc --build tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"20.7.0","dependencies":{"tslib":"2.6.2"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"prettier":"2.8.0","typescript":"5.1.3","@types/node":"<=18.11.1","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_3.1.4-dev.4_1703029618947_0.09149697875635887","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"strife.js","version":"4.0.0","_id":"strife.js@4.0.0","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"7e384655d32a03b20ce890fbfedb2e238f0f51c3","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-4.0.0.tgz","fileCount":63,"integrity":"sha512-IPYR2zuVixp0R79Uc5U1WjLnxPQha4ipeWeGzqH3qyNlx+wIBwZeGlw8mq60P1G06CUlYMt2q0YNKNdB8KXI4g==","signatures":[{"sig":"MEUCIQDoQO0R0pcWN/IaQsaHpvoLBbJA7HYbbF0yCJ0IN15M6wIgJBsZTiqqg8Q4ilQZIumHCE+PL72BjJLMVKO/r5x+i9U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":125117},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.11.1"},"gitHead":"82acee9d8f2c66b9e85c7ade529aa989cf1f0c5b","scripts":{"dev":"npm run build && tsc --project tsconfig.esm.json --watch","build":"rm -rf dist && tsc --build tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","overrides":{"@discordjs/rest":"1.7.0","@discordjs/util":"0.2.0","discord-api-types":"0.37.53","@discordjs/builders":"1.6.0","@discordjs/collection":"1.5.0","@discordjs/formatters":"0.3.0"},"_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"20.7.0","dependencies":{"tslib":"2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.0","discord.js":"14.9.0","typescript":"5.1.3","@types/node":"<=18.11.1","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_4.0.0_1703030198398_0.9679624159461506","host":"s3://npm-registry-packages"}},"4.0.1":{"name":"strife.js","version":"4.0.1","_id":"strife.js@4.0.1","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"dist":{"shasum":"17b296a587bae81dc9f42d816cb624735de3a620","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-4.0.1.tgz","fileCount":63,"integrity":"sha512-um4ceH7W8IVxXNJj9IOrVgLukXcF08BRO2UoQTW3dF8FwicdoFduKYscBS20If/apD34QsoqL3NdAT54SaNzyg==","signatures":[{"sig":"MEYCIQDW4gMtohe4Gpn2wd0gze/Z7us26RnOy7kFUPEt8AxScgIhAP8ts2kivK/jZAGxUhj003DLyurNSjfnunF3rI9c4/ZL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":125136},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"npm":">=8.0.0","node":">=18.11.1"},"gitHead":"9605673edbc58bd163438594e5174a295098580f","scripts":{"dev":"npm run build && tsc --project tsconfig.esm.json --watch","build":"rm -rf dist && tsc --build tsconfig.json","format":"prettier --write \"**\" \"!dist/**\" --ignore-unknown"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","overrides":{"@discordjs/rest":"1.7.0","@discordjs/util":"0.2.0","discord-api-types":"0.37.53","@discordjs/builders":"1.6.0","@discordjs/collection":"1.5.0","@discordjs/formatters":"0.3.0"},"_npmVersion":"8.19.4","description":"A Discord bot framework.","directories":{},"_nodeVersion":"20.7.0","dependencies":{"tslib":"2.6.2"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"2.8.0","discord.js":"14.9.0","typescript":"5.1.3","@types/node":"<=18.11.1","@redguy12/prettier-config":"2.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_4.0.1_1703030597076_0.7959880396927939","host":"s3://npm-registry-packages"}},"4.1.0":{"name":"strife.js","version":"4.1.0","keywords":["discord","discord-bot","discord.js","typescript"],"author":{"url":"https://github.com/cobaltt7","name":"cobaltt7"},"license":"MIT","_id":"strife.js@4.1.0","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"homepage":"https://discord.gg/WaEbDrXKxK","bugs":{"url":"https://github.com/cobaltt7/strife.js"},"dist":{"shasum":"4a295757580be6eb6a3fa60c3cef10a4611e0929","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-4.1.0.tgz","fileCount":84,"integrity":"sha512-XO6weZHKT/c3FbOGxjVVPP0+txIUGVVsSatNfmEt+9YtvuwVxEjH7NJ4wbvKVae+AajW/LTtDv1iVu6AeDTiqQ==","signatures":[{"sig":"MEQCIBug46dFjhfLQtO2pV3MhlQjb/sItMkeQuc0st818qAvAiA9G1AkGZvVZEgyAxqJlrj+YKIiRER3jmP4YWbHzmAKXw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":298501},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=18.11.0"},"gitHead":"963552911a944c1f9a0a4347a37260eb88f19e41","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"rm -rf dist && tsc --project tsconfig.json","format":"prettier --write \"**\" --ignore-path .prettierignore --ignore-unknown --cache"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","overrides":{"@discordjs/ws":"1.2.0-dev.1721822666-fcd35ea2e","@discordjs/rest":"dev","@discordjs/util":"dev","@discordjs/builders":"1.9.1-dev.1727784293-b20346f43","@discordjs/collection":"1.6.0-dev.1699315767-344a3f934","@discordjs/formatters":"dev"},"repository":{"url":"git+https://github.com/cobaltt7/strife.js.git","type":"git"},"_npmVersion":"10.9.0","description":"A Discord bot framework built around TypeScript support and ease of setup.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"serialize-error":"11.0.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.3.2","discord.js":"14.17.0-dev.1727784303-b20346f43","typescript":"5.4.5","@types/node":"<=18.11","@redguy12/prettier-config":"3.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_4.1.0_1729549458506_0.8832302760740005","host":"s3://npm-registry-packages"}},"4.1.2":{"name":"strife.js","version":"4.1.2","keywords":["discord","discord-bot","discord.js","typescript"],"author":{"url":"https://github.com/cobaltt7","name":"cobaltt7"},"license":"MIT","_id":"strife.js@4.1.2","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"homepage":"https://discord.gg/WaEbDrXKxK","bugs":{"url":"https://github.com/cobaltt7/strife.js"},"dist":{"shasum":"6ba5dfce78d0f2b760280c593d95f07fe4286feb","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-4.1.2.tgz","fileCount":84,"integrity":"sha512-aM19w7leK6ENAxzomOiIyFTOs/zNZva/RzB6NY570xoKvM6YYGkOLPeWl6B4mSr3sJ+w+On5vq7U/zeE4C/yfA==","signatures":[{"sig":"MEUCIQCEQANIyf6F4JxOsxhg0+94wu3j77WsmUC/Kc9s6DY1zwIgetdtF1M5EGaK52Rncr6Uv1EeMZsW1/+ZXPIv/uze9tU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":303164},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=18.11.0"},"gitHead":"b3c6645f49b4d12af3394672cc9cc20596a12365","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"rm -rf dist && tsc --project tsconfig.json","format":"prettier --write \"**\" --ignore-path .prettierignore --ignore-unknown --cache"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","overrides":{"@discordjs/ws":"1.2.0-dev.1721822666-fcd35ea2e","@discordjs/rest":"dev","@discordjs/util":"dev","@discordjs/builders":"1.9.1-dev.1727784293-b20346f43","@discordjs/collection":"1.6.0-dev.1699315767-344a3f934","@discordjs/formatters":"dev"},"repository":{"url":"git+https://github.com/cobaltt7/strife.js.git","type":"git"},"_npmVersion":"9.9.3","description":"A Discord bot framework built around TypeScript support and ease of setup.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"serialize-error":"11.0.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.3.2","discord.js":"14.17.0-dev.1727784303-b20346f43","typescript":"5.4.5","@types/node":"<=18.11","@redguy12/prettier-config":"3.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_4.1.2_1729560615710_0.26807765989803767","host":"s3://npm-registry-packages"}},"4.1.3":{"name":"strife.js","version":"4.1.3","keywords":["discord","discord-bot","discord.js","typescript"],"author":{"url":"https://github.com/cobaltt7","name":"cobaltt7"},"license":"MIT","_id":"strife.js@4.1.3","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"homepage":"https://discord.gg/WaEbDrXKxK","bugs":{"url":"https://github.com/cobaltt7/strife.js"},"dist":{"shasum":"3730af83265b3c563653dc4a6ad394a1e8a86fd0","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-4.1.3.tgz","fileCount":84,"integrity":"sha512-swUqWKRiVth1Dz5kmUF/C3tdmuMwAPPoutsJCCL26GrdbLSzgZlJp2QB8O0rlpvZ4hc6Mktzvvm/9A81JN+P6g==","signatures":[{"sig":"MEQCIDACXhx28tF6e1h2ncuwGjCmjd/fbQc1+/GSGgfxEZksAiAZUhwG/nsYDD4+R+9EMejTzIwuukRjmXoejfZUl/hI3A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":310256},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=18.11.0"},"gitHead":"84296c0114917144a194431269d17afc9f26cd8d","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"rm -rf dist && tsc --project tsconfig.json","format":"prettier --write \"**\" --ignore-path .prettierignore --ignore-unknown --cache"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","overrides":{"@discordjs/ws":"1.2.0-dev.1721822666-fcd35ea2e","@discordjs/rest":"dev","@discordjs/util":"dev","@discordjs/builders":"1.9.1-dev.1727784293-b20346f43","@discordjs/collection":"1.6.0-dev.1699315767-344a3f934","@discordjs/formatters":"dev"},"repository":{"url":"git+https://github.com/cobaltt7/strife.js.git","type":"git"},"_npmVersion":"9.9.3","description":"A Discord bot framework built around TypeScript support and ease of setup.","directories":{},"_nodeVersion":"20.10.0","dependencies":{"serialize-error":"11.0.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.3.2","discord.js":"14.17.0-dev.1727784303-b20346f43","typescript":"5.4.5","@types/node":"<=18.11","@redguy12/prettier-config":"3.0.2"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_4.1.3_1729561236840_0.07387611539378947","host":"s3://npm-registry-packages"}},"4.1.4":{"name":"strife.js","version":"4.1.4","keywords":["discord","discord-bot","discord.js","typescript"],"author":{"url":"https://github.com/cobaltt7","name":"cobaltt7"},"license":"MIT","_id":"strife.js@4.1.4","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"homepage":"https://discord.gg/WaEbDrXKxK","bugs":{"url":"https://github.com/cobaltt7/strife.js"},"dist":{"shasum":"52b4438a42a8e2a4f70e5bffe92eca4aa0d07248","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-4.1.4.tgz","fileCount":86,"integrity":"sha512-DW4gJGhw4fPgwA8S7lG7sJJz4siMbdGxipNBx5d1IzqiPNJMF9h/UtZkaDnfucDHBAefH14u42hQ2vpcB9u87g==","signatures":[{"sig":"MEUCIQDICMYDWCnnh7MBcMiRHUiG43JrCgNFnEXrh5qEeGMU/AIgZFjvYxmSbWG/sZVI9pGBKh+UXRK4ktrzHvGqIAhZuYw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":317795},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=18.11.0"},"gitHead":"a323c6e3da47cf4cb77d329088fc607114c2cdbb","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"rm -rf dist && tsc --project tsconfig.json","format":"prettier --write \"**\" --ignore-path .prettierignore --ignore-unknown --cache"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","overrides":{"@discordjs/ws":"1.2.0-dev.1721822666-fcd35ea2e","@discordjs/rest":"dev","@discordjs/util":"dev","@discordjs/builders":"1.9.1-dev.1727784293-b20346f43","@discordjs/collection":"1.6.0-dev.1699315767-344a3f934","@discordjs/formatters":"dev"},"repository":{"url":"git+https://github.com/cobaltt7/strife.js.git","type":"git"},"_npmVersion":"9.9.3","description":"A Discord bot framework built around TypeScript support and ease of setup.","directories":{},"_nodeVersion":"22.10.0","dependencies":{"serialize-error":"11.0.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.3.3","discord.js":"14.17.0-dev.1727784303-b20346f43","typescript":"5.4.5","@types/node":"<=18.11","@redguy12/prettier-config":"3.1.1"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_4.1.4_1730054066740_0.38118113003449716","host":"s3://npm-registry-packages"}},"4.1.5":{"name":"strife.js","version":"4.1.5","keywords":["discord","discord-bot","discord.js","typescript"],"author":{"url":"https://github.com/cobaltt7","name":"cobaltt7"},"license":"MIT","_id":"strife.js@4.1.5","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"homepage":"https://discord.gg/WaEbDrXKxK","bugs":{"url":"https://github.com/cobaltt7/strife.js"},"dist":{"shasum":"b516fba6462daeb19fb56097bb0157dfe2b167e8","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-4.1.5.tgz","fileCount":94,"integrity":"sha512-AWjJTDT3hwuqVenSXT9ZqA0E9mx+kXwD6tJEhPbLTl20VVpfAQOyYQSDskg0cqYazUTTqlwiCwTd2Iea7snWVw==","signatures":[{"sig":"MEUCIBaDqmW+5mRr8vEQ2E314UU+aFI6O0Jmz0w+bmoVrTPBAiEAzLFRsl4oKccqCHBf3TbUYGFhuXbr/YRGVRbs1+B5uwc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":336305},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=18.11.0"},"gitHead":"c1ff5a78b08c91d76b5c0520f6247d56926dcdd7","scripts":{"dev":"tsc --project tsconfig.json --watch","build":"rm -rf ./dist && tsc --project tsconfig.json","format":"prettier --write \"**\" --ignore-path .prettierignore --ignore-unknown --cache"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","overrides":{"@discordjs/ws":"1.2.0-dev.1721822666-fcd35ea2e","@discordjs/rest":"dev","@discordjs/util":"dev","@discordjs/builders":"1.9.1-dev.1727784293-b20346f43","@discordjs/collection":"1.6.0-dev.1699315767-344a3f934","@discordjs/formatters":"dev"},"repository":{"url":"git+https://github.com/cobaltt7/strife.js.git","type":"git"},"_npmVersion":"9.9.3","description":"A Discord bot framework built around TypeScript support and ease of setup.","directories":{},"_nodeVersion":"22.10.0","dependencies":{"serialize-error":"11.0.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.3.3","discord.js":"14.17.0-dev.1727784303-b20346f43","typescript":"5.4.5","@types/node":"<=18.11","@redguy12/prettier-config":"3.1.1"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_4.1.5_1730062535310_0.5424784834057563","host":"s3://npm-registry-packages"}},"4.2.0":{"name":"strife.js","version":"4.2.0","keywords":["discord","discord-bot","discord.js","typescript"],"author":{"url":"https://github.com/cobaltt7","name":"cobaltt7"},"license":"MIT","_id":"strife.js@4.2.0","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"homepage":"https://discord.gg/WaEbDrXKxK","bugs":{"url":"https://github.com/cobaltt7/strife.js"},"dist":{"shasum":"9ad1e70b0e3ecfa54d850ed35bdc9f3d209ca2c4","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-4.2.0.tgz","fileCount":94,"integrity":"sha512-ZKoJ5z8A3HPGtmyGJCfUVW1DQS+kj6ihMyYBY1LYR0cNrzjmJuhQWlucph0mfX0xwDp+X4uSaHiWIAeluUOfgg==","signatures":[{"sig":"MEYCIQDZE3Gq0DNQJyfCk1D10OLfqcbVZKRa1ZaLZdLCjyH5VgIhALFiien+dl01NcompFS4y/esWqHyKtbCMSFctpBZdtUP","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":338826},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=18.11.0"},"gitHead":"1ca44c1ab640d4682479f1b76e18838f541148cc","scripts":{"dev":"tsc --project tsconfig.json --watch","test":"npm run build && node --enable-source-maps --test","build":"rm -rf ./dist && tsc --project tsconfig.json","format":"prettier --write \"**\" \"!./dist/\" --ignore-unknown --cache"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","overrides":{"@discordjs/ws":"1.2.0-dev.1721822666-fcd35ea2e","@discordjs/rest":"2.4.1-dev.1732709129-97ffa201a","@discordjs/util":"1.1.2-dev.1732709129-97ffa201a","discord-api-types":"next","@discordjs/builders":"1.9.1-dev.1727784293-b20346f43","@discordjs/collection":"1.6.0-dev.1699315767-344a3f934","@discordjs/formatters":"0.6.0-dev.1732709129-97ffa201a"},"repository":{"url":"git+https://github.com/cobaltt7/strife.js.git","type":"git"},"_npmVersion":"9.9.3","description":"A Discord bot framework built around TypeScript support and ease of setup.","directories":{},"_nodeVersion":"22.10.0","dependencies":{"serialize-error":"11.0.3"},"_hasShrinkwrap":false,"devDependencies":{"prettier":"3.4.1","discord.js":"14.17.0-dev.1727611463-e1012cc54","typescript":"5.4.5","@types/node":"<=18.11","@redguy12/prettier-config":"3.2.1"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_4.2.0_1733006425491_0.6056123929091215","host":"s3://npm-registry-packages"}},"4.3.0":{"name":"strife.js","version":"4.3.0","keywords":["discord","discord-bot","discord.js","typescript"],"author":{"url":"https://github.com/cobaltt7","name":"cobaltt7"},"license":"MIT","_id":"strife.js@4.3.0","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"homepage":"https://discord.gg/WaEbDrXKxK","bugs":{"url":"https://github.com/cobaltt7/strife.js"},"dist":{"shasum":"6c89ef9e09dac290f2d857ecd0ad7cda92cb37d5","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-4.3.0.tgz","fileCount":95,"integrity":"sha512-HDoAWXYqRB/CZqdN0DqYlFY/Hima1EUE9UuxIYHZgoJAg1797paflEH6cvnVDswOco8A6gTSkI39p6qVgatg7A==","signatures":[{"sig":"MEYCIQDTJM9fynJXEofPOADJYFrDvpbmyjqIXAOV6gSTT0VKwQIhAK7sr7p0PIHpgIsegkXBxY9Y4/ygWgCgUDqNEezYa2Dx","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":346229},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"npm":">=7.0.0","node":">=18.11.0"},"gitHead":"05f6c2e591a3fc84d3b7d40365fc9756f86acf40","scripts":{"dev":"tsc --project tsconfig.json --watch","lint":"eslint","test":"npm run build && node --enable-source-maps --test","build":"rm -rf ./dist && tsc --project tsconfig.json","format":"prettier --write \"**\" \"!./dist/\" --ignore-unknown --cache"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","overrides":{"@discordjs/ws":"1.2.0-dev.1721822666-fcd35ea2e","@discordjs/rest":"2.4.1-dev.1732709129-97ffa201a","@discordjs/util":"1.1.2-dev.1732709129-97ffa201a","discord-api-types":"0.37.106-next.7debb55.1732021051","@discordjs/builders":"1.9.1-dev.1727784293-b20346f43","@discordjs/collection":"1.6.0-dev.1699315767-344a3f934","@discordjs/formatters":"0.6.0-dev.1732709129-97ffa201a"},"repository":{"url":"git+https://github.com/cobaltt7/strife.js.git","type":"git"},"_npmVersion":"11.0.0","description":"A Discord bot framework built around TypeScript support and ease of setup.","directories":{},"_nodeVersion":"22.10.0","dependencies":{"serialize-error":"11.0.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.17.0","prettier":"3.4.2","discord.js":"14.17.0-dev.1727611463-e1012cc54","typescript":"5.4.5","@types/node":"<=18.11","eslint-config-cobaltt7":"1.0.0","@redguy12/prettier-config":"3.2.1"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_4.3.0_1736049433688_0.26208452195142296","host":"s3://npm-registry-packages-npm-production"}},"4.3.1":{"name":"strife.js","version":"4.3.1","keywords":["discord","discord-bot","discord.js","typescript"],"author":{"url":"https://github.com/cobaltt7","name":"cobaltt7"},"license":"MIT","_id":"strife.js@4.3.1","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"homepage":"https://discord.gg/WaEbDrXKxK","bugs":{"url":"https://github.com/cobaltt7/strife.js"},"dist":{"shasum":"f8800bed4371712b25fa50a0fd5e2e009b23fd9c","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-4.3.1.tgz","fileCount":103,"integrity":"sha512-SEbgwddpJhgmfLsoLbnChNji7n0ZJOwBFoJk+7VZAmX2HqD4h0EGgK2kTJsYQ/5LF6LiBpiW/m2yAijkpUNIrA==","signatures":[{"sig":"MEUCIAbw8bU0AyGQlePUd8aFwk3TE3h0ParFRJyu8zY2CgvQAiEAw/b6/8hCH5b9gvbX/QHoBSDuhTgMgz6sdHA+YRJQ+Oc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":367489},"main":"./dist/index.js","type":"module","engines":{"npm":">=7.0.0","node":">=18.11.0"},"gitHead":"05f6c2e591a3fc84d3b7d40365fc9756f86acf40","scripts":{"dev":"tsc --project tsconfig.json --watch","lint":"eslint","test":"npm run build && node --enable-source-maps --test","build":"rm -rf ./dist && tsc --project tsconfig.json","format":"prettier --write \"**\" \"!./dist/\" --ignore-unknown --cache"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","overrides":{"@discordjs/ws":"1.2.0-dev.1721822666-fcd35ea2e","@discordjs/rest":"2.4.1-dev.1732709129-97ffa201a","@discordjs/util":"1.1.2-dev.1732709129-97ffa201a","discord-api-types":"0.37.106-next.7debb55.1732021051","@discordjs/builders":"1.9.1-dev.1727784293-b20346f43","@discordjs/collection":"1.6.0-dev.1699315767-344a3f934","@discordjs/formatters":"0.6.0-dev.1732709129-97ffa201a"},"repository":{"url":"git+https://github.com/cobaltt7/strife.js.git","type":"git"},"_npmVersion":"11.0.0","description":"A Discord bot framework built around TypeScript support and ease of setup.","directories":{},"_nodeVersion":"22.10.0","dependencies":{"serialize-error":"11.0.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.17.0","prettier":"3.4.2","discord.js":"14.17.0-dev.1727611463-e1012cc54","typescript":"5.4.5","@types/node":"<=18.11","eslint-config-cobaltt7":"1.0.0","@redguy12/prettier-config":"3.2.1"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_4.3.1_1736051018398_0.2817444376301108","host":"s3://npm-registry-packages-npm-production"}},"4.3.2":{"name":"strife.js","version":"4.3.2","keywords":["discord","discord-bot","discord.js","typescript"],"author":{"url":"https://github.com/cobaltt7","name":"cobaltt7"},"license":"MIT","_id":"strife.js@4.3.2","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"homepage":"https://discord.gg/WaEbDrXKxK","bugs":{"url":"https://github.com/cobaltt7/strife.js"},"dist":{"shasum":"f1d227c347462ed9a4378b5de83e05dcea01479b","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-4.3.2.tgz","fileCount":103,"integrity":"sha512-X13MjCJzvZlofdZoB61h2irx91obPfThUYpaORRFGZNWk7GZPHsmVL+RoSxdfiS2Wp7pZYSmUAWISq7/HgkMew==","signatures":[{"sig":"MEUCIQCRaAGhLFObkNIrULVWpET5Ihv5hzGNvGzBL4r9ewruyQIgCjW11kEyB9YZ4qbd9y9b9aXJpyGbJr7SrcxgOsM7Vi0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":367493},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","engines":{"npm":">=7.0.0","node":">=18.11.0"},"gitHead":"61dba1f72da8ccd95a58b47fc46ad184ff426b64","scripts":{"dev":"tsc --project tsconfig.json --watch","lint":"eslint","test":"npm run build && node --enable-source-maps --test","build":"rm -rf ./dist && tsc --project tsconfig.json","format":"prettier --write \"**\" \"!./dist/\" --ignore-unknown --cache"},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"prettier":"@redguy12/prettier-config","overrides":{"@discordjs/ws":"1.2.0-dev.1721822666-fcd35ea2e","@discordjs/rest":"2.4.1-dev.1732709129-97ffa201a","@discordjs/util":"1.1.2-dev.1732709129-97ffa201a","discord-api-types":"0.37.106-next.7debb55.1732021051","@discordjs/builders":"1.9.1-dev.1727784293-b20346f43","@discordjs/collection":"1.6.0-dev.1699315767-344a3f934","@discordjs/formatters":"0.6.0-dev.1732709129-97ffa201a"},"repository":{"url":"git+https://github.com/cobaltt7/strife.js.git","type":"git"},"_npmVersion":"11.0.0","description":"A Discord bot framework built around TypeScript support and ease of setup.","directories":{},"_nodeVersion":"22.10.0","dependencies":{"serialize-error":"11.0.3"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"9.17.0","prettier":"3.4.2","discord.js":"14.17.0-dev.1727611463-e1012cc54","typescript":"5.4.5","@types/node":"<=18.11","eslint-config-cobaltt7":"1.0.0","@redguy12/prettier-config":"3.2.1"},"peerDependencies":{"discord.js":"*"},"_npmOperationalInternal":{"tmp":"tmp/strife.js_4.3.2_1736051267519_0.9256448207924983","host":"s3://npm-registry-packages-npm-production"}},"4.4.0":{"name":"strife.js","version":"4.4.0","description":"A Discord bot framework built around TypeScript support and ease of setup.","keywords":["discord","discord-bot","discord.js","typescript"],"homepage":"https://discord.gg/WaEbDrXKxK","bugs":{"url":"https://github.com/cobaltt7/strife.js"},"repository":{"type":"git","url":"git+https://github.com/cobaltt7/strife.js.git"},"license":"MIT","author":{"name":"cobaltt7","url":"https://github.com/cobaltt7"},"type":"module","main":"./dist/src/index.js","scripts":{"build":"rm -rf ./dist && tsc --project tsconfig.json","dev":"tsc --project tsconfig.json --watch","format":"prettier --write \"**\" \"!./dist/\" --ignore-unknown --cache","lint":"eslint","test":"npm run build && node --enable-source-maps --test"},"prettier":"@redguy12/prettier-config","dependencies":{"dapi-types":"npm:discord-api-types@next","serialize-error":"12.0.0"},"devDependencies":{"@redguy12/prettier-config":"3.4.3","@types/node":"<=18.11","discord.js":"14.18.0","eslint":"9.17.0","eslint-config-cobaltt7":"1.0.0","prettier":"3.5.3","typescript":"5.4.5"},"peerDependencies":{"discord.js":"*"},"engines":{"node":">=18.11.0","npm":">=7.0.0"},"overrides":{"@discordjs/builders":"~1.10.1","@discordjs/collection":"1.5.3","@discordjs/formatters":"~0.6.0","@discordjs/ws":"~1.2.1","@sapphire/snowflake":"3.5.3","discord-api-types":"0.37.119","fast-deep-equal":"3.1.3","lodash.snakecase":"4.1.1","tslib":"~2.6.3","undici":"6.21.1","@discordjs/rest":"~2.4.3","@discordjs/util":"~1.1.1"},"_id":"strife.js@4.4.0","gitHead":"4422a5ac22ee524811411289fd4bf91d147b0442","types":"./dist/src/index.d.ts","_nodeVersion":"22.17.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-w27DgwIb8A36DKg+JWw2zWj6Q9hT4IxRZCCOjzPwJ8lt2sjs7bGYYOeOTR6kZF1wFg9KrugQzpHivgruv04nJQ==","shasum":"0d0661a94c3a6321331793bd3b8c84d6a325aef3","tarball":"https://registry.npmjs.org/strife.js/-/strife.js-4.4.0.tgz","fileCount":44,"unpackedSize":250252,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDJa0/HsN3/enL+nWFvh41uuqfIrtbQxSgSq4snIIX9JwIgIhUdtGW/H4Nk4oIEODVI4B4bl0WzJYWCPu/cmB5AX2c="}]},"_npmUser":{"name":"redguy12","email":"paul@reid-family.org"},"directories":{},"maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/strife.js_4.4.0_1754417452641_0.6802853713620578"},"_hasShrinkwrap":false}},"time":{"created":"2023-02-20T03:16:34.131Z","modified":"2025-08-05T18:10:53.300Z","0.0.0":"2023-02-20T03:16:34.315Z","1.0.0":"2023-06-13T16:25:33.858Z","1.0.1":"2023-06-13T17:09:33.598Z","1.0.2":"2023-06-13T17:15:14.296Z","1.0.3":"2023-06-13T17:27:51.695Z","1.0.4":"2023-06-13T17:29:14.869Z","1.0.5":"2023-06-14T22:51:38.605Z","1.0.6":"2023-06-15T21:38:08.946Z","2.0.0-dev.0":"2023-09-04T03:39:01.424Z","2.0.0":"2023-09-05T03:10:28.581Z","2.0.1":"2023-09-12T03:20:59.659Z","3.0.0":"2023-09-17T23:47:09.215Z","3.0.1":"2023-09-17T23:56:18.931Z","3.1.0":"2023-12-15T17:48:46.318Z","3.1.1":"2023-12-16T02:32:22.821Z","3.1.2":"2023-12-16T02:38:47.650Z","3.1.3":"2023-12-16T02:41:49.501Z","3.1.4-dev.0":"2023-12-19T21:50:49.524Z","3.1.4-dev.1":"2023-12-19T21:54:12.945Z","3.1.4-dev.2":"2023-12-19T22:19:56.181Z","3.1.4-dev.3":"2023-12-19T23:34:15.892Z","3.1.4-dev.4":"2023-12-19T23:46:59.177Z","4.0.0":"2023-12-19T23:56:38.573Z","4.0.1":"2023-12-20T00:03:17.251Z","4.1.0":"2024-10-21T22:24:18.781Z","4.1.1":"2024-10-22T01:24:51.625Z","4.1.2":"2024-10-22T01:30:16.043Z","4.1.3":"2024-10-22T01:40:37.157Z","4.1.4":"2024-10-27T18:34:27.009Z","4.1.5":"2024-10-27T20:55:35.514Z","4.2.0":"2024-11-30T22:40:25.715Z","4.3.0":"2025-01-05T03:57:13.949Z","4.3.1":"2025-01-05T04:23:38.601Z","4.3.2":"2025-01-05T04:27:47.747Z","4.4.0":"2025-08-05T18:10:52.825Z"},"bugs":{"url":"https://github.com/cobaltt7/strife.js"},"author":{"name":"cobaltt7","url":"https://github.com/cobaltt7"},"license":"MIT","homepage":"https://discord.gg/WaEbDrXKxK","keywords":["discord","discord-bot","discord.js","typescript"],"repository":{"type":"git","url":"git+https://github.com/cobaltt7/strife.js.git"},"description":"A Discord bot framework built around TypeScript support and ease of setup.","maintainers":[{"name":"redguy12","email":"paul@reid-family.org"}],"readme":"# strife.js\n\nA Discord bot framework built around TypeScript support and ease of setup.\n\nstrife.js has three main goals and purposes:\n\n1. Allow TypeScript to infer types where it couldn't easily before, leading to better code editor intellisense and autocomplete.\n2. Reduce the amount of boilerplate and duplicated code in Discord bots by streamlining as much as possible and exporting many useful utility functions.\n3. Make it simpler and cleaner to register multiple commands and options in large multipurpose bots that require handling the same events for many different things.\n\nSupport is available in [the Cobots server](https://discord.gg/WaEbDrXKxK).\n\n## Installation\n\nInstall alongside discord.js:\n\n```sh\nnpm install discord.js strife.js\n```\n\nstrife.js officially supports discord.js versions 14.9-14.21.\n\n## Login\n\nCall `login()` to connect to Discord and instantiate a discord.js client.\n\n```js\nimport { fileURLToPath } from \"node:url\";\n\nimport { GatewayIntentBits } from \"discord.js\";\nimport { login } from \"strife.js\";\n\nawait login({\n\tclientOptions: { intents: GatewayIntentBits.Guilds | GatewayIntentBits.GuildMembers },\n\tmodulesDirectory: fileURLToPath(new URL(\"./modules\", import.meta.url)),\n});\n```\n\nOnce `login()` has been called, you may import `client` from anywhere in your app to access the client instance it created:\n\n```js\nimport { Client } from \"discord.js\";\nimport { client } from \"strife.js\";\n\nclient instanceof Client; // true\n```\n\nNote that although `client` is typed as `Client<true>`, it is `undefined` prior to calling `login()`.\nPlease plan appropriately.\n\n### Configuration\n\n#### `clientOptions`\n\nType: `ClientOptions`\n\nOptions to pass to discord.js.\nAs in discord.js, the only required property is `intents`.\nstrife.js has some defaults on top of discord.js's, which will be merged with these options, but all are still overridable.\n\n- `allowedMentions` is set to only ping users by default (including replied users) to avoid accidental mass pings\n- `failIfNotExists` is set to `false` to return `null` instead of erroring in certain cases\n- `partials` is set to all available partials to avoid missed events\n\n#### `modulesDirectory`\n\nType: `string | string[]`\n\nThe directory or directories to import modules from.\nIt is recommended to set this to `fileURLToPath(new URL(\"./modules\", import.meta.url))`.\nSee [Usage](#usage) for detailed information.\nOmit to not load any modules.\nPreviously called `modulesDir`\n\n#### `modulesDir`\n\nType: `string`\n\nDeprecated legacy name of [`modulesDirectory`](#modulesdirectory).\nDoes not support arrays.\n\n#### `botToken`\n\nType: `string | undefined`\n\nThe token to connect to Discord with.\nDefaults to `process.env.BOT_TOKEN`.\n\n#### `commandErrorMessage`\n\nType: `string | undefined`\n\nThe message displayed to the user when commands fail.\nOmit to use Discord's default `❗ The application did not respond`.\n\n#### `handleError`\n\nType: `((error: unknown, event: RepliableInteraction | string) => Awaitable<void>) | { channel: string | (() => Awaitable<SendableChannel>); emoji?: string } | undefined`\n\nDefines how errors should be handled in discord.js or any event, component, or command handler.\nCan either be a function that will be called on each error, or an object defining how strife.js should handle it.\nIf not set, all errors will only be logged through `console.error()`.\nIf set to an object, strife.js will log the error in the console, then standardize it and format it nicely before sending it in a channel of your chosing.\nYou can also optionally specify an emoji to be included in the error log message for aesthetic purposes.\n\n#### `debug`\n\nType: `boolean | \"all\" | undefined`\n\nControls the verbosity of debug logs.\nSet to `false` to disable them entirely, `true` to log most non-spammy messages (excuding things like websocket heartbeats), or `\"all\"` to include everything.\nDefaults to `process.env.NODE_ENV === \"production\" ? true : \"all\"`.\n\n#### `defaultCommandAccess`\n\nType: `boolean | Snowflake | Snowflake[] | undefined`\n\nThe default value of [a command's `access` field](#access).\n\n## Usage\n\nIt is recommended, but not required, to use this framework with TypeScript.\n\nEvery file in [`modulesDirectory`](#modulesdirectory), and every `index.js` in subdirectories of `modulesDirectory` will be automatically imported after logging in, but before commands are registered.\nIt is recommended to only call the below functions in those files.\n\n### Commands\n\nUse the `defineChatCommand` function to define a basic, flat chat command.\n\n```js\nimport { defineChatCommand } from \"strife.js\";\n\ndefineChatCommand(\n\t{ name: \"ping\", description: \"Ping!\" },\n\n\tasync (interaction) => {\n\t\tawait interaction.reply(\"Pong!\");\n\t},\n);\n```\n\nUse the `restricted: true` option to deny members permission to use the command, and require guild admins to explicitly set permissions via `Server Settings` -> `Integrations`.\n`restricted` is only available on guild-only commands - see [Access](#access).\n\n#### Options\n\nYou can specify options for commands using the `options` property.\nThis is a key-value pair where the keys are option names and the values are option details.\n\n```js\nimport { ApplicationCommandOptionType } from \"discord.js\";\nimport { defineChatCommand } from \"strife.js\";\n\ndefineChatCommand(\n\t{\n\t\tname: \"say\",\n\t\tdescription: \"Send a message\",\n\n\t\toptions: {\n\t\t\tmessage: {\n\t\t\t\ttype: ApplicationCommandOptionType.String,\n\t\t\t\tdescription: \"Message content\",\n\t\t\t\tmaxLength: 2000,\n\t\t\t\trequired: true,\n\t\t\t},\n\t\t},\n\t},\n\n\tasync (interaction, options) => {\n\t\t// code here...\n\t},\n);\n```\n\n`type` (`Exclude<ApplicationCommandOptionType, ApplicationCommandOptionType.Subcommand | ApplicationCommandOptionType.SubcommandGroup>`) and `description` (`string`) are required on all options.\n`required` (`boolean`) is optional, defaulting to `false`, but is allowed on all types of options.\n\nSome types of options have additional customization fields:\n\n- `Channel` options allow `channelTypes` (`ApplicationCommandOptionAllowedChannelTypes[]`) to define allowed channel types for this option.\n  Defaults to all supported guild channel types.\n- `Integer` and `Number` options allow `minValue` and/or `maxValue` to define lower and upper bounds for this option respectively.\n  Defaults to the Discord defaults of `-2 ** 53` and `2 ** 53` respectively.\n- `String` commands allow a few additional fields:\n    - `choices` (`Record<string, string>`) to require users to pick values from a predefined list.\n      The keys are the values passed to your bot and the values are the descriptions displayed to the users.\n      No other additional fields are allowed for this option when using `choices`.\n    - `minLength` (`number`) and/or `maxLength` (`number`) to define lower and upper bounds for this option's length respectively.\n      Defaults to the Discord defaults of `0` and `6_000` respectively.\n    - `autocomplete` (`AutocompleteHandler<InGuild>`) to define a callback to give users dynamic choices.\n        - Use `interaction.options.getFocused()` to get the value of the option so far.\n          You can also use `interaction.options.getBoolean()`, `.getInteger()`, `.getNumber()`, and `.getString()`.\n          Other option-getters will not work, use `interaction.options.get()` instead.\n        - Return an array of choice objects.\n          It will be truncated to fit the 25-item limit automatically.\n        - Note that Discord does not require users to select values from the options, so handle values appropriately.\n\nTo retrieve option values at runtime, you can utilize the second `options` parameter of the command handler.\nYou can always use discord.js's `interaction.options` API, however, the `options` parameter is a key-value object of options.\nThat is often simpler to use and has better types when using TypeScript.\n\nWhen using TypeScript, it is strongly recommended, and, in some cases, required, to type the entire command object `as const` in order to correctly resolve the option types.\n\n```ts\nimport { defineChatCommand } from \"strife.js\";\n\ndefineChatCommand(\n\t{ name: \"ping\", description: \"Ping!\" } as const,\n\n\tasync (interaction) => {\n\t\tawait interaction.reply(\"Pong!\");\n\t},\n);\n```\n\nIt is unnecessary to type it `as const` in this example, however it is strongly encourgaed to add it to all commands for consistency.\n\n#### Subcommands\n\nYou can specify subcommands using the `defineSubcommands()` function.\nDefine subcommands using the `subcommands` property, which is a key-value pair where the keys are subcommand names and the values are subcommand details.\nSubcommands must have `name`s and `description`s and may have `options`.\n\n```js\nimport { defineSubcommands } from \"strife.js\";\n\ndefineSubcommands(\n\t{\n\t\tname: \"xp\",\n\t\tdescription: \"Commands to view users’ XP amounts\",\n\n\t\tsubcommands: {\n\t\t\trank: { description: \"View your XP rank\", options: {} },\n\t\t\ttop: { description: \"View the server XP leaderboard\", options: {} },\n\t\t},\n\t},\n\n\tasync (interaction, { subcommand, options }) => {\n\t\t// code here...\n\t},\n);\n```\n\nSubcommands support options in the same way as regular commands.\n\nWhen using subcommands, the second argument to the handler is an object with the properties `subcommand` (`string`) and `options` (key-value pair as in `defineChatCommand()`).\nIn order for this parameter to be correctly typed, all subcommands must have `options` set, even if just to an empty object.\n\n#### Subcommand Groups\n\nYou can specify subcommand groups using the `defineSubGroups()` function.\nDefine subgroups using the `subcommands` property, which is a key-value pair where the keys are subgroup names and the values are subgroup details.\nSubgroups must have `name`s, `description`s, and `subcommands`.\nSubcommands must have `name`s and `description`s and may have `options`.\n\n```js\nimport { defineSubGroups } from \"strife.js\";\n\ndefineSubGroups(\n\t{\n\t\tname: \"foo\",\n\t\tdescription: \"...\",\n\n\t\tsubcommands: {\n\t\t\tbar: { description: \"...\", subcommands: { baz: { description: \"...\", options: {} } } },\n\t\t},\n\t},\n\n\tasync (interaction, { subcommand, subGroup, options }) => {\n\t\t// code here...\n\t},\n);\n```\n\nSubcommands support options in the same way as regular commands.\n\nWhen using subcommands, the second argument to the handler is an object with the properties `subcommand` (`string`), `subGroup` (`string`), and `options` (key-value pair as in `defineChatCommand()`).\nIn order for this parameter to be correctly typed, all subcommands must have `options` set, even if just to an empty object.\n\nMixing subgroups and subcommands on the same level is not currently supported.\n\n#### Menu Commands\n\nUse the `defineMenuCommand()` function to define a menu command.\n\n```js\nimport { ApplicationCommandType } from \"discord.js\";\nimport { defineMenuCommand } from \"strife.js\";\n\ndefineMenuCommand(\n\t{ name: \"User Info\", type: ApplicationCommandType.User },\n\n\tasync (interaction) => {\n\t\t// code here...\n\t},\n);\n```\n\nMessage context menu commands are also supported with `ApplicationCommandType.Message`.\n\n#### Access\n\nBy default, commands are allowed in all guilds plus DMs.\n\nTo change this behavior, you can set `defaultCommandAccess` when logging in.\nPass in `Snowflake | Snowflake[]` to only define commands in specified guilds, `false` to define them in every guild but no DMs, or `true` to use the default settings.\nWhen using TypeScript, it is necessary to augment the `DefaultCommandAccess` interface when changing this.\nTo do that, add the following in a new `.d.ts` file:\n\n```ts\ndeclare module \"strife.js\" {\n\texport interface DefaultCommandAccess {\n\t\tinGuild: true;\n\t}\n}\n```\n\nCommands also support a root-level `access` option to override this on a per-command basis.\nIt supports the same options, with the addition of `\"@defaults\"` in the array of `Snowflake`s to extend the default guilds.\n`\"@defaults\"` is not available if `defaultCommandAccess` is unset or is set to a boolean.\n\n#### Augments\n\nYou can define custom command properties by using augments (advanced usage):\n\n```ts\nimport type {\n\tFlatCommandOptions,\n\tMenuCommandContext,\n\tSubcommandOptions,\n\tSubGroupsOptions,\n} from \"strife.js\";\n\ndeclare module \"strife.js\" {\n\texport interface AugmentedMenuCommandData<\n\t\t_InGuild extends boolean,\n\t\t_Context extends MenuCommandContext,\n\t> {}\n\n\texport interface AugmentedFlatCommandData<\n\t\tInGuild extends boolean,\n\t\t_Options extends FlatCommandOptions<InGuild>,\n\t> {}\n\texport interface AugmentedSubcommandData<\n\t\tInGuild extends boolean,\n\t\t_Options extends SubcommandOptions<InGuild>,\n\t> {}\n\texport interface AugmentedSubGroupsData<\n\t\tInGuild extends boolean,\n\t\t_Options extends SubGroupsOptions<InGuild>,\n\t> {}\n\n\texport interface AugmentedChatCommandData<_InGuild extends boolean> {}\n\texport interface AugmentedCommandData<_InGuild extends boolean> {}\n}\n```\n\n### Events\n\nUse the `defineEvent()` function to define an event handler.\n\n```js\nimport { defineEvent } from \"strife.js\";\n\ndefineEvent(\"messageCreate\", async (message) => {\n\t// code here...\n});\n```\n\nYou are allowed to define multiple handler for the same event.\nNote that handler execution order is not guaranteed.\n\nNote that since [all partials are enabled by default](#clientoptions), it is necessary to [handle partial structures accordingly](https://discordjs.guide/popular-topics/partials.html), or manually disable them if you really don't want to receive partial data.\n\n#### Pre-Events\n\nPre-events are a special type of event handler that executes before other handlers.\nThey must return `Awaitable<boolean>` that determines if other handlers are executed or not.\nThey are defined with the `defineEvent.pre()` function:\n\n```js\nimport { defineEvent } from \"strife.js\";\n\ndefineEvent.pre(\"messageCreate\", async (message) => {\n\t// code here...\n\treturn true;\n});\n```\n\nRemember to return a boolean to explicitly say whether execution should continue.\n\nA use case for this would be an automoderation system working alongside an XP system.\nThe automoderation system could define a pre-event handler to delete rule-breaking messages and return `false` so users do not receive XP for rule-breaking messages.\n\nYou are only allowed to define one pre-event handler per event.\nYou can define a pre-event handler with or without defining normal event handlers for that event.\n\n### Components\n\nUse the `defineButton()`, `defineModal()`, and `defineSelect()` functions to define button, modal, and select menu handler respectively:\n\n```js\nimport { defineButton } from \"strife.js\";\n\ndefineButton(\"foobar\", async (interaction, data) => {\n\t// code here...\n});\n```\n\nThe button id (`\"foobar\"` in this example) and the `data` parameter of the callback function are both taken from the button's `customId`.\nFor example, if the `customId` is `\"abcd_foobar\"`, then the callback for the `foobar` button will be called and the `data` parameter will have a value of `\"abcd\"`.\n\nThe button `data` may not have underscores but the `id` may.\nFor example, a `customId` of `\"foo_bar_baz\"` will result in an `id` of `\"bar_baz\"` and the `data` `\"foo\"`.\n**This will switch in v5.0.0** to permit underscores in the `data` but not the `id`.\nUntil then, having any underscores other than the single seperator is deprecated.\n\nYou can also omit the data from the `customId` altogether - a `customId` of `\"_foobar\"` will result in an `id` of `\"foobar\"` and the `data` `\"\"`.\n\nIt is not required for all `customId`s to follow this format nor to have an associated handler.\nIt's discouraged to set your own listeners, but you are free to handle interactions via Discord.js collectors instead of through strife.js.\n\n`defineModal()` and `defineSelect()` work in the same way as `defineButton()` but for modals and select menus respectfully.\nFor better type safety, `defineSelect()` also optionally allows specifing certain types of select menus to collect.\nBy default, all types of select menus are collected.\nHowever, you can not specify multiple handlers for the same id but different types.\n\n```js\nimport { ComponentType } from \"discord.js\";\nimport { defineSelect } from \"strife.js\";\n\ndefineSelect(\"foobar\", ComponentType.StringSelect, async (interaction, data) => {\n\t// code here...\n});\n```\n\nYou can specify `SelectMenuType | SelectMenuType[]`.\n\n## Style Guide\n\nNone of the following are requirements other than those using the word \"must\", however, they are all _strongly_ encouraged.\nAn ESLint plugin to enforce this style guide may be created in the future.\n\nIt is recommended to call your [`modulesDirectory`](#modulesdirectory) `modules`.\nEach file or folder in `modulesDirectory` should be a different feature of your bot.\n\nIt is discouraged to import one module from another.\nEach module should work independently.\n\n### File Modules\n\nJavaScript files that lie directly inside `modulesDirectory` should be short - a few hundred lines at most.\nIf they are any longer, split up the files and make the modules [directory modules](#directory-modules) instead.\n\n### Directory Modules\n\nSubdirectories of `modulesDirectory` _must_ have an `index.js` file.\nThis file should contain all the definitions for the module.\nIn other words, `defineChatCommand`, `defineEvent`, etc. should only be used in the `index.js` of directory modules.\nIf any callback is more than a few dozen lines long, it should instead be imported from another file in the same directory.\nFunctions and values that depend on the `client` being initialized belong in `misc.js` in that directory.\nAll other utilities and constants should go in `util.js` in that directory.\nThere should also be a `index.text.js` file to test all functions in `util.js`.\n\n## Imports\n\nThis guide references the following imported values in inline code blocks:\n\n```ts\nimport type {\n\tApplicationCommandOptionAllowedChannelTypes,\n\tAwaitable,\n\tClientOptions,\n\tRepliableInteraction,\n\tSelectMenuType,\n\tSnowflake,\n} from \"discord.js\";\nimport type { DefaultCommandAccess, SendableChannel } from \"strife.js\";\n\nimport { defineModal } from \"strife.js\";\n```\n\nValues only referenced in multiline code blocks are not listed here as they are imported there.\n","readmeFilename":"README.md"}