1
0
mirror of https://github.com/toast-ts/Daggerbot-TS.git synced 2024-11-18 00:31:00 -05:00

Compare commits

..

No commits in common. "aaf746db5e50c3041e09eeb35ec54814d0a66e4a" and "8b541cbed30c290d4eedb8f63fad29579c8813dd" have entirely different histories.

20 changed files with 382 additions and 377 deletions

305
.pnp.cjs generated
View File

@ -31,7 +31,7 @@ const RAW_RUNTIME_STATE =
["@sequelize/core", "virtual:20c353e2d6536e37339997f03975c6a660f4d296e664d291bd43620c6162cca8eb5ef90b0998dc9db75ff6862e5da587d0530bae26805f5fadc8f17aaa4ff794#npm:7.0.0-alpha.37"],\
["@toast/tokenservice-client", "npm:1.0.12::__archiveUrl=https%3A%2F%2Fgit.toast-server.net%2Fapi%2Fpackages%2Ftoast%2Fnpm%2F%2540toast%252Ftokenservice-client%2F-%2F1.0.12%2Ftokenservice-client-1.0.12.tgz"],\
["@types/ms", "npm:0.7.34"],\
["@types/node", "npm:20.11.19"],\
["@types/node", "npm:20.11.17"],\
["@types/node-cron", "npm:3.0.11"],\
["@types/pg", "npm:8.11.0"],\
["ansi-colors", "npm:4.1.3"],\
@ -45,7 +45,7 @@ const RAW_RUNTIME_STATE =
["postgres-array", "npm:3.0.2"],\
["redis", "npm:4.6.13"],\
["simple-git", "npm:3.22.0"],\
["systeminformation", "npm:5.21.25"],\
["systeminformation", "npm:5.21.24"],\
["typescript", "patch:typescript@npm%3A5.3.3#optional!builtin<compat/typescript>::version=5.3.3&hash=e012d7"],\
["undici", "npm:6.6.2"]\
],\
@ -59,7 +59,7 @@ const RAW_RUNTIME_STATE =
["@discordjs/builders", "npm:1.7.0"],\
["@discordjs/formatters", "npm:0.3.3"],\
["@discordjs/util", "npm:1.0.2"],\
["@sapphire/shapeshift", "npm:3.9.6"],\
["@sapphire/shapeshift", "npm:3.9.3"],\
["discord-api-types", "npm:0.37.61"],\
["fast-deep-equal", "npm:3.1.3"],\
["ts-mixer", "npm:6.0.3"],\
@ -95,17 +95,17 @@ const RAW_RUNTIME_STATE =
}]\
]],\
["@discordjs/rest", [\
["npm:2.2.0", {\
"packageLocation": "./.yarn/cache/@discordjs-rest-npm-2.2.0-7742c53181-213245a313.zip/node_modules/@discordjs/rest/",\
["npm:2.1.0", {\
"packageLocation": "./.yarn/cache/@discordjs-rest-npm-2.1.0-7d5eafcddd-3e3fbdaac6.zip/node_modules/@discordjs/rest/",\
"packageDependencies": [\
["@discordjs/rest", "npm:2.2.0"],\
["@discordjs/rest", "npm:2.1.0"],\
["@discordjs/collection", "npm:2.0.0"],\
["@discordjs/util", "npm:1.0.2"],\
["@sapphire/async-queue", "npm:1.5.2"],\
["@sapphire/snowflake", "npm:3.5.3"],\
["@vladfrangu/async_event_emitter", "npm:2.2.4"],\
["@sapphire/async-queue", "npm:1.5.0"],\
["@sapphire/snowflake", "npm:3.5.1"],\
["@vladfrangu/async_event_emitter", "npm:2.2.2"],\
["discord-api-types", "npm:0.37.61"],\
["magic-bytes.js", "npm:1.8.0"],\
["magic-bytes.js", "npm:1.5.0"],\
["tslib", "npm:2.6.2"],\
["undici", "npm:5.27.2"]\
],\
@ -127,23 +127,23 @@ const RAW_RUNTIME_STATE =
"packageDependencies": [\
["@discordjs/ws", "npm:1.0.2"],\
["@discordjs/collection", "npm:2.0.0"],\
["@discordjs/rest", "npm:2.2.0"],\
["@discordjs/rest", "npm:2.1.0"],\
["@discordjs/util", "npm:1.0.2"],\
["@sapphire/async-queue", "npm:1.5.2"],\
["@types/ws", "npm:8.5.10"],\
["@vladfrangu/async_event_emitter", "npm:2.2.4"],\
["@sapphire/async-queue", "npm:1.5.0"],\
["@types/ws", "npm:8.5.9"],\
["@vladfrangu/async_event_emitter", "npm:2.2.2"],\
["discord-api-types", "npm:0.37.61"],\
["tslib", "npm:2.6.2"],\
["ws", "virtual:552886b752de310ce54ce9fe76f5f504adf18fc8ec7c33962afaf94cac7fd12c596749c04ccf8740475eb03deab723875176f4c0ec75af813419d58b693916c7#npm:8.16.0"]\
["ws", "virtual:552886b752de310ce54ce9fe76f5f504adf18fc8ec7c33962afaf94cac7fd12c596749c04ccf8740475eb03deab723875176f4c0ec75af813419d58b693916c7#npm:8.14.2"]\
],\
"linkType": "HARD"\
}]\
]],\
["@fastify/busboy", [\
["npm:2.1.0", {\
"packageLocation": "./.yarn/cache/@fastify-busboy-npm-2.1.0-960844a007-f22c1e5c52.zip/node_modules/@fastify/busboy/",\
["npm:2.0.0", {\
"packageLocation": "./.yarn/cache/@fastify-busboy-npm-2.0.0-c6baf48382-6a2366d06b.zip/node_modules/@fastify/busboy/",\
"packageDependencies": [\
["@fastify/busboy", "npm:2.1.0"]\
["@fastify/busboy", "npm:2.0.0"]\
],\
"linkType": "HARD"\
}]\
@ -307,67 +307,75 @@ const RAW_RUNTIME_STATE =
}]\
]],\
["@octokit/core", [\
["npm:5.1.0", {\
"packageLocation": "./.yarn/cache/@octokit-core-npm-5.1.0-6f995d9055-8062e86a30.zip/node_modules/@octokit/core/",\
["npm:5.0.0", {\
"packageLocation": "./.yarn/cache/@octokit-core-npm-5.0.0-c9003d20df-e12bec95c7.zip/node_modules/@octokit/core/",\
"packageDependencies": [\
["@octokit/core", "npm:5.1.0"],\
["@octokit/core", "npm:5.0.0"],\
["@octokit/auth-token", "npm:4.0.0"],\
["@octokit/graphql", "npm:7.0.2"],\
["@octokit/request", "npm:8.2.0"],\
["@octokit/request-error", "npm:5.0.1"],\
["@octokit/types", "npm:12.5.0"],\
["@octokit/graphql", "npm:7.0.1"],\
["@octokit/request", "npm:8.1.1"],\
["@octokit/request-error", "npm:5.0.0"],\
["@octokit/types", "npm:11.1.0"],\
["before-after-hook", "npm:2.2.3"],\
["universal-user-agent", "npm:6.0.1"]\
["universal-user-agent", "npm:6.0.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["@octokit/endpoint", [\
["npm:9.0.4", {\
"packageLocation": "./.yarn/cache/@octokit-endpoint-npm-9.0.4-1b64d334f9-7df35c96f2.zip/node_modules/@octokit/endpoint/",\
["npm:9.0.0", {\
"packageLocation": "./.yarn/cache/@octokit-endpoint-npm-9.0.0-0d4530e44e-ec160fe1a0.zip/node_modules/@octokit/endpoint/",\
"packageDependencies": [\
["@octokit/endpoint", "npm:9.0.4"],\
["@octokit/types", "npm:12.5.0"],\
["universal-user-agent", "npm:6.0.1"]\
["@octokit/endpoint", "npm:9.0.0"],\
["@octokit/types", "npm:11.1.0"],\
["is-plain-object", "npm:5.0.0"],\
["universal-user-agent", "npm:6.0.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["@octokit/graphql", [\
["npm:7.0.2", {\
"packageLocation": "./.yarn/cache/@octokit-graphql-npm-7.0.2-b5522f5b29-f5dcc51fed.zip/node_modules/@octokit/graphql/",\
["npm:7.0.1", {\
"packageLocation": "./.yarn/cache/@octokit-graphql-npm-7.0.1-5feff6ab44-1c62aa5cfa.zip/node_modules/@octokit/graphql/",\
"packageDependencies": [\
["@octokit/graphql", "npm:7.0.2"],\
["@octokit/request", "npm:8.2.0"],\
["@octokit/types", "npm:12.5.0"],\
["universal-user-agent", "npm:6.0.1"]\
["@octokit/graphql", "npm:7.0.1"],\
["@octokit/request", "npm:8.1.1"],\
["@octokit/types", "npm:11.1.0"],\
["universal-user-agent", "npm:6.0.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["@octokit/openapi-types", [\
["npm:19.1.0", {\
"packageLocation": "./.yarn/cache/@octokit-openapi-types-npm-19.1.0-bd98fe458b-3abedc09ba.zip/node_modules/@octokit/openapi-types/",\
["npm:18.0.0", {\
"packageLocation": "./.yarn/cache/@octokit-openapi-types-npm-18.0.0-1586e405d6-5d4aa6abab.zip/node_modules/@octokit/openapi-types/",\
"packageDependencies": [\
["@octokit/openapi-types", "npm:19.1.0"]\
["@octokit/openapi-types", "npm:18.0.0"]\
],\
"linkType": "HARD"\
}],\
["npm:19.0.0", {\
"packageLocation": "./.yarn/cache/@octokit-openapi-types-npm-19.0.0-064193076f-87962fee2e.zip/node_modules/@octokit/openapi-types/",\
"packageDependencies": [\
["@octokit/openapi-types", "npm:19.0.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["@octokit/plugin-paginate-rest", [\
["npm:9.1.5", {\
"packageLocation": "./.yarn/cache/@octokit-plugin-paginate-rest-npm-9.1.5-9d33eaf13c-5f1793ebeb.zip/node_modules/@octokit/plugin-paginate-rest/",\
["npm:9.0.0", {\
"packageLocation": "./.yarn/cache/@octokit-plugin-paginate-rest-npm-9.0.0-fb07663301-1fcf2358d2.zip/node_modules/@octokit/plugin-paginate-rest/",\
"packageDependencies": [\
["@octokit/plugin-paginate-rest", "npm:9.1.5"]\
["@octokit/plugin-paginate-rest", "npm:9.0.0"]\
],\
"linkType": "SOFT"\
}],\
["virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:9.1.5", {\
"packageLocation": "./.yarn/__virtual__/@octokit-plugin-paginate-rest-virtual-092e0c7889/0/cache/@octokit-plugin-paginate-rest-npm-9.1.5-9d33eaf13c-5f1793ebeb.zip/node_modules/@octokit/plugin-paginate-rest/",\
["virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:9.0.0", {\
"packageLocation": "./.yarn/__virtual__/@octokit-plugin-paginate-rest-virtual-9fb782d717/0/cache/@octokit-plugin-paginate-rest-npm-9.0.0-fb07663301-1fcf2358d2.zip/node_modules/@octokit/plugin-paginate-rest/",\
"packageDependencies": [\
["@octokit/plugin-paginate-rest", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:9.1.5"],\
["@octokit/core", "npm:5.1.0"],\
["@octokit/types", "npm:12.5.0"],\
["@octokit/plugin-paginate-rest", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:9.0.0"],\
["@octokit/core", "npm:5.0.0"],\
["@octokit/types", "npm:12.0.0"],\
["@types/octokit__core", null]\
],\
"packagePeers": [\
@ -389,7 +397,7 @@ const RAW_RUNTIME_STATE =
"packageLocation": "./.yarn/__virtual__/@octokit-plugin-request-log-virtual-8311198fdf/0/cache/@octokit-plugin-request-log-npm-4.0.0-49c2f6ee8b-2a8a661964.zip/node_modules/@octokit/plugin-request-log/",\
"packageDependencies": [\
["@octokit/plugin-request-log", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:4.0.0"],\
["@octokit/core", "npm:5.1.0"],\
["@octokit/core", "npm:5.0.0"],\
["@types/octokit__core", null]\
],\
"packagePeers": [\
@ -400,19 +408,19 @@ const RAW_RUNTIME_STATE =
}]\
]],\
["@octokit/plugin-rest-endpoint-methods", [\
["npm:10.3.0", {\
"packageLocation": "./.yarn/cache/@octokit-plugin-rest-endpoint-methods-npm-10.3.0-06a0ae45a8-be202aca31.zip/node_modules/@octokit/plugin-rest-endpoint-methods/",\
["npm:10.0.0", {\
"packageLocation": "./.yarn/cache/@octokit-plugin-rest-endpoint-methods-npm-10.0.0-f839bc852a-2984df2c81.zip/node_modules/@octokit/plugin-rest-endpoint-methods/",\
"packageDependencies": [\
["@octokit/plugin-rest-endpoint-methods", "npm:10.3.0"]\
["@octokit/plugin-rest-endpoint-methods", "npm:10.0.0"]\
],\
"linkType": "SOFT"\
}],\
["virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:10.3.0", {\
"packageLocation": "./.yarn/__virtual__/@octokit-plugin-rest-endpoint-methods-virtual-ea99ee7f10/0/cache/@octokit-plugin-rest-endpoint-methods-npm-10.3.0-06a0ae45a8-be202aca31.zip/node_modules/@octokit/plugin-rest-endpoint-methods/",\
["virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:10.0.0", {\
"packageLocation": "./.yarn/__virtual__/@octokit-plugin-rest-endpoint-methods-virtual-7363bbf413/0/cache/@octokit-plugin-rest-endpoint-methods-npm-10.0.0-f839bc852a-2984df2c81.zip/node_modules/@octokit/plugin-rest-endpoint-methods/",\
"packageDependencies": [\
["@octokit/plugin-rest-endpoint-methods", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:10.3.0"],\
["@octokit/core", "npm:5.1.0"],\
["@octokit/types", "npm:12.5.0"],\
["@octokit/plugin-rest-endpoint-methods", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:10.0.0"],\
["@octokit/core", "npm:5.0.0"],\
["@octokit/types", "npm:12.0.0"],\
["@types/octokit__core", null]\
],\
"packagePeers": [\
@ -423,24 +431,25 @@ const RAW_RUNTIME_STATE =
}]\
]],\
["@octokit/request", [\
["npm:8.2.0", {\
"packageLocation": "./.yarn/cache/@octokit-request-npm-8.2.0-27c446977b-553ba8b99e.zip/node_modules/@octokit/request/",\
["npm:8.1.1", {\
"packageLocation": "./.yarn/cache/@octokit-request-npm-8.1.1-404934a724-62fd236ef8.zip/node_modules/@octokit/request/",\
"packageDependencies": [\
["@octokit/request", "npm:8.2.0"],\
["@octokit/endpoint", "npm:9.0.4"],\
["@octokit/request-error", "npm:5.0.1"],\
["@octokit/types", "npm:12.5.0"],\
["universal-user-agent", "npm:6.0.1"]\
["@octokit/request", "npm:8.1.1"],\
["@octokit/endpoint", "npm:9.0.0"],\
["@octokit/request-error", "npm:5.0.0"],\
["@octokit/types", "npm:11.1.0"],\
["is-plain-object", "npm:5.0.0"],\
["universal-user-agent", "npm:6.0.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["@octokit/request-error", [\
["npm:5.0.1", {\
"packageLocation": "./.yarn/cache/@octokit-request-error-npm-5.0.1-eda589102d-a21a4614c4.zip/node_modules/@octokit/request-error/",\
["npm:5.0.0", {\
"packageLocation": "./.yarn/cache/@octokit-request-error-npm-5.0.0-262908a2c1-de7ed29340.zip/node_modules/@octokit/request-error/",\
"packageDependencies": [\
["@octokit/request-error", "npm:5.0.1"],\
["@octokit/types", "npm:12.5.0"],\
["@octokit/request-error", "npm:5.0.0"],\
["@octokit/types", "npm:11.1.0"],\
["deprecation", "npm:2.3.1"],\
["once", "npm:1.4.0"]\
],\
@ -452,20 +461,28 @@ const RAW_RUNTIME_STATE =
"packageLocation": "./.yarn/cache/@octokit-rest-npm-20.0.2-4561cebc71-527e1806ca.zip/node_modules/@octokit/rest/",\
"packageDependencies": [\
["@octokit/rest", "npm:20.0.2"],\
["@octokit/core", "npm:5.1.0"],\
["@octokit/plugin-paginate-rest", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:9.1.5"],\
["@octokit/core", "npm:5.0.0"],\
["@octokit/plugin-paginate-rest", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:9.0.0"],\
["@octokit/plugin-request-log", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:4.0.0"],\
["@octokit/plugin-rest-endpoint-methods", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:10.3.0"]\
["@octokit/plugin-rest-endpoint-methods", "virtual:4561cebc7178ada64ce18c0aeed396852b7aeaba4f74421f21ba3e30dbf678d80e4d99e34e12bd5d2189e9af698f708ddc3e89804d9d2b7510fd441fb121b618#npm:10.0.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["@octokit/types", [\
["npm:12.5.0", {\
"packageLocation": "./.yarn/cache/@octokit-types-npm-12.5.0-17ac978d21-a2c8e736e3.zip/node_modules/@octokit/types/",\
["npm:11.1.0", {\
"packageLocation": "./.yarn/cache/@octokit-types-npm-11.1.0-668299c1c7-ebd510c14c.zip/node_modules/@octokit/types/",\
"packageDependencies": [\
["@octokit/types", "npm:12.5.0"],\
["@octokit/openapi-types", "npm:19.1.0"]\
["@octokit/types", "npm:11.1.0"],\
["@octokit/openapi-types", "npm:18.0.0"]\
],\
"linkType": "HARD"\
}],\
["npm:12.0.0", {\
"packageLocation": "./.yarn/cache/@octokit-types-npm-12.0.0-b74b3121ec-68faa94efa.zip/node_modules/@octokit/types/",\
"packageDependencies": [\
["@octokit/types", "npm:12.0.0"],\
["@octokit/openapi-types", "npm:19.0.0"]\
],\
"linkType": "HARD"\
}]\
@ -593,19 +610,19 @@ const RAW_RUNTIME_STATE =
}]\
]],\
["@sapphire/async-queue", [\
["npm:1.5.2", {\
"packageLocation": "./.yarn/cache/@sapphire-async-queue-npm-1.5.2-ea45a21892-55e0785997.zip/node_modules/@sapphire/async-queue/",\
["npm:1.5.0", {\
"packageLocation": "./.yarn/cache/@sapphire-async-queue-npm-1.5.0-f065e42c78-d22feb63a2.zip/node_modules/@sapphire/async-queue/",\
"packageDependencies": [\
["@sapphire/async-queue", "npm:1.5.2"]\
["@sapphire/async-queue", "npm:1.5.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["@sapphire/shapeshift", [\
["npm:3.9.6", {\
"packageLocation": "./.yarn/cache/@sapphire-shapeshift-npm-3.9.6-b36d857d93-9d7ab3b334.zip/node_modules/@sapphire/shapeshift/",\
["npm:3.9.3", {\
"packageLocation": "./.yarn/cache/@sapphire-shapeshift-npm-3.9.3-cc74b670e7-9fce0135d4.zip/node_modules/@sapphire/shapeshift/",\
"packageDependencies": [\
["@sapphire/shapeshift", "npm:3.9.6"],\
["@sapphire/shapeshift", "npm:3.9.3"],\
["fast-deep-equal", "npm:3.1.3"],\
["lodash", "npm:4.17.21"]\
],\
@ -619,13 +636,6 @@ const RAW_RUNTIME_STATE =
["@sapphire/snowflake", "npm:3.5.1"]\
],\
"linkType": "HARD"\
}],\
["npm:3.5.3", {\
"packageLocation": "./.yarn/cache/@sapphire-snowflake-npm-3.5.3-427ca2a4ee-f306626f76.zip/node_modules/@sapphire/snowflake/",\
"packageDependencies": [\
["@sapphire/snowflake", "npm:3.5.3"]\
],\
"linkType": "HARD"\
}]\
]],\
["@sequelize/core", [\
@ -727,10 +737,10 @@ const RAW_RUNTIME_STATE =
}]\
]],\
["@types/node", [\
["npm:20.11.19", {\
"packageLocation": "./.yarn/cache/@types-node-npm-20.11.19-5d4958999b-c7f4705d6c.zip/node_modules/@types/node/",\
["npm:20.11.17", {\
"packageLocation": "./.yarn/cache/@types-node-npm-20.11.17-5185bfb3de-3342df8725.zip/node_modules/@types/node/",\
"packageDependencies": [\
["@types/node", "npm:20.11.19"],\
["@types/node", "npm:20.11.17"],\
["undici-types", "npm:5.26.5"]\
],\
"linkType": "HARD"\
@ -750,9 +760,9 @@ const RAW_RUNTIME_STATE =
"packageLocation": "./.yarn/cache/@types-pg-npm-8.11.0-bf104da0ba-91a7ccc5dc.zip/node_modules/@types/pg/",\
"packageDependencies": [\
["@types/pg", "npm:8.11.0"],\
["@types/node", "npm:20.11.19"],\
["@types/node", "npm:20.11.17"],\
["pg-protocol", "npm:1.6.0"],\
["pg-types", "npm:4.0.2"]\
["pg-types", "npm:4.0.1"]\
],\
"linkType": "HARD"\
}]\
@ -767,28 +777,20 @@ const RAW_RUNTIME_STATE =
}]\
]],\
["@types/ws", [\
["npm:8.5.10", {\
"packageLocation": "./.yarn/cache/@types-ws-npm-8.5.10-a877a38f71-9b414dc5e0.zip/node_modules/@types/ws/",\
"packageDependencies": [\
["@types/ws", "npm:8.5.10"],\
["@types/node", "npm:20.11.19"]\
],\
"linkType": "HARD"\
}],\
["npm:8.5.9", {\
"packageLocation": "./.yarn/cache/@types-ws-npm-8.5.9-91d1b2ab07-7cf66383b8.zip/node_modules/@types/ws/",\
"packageDependencies": [\
["@types/ws", "npm:8.5.9"],\
["@types/node", "npm:20.11.19"]\
["@types/node", "npm:20.11.17"]\
],\
"linkType": "HARD"\
}]\
]],\
["@vladfrangu/async_event_emitter", [\
["npm:2.2.4", {\
"packageLocation": "./.yarn/cache/@vladfrangu-async_event_emitter-npm-2.2.4-0297e524e2-06de49380d.zip/node_modules/@vladfrangu/async_event_emitter/",\
["npm:2.2.2", {\
"packageLocation": "./.yarn/cache/@vladfrangu-async_event_emitter-npm-2.2.2-d94a9ff4bf-1c1fcee04a.zip/node_modules/@vladfrangu/async_event_emitter/",\
"packageDependencies": [\
["@vladfrangu/async_event_emitter", "npm:2.2.4"]\
["@vladfrangu/async_event_emitter", "npm:2.2.2"]\
],\
"linkType": "HARD"\
}]\
@ -858,7 +860,7 @@ const RAW_RUNTIME_STATE =
["@sequelize/core", "virtual:20c353e2d6536e37339997f03975c6a660f4d296e664d291bd43620c6162cca8eb5ef90b0998dc9db75ff6862e5da587d0530bae26805f5fadc8f17aaa4ff794#npm:7.0.0-alpha.37"],\
["@toast/tokenservice-client", "npm:1.0.12::__archiveUrl=https%3A%2F%2Fgit.toast-server.net%2Fapi%2Fpackages%2Ftoast%2Fnpm%2F%2540toast%252Ftokenservice-client%2F-%2F1.0.12%2Ftokenservice-client-1.0.12.tgz"],\
["@types/ms", "npm:0.7.34"],\
["@types/node", "npm:20.11.19"],\
["@types/node", "npm:20.11.17"],\
["@types/node-cron", "npm:3.0.11"],\
["@types/pg", "npm:8.11.0"],\
["ansi-colors", "npm:4.1.3"],\
@ -872,7 +874,7 @@ const RAW_RUNTIME_STATE =
["postgres-array", "npm:3.0.2"],\
["redis", "npm:4.6.13"],\
["simple-git", "npm:3.22.0"],\
["systeminformation", "npm:5.21.25"],\
["systeminformation", "npm:5.21.24"],\
["typescript", "patch:typescript@npm%3A5.3.3#optional!builtin<compat/typescript>::version=5.3.3&hash=e012d7"],\
["undici", "npm:6.6.2"]\
],\
@ -937,7 +939,7 @@ const RAW_RUNTIME_STATE =
["@discordjs/builders", "npm:1.7.0"],\
["@discordjs/collection", "npm:1.5.3"],\
["@discordjs/formatters", "npm:0.3.3"],\
["@discordjs/rest", "npm:2.2.0"],\
["@discordjs/rest", "npm:2.1.0"],\
["@discordjs/util", "npm:1.0.2"],\
["@discordjs/ws", "npm:1.0.2"],\
["@sapphire/snowflake", "npm:3.5.1"],\
@ -947,7 +949,7 @@ const RAW_RUNTIME_STATE =
["lodash.snakecase", "npm:4.1.1"],\
["tslib", "npm:2.6.2"],\
["undici", "npm:5.27.2"],\
["ws", "virtual:7feafdd094ad6275283a846734a985b328f6276c572be699c3cd222f225950a6149bd59860283b560994d122492d4b24c52e9f01ab6126fee372a3bf43637066#npm:8.14.2"]\
["ws", "virtual:552886b752de310ce54ce9fe76f5f504adf18fc8ec7c33962afaf94cac7fd12c596749c04ccf8740475eb03deab723875176f4c0ec75af813419d58b693916c7#npm:8.14.2"]\
],\
"linkType": "HARD"\
}]\
@ -1070,6 +1072,15 @@ const RAW_RUNTIME_STATE =
"linkType": "HARD"\
}]\
]],\
["is-plain-object", [\
["npm:5.0.0", {\
"packageLocation": "./.yarn/cache/is-plain-object-npm-5.0.0-285b70faa3-e32d27061e.zip/node_modules/is-plain-object/",\
"packageDependencies": [\
["is-plain-object", "npm:5.0.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["lodash", [\
["npm:4.17.21", {\
"packageLocation": "./.yarn/cache/lodash-npm-4.17.21-6382451519-c08619c038.zip/node_modules/lodash/",\
@ -1099,10 +1110,10 @@ const RAW_RUNTIME_STATE =
}]\
]],\
["magic-bytes.js", [\
["npm:1.8.0", {\
"packageLocation": "./.yarn/cache/magic-bytes.js-npm-1.8.0-995d257f15-781c932f64.zip/node_modules/magic-bytes.js/",\
["npm:1.5.0", {\
"packageLocation": "./.yarn/cache/magic-bytes.js-npm-1.5.0-ea66807a2e-ffb86aec8f.zip/node_modules/magic-bytes.js/",\
"packageDependencies": [\
["magic-bytes.js", "npm:1.8.0"]\
["magic-bytes.js", "npm:1.5.0"]\
],\
"linkType": "HARD"\
}]\
@ -1301,17 +1312,17 @@ const RAW_RUNTIME_STATE =
],\
"linkType": "HARD"\
}],\
["npm:4.0.2", {\
"packageLocation": "./.yarn/cache/pg-types-npm-4.0.2-771d83bf15-f4d529da86.zip/node_modules/pg-types/",\
["npm:4.0.1", {\
"packageLocation": "./.yarn/cache/pg-types-npm-4.0.1-8f922557d3-2c686ef361.zip/node_modules/pg-types/",\
"packageDependencies": [\
["pg-types", "npm:4.0.2"],\
["pg-types", "npm:4.0.1"],\
["pg-int8", "npm:1.0.1"],\
["pg-numeric", "npm:1.0.2"],\
["postgres-array", "npm:3.0.2"],\
["postgres-bytea", "npm:3.0.0"],\
["postgres-date", "npm:2.1.0"],\
["postgres-date", "npm:2.0.1"],\
["postgres-interval", "npm:3.0.0"],\
["postgres-range", "npm:1.1.4"]\
["postgres-range", "npm:1.1.3"]\
],\
"linkType": "HARD"\
}]\
@ -1376,10 +1387,10 @@ const RAW_RUNTIME_STATE =
],\
"linkType": "HARD"\
}],\
["npm:2.1.0", {\
"packageLocation": "./.yarn/cache/postgres-date-npm-2.1.0-710ac64466-faa1c70dfa.zip/node_modules/postgres-date/",\
["npm:2.0.1", {\
"packageLocation": "./.yarn/cache/postgres-date-npm-2.0.1-00e0e0bc9e-908eacec35.zip/node_modules/postgres-date/",\
"packageDependencies": [\
["postgres-date", "npm:2.1.0"]\
["postgres-date", "npm:2.0.1"]\
],\
"linkType": "HARD"\
}]\
@ -1402,10 +1413,10 @@ const RAW_RUNTIME_STATE =
}]\
]],\
["postgres-range", [\
["npm:1.1.4", {\
"packageLocation": "./.yarn/cache/postgres-range-npm-1.1.4-018d46d348-035759f17b.zip/node_modules/postgres-range/",\
["npm:1.1.3", {\
"packageLocation": "./.yarn/cache/postgres-range-npm-1.1.3-46f68e1a9e-356a46d97e.zip/node_modules/postgres-range/",\
"packageDependencies": [\
["postgres-range", "npm:1.1.4"]\
["postgres-range", "npm:1.1.3"]\
],\
"linkType": "HARD"\
}]\
@ -1512,10 +1523,10 @@ const RAW_RUNTIME_STATE =
}]\
]],\
["systeminformation", [\
["npm:5.21.25", {\
"packageLocation": "./.yarn/unplugged/systeminformation-npm-5.21.25-046c250fe0/node_modules/systeminformation/",\
["npm:5.21.24", {\
"packageLocation": "./.yarn/unplugged/systeminformation-npm-5.21.24-211bacc546/node_modules/systeminformation/",\
"packageDependencies": [\
["systeminformation", "npm:5.21.25"]\
["systeminformation", "npm:5.21.24"]\
],\
"linkType": "HARD"\
}]\
@ -1589,7 +1600,7 @@ const RAW_RUNTIME_STATE =
"packageLocation": "./.yarn/cache/undici-npm-5.27.2-141c109c0a-2bf96b102f.zip/node_modules/undici/",\
"packageDependencies": [\
["undici", "npm:5.27.2"],\
["@fastify/busboy", "npm:2.1.0"]\
["@fastify/busboy", "npm:2.0.0"]\
],\
"linkType": "HARD"\
}],\
@ -1597,7 +1608,7 @@ const RAW_RUNTIME_STATE =
"packageLocation": "./.yarn/cache/undici-npm-6.6.2-a0bd6785a6-e08ac9c279.zip/node_modules/undici/",\
"packageDependencies": [\
["undici", "npm:6.6.2"],\
["@fastify/busboy", "npm:2.1.0"]\
["@fastify/busboy", "npm:2.0.0"]\
],\
"linkType": "HARD"\
}]\
@ -1612,10 +1623,10 @@ const RAW_RUNTIME_STATE =
}]\
]],\
["universal-user-agent", [\
["npm:6.0.1", {\
"packageLocation": "./.yarn/cache/universal-user-agent-npm-6.0.1-0388aac597-fdc8e1ae48.zip/node_modules/universal-user-agent/",\
["npm:6.0.0", {\
"packageLocation": "./.yarn/cache/universal-user-agent-npm-6.0.0-b148fb997a-5092bbc80d.zip/node_modules/universal-user-agent/",\
"packageDependencies": [\
["universal-user-agent", "npm:6.0.1"]\
["universal-user-agent", "npm:6.0.0"]\
],\
"linkType": "HARD"\
}]\
@ -1650,7 +1661,7 @@ const RAW_RUNTIME_STATE =
"packageLocation": "./.yarn/cache/wkx-npm-0.5.0-fca5152cd8-b8975e33f9.zip/node_modules/wkx/",\
"packageDependencies": [\
["wkx", "npm:0.5.0"],\
["@types/node", "npm:20.11.19"]\
["@types/node", "npm:20.11.17"]\
],\
"linkType": "HARD"\
}]\
@ -1672,34 +1683,10 @@ const RAW_RUNTIME_STATE =
],\
"linkType": "SOFT"\
}],\
["npm:8.16.0", {\
"packageLocation": "./.yarn/cache/ws-npm-8.16.0-46943f6199-7c511c59e9.zip/node_modules/ws/",\
["virtual:552886b752de310ce54ce9fe76f5f504adf18fc8ec7c33962afaf94cac7fd12c596749c04ccf8740475eb03deab723875176f4c0ec75af813419d58b693916c7#npm:8.14.2", {\
"packageLocation": "./.yarn/__virtual__/ws-virtual-c9d0a10f0a/0/cache/ws-npm-8.14.2-b339ac47a2-815ff01d9b.zip/node_modules/ws/",\
"packageDependencies": [\
["ws", "npm:8.16.0"]\
],\
"linkType": "SOFT"\
}],\
["virtual:552886b752de310ce54ce9fe76f5f504adf18fc8ec7c33962afaf94cac7fd12c596749c04ccf8740475eb03deab723875176f4c0ec75af813419d58b693916c7#npm:8.16.0", {\
"packageLocation": "./.yarn/__virtual__/ws-virtual-f404185dbb/0/cache/ws-npm-8.16.0-46943f6199-7c511c59e9.zip/node_modules/ws/",\
"packageDependencies": [\
["ws", "virtual:552886b752de310ce54ce9fe76f5f504adf18fc8ec7c33962afaf94cac7fd12c596749c04ccf8740475eb03deab723875176f4c0ec75af813419d58b693916c7#npm:8.16.0"],\
["@types/bufferutil", null],\
["@types/utf-8-validate", null],\
["bufferutil", null],\
["utf-8-validate", null]\
],\
"packagePeers": [\
"@types/bufferutil",\
"@types/utf-8-validate",\
"bufferutil",\
"utf-8-validate"\
],\
"linkType": "HARD"\
}],\
["virtual:7feafdd094ad6275283a846734a985b328f6276c572be699c3cd222f225950a6149bd59860283b560994d122492d4b24c52e9f01ab6126fee372a3bf43637066#npm:8.14.2", {\
"packageLocation": "./.yarn/__virtual__/ws-virtual-7b988da0bc/0/cache/ws-npm-8.14.2-b339ac47a2-815ff01d9b.zip/node_modules/ws/",\
"packageDependencies": [\
["ws", "virtual:7feafdd094ad6275283a846734a985b328f6276c572be699c3cd222f225950a6149bd59860283b560994d122492d4b24c52e9f01ab6126fee372a3bf43637066#npm:8.14.2"],\
["ws", "virtual:552886b752de310ce54ce9fe76f5f504adf18fc8ec7c33962afaf94cac7fd12c596749c04ccf8740475eb03deab723875176f4c0ec75af813419d58b693916c7#npm:8.14.2"],\
["@types/bufferutil", null],\
["@types/utf-8-validate", null],\
["bufferutil", null],\

View File

@ -7,7 +7,7 @@ services:
- 6379:6379/tcp
db:
container_name: postgres-master
image: postgres:16.2-alpine3.19
image: postgres:16.1-alpine3.19
restart: unless-stopped
ports:
- 5432:5432/tcp

View File

@ -47,12 +47,12 @@
"postgres-array": "3.0.2",
"redis": "4.6.13",
"simple-git": "3.22.0",
"systeminformation": "5.21.25",
"systeminformation": "5.21.24",
"undici": "6.6.2"
},
"devDependencies": {
"@types/ms": "0.7.34",
"@types/node": "20.11.19",
"@types/node": "20.11.17",
"@types/node-cron": "3.0.11",
"@types/pg": "8.11.0",
"typescript": "5.3.3"

View File

@ -8,7 +8,7 @@ services:
- 6379:6379/tcp
db-slave:
container_name: postgres-slave
image: postgres:16.2-alpine3.19
image: postgres:16.1-alpine3.19
restart: unless-stopped
ports:
- 5432:5432/tcp

View File

@ -43,7 +43,6 @@ export default class TClient extends Discord.Client {
public ytChannels: YouTubeChannelsSvc = new YouTubeChannelsSvc();
public repeatedMessages: IRepeatedMessages = {};
public crosspostSpam: ICrosspostSpam = {};
public memberJoinDates: Map<Discord.Snowflake, string> = new Map();
constructor() {
super({
@ -52,11 +51,9 @@ export default class TClient extends Discord.Client {
Discord.GatewayIntentBits.GuildModeration, Discord.GatewayIntentBits.GuildInvites,
Discord.GatewayIntentBits.GuildPresences, Discord.GatewayIntentBits.MessageContent,
Discord.GatewayIntentBits.GuildMessages, Discord.GatewayIntentBits.DirectMessages
],
partials: [
Discord.Partials.Message
],
allowedMentions: {users:[], roles:[]}
], partials: [
Discord.Partials.Channel, Discord.Partials.Message
], allowedMentions: {users:[], roles:[]}
})
this.config = ConfigHelper.loadConfig() as Config;
this.setMaxListeners(50);

View File

@ -3,7 +3,7 @@ import TClient from '../client.js';
import MessageTool from '../helpers/MessageTool.js';
export default class InviteInfo {
static async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
await client.fetchInvite(interaction.options.getString('code',true).replace(/(https:\/\/)/g,'')).then(async inviteData=>
await client.fetchInvite(interaction.options.getString('code',true).replace(/(https:\/\/|discord.gg\/)/g,'')).then(async inviteData=>
await interaction.reply({embeds:[new client.embed()
.setColor(client.config.embedColor).setURL(`https://discord.gg/${inviteData.code}`).setTitle(inviteData.guild.name).setDescription(MessageTool.concatMessage(
`ID: \`${inviteData.guild.id}\``,

View File

@ -1,7 +1,7 @@
import Discord from 'discord.js';
import TClient from '../client.js';
import Logger from '../helpers/Logger.js';
import CanvasBuilder from '../components/CanvasBuilder.js';
import CanvasBuilder from '../components/CanvasGraph.js';
import RanIntoHumor from '../helpers/RanIntoHumor.js';
import MessageTool from '../helpers/MessageTool.js';
import PalletLibrary from '../helpers/PalletLibrary.js';
@ -9,14 +9,10 @@ import {FSData} from 'src/interfaces';
import {requestServerData, mpModuleDisabled, refreshTimerSecs, playtimeStat} from '../modules/MPModule.js';
async function fetchData(client:TClient, interaction:Discord.ChatInputCommandInteraction, serverName:string):Promise<FSData|Discord.InteractionResponse> {
try {
const db = await client.MPServer.findInCache();
const data = await requestServerData(client, db.find(x=>x.serverName === serverName));
if (!data) return interaction.reply('Ran into a '+RanIntoHumor+' while trying to retrieve server data, please try again later.');
return data.dss as FSData;
} catch {
Logger.console('error', 'MPDB', 'Function failed - fetchData');
return interaction.reply('Ran into a '+RanIntoHumor()+' while trying to retrieve server data, please try again later.');
}
}
const logPrefix = 'MPDB';
@ -43,13 +39,11 @@ export default class MP {
if (!DSS) return console.log('Endpoint failed - players');
const PDArr = await client.MPServer.fetchPlayerData(choiceSelector);
const canvas = await CanvasBuilder.generateGraph(PDArr.slice(-120), 'players');
const canvas = await new CanvasBuilder().generateGraph(PDArr.slice(-120), 'players');
const players:string[] = [];
let embedColor:Discord.ColorResolvable;
try {
switch (true){
case DSS?.slots?.used === DSS?.slots?.capacity:
case DSS?.slots?.used === DSS?.slots.capacity:
embedColor = client.config.embedColorRed;
break;
case DSS?.slots?.used > 8:
@ -59,17 +53,16 @@ export default class MP {
embedColor = client.config.embedColorGreen;
}
for (const player of DSS.slots.players.filter(x=>x.isUsed)) players.push(playtimeStat(player))
let attachmentName:string = 'MPModule.jpg';
let attachmentName:string = 'MPModule.jpg';
await interaction.reply({embeds:[new client.embed()
.setTitle(DSS.server?.name.length > 0 ? DSS.server.name : 'Offline')
.setColor(embedColor)
.setDescription(DSS?.slots?.used < 1 ? '*Nobody is playing*' : players.join('\n\n'))
.setImage(`attachment://${attachmentName}`)
.setAuthor({name: `${DSS.slots?.used}/${DSS.slots?.capacity}`})
.setAuthor({name: `${DSS.slots.used}/${DSS.slots.capacity}`})
.setFooter({text: `Current time: ${('0'+Math.floor((DSS?.server.dayTime/3600/1000))).slice(-2)}:${('0'+Math.floor((DSS?.server.dayTime/60/1000)%60)).slice(-2)}`})
], files: [new client.attachment(canvas.toBuffer('image/jpeg'), {name: attachmentName})]});
} catch {}
], files: [new client.attachment(canvas.toBuffer('image/jpeg'), {name: attachmentName})]})
},
details: async()=>{
const DSS = await fetchData(client, interaction, choiceSelector) as FSData;
@ -78,25 +71,26 @@ export default class MP {
const server = db.find(x=>x.serverName === choiceSelector);
const dEmbed = new client.embed().setColor(client.config.embedColor).setAuthor({name: 'Crossplay server'}).setDescription(MessageTool.concatMessage(
`**Name:** \`${DSS.server?.name.length > 0 ? DSS.server.name : '\u200b'}\``,
`**Name:** \`${DSS?.server.name.length > 0 ? DSS.server.name : '\u200b'}\``,
'**Password:** `mf4700`',
`**Map:** \`${DSS.server?.mapName.length > 0 ? DSS.server.mapName : 'No map'}\``,
`**Map:** \`${DSS.server.mapName.length > 0 ? DSS.server.mapName : 'No map'}\``,
`**Mods:** [Click here](http://${server.ip}/mods.html) **|** [Direct link](http://${server.ip}/all_mods_download?onlyActive=true)`,
'**Filters:** [Click here](https://discord.com/channels/468835415093411861/468835769092669461/926581585938120724)',
`Please see <#${channels.serverInfo}> for more additional information and rules.`
));
if (DSS.server?.name.length < 1) dEmbed.setFooter({text: 'Server is currently offline'});
DSS.server ? await interaction.reply({embeds: [dEmbed]}) : null;
if (DSS.server.name.length < 1) dEmbed.setFooter({text: 'Server is currently offline'});
await interaction.reply({embeds: [dEmbed]})
},
status: async()=>{
const DSS = await fetchData(client, interaction, choiceSelector) as FSData;
if (!DSS) return console.log('Endpoint failed - status');
DSS.server ? await interaction.reply({embeds: [new client.embed().setColor(client.config.embedColor).addFields(
{name: 'Name', value: DSS.server?.name?.length < 1 ? '*`Offline`*' : `\`${DSS?.server?.name}\``},
{name: 'Players', value: `${DSS?.slots.used}/${DSS?.slots.capacity}`},
if (DSS.server.name.length > 0) {
await interaction.reply({embeds: [new client.embed().setColor(client.config.embedColor).addFields(
{name: 'Name', value: `\`${DSS?.server.name}\``},
{name: 'Players', value: `${DSS.slots.used}/${DSS.slots.capacity}`},
{name: 'Map', value: DSS?.server.mapName}
).setFooter({text: `Version: ${DSS?.server?.version} | Time: ${`${('0'+Math.floor((DSS?.server.dayTime/3600/1000))).slice(-2)}:${('0'+Math.floor((DSS?.server.dayTime/60/1000)%60)).slice(-2)}`}`})]}) : null
).setFooter({text: `Version: ${DSS?.server.version} | Time: ${`${('0'+Math.floor((DSS?.server.dayTime/3600/1000))).slice(-2)}:${('0'+Math.floor((DSS?.server.dayTime/60/1000)%60)).slice(-2)}`}`})]})
} else return interaction.reply('Server is currently offline.')
},
pallets: async()=>{
const DSS = await fetchData(client, interaction, choiceSelector) as FSData;
@ -120,12 +114,16 @@ export default class MP {
const reason = interaction.options.getString('reason');
const channel = interaction.guild.channels.cache.get(channels.activePlayers) as Discord.TextChannel;
const embed = new client.embed().setColor(client.config.embedColor).setAuthor({name: interaction.member.displayName, iconURL: interaction.member.displayAvatarURL({size:1024})}).setTimestamp();
const isLocked = channel.permissionsFor(interaction.guildId).has('SendMessages');
const titleAction = isLocked ? '🔒 Locked' : '🔓 Unlocked';
channel.permissionOverwrites.edit(interaction.guildId, {SendMessages: !isLocked}, {type: 0, reason: `${isLocked ? 'Locked' : 'Unlocked'} by ${interaction.member.displayName}`});
channel.send({embeds: [embed.setTitle(titleAction).setDescription(`**Reason:**\n${reason}`)]});
interaction.reply({content: `${MessageTool.formatMention(channels.activePlayers, 'channel')} ${isLocked ? 'locked' : 'unlocked'} successfully`, ephemeral: true});
if (channel.permissionsFor(interaction.guildId).has('SendMessages')) {
channel.permissionOverwrites.edit(interaction.guildId, {SendMessages: false}, {type: 0, reason: `Locked by ${interaction.member.displayName}`});
channel.send({embeds: [embed.setTitle('🔒 Locked').setDescription(`**Reason:**\n${reason}`)]});
interaction.reply({content: `${MessageTool.formatMention(channels.activePlayers, 'channel')} locked successfully`, ephemeral: true});
} else {
channel.permissionOverwrites.edit(interaction.guildId, {SendMessages: true}, {type: 0, reason: `Unlocked by ${interaction.member.displayName}`});
channel.send({embeds: [embed.setTitle('🔓 Unlocked').setDescription(`**Reason:**\n${reason}`)]});
interaction.reply({content: `${MessageTool.formatMention(channels.activePlayers, 'channel')} unlocked successfully`, ephemeral: true});
}
},
start: async()=>{
if (client.config.dcServer.id === interaction.guildId) {

View File

@ -3,7 +3,7 @@ import Discord from 'discord.js';
import TClient from '../client.js';
import Formatters from '../helpers/Formatters.js';
import MessageTool from '../helpers/MessageTool.js';
import CanvasBuilder from '../components/CanvasBuilder.js';
import CanvasBuilder from '../components/CanvasGraph.js';
export default class Rank {
static async run(client: TClient, interaction: Discord.ChatInputCommandInteraction<'cached'>){
if (interaction.guildId !== client.config.dcServer.id) return interaction.reply({content: 'This command doesn\'t work in this server.', ephemeral: true});
@ -32,7 +32,7 @@ export default class Rank {
});
if (data.length < 2) return interaction.reply('Not enough data to generate graph.');
const graph = await CanvasBuilder.generateGraph(data, 'leaderboard');
const graph = await new CanvasBuilder().generateGraph(data, 'leaderboard');
interaction.reply({
embeds: [new client.embed().setColor(client.config.embedColor).setTitle('Leaderboard')
.setDescription(MessageTool.concatMessage(

View File

@ -28,23 +28,22 @@ export default class Statistics {
const nameLen = Math.max(...cmdUses.map(x=>x.command.data.name.length), col[0].length) + 2;
const usesLen = Math.max(...cmdUses.map(x=>x.uses.toString().length), col[1].length) + 1;
const rows = [`${col[0].padEnd(nameLen)}${col[1].padStart(usesLen)}\n`, '.repeat(nameLen + usesLen) + '\n'];
const rows = [`${col[0] + ' '.repeat(nameLen-col[0].length)}|${' '.repeat(usesLen-col[1].length) + col[1]}\n`, '-'.repeat(nameLen) + '-'.repeat(usesLen) + '\n'];
cmdUses.forEach(cmd=>{
const name = cmd.command.data.name;
const uses = cmd.uses.toString();
rows.push(`${name.padEnd(nameLen)}${uses.padStart(usesLen)}\n`);
rows.push(`${name+' '.repeat(nameLen-name.length)}${' '.repeat(usesLen-uses.length)+uses}\n`);
});
const fieldChunks = [];
if (rows.join('').length > 1024) {
let field = '';
rows.forEach(r=>{
if (field.length+r.length > 1024) {
fieldChunks.push(field);
embed.addFields({name: '\u200b', value: `\`\`\`\n${field}\`\`\``});
field = r;
} else field += r;
}
});
fieldChunks.push(field);
fieldChunks.forEach(field=>embed.addFields({name: '\u200b', value: `\`\`\`\n${field}\`\`\``}));
embed.addFields({name: '\u200b', value: `\`\`\`\n${field}\`\`\``});
} else embed.addFields({name: '\u200b', value: `\`\`\`\n${rows.join('')}\`\`\``});
const pkg = JSON.parse(readFileSync('package.json', 'utf8'));
embed.addFields(

View File

@ -2,10 +2,10 @@ import {createCanvas, Canvas, SKRSContext2D} from '@napi-rs/canvas';
import {Config} from 'src/interfaces';
import ConfigHelper from '../helpers/ConfigHelper.js';
export default class CanvasBuilder {
private static readonly canvas: Canvas = createCanvas(1500, 750);
private static readonly ctx: SKRSContext2D = this.canvas.getContext('2d');
private static readonly config: Config = ConfigHelper.readConfig();
private static readonly palette = {
private readonly canvas: Canvas;
private readonly ctx: SKRSContext2D;
private readonly config: Config;
private readonly palette = {
// Color palette for the graph -- The variables are named exactly what it shows in graph to make it easier to be referenced to.
oddHorizontal: '#555B63',
evenHorizontal: '#3E4245',
@ -16,7 +16,13 @@ export default class CanvasBuilder {
greenLine: '#57F287'
};
public static async generateGraph(data:number[], type:'players'|'leaderboard'):Promise<Canvas> {
constructor() {
this.canvas = createCanvas(1500, 750);
this.ctx = this.canvas.getContext('2d');
this.config = ConfigHelper.readConfig() as Config;
}
public async generateGraph(data:number[], type:'players'|'leaderboard'):Promise<Canvas> {
// Handle negative
for (const [i, change] of data.entries()) if (change < 0) data[i] = data[i - 1] || data[i + 1] || 0;

View File

@ -6,17 +6,14 @@ export default class GuildBanAdd {
const banLog = (await member.guild.fetchAuditLogs({ limit: 1, type: Discord.AuditLogEvent.MemberBanAdd })).entries.first();
if (!banLog) return console.log(`Member was banned from ${member.guild.name} but no audit log for this member.`)
const {executor, target, reason } = banLog;
const members_joindate = client.memberJoinDates.get(member.user.id);
if (target.id === member.user.id) {
const embed = new client.embed().setColor(client.config.embedColorRed).setTimestamp().setThumbnail(member.user.displayAvatarURL({size: 2048}))
.setTitle(`Member Banned: ${target.username}`).addFields(
{name: '🔹 Moderator', value: `<@${executor.id}>\n\`${executor.id}\``},
{name: '🔹 Server Join Date', value: members_joindate ? `<t:${members_joindate}>\n<t:${members_joindate}:R>` : '*Unknown timestamp*'},
{name: '🔹 Reason', value: reason === null ? 'Reason unspecified': reason}
);
if (!await client.userLevels.fetchUser(member.user.id)) embed.setFooter({text: 'Rank data has been wiped.'});
(client.channels.resolve(client.config.dcServer.channels.logs) as Discord.TextChannel).send({embeds: [embed]});
client.memberJoinDates.delete(member.user.id);
(client.channels.resolve(client.config.dcServer.channels.logs) as Discord.TextChannel).send({embeds: [embed]})
} else console.log(`User was banned from "${member.guild.name}" but no audit log could be fetched.`)
}
}

View File

@ -4,8 +4,10 @@ export default class GuildMemberRemove {
static async run(client:TClient, member:Discord.GuildMember) {
if (!client.config.botSwitches.logs) return;
if (!member.joinedTimestamp || member.guild?.id != client.config.dcServer.id) return;
client.memberJoinDates.set(member.user.id, `${Math.round(member.joinedTimestamp/1000)}`);
if (client.guilds.cache.get(client.config.dcServer.id).bans.cache.has(member.id)) return await client.userLevels.deleteUser(member.id);
if (client.guilds.cache.get(client.config.dcServer.id).bans.cache.has(member.id)) {
(client.channels.resolve(client.config.dcServer.channels.logs) as Discord.TextChannel).send(`**${member.user.username}**'s join date is <t:${Math.round(member.joinedTimestamp/1000)}>`)
return await client.userLevels.deleteUser(member.id);
};
let isBot = 'Bot';
if (!member.user.bot) isBot = 'Member';
const levelData = await client.userLevels.fetchUser(member.id);

View File

@ -13,7 +13,7 @@ export default class MessageCreate {
if (!message.inGuild()) return (client.channels.resolve(client.config.dcServer.channels.logs) as Discord.TextChannel).send({content: `${this.randomEmotes[Math.floor(Math.random()*this.randomEmotes.length)]} ${MessageTool.formatMention(client.config.whitelist[0], 'user')}\n**${message.author.username}** (\`${message.author.id}\`) sent me a DM, their message is:\`\`\`${message.content}\`\`\``, allowedMentions: {parse: ['users']}});
let automodded: boolean;
if (client.config.botSwitches.automod && !message.member?.roles.cache.has(client.config.dcServer.roles.dcmod) && !message.member?.roles.cache.has(client.config.dcServer.roles.admin) && message.guildId === client.config.dcServer.id) {
if (client.config.botSwitches.automod && !message.member.roles.cache.has(client.config.dcServer.roles.dcmod) && !message.member.roles.cache.has(client.config.dcServer.roles.admin) && message.guildId === client.config.dcServer.id) {
const automodFailReason = 'msg got possibly deleted by another bot.';
const automodRules = {
phishingDetection: {
@ -76,9 +76,10 @@ export default class MessageCreate {
guildBoost: ['Thanks for boosting our server!', 'Thanks for the boost!', 'We appreciate the boost!', `Thank you for the kind boost, <@${message.author.id}>!`],
}
const GeneralChatID = ConfigHelper.isDevMode() ? '929807948748832801' : '468835415093411863';
const times_of_day = ['morning', 'afternoon', 'evening', 'night'];
for (let i = 0; i < times_of_day.length; i++) Response.create(message, GeneralChatID, times_of_day[i]);
Response.create(message, GeneralChatID, 'morning');
Response.create(message, GeneralChatID, 'afternoon');
Response.create(message, GeneralChatID, 'evening');
Response.create(message, GeneralChatID, 'night');
CmdTrigger.registerCmds(client, message, 'register');
CmdTrigger.MFPwTrigger(message, 'farmpw');

View File

@ -3,7 +3,7 @@ import TClient from '../client.js';
import Logger from '../helpers/Logger.js';
import {disabledChannels} from '../index.js';
export default class MessageDelete {
static run(client:TClient, msg:Discord.Message|Discord.PartialMessage){
static run(client:TClient, msg:Discord.Message){
if (!client.config.botSwitches.logs) return;
if (msg.guild?.id != client.config.dcServer.id || msg.partial || msg.author.bot || disabledChannels.includes(msg.channelId)) return;
if (Discord.DiscordAPIError.name === '10008') return Logger.console('log', 'MsgDelete', 'Caught an unexpected error returned by Discord API. (Unknown Message)');

View File

@ -1,7 +1,7 @@
import Discord from 'discord.js';
import TClient from '../client.js';
export default class MessageDeleteBulk {
static run(client:TClient, messages:Discord.Collection<string, Discord.Message<boolean>|Discord.PartialMessage>, channel:Discord.GuildTextBasedChannel){
static run(client:TClient, messages:Discord.Collection<string, Discord.Message<boolean>>, channel:Discord.GuildTextBasedChannel){
if (!client.config.botSwitches.logs || channel.guildId != client.config.dcServer.id) return;
if (messages.some(msg=>{
msg.author?.username === undefined ?? null;

View File

@ -3,9 +3,9 @@ import TClient from '../client.js';
import MessageTool from '../helpers/MessageTool.js';
import {disabledChannels, rawSwitches} from '../index.js';
export default class MessageUpdate {
static async run(client:TClient, oldMsg:Discord.Message|Discord.PartialMessage, newMsg:Discord.Message){
static async run(client:TClient, oldMsg:Discord.Message, newMsg:Discord.Message){
if (!client.config.botSwitches.logs) return;
if (oldMsg.guild?.id != client.config.dcServer.id || oldMsg.author === null || oldMsg?.author.bot || newMsg.partial || !newMsg.member || disabledChannels.includes(newMsg.channelId)) return;
if (oldMsg.guild?.id != client.config.dcServer.id || oldMsg.author === null || oldMsg?.author.bot || oldMsg.partial || newMsg.partial || !newMsg.member || disabledChannels.includes(newMsg.channelId)) return;
if (await client.prohibitedWords.findWord(newMsg.content.toLowerCase().replaceAll(/[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?\n?0-9]|[]|ing\b/g, '').split(' ').join('')) && (!MessageTool.isStaff(newMsg.member))) newMsg.delete();
if (!rawSwitches.MESSAGE_UPDATE || (rawSwitches.MESSAGE_UPDATE && newMsg.content !== oldMsg.content)) {
rawSwitches.MESSAGE_UPDATE = true;

View File

@ -1,17 +1,18 @@
import Discord from 'discord.js';
import ConfigHelper from './ConfigHelper.js';
const config = ConfigHelper.readConfig();
type RoleKeys = keyof typeof config.dcServer.roles;
export default class MessageTool {
public static embedStruct(color:Discord.ColorResolvable, title:string, description?:string|null, image?:string|null) {
static embedStruct(color:Discord.ColorResolvable, title:string, description?:string|null, image?:string|null) {
const embed = new Discord.EmbedBuilder().setColor(color).setTitle(title);
if (description) embed.setDescription(description);
if (image) embed.setImage(image);
return embed
}
public static concatMessage =(...messages:string[])=>messages.join('\n');
public static formatMention =(mention:string, type:'user'|'channel'|'role')=>`<${type === 'role' ? '@&' : type === 'channel' ? '#' : '@'}${mention}>`;
public static isStaff =(guildMember:Discord.GuildMember)=>config.dcServer.staffRoles.map((x:string)=>config.dcServer.roles[x]).some((x:string)=>guildMember.roles.cache.has(x));
public static youNeedRole =(interaction:Discord.CommandInteraction, role:keyof typeof config.dcServer.roles)=>interaction.reply(`You do not have ${this.formatMention(config.dcServer.roles[role], 'role')} role to use this command.`);
public static isModerator =(guildMember:Discord.GuildMember)=>config.dcServer.staffRoles.filter((x:string)=>/^admin|^dcmod/.test(x)).map((x:string)=>config.dcServer.roles[x]).some((x:string)=>guildMember.roles.cache.has(x));
static concatMessage =(...messages:string[])=>messages.join('\n');
static formatMention =(mention:string, type:'user'|'channel'|'role')=>`<${type === 'role' ? '@&' : type === 'channel' ? '#' : '@'}${mention}>`;
static isStaff =(guildMember:Discord.GuildMember)=>config.dcServer.staffRoles.map((x:string)=>config.dcServer.roles[x]).some((x:string)=>guildMember.roles.cache.has(x));
static youNeedRole =(interaction:Discord.CommandInteraction, role:RoleKeys)=>interaction.reply(`You do not have ${this.formatMention(config.dcServer.roles[role], 'role')} role to use this command.`);
static isModerator =(guildMember:Discord.GuildMember)=>config.dcServer.staffRoles.filter((x:string)=>/^admin|^dcmod/.test(x)).map((x:string)=>config.dcServer.roles[x]).some((x:string)=>guildMember.roles.cache.has(x));
}

View File

@ -9,13 +9,27 @@ import MPModule, {refreshTimerSecs} from './modules/MPModule.js';
import UsernameHelper from './helpers/UsernameHelper.js';
import {Punishment, RawGatewayPacket, RawMessageDelete, RawMessageUpdate} from 'src/interfaces';
import {readFileSync} from 'node:fs';
import {execSync} from 'node:child_process';
export const disabledChannels = ['548032776830582794', '541677709487505408', '949380187668242483'];
// Error handler
function _(error:Error, type:string) {
if (JSON.parse(readFileSync('src/errorBlocklist.json', 'utf8')).includes(error.message)) return;
console.error(error);
(client.channels.resolve(client.config.dcServer.channels.errors) as Discord.TextChannel | null)?.send({embeds: [new client.embed().setColor('#560000').setTitle('Error caught!').setFooter({text: `Error type: ${type}`}).setDescription(`**Error:**\n\`\`\`${error.message}\`\`\`**Stack:**\n\`\`\`${`${UsernameHelper(error.stack)}`.slice(0, 2500)}\`\`\``)]});
(client.channels.resolve(client.config.dcServer.channels.errors) as Discord.TextChannel | null)?.send({embeds: [new client.embed().setColor('#560000').setTitle('Error caught!').setFooter({text: `Error type: ${type}`}).setDescription(`**Error:**\n\`\`\`${error.message}\`\`\`**Stack:**\n\`\`\`${`${UsernameHelper(error.stack)}`.slice(0, 2500)}\`\`\``)]})
if (error.message.includes('could not fdatasync file')) {
client.users.createDM(client.config.whitelist[1]).then(u=>u.send({
embeds: [new client.embed()
.setColor(client.config.embedColorYellow)
.setTitle('Database error')
.setDescription('I couldn\'t write to the database due to filesystem issues, shutting down...')
.setFields({name: 'Error message', value: `\`\`\`${error.message}\`\`\``})
.setFooter({text: `Error type: ${type}`})
]
}));
setTimeout(()=>execSync('pm2 stop 0', {shell: 'bash'}), 5500);
}
}
process.on('unhandledRejection', (error: Error)=>_(error, 'unhandledRejection'));
process.on('uncaughtException', (error: Error)=>_(error, 'uncaughtException'));
@ -92,15 +106,24 @@ client.on('raw', async (packet:RawGatewayPacket<RawMessageUpdate>)=>{
if (typeof packet.d.content === 'undefined') return;
const channel = client.channels.cache.get(packet.d.channel_id) as Discord.TextBasedChannel;
const message = await channel.messages.fetch(packet.d.id);
const old_message = await channel.messages.fetch(packet.d.id);
const new_message = await channel.messages.fetch(packet.d.id);
client.emit('messageUpdate', message, message);
client.emit('messageUpdate', old_message, new_message);
});
client.on('raw', async (packet:RawGatewayPacket<RawMessageDelete>)=>{
if (rawSwitches[packet.t]) return;
if (packet.t !== 'MESSAGE_DELETE' || packet.d.guild_id != client.config.dcServer.id || disabledChannels.includes(packet.d.channel_id)) return;
Logger.console('log', 'RawEvent:Del', `Message was deleted in #${(client.channels.resolve(packet.d.channel_id) as Discord.TextChannel).name}`);
(client.channels.resolve(client.config.dcServer.channels.logs) as Discord.TextChannel).send({
embeds: [new client.embed()
.setColor(client.config.embedColorRed)
.setTitle('Message deleted')
.addFields(
{name: 'This was received over raw API event', value: '\u200b'},
{name: 'Channel', value: `<#${packet.d.channel_id}>`},
).setTimestamp()
]
});
rawSwitches[packet.t] = true;
});

View File

@ -2,6 +2,6 @@
docker compose -f docker-compose.bot.yml down && \
docker compose -f docker-compose.bot.yml build && \
docker compose -f docker-compose.bot.yml up -d
docker compose -f docker-compose.bot.yml up -d --remove-orphans
exit 0

220
yarn.lock
View File

@ -44,8 +44,8 @@ __metadata:
linkType: hard
"@discordjs/rest@npm:^2.1.0":
version: 2.2.0
resolution: "@discordjs/rest@npm:2.2.0"
version: 2.1.0
resolution: "@discordjs/rest@npm:2.1.0"
dependencies:
"@discordjs/collection": "npm:^2.0.0"
"@discordjs/util": "npm:^1.0.2"
@ -56,7 +56,7 @@ __metadata:
magic-bytes.js: "npm:^1.5.0"
tslib: "npm:^2.6.2"
undici: "npm:5.27.2"
checksum: 10/213245a3137b6cf1636d904fd105300df9b0e352c28f0e96323046dd8c62da59f4d60503e82b8a500bc07398054f2f479bff5c99d2fa66cf1cef77f4a98e0f98
checksum: 10/3e3fbdaac6ef5f614e3d4213244ae4e293c456dc1c5d4d3d41cd67c33ce32907dc6c54a4d0c89bccd3e910dbf348e7b75b177deea24386208523d9f2498376cf
languageName: node
linkType: hard
@ -85,9 +85,9 @@ __metadata:
linkType: hard
"@fastify/busboy@npm:^2.0.0":
version: 2.1.0
resolution: "@fastify/busboy@npm:2.1.0"
checksum: 10/f22c1e5c52dc350ddf9ba8be9f87b48d3ea5af00a37fd0a0d1e3e4b37f94d96763e514c68a350c7f570260fdd2f08b55ee090cdd879f92a03249eb0e3fd19113
version: 2.0.0
resolution: "@fastify/busboy@npm:2.0.0"
checksum: 10/6a2366d06b82aac1069b8323792f76f7a8fca02533cb3745fcd218d8f0f953dc4dbef057287237414658cd43f8dede0846ef33398999e3dbe54ddaeefec71c0a
languageName: node
linkType: hard
@ -241,56 +241,64 @@ __metadata:
linkType: hard
"@octokit/core@npm:^5.0.0":
version: 5.1.0
resolution: "@octokit/core@npm:5.1.0"
version: 5.0.0
resolution: "@octokit/core@npm:5.0.0"
dependencies:
"@octokit/auth-token": "npm:^4.0.0"
"@octokit/graphql": "npm:^7.0.0"
"@octokit/request": "npm:^8.0.2"
"@octokit/request-error": "npm:^5.0.0"
"@octokit/types": "npm:^12.0.0"
"@octokit/types": "npm:^11.0.0"
before-after-hook: "npm:^2.2.0"
universal-user-agent: "npm:^6.0.0"
checksum: 10/8062e86a3088f24a691b36d2c3e9f33e864cefcb5f544b0633650358bce280708b111551cbe855ecf6a5190d6fc4fec1220117c329a2c27525940dd97b868614
checksum: 10/e12bec95c7fc2d286774c8749a67c46a6256ff95a8235294084dccc5a37418911ce7ee2cd72071cf5b333cf2148b0e480665fe09c1b5ba93299408ff3b821e43
languageName: node
linkType: hard
"@octokit/endpoint@npm:^9.0.0":
version: 9.0.4
resolution: "@octokit/endpoint@npm:9.0.4"
version: 9.0.0
resolution: "@octokit/endpoint@npm:9.0.0"
dependencies:
"@octokit/types": "npm:^12.0.0"
"@octokit/types": "npm:^11.0.0"
is-plain-object: "npm:^5.0.0"
universal-user-agent: "npm:^6.0.0"
checksum: 10/7df35c96f2b5628fe5b3f44a72614be9b439779c06b4dd1bb72283b3cb2ea53e59e1f9a108798efe5404b6856f4380a4c5be12d93255d854f0683cd6e22f3a27
checksum: 10/ec160fe1a0d5244ef380b1f4fce9586bcf82ee5f24f92f128aec898255eb148620f5622fcd0dc876678b0f84dc8e7210469108afc150c0080916b7c16fbfe49e
languageName: node
linkType: hard
"@octokit/graphql@npm:^7.0.0":
version: 7.0.2
resolution: "@octokit/graphql@npm:7.0.2"
version: 7.0.1
resolution: "@octokit/graphql@npm:7.0.1"
dependencies:
"@octokit/request": "npm:^8.0.1"
"@octokit/types": "npm:^12.0.0"
"@octokit/types": "npm:^11.0.0"
universal-user-agent: "npm:^6.0.0"
checksum: 10/f5dcc51fed5304f65dab83fcea4c2a569107d3b71e8d084199dc44f0d0cfc852c9e1f341b06ae66601f9da4af3aad416b0c62dcd0567ac7568f072d8d90d502e
checksum: 10/1c62aa5cfa71bcc5f3bc6159aaa0b26af84cfe2c0eca6edbf60ea9b49df95eaa24e7be4a60d7f85de6b9f6859345c9e3a3296ff45d6e817cf604a4028eb5d44d
languageName: node
linkType: hard
"@octokit/openapi-types@npm:^19.1.0":
version: 19.1.0
resolution: "@octokit/openapi-types@npm:19.1.0"
checksum: 10/3abedc09baa91bb4de00a2b82bf519401c2b6388913b7caa98541002c9e9612eba8256926323b1e40782ac700309a3373bb8c13520af325cef1accc40cb4566b
"@octokit/openapi-types@npm:^18.0.0":
version: 18.0.0
resolution: "@octokit/openapi-types@npm:18.0.0"
checksum: 10/5d4aa6abab9b67585bc8496afca4c6377ea1ffccfa17acacd325cefb5fd825799e1d292b498b34023093088b65571c201f4f7e3ba1d3248352f247a1801f6570
languageName: node
linkType: hard
"@octokit/openapi-types@npm:^19.0.0":
version: 19.0.0
resolution: "@octokit/openapi-types@npm:19.0.0"
checksum: 10/87962fee2e9981d3e81c6786a6c0663095cde1cf7e5ef7d3fa5f6fa89f9b625f70cdf99d3dedcb0755b66926c3521a9e4c8ac9ece4fcf29a04820adba7325099
languageName: node
linkType: hard
"@octokit/plugin-paginate-rest@npm:^9.0.0":
version: 9.1.5
resolution: "@octokit/plugin-paginate-rest@npm:9.1.5"
version: 9.0.0
resolution: "@octokit/plugin-paginate-rest@npm:9.0.0"
dependencies:
"@octokit/types": "npm:^12.4.0"
"@octokit/types": "npm:^12.0.0"
peerDependencies:
"@octokit/core": ">=5"
checksum: 10/5f1793ebebc9e2feaf8574beb2308b6fe9d0fec69d3fc3c93ed7ce8083d34e7ae7452121bd88b27e9ba91da29d648f8ffbf19d6f02787f8273a8bb0e3fbc2b9f
checksum: 10/1fcf2358d260f91ac995ceec725584fadda3a17cd895459942c78aa69c43969d1bb79e80b1cce80870dc28d018f1eaa39aeb1d4f1076e90b8b65378675fa9e02
languageName: node
linkType: hard
@ -304,36 +312,37 @@ __metadata:
linkType: hard
"@octokit/plugin-rest-endpoint-methods@npm:^10.0.0":
version: 10.3.0
resolution: "@octokit/plugin-rest-endpoint-methods@npm:10.3.0"
version: 10.0.0
resolution: "@octokit/plugin-rest-endpoint-methods@npm:10.0.0"
dependencies:
"@octokit/types": "npm:^12.4.0"
"@octokit/types": "npm:^12.0.0"
peerDependencies:
"@octokit/core": ">=5"
checksum: 10/be202aca31a513e9e06eda680ae761d05a944a2900523c2041a8ac6bc43e7a5bab0f76bcba09ef96ed48e3b1fabe4104a174b2f839dfb7a2a6f3d632023b4c6a
checksum: 10/2984df2c818624d393ea4ebbb9fb79c2f44e34facdc213221a8f6c41320dff50cd5cabb17af361c2b2a497fdec48a673abaec667196a77845cdb2b2d3e8426b3
languageName: node
linkType: hard
"@octokit/request-error@npm:^5.0.0":
version: 5.0.1
resolution: "@octokit/request-error@npm:5.0.1"
version: 5.0.0
resolution: "@octokit/request-error@npm:5.0.0"
dependencies:
"@octokit/types": "npm:^12.0.0"
"@octokit/types": "npm:^11.0.0"
deprecation: "npm:^2.0.0"
once: "npm:^1.4.0"
checksum: 10/a21a4614c46cb173e4ba73fa048576204f1ddc541dee3e7c938ef36088566e3b25e04ca1f96f375ec2e3cc29b7ba970b3b078a89a20bc50cdcdbed879db94573
checksum: 10/de7ed2934035650c67b619130c407c6eec7fc80c9c47c27131feaace76fa01c64e35338cb19d4b3838f5f53f3d174a5f0933e1dc7921b952411b0457b599dc71
languageName: node
linkType: hard
"@octokit/request@npm:^8.0.1, @octokit/request@npm:^8.0.2":
version: 8.2.0
resolution: "@octokit/request@npm:8.2.0"
version: 8.1.1
resolution: "@octokit/request@npm:8.1.1"
dependencies:
"@octokit/endpoint": "npm:^9.0.0"
"@octokit/request-error": "npm:^5.0.0"
"@octokit/types": "npm:^12.0.0"
"@octokit/types": "npm:^11.1.0"
is-plain-object: "npm:^5.0.0"
universal-user-agent: "npm:^6.0.0"
checksum: 10/553ba8b99ea6fe2d3b66b2be6df06f7fe62a0b81e441d334ef25388cf0fcdab4a888fcfe2c1fb1ada262c233bcf7169da3ad5e03f024060ea5723f7753b0de3e
checksum: 10/62fd236ef88de3bc7ecb652414751eb3934f589727e938736cb1b76545384d6db225abeae12371a1d6017bff2ae82948bf529af6b746131bdb3a270bfb177ac1
languageName: node
linkType: hard
@ -349,12 +358,21 @@ __metadata:
languageName: node
linkType: hard
"@octokit/types@npm:^12.0.0, @octokit/types@npm:^12.4.0":
version: 12.5.0
resolution: "@octokit/types@npm:12.5.0"
"@octokit/types@npm:^11.0.0, @octokit/types@npm:^11.1.0":
version: 11.1.0
resolution: "@octokit/types@npm:11.1.0"
dependencies:
"@octokit/openapi-types": "npm:^19.1.0"
checksum: 10/a2c8e736e368c781b9389a41fe4ec2cf81563674cf8d74bcc28bf1901dfc4b0c092101c7b333309933b8c14a5a3d1de9ca7eaec93451c41b708b4936e0960894
"@octokit/openapi-types": "npm:^18.0.0"
checksum: 10/ebd510c14c4b26df127b76b4ed6b4b9a97cd6ec7a047532060f8346bfb29a68414c7189ee2b98f5386bcd7fa1a8c29af8e8460e5a7373cf6bf38a11775c8e26d
languageName: node
linkType: hard
"@octokit/types@npm:^12.0.0":
version: 12.0.0
resolution: "@octokit/types@npm:12.0.0"
dependencies:
"@octokit/openapi-types": "npm:^19.0.0"
checksum: 10/68faa94efaa132d96a4f0d68a82f74c0d6cda2bb644007d9fa5c6d3a5a724981dd72e82ce0d7631df1b04502c470fce311b39becb170e03382521a31ad2aecfa
languageName: node
linkType: hard
@ -415,36 +433,29 @@ __metadata:
linkType: hard
"@sapphire/async-queue@npm:^1.5.0":
version: 1.5.2
resolution: "@sapphire/async-queue@npm:1.5.2"
checksum: 10/55e0785997ec34479509c134a3ffc5e9dc0c183b56b1cb95b0505539972a538b0bff8922c1d051ebeee227b000f79f1f499f1897229a117644833375093aa7b3
version: 1.5.0
resolution: "@sapphire/async-queue@npm:1.5.0"
checksum: 10/d22feb63a226486b4a463df145e7e8a94d7149b0772d485e6d315348c8dd4318c7a1724b0961cc023cae4070c0d7f73cbb914310ccbee330007c9bb54a04ae5f
languageName: node
linkType: hard
"@sapphire/shapeshift@npm:^3.9.3":
version: 3.9.6
resolution: "@sapphire/shapeshift@npm:3.9.6"
version: 3.9.3
resolution: "@sapphire/shapeshift@npm:3.9.3"
dependencies:
fast-deep-equal: "npm:^3.1.3"
lodash: "npm:^4.17.21"
checksum: 10/9d7ab3b3341514363598e48666ec32ec631e0f3b408eb851d4397e479f93c70a471610949d30b9450beaf212df721ffa7c4da3ed3d0fbaffebcb1dfe73ab3f4c
checksum: 10/9fce0135d4b6b2acbab83af078dcc5d9780c83c2cea9094178f19128d78ca7e7fa0d90f5b1c4ed4ab345194eb138415e4c902a1014eff2c5d68b77e75f5774e9
languageName: node
linkType: hard
"@sapphire/snowflake@npm:3.5.1":
"@sapphire/snowflake@npm:3.5.1, @sapphire/snowflake@npm:^3.5.1":
version: 3.5.1
resolution: "@sapphire/snowflake@npm:3.5.1"
checksum: 10/12d09f0e4f52f86bdc330d70e4a3042f212d787c2d40e7bc41769218c8d08649786109aa78d777262a658a8f29f12ef5bacc6188d46fd1dd35a4e1f29d378723
languageName: node
linkType: hard
"@sapphire/snowflake@npm:^3.5.1":
version: 3.5.3
resolution: "@sapphire/snowflake@npm:3.5.3"
checksum: 10/f306626f76a6e9bdc7de9130c1baf7ddcd8681d7d03b2ab6f2404081f71c94085d4001e8a62ae2c2372b3b54d2d52ec21d43695f2c73fb101caabc2d3bf524aa
languageName: node
linkType: hard
"@sequelize/core@npm:7.0.0-alpha.37":
version: 7.0.0-alpha.37
resolution: "@sequelize/core@npm:7.0.0-alpha.37"
@ -521,12 +532,12 @@ __metadata:
languageName: node
linkType: hard
"@types/node@npm:*, @types/node@npm:20.11.19":
version: 20.11.19
resolution: "@types/node@npm:20.11.19"
"@types/node@npm:*, @types/node@npm:20.11.17":
version: 20.11.17
resolution: "@types/node@npm:20.11.17"
dependencies:
undici-types: "npm:~5.26.4"
checksum: 10/c7f4705d6c84aa21679ad180c33c13ca9567f650e66e14bcee77c7c43d14619c7cd3b4d7b2458947143030b7b1930180efa6d12d999b45366abff9fed7a17472
checksum: 10/3342df87258d1c56154bcd4b85180f48675427b235971e6e6e2e037353f5a2ae9aaa05ba5df0fe1e2d2f1022c8d856fd39056b9d7f50ea30c0ca3214137cae1d
languageName: node
linkType: hard
@ -548,7 +559,7 @@ __metadata:
languageName: node
linkType: hard
"@types/ws@npm:8.5.9":
"@types/ws@npm:8.5.9, @types/ws@npm:^8.5.9":
version: 8.5.9
resolution: "@types/ws@npm:8.5.9"
dependencies:
@ -557,19 +568,10 @@ __metadata:
languageName: node
linkType: hard
"@types/ws@npm:^8.5.9":
version: 8.5.10
resolution: "@types/ws@npm:8.5.10"
dependencies:
"@types/node": "npm:*"
checksum: 10/9b414dc5e0b6c6f1ea4b1635b3568c58707357f68076df9e7cd33194747b7d1716d5189c0dbdd68c8d2521b148e88184cf881bac7429eb0e5c989b001539ed31
languageName: node
linkType: hard
"@vladfrangu/async_event_emitter@npm:^2.2.2":
version: 2.2.4
resolution: "@vladfrangu/async_event_emitter@npm:2.2.4"
checksum: 10/06de49380dc47fe712768b0e49286e54a114de962da36ef021d4b03fcff7ec8338b46179d8b3eba4c0e02b2926bbf1e6ea0f9c6c08f6f081361947a7f6719ce9
version: 2.2.2
resolution: "@vladfrangu/async_event_emitter@npm:2.2.2"
checksum: 10/1c1fcee04aecfa3cceb05e9bcd3a8aae053ce0512e79e7f878a5d2b8458a926aa3e6da553be0a431e7acb58d9aec3df435a845653a642b864c6b67e2a44ec40c
languageName: node
linkType: hard
@ -626,7 +628,7 @@ __metadata:
"@sequelize/core": "npm:7.0.0-alpha.37"
"@toast/tokenservice-client": "npm:1.0.12"
"@types/ms": "npm:0.7.34"
"@types/node": "npm:20.11.19"
"@types/node": "npm:20.11.17"
"@types/node-cron": "npm:3.0.11"
"@types/pg": "npm:8.11.0"
ansi-colors: "npm:4.1.3"
@ -640,7 +642,7 @@ __metadata:
postgres-array: "npm:3.0.2"
redis: "npm:4.6.13"
simple-git: "npm:3.22.0"
systeminformation: "npm:5.21.25"
systeminformation: "npm:5.21.24"
typescript: "npm:5.3.3"
undici: "npm:6.6.2"
languageName: unknown
@ -803,6 +805,13 @@ __metadata:
languageName: node
linkType: hard
"is-plain-object@npm:^5.0.0":
version: 5.0.0
resolution: "is-plain-object@npm:5.0.0"
checksum: 10/e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c
languageName: node
linkType: hard
"lodash.snakecase@npm:4.1.1":
version: 4.1.1
resolution: "lodash.snakecase@npm:4.1.1"
@ -827,9 +836,9 @@ __metadata:
linkType: hard
"magic-bytes.js@npm:^1.5.0":
version: 1.8.0
resolution: "magic-bytes.js@npm:1.8.0"
checksum: 10/781c932f649f99f334de61d18cd8dd36a0613f8c524756dcfea657d34e114161ef704ae9bf04287f0c1a5341c1a9bd766907199dfb5e916d1e336de9ff103544
version: 1.5.0
resolution: "magic-bytes.js@npm:1.5.0"
checksum: 10/ffb86aec8f4d05446355433392f5a67882c9cbcd46bc1d53ece4f46f73938ec16a35ad4d53decda661185c92e3007a94243bf48809bc73f111a8a28b63eeee19
languageName: node
linkType: hard
@ -963,17 +972,17 @@ __metadata:
linkType: hard
"pg-types@npm:^4.0.1":
version: 4.0.2
resolution: "pg-types@npm:4.0.2"
version: 4.0.1
resolution: "pg-types@npm:4.0.1"
dependencies:
pg-int8: "npm:1.0.1"
pg-numeric: "npm:1.0.2"
postgres-array: "npm:~3.0.1"
postgres-bytea: "npm:~3.0.0"
postgres-date: "npm:~2.1.0"
postgres-date: "npm:~2.0.1"
postgres-interval: "npm:^3.0.0"
postgres-range: "npm:^1.1.1"
checksum: 10/f4d529da864d4169afab300eb8629a84a6a06aa70c471160a7e46c34b6d4dd0e61cbd57d10d98c3a36e98f474e2ff85d41e4b1c953a321146b4bae09372c58d3
checksum: 10/2c686ef361856ff9695a40cf34d7bb59bcf2218bd1f121d7fc8b77a75cc4106c09519e9520a82aac8fce4540dec81f695458b8e43bfc420ba74eb9b5005b5619
languageName: node
linkType: hard
@ -1054,10 +1063,10 @@ __metadata:
languageName: node
linkType: hard
"postgres-date@npm:~2.1.0":
version: 2.1.0
resolution: "postgres-date@npm:2.1.0"
checksum: 10/faa1c70dfad0e35bd4aa7cb6088fcd4e4f039aa25dc42150129178fc2a0baa7e37eca0bf18e4142a40dea18d1955459b08783f78ec487ef27b4b93ab5e854597
"postgres-date@npm:~2.0.1":
version: 2.0.1
resolution: "postgres-date@npm:2.0.1"
checksum: 10/908eacec35faf9b6fa4248074e7c8db0fc4ac6a2e0a00eacef9fb9cf44a25fc6f100af7cda09f5d89d076c87923b59e940a309560d86aded4753985c97255be1
languageName: node
linkType: hard
@ -1078,9 +1087,9 @@ __metadata:
linkType: hard
"postgres-range@npm:^1.1.1":
version: 1.1.4
resolution: "postgres-range@npm:1.1.4"
checksum: 10/035759f17b44bf9ba7e71a30402ed2ca1e2b7fabb3ad794b08169a5b453d38d06905a6dfb51fe41a3f6d9fac4e183dac9e769b95053053db933be16785edce1f
version: 1.1.3
resolution: "postgres-range@npm:1.1.3"
checksum: 10/356a46d97eab301cca0dbf7a65be6f68c4a7e33d304909e5ca840038b1210390e1d33fcc3b566c42020f7b97e9de189bc5286d1ec8d7ba2445ed3377c576ce9e
languageName: node
linkType: hard
@ -1171,12 +1180,12 @@ __metadata:
languageName: node
linkType: hard
"systeminformation@npm:5.21.25":
version: 5.21.25
resolution: "systeminformation@npm:5.21.25"
"systeminformation@npm:5.21.24":
version: 5.21.24
resolution: "systeminformation@npm:5.21.24"
bin:
systeminformation: lib/cli.js
checksum: 10/5b56205879652cfe5e6147a97a0eba450a8d83b8ad304e5e998a9829a16124c7d43969740413857cb2a24bccb1588160dd026649c7eae3fd35cdb9b92c62ab86
checksum: 10/3796b8474c25420f2fb7dc91b55e5f30050f9eaa01351ed6cfb56569d9789e19245985a9cd65e4b9adcdf13baa5148f2a722e1792d940e8e9ab32872226a53cd
conditions: (os=darwin | os=linux | os=win32 | os=freebsd | os=openbsd | os=netbsd | os=sunos | os=android)
languageName: node
linkType: hard
@ -1271,9 +1280,9 @@ __metadata:
linkType: hard
"universal-user-agent@npm:^6.0.0":
version: 6.0.1
resolution: "universal-user-agent@npm:6.0.1"
checksum: 10/fdc8e1ae48a05decfc7ded09b62071f571c7fe0bd793d700704c80cea316101d4eac15cc27ed2bb64f4ce166d2684777c3198b9ab16034f547abea0d3aa1c93c
version: 6.0.0
resolution: "universal-user-agent@npm:6.0.0"
checksum: 10/5092bbc80dd0d583cef0b62c17df0043193b74f425112ea6c1f69bc5eda21eeec7a08d8c4f793a277eb2202ffe9b44bec852fa3faff971234cd209874d1b79ef
languageName: node
linkType: hard
@ -1318,7 +1327,7 @@ __metadata:
languageName: node
linkType: hard
"ws@npm:8.14.2":
"ws@npm:8.14.2, ws@npm:^8.14.2":
version: 8.14.2
resolution: "ws@npm:8.14.2"
peerDependencies:
@ -1333,21 +1342,6 @@ __metadata:
languageName: node
linkType: hard
"ws@npm:^8.14.2":
version: 8.16.0
resolution: "ws@npm:8.16.0"
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: ">=5.0.2"
peerDependenciesMeta:
bufferutil:
optional: true
utf-8-validate:
optional: true
checksum: 10/7c511c59e979bd37b63c3aea4a8e4d4163204f00bd5633c053b05ed67835481995f61a523b0ad2b603566f9a89b34cb4965cb9fab9649fbfebd8f740cea57f17
languageName: node
linkType: hard
"xtend@npm:^4.0.0":
version: 4.0.2
resolution: "xtend@npm:4.0.2"