updated discord.js

This commit is contained in:
Ashley Rosch
2021-08-19 23:54:15 -05:00
parent bb4c2e1ce4
commit c7c0d9faab
6 changed files with 626 additions and 315 deletions

652
package-lock.json generated
View File

@@ -1,29 +1,66 @@
{ {
"name": "ikea-canada-support", "name": "ikea-canada-support",
"version": "1.0.0",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "ikea-canada-support", "name": "ikea-canada-support",
"dependencies": {
"@discordjs/rest": "^0.1.0-canary.0",
"discord-api-types": "^0.22.0",
"discord.js": "^13.1.0"
},
"devDependencies": { "devDependencies": {
"@types/node": "^16.3.1", "@types/node": "^16.3.1",
"discord-buttons": "github:ZomoXYZ/discord-buttons",
"discord.js": "^12.5.3",
"ts-node": "^10.1.0" "ts-node": "^10.1.0"
} }
}, },
"node_modules/@cspotcode/source-map-consumer": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz",
"integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==",
"dev": true,
"engines": {
"node": ">= 12"
}
},
"node_modules/@cspotcode/source-map-support": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.6.1.tgz",
"integrity": "sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg==",
"dev": true,
"dependencies": {
"@cspotcode/source-map-consumer": "0.8.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/@discordjs/builders": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.5.0.tgz",
"integrity": "sha512-HP5y4Rqw68o61Qv4qM5tVmDbWi4mdTFftqIOGRo33SNPpLJ1Ga3KEIR2ibKofkmsoQhEpLmopD1AZDs3cKpHuw==",
"dependencies": {
"@sindresorhus/is": "^4.0.1",
"discord-api-types": "^0.22.0",
"ow": "^0.27.0",
"ts-mixer": "^6.0.0",
"tslib": "^2.3.0"
},
"engines": {
"node": ">=14.0.0",
"npm": ">=7.0.0"
}
},
"node_modules/@discordjs/collection": { "node_modules/@discordjs/collection": {
"version": "0.1.6", "version": "0.1.6",
"resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz", "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz",
"integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==", "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ=="
"dev": true
}, },
"node_modules/@discordjs/form-data": { "node_modules/@discordjs/form-data": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz",
"integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==",
"dev": true,
"dependencies": { "dependencies": {
"asynckit": "^0.4.0", "asynckit": "^0.4.0",
"combined-stream": "^1.0.8", "combined-stream": "^1.0.8",
@@ -33,6 +70,62 @@
"node": ">= 6" "node": ">= 6"
} }
}, },
"node_modules/@discordjs/rest": {
"version": "0.1.0-canary.0",
"resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-0.1.0-canary.0.tgz",
"integrity": "sha512-d+s//ISYVV+e0w/926wMEeO7vju+Pn11x1JM4tcmVMCHSDgpi6pnFCNAXF1TEdnDcy7xf9tq5cf2pQkb/7ySTQ==",
"dependencies": {
"@discordjs/collection": "^0.1.6",
"@sapphire/async-queue": "^1.1.4",
"@sapphire/snowflake": "^1.3.5",
"abort-controller": "^3.0.0",
"discord-api-types": "^0.18.1",
"form-data": "^4.0.0",
"node-fetch": "^2.6.1",
"tslib": "^2.3.0"
},
"engines": {
"node": ">=16.0.0"
}
},
"node_modules/@discordjs/rest/node_modules/discord-api-types": {
"version": "0.18.1",
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.18.1.tgz",
"integrity": "sha512-hNC38R9ZF4uaujaZQtQfm5CdQO58uhdkoHQAVvMfIL0LgOSZeW575W8H6upngQOuoxWd8tiRII3LLJm9zuQKYg==",
"deprecated": "No longer supported. Install the latest release (0.20.2)",
"engines": {
"node": ">=12"
}
},
"node_modules/@sapphire/async-queue": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.4.tgz",
"integrity": "sha512-fFrlF/uWpGOX5djw5Mu2Hnnrunao75WGey0sP0J3jnhmrJ5TAPzHYOmytD5iN/+pMxS+f+u/gezqHa9tPhRHEA==",
"engines": {
"node": ">=14",
"npm": ">=6"
}
},
"node_modules/@sapphire/snowflake": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-1.3.6.tgz",
"integrity": "sha512-QnzuLp+p9D7agynVub/zqlDVriDza9y3STArBhNiNBUgIX8+GL5FpQxstRfw1jDr5jkZUjcuKYAHxjIuXKdJAg==",
"engines": {
"node": ">=12",
"npm": ">=6"
}
},
"node_modules/@sindresorhus/is": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz",
"integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sindresorhus/is?sponsor=1"
}
},
"node_modules/@tsconfig/node10": { "node_modules/@tsconfig/node10": {
"version": "1.0.8", "version": "1.0.8",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
@@ -52,22 +145,28 @@
"dev": true "dev": true
}, },
"node_modules/@tsconfig/node16": { "node_modules/@tsconfig/node16": {
"version": "1.0.1", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.1.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
"integrity": "sha512-FTgBI767POY/lKNDNbIzgAX6miIDBs6NTCbdlDb8TrWovHsSvaVIZDlTqym29C6UqhzwcJx4CYr+AlrMywA0cA==", "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
"dev": true "dev": true
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "16.3.1", "version": "16.6.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.1.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.2.tgz",
"integrity": "sha512-N87VuQi7HEeRJkhzovao/JviiqKjDKMVKxKMfUvSKw+MbkbW8R0nA3fi/MQhhlxV2fQ+2ReM+/Nt4efdrJx3zA==", "integrity": "sha512-LSw8TZt12ZudbpHc6EkIyDM3nHVWKYrAvGy6EAJfNfjusbwnThqjqxUKKRwuV3iWYeW/LYMzNgaq3MaLffQ2xA=="
"dev": true },
"node_modules/@types/ws": {
"version": "7.4.7",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz",
"integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==",
"dependencies": {
"@types/node": "*"
}
}, },
"node_modules/abort-controller": { "node_modules/abort-controller": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
"integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
"dev": true,
"dependencies": { "dependencies": {
"event-target-shim": "^5.0.0" "event-target-shim": "^5.0.0"
}, },
@@ -75,6 +174,27 @@
"node": ">=6.5" "node": ">=6.5"
} }
}, },
"node_modules/acorn": {
"version": "8.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz",
"integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==",
"dev": true,
"bin": {
"acorn": "bin/acorn"
},
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/acorn-walk": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.1.tgz",
"integrity": "sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w==",
"dev": true,
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/arg": { "node_modules/arg": {
"version": "4.1.3", "version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
@@ -84,20 +204,20 @@
"node_modules/asynckit": { "node_modules/asynckit": {
"version": "0.4.0", "version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
"dev": true
}, },
"node_modules/buffer-from": { "node_modules/callsites": {
"version": "1.1.1", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true "engines": {
"node": ">=6"
}
}, },
"node_modules/combined-stream": { "node_modules/combined-stream": {
"version": "1.0.8", "version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true,
"dependencies": { "dependencies": {
"delayed-stream": "~1.0.0" "delayed-stream": "~1.0.0"
}, },
@@ -115,7 +235,6 @@
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"dev": true,
"engines": { "engines": {
"node": ">=0.4.0" "node": ">=0.4.0"
} }
@@ -129,44 +248,89 @@
"node": ">=0.3.1" "node": ">=0.3.1"
} }
}, },
"node_modules/discord-buttons": { "node_modules/discord-api-types": {
"version": "4.0.0", "version": "0.22.0",
"resolved": "git+ssh://git@github.com/ZomoXYZ/discord-buttons.git#a61689454f33b5fd456057546d7cd83bbb48b1cd", "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.22.0.tgz",
"dev": true, "integrity": "sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg==",
"license": "Apache-2.0", "engines": {
"funding": { "node": ">=12"
"type": "individual",
"url": "https://ko-fi.com/angelocore"
} }
}, },
"node_modules/discord.js": { "node_modules/discord.js": {
"version": "12.5.3", "version": "13.1.0",
"resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.3.tgz", "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.1.0.tgz",
"integrity": "sha512-D3nkOa/pCkNyn6jLZnAiJApw2N9XrIsXUAdThf01i7yrEuqUmDGc7/CexVWwEcgbQR97XQ+mcnqJpmJ/92B4Aw==", "integrity": "sha512-gxO4CXKdHpqA+WKG+f5RNnd3srTDj5uFJHgOathksDE90YNq/Qijkd2WlMgTTMS6AJoEnHxI7G9eDQHCuZ+xDA==",
"dev": true,
"dependencies": { "dependencies": {
"@discordjs/collection": "^0.1.6", "@discordjs/builders": "^0.5.0",
"@discordjs/collection": "^0.2.1",
"@discordjs/form-data": "^3.0.1", "@discordjs/form-data": "^3.0.1",
"abort-controller": "^3.0.0", "@sapphire/async-queue": "^1.1.4",
"@types/ws": "^7.4.7",
"discord-api-types": "^0.22.0",
"node-fetch": "^2.6.1", "node-fetch": "^2.6.1",
"prism-media": "^1.2.9", "ws": "^7.5.1"
"setimmediate": "^1.0.5",
"tweetnacl": "^1.0.3",
"ws": "^7.4.4"
}, },
"engines": { "engines": {
"node": ">=12.0.0" "node": ">=16.6.0",
"npm": ">=7.0.0"
}
},
"node_modules/discord.js/node_modules/@discordjs/collection": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.2.1.tgz",
"integrity": "sha512-vhxqzzM8gkomw0TYRF3tgx7SwElzUlXT/Aa41O7mOcyN6wIJfj5JmDWaO5XGKsGSsNx7F3i5oIlrucCCWV1Nog==",
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/dot-prop": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
"integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
"dependencies": {
"is-obj": "^2.0.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/event-target-shim": { "node_modules/event-target-shim": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
"dev": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
}, },
"node_modules/form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/is-obj": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
"engines": {
"node": ">=8"
}
},
"node_modules/lodash.isequal": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
"integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
},
"node_modules/make-error": { "node_modules/make-error": {
"version": "1.3.6", "version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
@@ -174,21 +338,19 @@
"dev": true "dev": true
}, },
"node_modules/mime-db": { "node_modules/mime-db": {
"version": "1.48.0", "version": "1.49.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz",
"integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==",
"dev": true,
"engines": { "engines": {
"node": ">= 0.6" "node": ">= 0.6"
} }
}, },
"node_modules/mime-types": { "node_modules/mime-types": {
"version": "2.1.31", "version": "2.1.32",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz",
"integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==",
"dev": true,
"dependencies": { "dependencies": {
"mime-db": "1.48.0" "mime-db": "1.49.0"
}, },
"engines": { "engines": {
"node": ">= 0.6" "node": ">= 0.6"
@@ -198,77 +360,51 @@
"version": "2.6.1", "version": "2.6.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
"dev": true,
"engines": { "engines": {
"node": "4.x || >=6.0.0" "node": "4.x || >=6.0.0"
} }
}, },
"node_modules/prism-media": { "node_modules/ow": {
"version": "1.3.1", "version": "0.27.0",
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.1.tgz", "resolved": "https://registry.npmjs.org/ow/-/ow-0.27.0.tgz",
"integrity": "sha512-nyYAa3KB4qteJIqdguKmwxTJgy55xxUtkJ3uRnOvO5jO+frci+9zpRXw6QZVcfDeva3S654fU9+26P2OSTzjHw==", "integrity": "sha512-SGnrGUbhn4VaUGdU0EJLMwZWSupPmF46hnTRII7aCLCrqixTAC5eKo8kI4/XXf1eaaI8YEVT+3FeGNJI9himAQ==",
"dev": true,
"peerDependencies": {
"@discordjs/opus": "^0.5.0",
"ffmpeg-static": "^4.2.7 || ^3.0.0 || ^2.4.0",
"node-opus": "^0.3.3",
"opusscript": "^0.0.8"
},
"peerDependenciesMeta": {
"@discordjs/opus": {
"optional": true
},
"ffmpeg-static": {
"optional": true
},
"node-opus": {
"optional": true
},
"opusscript": {
"optional": true
}
}
},
"node_modules/setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
"dev": true
},
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-support": {
"version": "0.5.19",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
"integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
"dev": true,
"dependencies": { "dependencies": {
"buffer-from": "^1.0.0", "@sindresorhus/is": "^4.0.1",
"source-map": "^0.6.0" "callsites": "^3.1.0",
"dot-prop": "^6.0.1",
"lodash.isequal": "^4.5.0",
"type-fest": "^1.2.1",
"vali-date": "^1.0.0"
},
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/ts-mixer": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz",
"integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ=="
},
"node_modules/ts-node": { "node_modules/ts-node": {
"version": "10.1.0", "version": "10.2.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.1.0.tgz", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.2.1.tgz",
"integrity": "sha512-6szn3+J9WyG2hE+5W8e0ruZrzyk1uFLYye6IGMBadnOzDh8aP7t8CbFpsfCiEx2+wMixAhjFt7lOZC4+l+WbEA==", "integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@cspotcode/source-map-support": "0.6.1",
"@tsconfig/node10": "^1.0.7", "@tsconfig/node10": "^1.0.7",
"@tsconfig/node12": "^1.0.7", "@tsconfig/node12": "^1.0.7",
"@tsconfig/node14": "^1.0.0", "@tsconfig/node14": "^1.0.0",
"@tsconfig/node16": "^1.0.1", "@tsconfig/node16": "^1.0.2",
"acorn": "^8.4.1",
"acorn-walk": "^8.1.1",
"arg": "^4.1.0", "arg": "^4.1.0",
"create-require": "^1.1.0", "create-require": "^1.1.0",
"diff": "^4.0.1", "diff": "^4.0.1",
"make-error": "^1.1.1", "make-error": "^1.1.1",
"source-map-support": "^0.5.17",
"yn": "3.1.1" "yn": "3.1.1"
}, },
"bin": { "bin": {
@@ -296,11 +432,21 @@
} }
} }
}, },
"node_modules/tweetnacl": { "node_modules/tslib": {
"version": "1.0.3", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
"integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
"dev": true },
"node_modules/type-fest": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
"integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
}, },
"node_modules/typescript": { "node_modules/typescript": {
"version": "4.3.5", "version": "4.3.5",
@@ -316,11 +462,18 @@
"node": ">=4.2.0" "node": ">=4.2.0"
} }
}, },
"node_modules/vali-date": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
"integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/ws": { "node_modules/ws": {
"version": "7.5.3", "version": "7.5.3",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz",
"integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==",
"dev": true,
"engines": { "engines": {
"node": ">=8.3.0" "node": ">=8.3.0"
}, },
@@ -348,23 +501,85 @@
} }
}, },
"dependencies": { "dependencies": {
"@cspotcode/source-map-consumer": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz",
"integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==",
"dev": true
},
"@cspotcode/source-map-support": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.6.1.tgz",
"integrity": "sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg==",
"dev": true,
"requires": {
"@cspotcode/source-map-consumer": "0.8.0"
}
},
"@discordjs/builders": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.5.0.tgz",
"integrity": "sha512-HP5y4Rqw68o61Qv4qM5tVmDbWi4mdTFftqIOGRo33SNPpLJ1Ga3KEIR2ibKofkmsoQhEpLmopD1AZDs3cKpHuw==",
"requires": {
"@sindresorhus/is": "^4.0.1",
"discord-api-types": "^0.22.0",
"ow": "^0.27.0",
"ts-mixer": "^6.0.0",
"tslib": "^2.3.0"
}
},
"@discordjs/collection": { "@discordjs/collection": {
"version": "0.1.6", "version": "0.1.6",
"resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz", "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz",
"integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ==", "integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ=="
"dev": true
}, },
"@discordjs/form-data": { "@discordjs/form-data": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz", "resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz",
"integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==", "integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==",
"dev": true,
"requires": { "requires": {
"asynckit": "^0.4.0", "asynckit": "^0.4.0",
"combined-stream": "^1.0.8", "combined-stream": "^1.0.8",
"mime-types": "^2.1.12" "mime-types": "^2.1.12"
} }
}, },
"@discordjs/rest": {
"version": "0.1.0-canary.0",
"resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-0.1.0-canary.0.tgz",
"integrity": "sha512-d+s//ISYVV+e0w/926wMEeO7vju+Pn11x1JM4tcmVMCHSDgpi6pnFCNAXF1TEdnDcy7xf9tq5cf2pQkb/7ySTQ==",
"requires": {
"@discordjs/collection": "^0.1.6",
"@sapphire/async-queue": "^1.1.4",
"@sapphire/snowflake": "^1.3.5",
"abort-controller": "^3.0.0",
"discord-api-types": "^0.18.1",
"form-data": "^4.0.0",
"node-fetch": "^2.6.1",
"tslib": "^2.3.0"
},
"dependencies": {
"discord-api-types": {
"version": "0.18.1",
"resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.18.1.tgz",
"integrity": "sha512-hNC38R9ZF4uaujaZQtQfm5CdQO58uhdkoHQAVvMfIL0LgOSZeW575W8H6upngQOuoxWd8tiRII3LLJm9zuQKYg=="
}
}
},
"@sapphire/async-queue": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.1.4.tgz",
"integrity": "sha512-fFrlF/uWpGOX5djw5Mu2Hnnrunao75WGey0sP0J3jnhmrJ5TAPzHYOmytD5iN/+pMxS+f+u/gezqHa9tPhRHEA=="
},
"@sapphire/snowflake": {
"version": "1.3.6",
"resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-1.3.6.tgz",
"integrity": "sha512-QnzuLp+p9D7agynVub/zqlDVriDza9y3STArBhNiNBUgIX8+GL5FpQxstRfw1jDr5jkZUjcuKYAHxjIuXKdJAg=="
},
"@sindresorhus/is": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.1.tgz",
"integrity": "sha512-Qm9hBEBu18wt1PO2flE7LPb30BHMQt1eQgbV76YntdNk73XZGpn3izvGTYxbGgzXKgbCjiia0uxTd3aTNQrY/g=="
},
"@tsconfig/node10": { "@tsconfig/node10": {
"version": "1.0.8", "version": "1.0.8",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
@@ -384,26 +599,44 @@
"dev": true "dev": true
}, },
"@tsconfig/node16": { "@tsconfig/node16": {
"version": "1.0.1", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.1.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
"integrity": "sha512-FTgBI767POY/lKNDNbIzgAX6miIDBs6NTCbdlDb8TrWovHsSvaVIZDlTqym29C6UqhzwcJx4CYr+AlrMywA0cA==", "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
"dev": true "dev": true
}, },
"@types/node": { "@types/node": {
"version": "16.3.1", "version": "16.6.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.3.1.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.2.tgz",
"integrity": "sha512-N87VuQi7HEeRJkhzovao/JviiqKjDKMVKxKMfUvSKw+MbkbW8R0nA3fi/MQhhlxV2fQ+2ReM+/Nt4efdrJx3zA==", "integrity": "sha512-LSw8TZt12ZudbpHc6EkIyDM3nHVWKYrAvGy6EAJfNfjusbwnThqjqxUKKRwuV3iWYeW/LYMzNgaq3MaLffQ2xA=="
"dev": true },
"@types/ws": {
"version": "7.4.7",
"resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz",
"integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==",
"requires": {
"@types/node": "*"
}
}, },
"abort-controller": { "abort-controller": {
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
"integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
"dev": true,
"requires": { "requires": {
"event-target-shim": "^5.0.0" "event-target-shim": "^5.0.0"
} }
}, },
"acorn": {
"version": "8.4.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz",
"integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==",
"dev": true
},
"acorn-walk": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.1.tgz",
"integrity": "sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w==",
"dev": true
},
"arg": { "arg": {
"version": "4.1.3", "version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
@@ -413,20 +646,17 @@
"asynckit": { "asynckit": {
"version": "0.4.0", "version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
"dev": true
}, },
"buffer-from": { "callsites": {
"version": "1.1.1", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
"dev": true
}, },
"combined-stream": { "combined-stream": {
"version": "1.0.8", "version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true,
"requires": { "requires": {
"delayed-stream": "~1.0.0" "delayed-stream": "~1.0.0"
} }
@@ -440,8 +670,7 @@
"delayed-stream": { "delayed-stream": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
"dev": true
}, },
"diff": { "diff": {
"version": "4.0.2", "version": "4.0.2",
@@ -449,32 +678,65 @@
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"dev": true "dev": true
}, },
"discord-buttons": { "discord-api-types": {
"version": "git+ssh://git@github.com/ZomoXYZ/discord-buttons.git#a61689454f33b5fd456057546d7cd83bbb48b1cd", "version": "0.22.0",
"dev": true, "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.22.0.tgz",
"from": "discord-buttons@github:ZomoXYZ/discord-buttons" "integrity": "sha512-l8yD/2zRbZItUQpy7ZxBJwaLX/Bs2TGaCthRppk8Sw24LOIWg12t9JEreezPoYD0SQcC2htNNo27kYEpYW/Srg=="
}, },
"discord.js": { "discord.js": {
"version": "12.5.3", "version": "13.1.0",
"resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.3.tgz", "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.1.0.tgz",
"integrity": "sha512-D3nkOa/pCkNyn6jLZnAiJApw2N9XrIsXUAdThf01i7yrEuqUmDGc7/CexVWwEcgbQR97XQ+mcnqJpmJ/92B4Aw==", "integrity": "sha512-gxO4CXKdHpqA+WKG+f5RNnd3srTDj5uFJHgOathksDE90YNq/Qijkd2WlMgTTMS6AJoEnHxI7G9eDQHCuZ+xDA==",
"dev": true,
"requires": { "requires": {
"@discordjs/collection": "^0.1.6", "@discordjs/builders": "^0.5.0",
"@discordjs/collection": "^0.2.1",
"@discordjs/form-data": "^3.0.1", "@discordjs/form-data": "^3.0.1",
"abort-controller": "^3.0.0", "@sapphire/async-queue": "^1.1.4",
"@types/ws": "^7.4.7",
"discord-api-types": "^0.22.0",
"node-fetch": "^2.6.1", "node-fetch": "^2.6.1",
"prism-media": "^1.2.9", "ws": "^7.5.1"
"setimmediate": "^1.0.5", },
"tweetnacl": "^1.0.3", "dependencies": {
"ws": "^7.4.4" "@discordjs/collection": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.2.1.tgz",
"integrity": "sha512-vhxqzzM8gkomw0TYRF3tgx7SwElzUlXT/Aa41O7mOcyN6wIJfj5JmDWaO5XGKsGSsNx7F3i5oIlrucCCWV1Nog=="
}
}
},
"dot-prop": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
"integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
"requires": {
"is-obj": "^2.0.0"
} }
}, },
"event-target-shim": { "event-target-shim": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
"dev": true },
"form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
}
},
"is-obj": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
"integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
},
"lodash.isequal": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
"integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA="
}, },
"make-error": { "make-error": {
"version": "1.3.6", "version": "1.3.6",
@@ -483,78 +745,70 @@
"dev": true "dev": true
}, },
"mime-db": { "mime-db": {
"version": "1.48.0", "version": "1.49.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz",
"integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA=="
"dev": true
}, },
"mime-types": { "mime-types": {
"version": "2.1.31", "version": "2.1.32",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz",
"integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==",
"dev": true,
"requires": { "requires": {
"mime-db": "1.48.0" "mime-db": "1.49.0"
} }
}, },
"node-fetch": { "node-fetch": {
"version": "2.6.1", "version": "2.6.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
"dev": true
}, },
"prism-media": { "ow": {
"version": "1.3.1", "version": "0.27.0",
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.1.tgz", "resolved": "https://registry.npmjs.org/ow/-/ow-0.27.0.tgz",
"integrity": "sha512-nyYAa3KB4qteJIqdguKmwxTJgy55xxUtkJ3uRnOvO5jO+frci+9zpRXw6QZVcfDeva3S654fU9+26P2OSTzjHw==", "integrity": "sha512-SGnrGUbhn4VaUGdU0EJLMwZWSupPmF46hnTRII7aCLCrqixTAC5eKo8kI4/XXf1eaaI8YEVT+3FeGNJI9himAQ==",
"dev": true,
"requires": {}
},
"setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
"dev": true
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
},
"source-map-support": {
"version": "0.5.19",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz",
"integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==",
"dev": true,
"requires": { "requires": {
"buffer-from": "^1.0.0", "@sindresorhus/is": "^4.0.1",
"source-map": "^0.6.0" "callsites": "^3.1.0",
"dot-prop": "^6.0.1",
"lodash.isequal": "^4.5.0",
"type-fest": "^1.2.1",
"vali-date": "^1.0.0"
} }
}, },
"ts-mixer": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.0.tgz",
"integrity": "sha512-nXIb1fvdY5CBSrDIblLn73NW0qRDk5yJ0Sk1qPBF560OdJfQp9jhl+0tzcY09OZ9U+6GpeoI9RjwoIKFIoB9MQ=="
},
"ts-node": { "ts-node": {
"version": "10.1.0", "version": "10.2.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.1.0.tgz", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.2.1.tgz",
"integrity": "sha512-6szn3+J9WyG2hE+5W8e0ruZrzyk1uFLYye6IGMBadnOzDh8aP7t8CbFpsfCiEx2+wMixAhjFt7lOZC4+l+WbEA==", "integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==",
"dev": true, "dev": true,
"requires": { "requires": {
"@cspotcode/source-map-support": "0.6.1",
"@tsconfig/node10": "^1.0.7", "@tsconfig/node10": "^1.0.7",
"@tsconfig/node12": "^1.0.7", "@tsconfig/node12": "^1.0.7",
"@tsconfig/node14": "^1.0.0", "@tsconfig/node14": "^1.0.0",
"@tsconfig/node16": "^1.0.1", "@tsconfig/node16": "^1.0.2",
"acorn": "^8.4.1",
"acorn-walk": "^8.1.1",
"arg": "^4.1.0", "arg": "^4.1.0",
"create-require": "^1.1.0", "create-require": "^1.1.0",
"diff": "^4.0.1", "diff": "^4.0.1",
"make-error": "^1.1.1", "make-error": "^1.1.1",
"source-map-support": "^0.5.17",
"yn": "3.1.1" "yn": "3.1.1"
} }
}, },
"tweetnacl": { "tslib": {
"version": "1.0.3", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
"integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
"dev": true },
"type-fest": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
"integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA=="
}, },
"typescript": { "typescript": {
"version": "4.3.5", "version": "4.3.5",
@@ -563,11 +817,15 @@
"dev": true, "dev": true,
"peer": true "peer": true
}, },
"vali-date": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz",
"integrity": "sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY="
},
"ws": { "ws": {
"version": "7.5.3", "version": "7.5.3",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz",
"integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==",
"dev": true,
"requires": {} "requires": {}
}, },
"yn": { "yn": {

View File

@@ -6,8 +6,11 @@
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^16.3.1", "@types/node": "^16.3.1",
"discord-buttons": "github:ZomoXYZ/discord-buttons",
"discord.js": "^12.5.3",
"ts-node": "^10.1.0" "ts-node": "^10.1.0"
},
"dependencies": {
"@discordjs/rest": "^0.1.0-canary.0",
"discord-api-types": "^0.22.0",
"discord.js": "^13.1.0"
} }
} }

View File

@@ -12,32 +12,32 @@ const InteractionRoles: (Opt.Row|Opt.Menu)[] = [
options: [ options: [
{ {
label: 'They/Them', label: 'They/Them',
val: 'they', value: 'they',
roleid: '861453442387279872' roleid: '861453442387279872'
}, },
{ {
label: 'He/Him', label: 'He/Him',
val: 'he', value: 'he',
roleid: '861453443188129872' roleid: '861453443188129872'
}, },
{ {
label: 'She/Her', label: 'She/Her',
val: 'she', value: 'she',
roleid: '861453442777219112' roleid: '861453442777219112'
}, },
{ {
label: 'It/Its', label: 'It/Its',
val: 'it', value: 'it',
roleid: '862687464543223809' roleid: '862687464543223809'
}, },
{ {
label: 'Fae/Faer', label: 'Fae/Faer',
val: 'fae', value: 'fae',
roleid: '862687559464386601' roleid: '862687559464386601'
}, },
{ {
label: 'Any', label: 'Any',
val: 'any', value: 'any',
roleid: '861453441422983169' roleid: '861453441422983169'
} }
] ]
@@ -51,52 +51,52 @@ const InteractionRoles: (Opt.Row|Opt.Menu)[] = [
options: [ options: [
{ {
label: 'red', label: 'red',
val: 'red', value: 'red',
roleid: '863621755774959626' roleid: '863621755774959626'
}, },
{ {
label: 'pink', label: 'pink',
val: 'pink', value: 'pink',
roleid: '863621801191931904' roleid: '863621801191931904'
}, },
{ {
label: 'orange', label: 'orange',
val: 'orange', value: 'orange',
roleid: '863621849153273876' roleid: '863621849153273876'
}, },
{ {
label: 'green', label: 'green',
val: 'green', value: 'green',
roleid: '863621885366894592' roleid: '863621885366894592'
}, },
{ {
label: 'mint green', label: 'mint green',
val: 'mint green', value: 'mint green',
roleid: '863622000512860190' roleid: '863622000512860190'
}, },
{ {
label: 'blue', label: 'blue',
val: 'blue', value: 'blue',
roleid: '863622336573079603' roleid: '863622336573079603'
}, },
{ {
label: 'light blue', label: 'light blue',
val: 'light blue', value: 'light blue',
roleid: '863622365316513793' roleid: '863622365316513793'
}, },
{ {
label: 'periwinkle', label: 'periwinkle',
val: 'periwinkle', value: 'periwinkle',
roleid: '863622403775266816' roleid: '863622403775266816'
}, },
{ {
label: 'purple', label: 'purple',
val: 'purple', value: 'purple',
roleid: '863622442790682674' roleid: '863622442790682674'
}, },
{ {
label: 'blank', label: 'blank',
val: 'blank', value: 'blank',
roleid: '', roleid: '',
default: true default: true
} }
@@ -111,12 +111,12 @@ const InteractionRoles: (Opt.Row|Opt.Menu)[] = [
options: [ options: [
{ {
label: 'Movie Night', label: 'Movie Night',
val: 'movie', value: 'movie',
roleid: '862883242436591617' roleid: '862883242436591617'
}, },
{ {
label: 'Dungeons and Dragons', label: 'Dungeons and Dragons',
val: 'dnd', value: 'dnd',
roleid: '872684620666265602' roleid: '872684620666265602'
} }
] ]

View File

@@ -1,5 +1,4 @@
import { MessageActionRow, MessageButton, MessageComponent, MessageMenu, MessageMenuOption } from "discord-buttons"; import { ButtonInteraction, CommandInteractionOptionResolver, GuildMember, Interaction, Message, MessageActionRow, MessageActionRowComponent, MessageButton, MessageSelectMenu, MessageSelectOptionData, SelectMenuInteraction } from "discord.js";
import { Message } from "discord.js";
import { TextChannel } from "discord.js"; import { TextChannel } from "discord.js";
import * as Opt from "../types/Opt"; import * as Opt from "../types/Opt";
@@ -7,12 +6,11 @@ import InteractionRoles from "./data";
//initialize discord //initialize discord
const Discord = require('discord.js'), const Discord = require('discord.js'),
client = new Discord.Client({ ws: { intents: Discord.Intents.ALL } }), client = new Discord.Client({ intents: [
disbut = require('discord-buttons'); 'GUILD_MEMBERS'
disbut(client); //configure discord-buttons with client ] });
//on read //on read
client.on('ready', () => console.log('ready'));
/** /**
* send message containing menu * send message containing menu
@@ -21,34 +19,45 @@ client.on('ready', () => console.log('ready'));
*/ */
function sendMenu(c: TextChannel, menuOpts: Opt.Menu) { function sendMenu(c: TextChannel, menuOpts: Opt.Menu) {
let select = new MessageMenu() let row = new MessageActionRow()
.setID(menuOpts.id)
let select = new MessageSelectMenu()
.setCustomId(menuOpts.id)
.setPlaceholder(menuOpts.palceholder) .setPlaceholder(menuOpts.palceholder)
.setMaxValues(menuOpts.max === 'all' ? menuOpts.options.length : menuOpts.max) .setMaxValues(menuOpts.max === 'all' ? menuOpts.options.length : menuOpts.max)
.setMinValues(0); .setMinValues(0);
let options: MessageSelectOptionData[] = [];
for (let i = 0; i < menuOpts.options.length; i++) { for (let i = 0; i < menuOpts.options.length; i++) {
let opts: Opt.MenuOptions = menuOpts.options[i]; let opts: Opt.MenuOptions = menuOpts.options[i];
let option = new MessageMenuOption() let option: MessageSelectOptionData = {
.setLabel(opts.label) label: opts.label,
.setValue(opts.val); value: opts.value
};
if (opts.emoji && opts.emoji.length) if (opts.emoji && opts.emoji.length)
option.setEmoji(opts.emoji); option.emoji = opts.emoji;
if (opts.desc && opts.desc.length) if (opts.description && opts.description.length)
option.setDescription(opts.desc); option.description = opts.description;
if (opts.default) if (opts.default)
option.setDefault(); option.default = true;
select.addOption(option); options.push(option);
} }
c.send(menuOpts.message, select); select.addOptions(options);
row.addComponents(select)
c.send({
content: menuOpts.message,
components: [row]
});
} }
/** /**
@@ -60,6 +69,8 @@ function sendRow(c: TextChannel, rowOpts: Opt.Row) {
let row = new MessageActionRow(); let row = new MessageActionRow();
let options: MessageButton[] = [];
for (let i = 0; i < rowOpts.buttons.length; i++) { for (let i = 0; i < rowOpts.buttons.length; i++) {
let opts: Opt.RowButton = rowOpts.buttons[i]; let opts: Opt.RowButton = rowOpts.buttons[i];
@@ -67,17 +78,21 @@ function sendRow(c: TextChannel, rowOpts: Opt.Row) {
let option = new MessageButton() let option = new MessageButton()
.setStyle(opts.style) .setStyle(opts.style)
.setLabel(opts.label) .setLabel(opts.label)
.setID(opts.id); .setCustomId(opts.id);
row.addComponent(option); options.push(option);
} }
c.send(rowOpts.message, row); row.addComponents(options);
c.send({
content: rowOpts.message,
components: [row]
});
} }
//uncomment if you want to create a message, will change to slash command //uncomment if you want to create a message, will change to slash command
client.on('message', (m: Message) => { client.on('message', (m: Message) => {
if (m.author.id === '167336999844315137' && m.content === '.') { if (m.author.id === '167336999844315137' && m.content === '.') {
@@ -97,122 +112,157 @@ client.on('message', (m: Message) => {
}); });
//on interaction event
client.on('interactionCreate', (interaction: Interaction) => {
if (interaction.isSelectMenu())
handleSelect(interaction as SelectMenuInteraction);
else if (interaction.isButton())
handleButton(interaction as ButtonInteraction);
});
//on menu click //on menu click
client.on('clickMenu', (menu: MessageComponent) => { async function handleSelect(interaction: SelectMenuInteraction) {
menu.reply.think(true).then(async () => {
//list of menus from data with matching id //start typing
let menus = InteractionRoles.filter(opt => opt.type === 'menu' && opt.id === menu.id); await interaction.deferReply({ ephemeral: true });
if (menus.length) { //get custom id
let customId: string;
if (interaction.component instanceof MessageSelectMenu)
customId = interaction.component.customId;
else if ('custom_id' in interaction.component)
customId = interaction.component.custom_id;
//use first menu with matching id //list of menus from data with matching id
let m = menus[0] as Opt.Menu, let menus = InteractionRoles.filter(opt => opt.type === 'menu' && opt.id === customId);
vals = menu.values || [];
//list of changes if (menus.length) {
let changed: {
add: string[],
rem: string[]
} = {
add: [],
rem: []
};
//loop through all the options in the menu //use first menu with matching id
for (let i = 0; i < m.options.length; i++) { let m = menus[0] as Opt.Menu,
vals = interaction.values || [];
let opt = m.options[i], //list of changes
{roleid} = opt; let changed: {
add: string[],
rem: string[]
} = {
add: [],
rem: []
};
//if there's no role id, then nothing can be done //loop through all the options in the menu
if (roleid) { for (let i = 0; i < m.options.length; i++) {
//get corresponding role let opt: Opt.MenuOptions = m.options[i],
let role = await menu.guild.roles.fetch(roleid); {roleid} = opt;
//if enabled //if there's no role id, then nothing can be done
if (vals && vals.includes(opt.val)) { if (roleid && interaction.member instanceof GuildMember) {
//if clicker (member) doesn't have the role //since it is a GuildMember, let's force typescript to rememeber it
if (!menu.clicker.member.roles.cache.some(r => r.id === role.id)) { let member = interaction.member as GuildMember;
//give role //get corresponding role
await menu.clicker.member.roles.add(role); let role = await interaction.guild.roles.fetch(roleid);
changed.add.push(role.name);
} //if enabled
if (vals && vals.includes(opt.value)) {
//else if clicker (member) does have the role //if member doesn't have the role
} else if (menu.clicker.member.roles.cache.some(r => r.id === role.id)) { if (!member.roles.cache.some(r => r.id === role.id)) {
//remove role //give role
await menu.clicker.member.roles.remove(role); await member.roles.add(role);
changed.rem.push(role.name); changed.add.push(role.name);
} }
//else if member does have the role
} else if (member.roles.cache.some(r => r.id === role.id)) {
//remove role
await member.roles.remove(role);
changed.rem.push(role.name);
} }
} }
//convert changes to a message }
let message = [];
if (changed.add.length) //convert changes to a message
message.push(`Added \`${changed.add.join(', ')}\``); let message = [];
if (changed.rem.length) if (changed.add.length)
message.push(`Removed \`${changed.rem.join(', ')}\``); message.push(`Added \`${changed.add.join(', ')}\``);
menu.reply.edit(message.length ? message.join('\n') : 'No Changes'); if (changed.rem.length)
message.push(`Removed \`${changed.rem.join(', ')}\``);
} else interaction.editReply(message.length ? message.join('\n') : 'No Changes');
menu.reply.edit('Error: Unknown menu');
}); } else
}); interaction.editReply('Error: Unknown menu');
client.on('clickButton', (button: MessageComponent) => { };
button.reply.think(true).then(async () => {
//list of button rows from data async function handleButton(interaction: ButtonInteraction) {
let rows = InteractionRoles.filter(opt => opt.type === 'row');
//loop through each the buttons rows //start typing
for (let i = 0; i < rows.length; i++) { await interaction.deferReply({ ephemeral: true });
let row = rows[i] as Opt.Row; //get custom id
let customId: string;
if (interaction.component instanceof MessageButton)
customId = interaction.component.customId;
else if ('custom_id' in interaction.component)
customId = interaction.component.custom_id;
//filter to just buttons with matching id //list of button rows from data
let matchingButtons = row.buttons.filter(opt => opt.id === button.id); let rows = InteractionRoles.filter(opt => opt.type === 'row');
if (matchingButtons.length) { //loop through each the buttons rows
for (let i = 0; i < rows.length; i++) {
let row = rows[i] as Opt.Row;
//filter to just buttons with matching id
let matchingButtons = row.buttons.filter(opt => opt.id === customId);
if (matchingButtons.length) {
//if there's no role id, then nothing can be done
if (matchingButtons[0].roleid && interaction.member instanceof GuildMember) {
//since it is a GuildMember, let's force typescript to rememeber it
let member = interaction.member as GuildMember;
//get corresponding role //get corresponding role
let role = await button.guild.roles.fetch(matchingButtons[0].roleid); let role = await interaction.guild.roles.fetch(matchingButtons[0].roleid);
//if clicker (member) does have the role //if clicker (member) does have the role
if (button.clicker.member.roles.cache.some(r => r.id === role.id)) { if (member.roles.cache.some(r => r.id === role.id)) {
//remove role //remove role
await button.clicker.member.roles.remove(role.id); await member.roles.remove(role.id);
button.reply.edit(`Removed \`${role.name}\``); interaction.editReply(`Removed \`${role.name}\``);
} else { } else {
//add role //add role
await button.clicker.member.roles.add(role.id); await member.roles.add(role.id);
button.reply.edit(`Added \`${role.name}\``); interaction.editReply(`Added \`${role.name}\``);
} }
break; break;
} }
} }
}
}); };
});
//login with token //login with token
client.login(require('fs').readFileSync('../token').toString()); client.login(require('fs').readFileSync('../token').toString());

View File

@@ -3,6 +3,7 @@
"main": "index.ts", "main": "index.ts",
"scripts": { "scripts": {
"start": "ts-node .", "start": "ts-node .",
"debug": "ts-node .",
"watchdog": "./run.sh", "watchdog": "./run.sh",
"tmux": "tmux new-session -d -s $npm_package_name \"./run.sh\"", "tmux": "tmux new-session -d -s $npm_package_name \"./run.sh\"",
"resume": "tmux a -t $npm_package_name", "resume": "tmux a -t $npm_package_name",

7
types/Opt.d.ts vendored
View File

@@ -1,13 +1,12 @@
import { MessageActionRow, MessageButton, MessageButtonStyleResolvable, MessageComponent, MessageMenu, MessageMenuOption } from 'discord-buttons'; import { MessageButtonStyleResolvable } from 'discord.js';
import { Message, TextChannel } from 'discord.js';
//menu //menu
export interface MenuOptions { export interface MenuOptions {
label: string; label: string;
emoji?: string; emoji?: string;
val: string; value: string;
desc?: string; description?: string;
roleid: string; roleid: string;
default?: boolean; default?: boolean;
} }