Compare commits

...

17 Commits

Author SHA1 Message Date
github-actions[bot]
f236dc05e2 chore(main): release 2.5.1 (#222)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-12 12:58:00 -06:00
Jacob Nguyen
c78936a225 chore: release 2.5.1
Release-As: 2.5.1
2023-02-12 12:54:18 -06:00
Jacob Nguyen
1860b898f3 fix: autocomplete 2023-02-12 12:51:49 -06:00
renovate[bot]
fd10772a9b chore(deps): lock file maintenance (#213)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-12 11:47:37 -06:00
renovate[bot]
cd36bd8a47 chore(deps): update dependency @typescript-eslint/eslint-plugin to v5.51.0 (#187)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-12 11:33:00 -06:00
renovate[bot]
dda7f41231 chore(deps): update dependency prettier to v2.8.4 (#215)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Jacob Nguyen <76754747+jacoobes@users.noreply.github.com>
2023-02-12 11:29:38 -06:00
renovate[bot]
371a57194c chore(deps): update pnpm to v7.27.0 (#216)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-12 11:28:54 -06:00
Neo
bfcc160a39 docs: change protectors WIP mark to its name (#214)
Idk I was bored and saw this was different to mine. Change mine instead or just close this pr, idm.
2023-02-07 20:16:23 -06:00
Neo
86fa531eb6 docs: Adding the WIP to my bot (#212)
feat: Adding the WIP to my bot
2023-02-04 10:37:03 -06:00
Gary
58052e94cb docs: add my bot to the ReadMe (#211) 2023-02-04 01:38:07 -06:00
Neo
96f4281121 feat: Adding my bot to readme (#210) 2023-02-03 23:55:26 -06:00
Jacob Nguyen
f9ae7c003b docs: clarify example 2023-02-03 23:46:19 -06:00
Jacob Nguyen
ec211d5a8d docs: do some updating on readme 2023-02-03 23:14:57 -06:00
github-actions[bot]
3faf83bbf7 style: pretty please (#209)
Co-authored-by: jacoobes <jacoobes@users.noreply.github.com>
2023-02-03 23:04:13 -06:00
renovate[bot]
8eed099503 chore(deps): lock file maintenance (#183)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-03 23:00:46 -06:00
renovate[bot]
e2874be4e7 chore(deps): update pnpm to v7.26.3 (#203)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-02-03 22:56:17 -06:00
github-actions[bot]
1d6751a9cd style: pretty please (#207)
Co-authored-by: jacoobes <jacoobes@users.noreply.github.com>
2023-01-30 12:35:37 -06:00
18 changed files with 430 additions and 394 deletions

View File

@@ -1,5 +1,23 @@
# Changelog # Changelog
## [2.5.1](https://github.com/sern-handler/handler/compare/v2.5.0...v2.5.1) (2023-02-12)
### Features
* Adding my bot to readme ([#210](https://github.com/sern-handler/handler/issues/210)) ([96f4281](https://github.com/sern-handler/handler/commit/96f42811218e4898a47e75a8138ccd452ae2c5c2))
* Adding the WIP to my bot ([86fa531](https://github.com/sern-handler/handler/commit/86fa531eb620d2ac649bad6decb29d5c55a25445))
### Bug Fixes
* autocomplete ([1860b89](https://github.com/sern-handler/handler/commit/1860b898f3a231840e2a8b781e007ef9d6f587a4))
### Miscellaneous Chores
* release 2.5.1 ([c78936a](https://github.com/sern-handler/handler/commit/c78936a22574da4af71826f5b5f72f354a4eb06a))
## [2.5.0](https://github.com/sern-handler/handler/compare/v2.1.1...v2.5.0) (2023-01-30) ## [2.5.0](https://github.com/sern-handler/handler/compare/v2.1.1...v2.5.0) (2023-01-30)

View File

@@ -54,9 +54,6 @@ const { Client, GatewayIntentBits } = require('discord.js');
// Import Sern namespace // Import Sern namespace
const { Sern } = require('@sern/handler'); const { Sern } = require('@sern/handler');
// Our configuration file
const { defaultPrefix, token } = require('./config.json');
const client = new Client({ const client = new Client({
intents: [ intents: [
GatewayIntentBits.Guilds, GatewayIntentBits.Guilds,
@@ -67,7 +64,7 @@ const client = new Client({
export const useContainer = Sern.makeDependencies({ export const useContainer = Sern.makeDependencies({
build: root => root build: root => root
.add({ '@sern/client': single(client) }) .add({ '@sern/client': single(client) })
.add({ '@sern/logger': single(new DefaultLogging()) }) .upsert({ '@sern/logger': single(new DefaultLogging()) })
}); });
//View docs for all options //View docs for all options
@@ -80,7 +77,7 @@ Sern.init({
} }
}); });
client.login(token); client.login("YOUR_BOT_TOKEN_HERE");
``` ```
#### ` ping.js (CommonJS)` #### ` ping.js (CommonJS)`
@@ -98,7 +95,13 @@ exports.default = commandModule({
}); });
``` ```
See our [templates](https://github.com/sern-handler/templates) for TypeScript examples and more. ## 🤖 Bots Using sern
- [Community Bot](https://github.com/sern-handler/sern-community), the community bot for our [discord server](https://sern.dev/discord).
- [Vinci](https://github.com/SrIzan10/vinci), the bot for Mara Turing.
- [Bask](https://github.com/baskbotml/bask), Listen your favorite artists on Discord.
- [ava](https://github.com/SrIzan10/ava), A discord bot that plays KNGI and Gensokyo Radio.
- [Siamese (WIP)](https://github.com/Benzo-Fury/Siamese-Bot), Using AI to unleash the power in your server.
- [Protector (WIP)](https://github.com/needhamgary/Protector), Just a simple bot to help enhance a private minecraft server.
## 💻 CLI ## 💻 CLI
@@ -115,6 +118,4 @@ It is **highly encouraged** to use the [command line interface](https://github.c
- Pull up on [issues](https://github.com/sern-handler/handler/issues) and report bugs - Pull up on [issues](https://github.com/sern-handler/handler/issues) and report bugs
- All kinds of contributions are welcomed. - All kinds of contributions are welcomed.
## 🚈 Roadmap
You can check our [roadmap](https://github.com/sern-handler/roadmap) to see what's going to be added or patched in the future.

View File

@@ -1,7 +1,7 @@
{ {
"name": "@sern/handler", "name": "@sern/handler",
"packageManager": "pnpm@7.25.0", "packageManager": "pnpm@7.27.0",
"version": "2.5.0", "version": "2.5.1",
"description": "A customizable, batteries-included, powerful discord.js framework to automate and streamline bot development.", "description": "A customizable, batteries-included, powerful discord.js framework to automate and streamline bot development.",
"main": "dist/cjs/index.cjs", "main": "dist/cjs/index.cjs",
"module": "dist/esm/index.mjs", "module": "dist/esm/index.mjs",
@@ -39,11 +39,11 @@
"ts-results-es": "^3.5.0" "ts-results-es": "^3.5.0"
}, },
"devDependencies": { "devDependencies": {
"@typescript-eslint/eslint-plugin": "5.47.1", "@typescript-eslint/eslint-plugin": "5.51.0",
"@typescript-eslint/parser": "5.48.0", "@typescript-eslint/parser": "5.48.0",
"discord.js": ">= ^14.7.x", "discord.js": ">= ^14.7.x",
"eslint": "8.30.0", "eslint": "8.30.0",
"prettier": "2.8.3", "prettier": "2.8.4",
"tsup": "^6.1.3", "tsup": "^6.1.3",
"typescript": "4.9.4" "typescript": "4.9.4"
}, },

673
pnpm-lock.yaml generated
View File

@@ -1,12 +1,12 @@
lockfileVersion: 5.4 lockfileVersion: 5.4
specifiers: specifiers:
'@typescript-eslint/eslint-plugin': 5.47.1 '@typescript-eslint/eslint-plugin': 5.51.0
'@typescript-eslint/parser': 5.48.0 '@typescript-eslint/parser': 5.48.0
discord.js: '>= ^14.7.x' discord.js: '>= ^14.7.x'
eslint: 8.30.0 eslint: 8.30.0
iti: ^0.6.0 iti: ^0.6.0
prettier: 2.8.3 prettier: 2.8.4
rxjs: ^7.5.6 rxjs: ^7.5.6
ts-pattern: ^4.0.6 ts-pattern: ^4.0.6
ts-results-es: ^3.5.0 ts-results-es: ^3.5.0
@@ -16,16 +16,16 @@ specifiers:
dependencies: dependencies:
iti: 0.6.0 iti: 0.6.0
rxjs: 7.8.0 rxjs: 7.8.0
ts-pattern: 4.0.6 ts-pattern: 4.1.4
ts-results-es: 3.5.0 ts-results-es: 3.5.0
devDependencies: devDependencies:
'@typescript-eslint/eslint-plugin': 5.47.1_ms6clkwmnrnf7qx5hae2o4lcfe '@typescript-eslint/eslint-plugin': 5.51.0_ms6clkwmnrnf7qx5hae2o4lcfe
'@typescript-eslint/parser': 5.48.0_lzzuuodtsqwxnvqeq4g4likcqa '@typescript-eslint/parser': 5.48.0_lzzuuodtsqwxnvqeq4g4likcqa
discord.js: 14.7.1 discord.js: 14.7.1
eslint: 8.30.0 eslint: 8.30.0
prettier: 2.8.3 prettier: 2.8.4
tsup: 6.5.0_typescript@4.9.4 tsup: 6.6.2_typescript@4.9.4
typescript: 4.9.4 typescript: 4.9.4
packages: packages:
@@ -36,10 +36,10 @@ packages:
dependencies: dependencies:
'@discordjs/util': 0.1.0 '@discordjs/util': 0.1.0
'@sapphire/shapeshift': 3.8.1 '@sapphire/shapeshift': 3.8.1
discord-api-types: 0.37.24 discord-api-types: 0.37.33
fast-deep-equal: 3.1.3 fast-deep-equal: 3.1.3
ts-mixer: 6.0.2 ts-mixer: 6.0.3
tslib: 2.4.1 tslib: 2.5.0
dev: true dev: true
/@discordjs/collection/1.3.0: /@discordjs/collection/1.3.0:
@@ -55,10 +55,10 @@ packages:
'@discordjs/util': 0.1.0 '@discordjs/util': 0.1.0
'@sapphire/async-queue': 1.5.0 '@sapphire/async-queue': 1.5.0
'@sapphire/snowflake': 3.4.0 '@sapphire/snowflake': 3.4.0
discord-api-types: 0.37.24 discord-api-types: 0.37.33
file-type: 18.0.0 file-type: 18.2.0
tslib: 2.4.1 tslib: 2.5.0
undici: 5.14.0 undici: 5.18.0
dev: true dev: true
/@discordjs/util/0.1.0: /@discordjs/util/0.1.0:
@@ -66,8 +66,8 @@ packages:
engines: {node: '>=16.9.0'} engines: {node: '>=16.9.0'}
dev: true dev: true
/@esbuild/android-arm/0.15.18: /@esbuild/android-arm/0.17.7:
resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} resolution: {integrity: sha512-Np6Lg8VUiuzHP5XvHU7zfSVPN4ILdiOhxA1GQ1uvCK2T2l3nI8igQV0c9FJx4hTkq8WGqhGEvn5UuRH8jMkExg==}
engines: {node: '>=12'} engines: {node: '>=12'}
cpu: [arm] cpu: [arm]
os: [android] os: [android]
@@ -75,8 +75,89 @@ packages:
dev: true dev: true
optional: true optional: true
/@esbuild/linux-loong64/0.15.18: /@esbuild/android-arm64/0.17.7:
resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} resolution: {integrity: sha512-fOUBZvcbtbQJIj2K/LMKcjULGfXLV9R4qjXFsi3UuqFhIRJHz0Fp6kFjsMFI6vLuPrfC5G9Dmh+3RZOrSKY2Lg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
/@esbuild/android-x64/0.17.7:
resolution: {integrity: sha512-6YILpPvop1rPAvaO/n2iWQL45RyTVTR/1SK7P6Xi2fyu+hpEeX22fE2U2oJd1sfpovUJOWTRdugjddX6QCup3A==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
requiresBuild: true
dev: true
optional: true
/@esbuild/darwin-arm64/0.17.7:
resolution: {integrity: sha512-7i0gfFsDt1BBiurZz5oZIpzfxqy5QkJmhXdtrf2Hma/gI9vL2AqxHhRBoI1NeWc9IhN1qOzWZrslhiXZweMSFg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@esbuild/darwin-x64/0.17.7:
resolution: {integrity: sha512-hRvIu3vuVIcv4SJXEKOHVsNssM5tLE2xWdb9ZyJqsgYp+onRa5El3VJ4+WjTbkf/A2FD5wuMIbO2FCTV39LE0w==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@esbuild/freebsd-arm64/0.17.7:
resolution: {integrity: sha512-2NJjeQ9kiabJkVXLM3sHkySqkL1KY8BeyLams3ITyiLW10IwDL0msU5Lq1cULCn9zNxt1Seh1I6QrqyHUvOtQw==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/freebsd-x64/0.17.7:
resolution: {integrity: sha512-8kSxlbjuLYMoIgvRxPybirHJeW45dflyIgHVs+jzMYJf87QOay1ZUTzKjNL3vqHQjmkSn8p6KDfHVrztn7Rprw==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-arm/0.17.7:
resolution: {integrity: sha512-07RsAAzznWqdfJC+h3L2UVWwnUHepsFw5GmzySnUspHHb7glJ1+47rvlcH0SeUtoVOs8hF4/THgZbtJRyALaJA==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-arm64/0.17.7:
resolution: {integrity: sha512-43Bbhq3Ia/mGFTCRA4NlY8VRH3dLQltJ4cqzhSfq+cdvdm9nKJXVh4NUkJvdZgEZIkf/ufeMmJ0/22v9btXTcw==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-ia32/0.17.7:
resolution: {integrity: sha512-ViYkfcfnbwOoTS7xE4DvYFv7QOlW8kPBuccc4erJ0jx2mXDPR7e0lYOH9JelotS9qe8uJ0s2i3UjUvjunEp53A==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-loong64/0.17.7:
resolution: {integrity: sha512-H1g+AwwcqYQ/Hl/sMcopRcNLY/fysIb/ksDfCa3/kOaHQNhBrLeDYw+88VAFV5U6oJL9GqnmUj72m9Nv3th3hA==}
engines: {node: '>=12'} engines: {node: '>=12'}
cpu: [loong64] cpu: [loong64]
os: [linux] os: [linux]
@@ -84,14 +165,113 @@ packages:
dev: true dev: true
optional: true optional: true
/@eslint/eslintrc/1.4.0: /@esbuild/linux-mips64el/0.17.7:
resolution: {integrity: sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A==} resolution: {integrity: sha512-MDLGrVbTGYtmldlbcxfeDPdhxttUmWoX3ovk9u6jc8iM+ueBAFlaXKuUMCoyP/zfOJb+KElB61eSdBPSvNcCEg==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-ppc64/0.17.7:
resolution: {integrity: sha512-UWtLhRPKzI+v2bKk4j9rBpGyXbLAXLCOeqt1tLVAt1mfagHpFjUzzIHCpPiUfY3x1xY5e45/+BWzGpqqvSglNw==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-riscv64/0.17.7:
resolution: {integrity: sha512-3C/RTKqZauUwBYtIQAv7ELTJd+H2dNKPyzwE2ZTbz2RNrNhNHRoeKnG5C++eM6nSZWUCLyyaWfq1v1YRwBS/+A==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-s390x/0.17.7:
resolution: {integrity: sha512-x7cuRSCm998KFZqGEtSo8rI5hXLxWji4znZkBhg2FPF8A8lxLLCsSXe2P5utf0RBQflb3K97dkEH/BJwTqrbDw==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-x64/0.17.7:
resolution: {integrity: sha512-1Z2BtWgM0Wc92WWiZR5kZ5eC+IetI++X+nf9NMbUvVymt74fnQqwgM5btlTW7P5uCHfq03u5MWHjIZa4o+TnXQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@esbuild/netbsd-x64/0.17.7:
resolution: {integrity: sha512-//VShPN4hgbmkDjYNCZermIhj8ORqoPNmAnwSPqPtBB0xOpHrXMlJhsqLNsgoBm0zi/5tmy//WyL6g81Uq2c6Q==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/openbsd-x64/0.17.7:
resolution: {integrity: sha512-IQ8BliXHiOsbQEOHzc7mVLIw2UYPpbOXJQ9cK1nClNYQjZthvfiA6rWZMz4BZpVzHZJ+/H2H23cZwRJ1NPYOGg==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
requiresBuild: true
dev: true
optional: true
/@esbuild/sunos-x64/0.17.7:
resolution: {integrity: sha512-phO5HvU3SyURmcW6dfQXX4UEkFREUwaoiTgi1xH+CAFKPGsrcG6oDp1U70yQf5lxRKujoSCEIoBr0uFykJzN2g==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
requiresBuild: true
dev: true
optional: true
/@esbuild/win32-arm64/0.17.7:
resolution: {integrity: sha512-G/cRKlYrwp1B0uvzEdnFPJ3A6zSWjnsRrWivsEW0IEHZk+czv0Bmiwa51RncruHLjQ4fGsvlYPmCmwzmutPzHA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@esbuild/win32-ia32/0.17.7:
resolution: {integrity: sha512-/yMNVlMew07NrOflJdRAZcMdUoYTOCPbCHx0eHtg55l87wXeuhvYOPBQy5HLX31Ku+W2XsBD5HnjUjEUsTXJug==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@esbuild/win32-x64/0.17.7:
resolution: {integrity: sha512-K9/YybM6WZO71x73Iyab6mwieHtHjm9hrPR/a9FBPZmFO3w+fJaM2uu2rt3JYf/rZR24MFwTliI8VSoKKOtYtg==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@eslint/eslintrc/1.4.1:
resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies: dependencies:
ajv: 6.12.6 ajv: 6.12.6
debug: 4.3.4 debug: 4.3.4
espree: 9.4.1 espree: 9.4.1
globals: 13.19.0 globals: 13.20.0
ignore: 5.2.4 ignore: 5.2.4
import-fresh: 3.3.0 import-fresh: 3.3.0
js-yaml: 4.1.0 js-yaml: 4.1.0
@@ -139,7 +319,7 @@ packages:
engines: {node: '>= 8'} engines: {node: '>= 8'}
dependencies: dependencies:
'@nodelib/fs.scandir': 2.1.5 '@nodelib/fs.scandir': 2.1.5
fastq: 1.14.0 fastq: 1.15.0
dev: true dev: true
/@sapphire/async-queue/1.5.0: /@sapphire/async-queue/1.5.0:
@@ -168,22 +348,22 @@ packages:
resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
dev: true dev: true
/@types/node/18.11.18: /@types/node/18.13.0:
resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} resolution: {integrity: sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==}
dev: true dev: true
/@types/semver/7.3.13: /@types/semver/7.3.13:
resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
dev: true dev: true
/@types/ws/8.5.3: /@types/ws/8.5.4:
resolution: {integrity: sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==} resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==}
dependencies: dependencies:
'@types/node': 18.11.18 '@types/node': 18.13.0
dev: true dev: true
/@typescript-eslint/eslint-plugin/5.47.1_ms6clkwmnrnf7qx5hae2o4lcfe: /@typescript-eslint/eslint-plugin/5.51.0_ms6clkwmnrnf7qx5hae2o4lcfe:
resolution: {integrity: sha512-r4RZ2Jl9kcQN7K/dcOT+J7NAimbiis4sSM9spvWimsBvDegMhKLA5vri2jG19PmIPbDjPeWzfUPQ2hjEzA4Nmg==} resolution: {integrity: sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies: peerDependencies:
'@typescript-eslint/parser': ^5.0.0 '@typescript-eslint/parser': ^5.0.0
@@ -194,11 +374,12 @@ packages:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/parser': 5.48.0_lzzuuodtsqwxnvqeq4g4likcqa '@typescript-eslint/parser': 5.48.0_lzzuuodtsqwxnvqeq4g4likcqa
'@typescript-eslint/scope-manager': 5.47.1 '@typescript-eslint/scope-manager': 5.51.0
'@typescript-eslint/type-utils': 5.47.1_lzzuuodtsqwxnvqeq4g4likcqa '@typescript-eslint/type-utils': 5.51.0_lzzuuodtsqwxnvqeq4g4likcqa
'@typescript-eslint/utils': 5.47.1_lzzuuodtsqwxnvqeq4g4likcqa '@typescript-eslint/utils': 5.51.0_lzzuuodtsqwxnvqeq4g4likcqa
debug: 4.3.4 debug: 4.3.4
eslint: 8.30.0 eslint: 8.30.0
grapheme-splitter: 1.0.4
ignore: 5.2.4 ignore: 5.2.4
natural-compare-lite: 1.4.0 natural-compare-lite: 1.4.0
regexpp: 3.2.0 regexpp: 3.2.0
@@ -229,14 +410,6 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/scope-manager/5.47.1:
resolution: {integrity: sha512-9hsFDsgUwrdOoW1D97Ewog7DYSHaq4WKuNs0LHF9RiCmqB0Z+XRR4Pf7u7u9z/8CciHuJ6yxNws1XznI3ddjEw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
'@typescript-eslint/types': 5.47.1
'@typescript-eslint/visitor-keys': 5.47.1
dev: true
/@typescript-eslint/scope-manager/5.48.0: /@typescript-eslint/scope-manager/5.48.0:
resolution: {integrity: sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow==} resolution: {integrity: sha512-0AA4LviDtVtZqlyUQnZMVHydDATpD9SAX/RC5qh6cBd3xmyWvmXYF+WT1oOmxkeMnWDlUVTwdODeucUnjz3gow==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -245,8 +418,16 @@ packages:
'@typescript-eslint/visitor-keys': 5.48.0 '@typescript-eslint/visitor-keys': 5.48.0
dev: true dev: true
/@typescript-eslint/type-utils/5.47.1_lzzuuodtsqwxnvqeq4g4likcqa: /@typescript-eslint/scope-manager/5.51.0:
resolution: {integrity: sha512-/UKOeo8ee80A7/GJA427oIrBi/Gd4osk/3auBUg4Rn9EahFpevVV1mUK8hjyQD5lHPqX397x6CwOk5WGh1E/1w==} resolution: {integrity: sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
'@typescript-eslint/types': 5.51.0
'@typescript-eslint/visitor-keys': 5.51.0
dev: true
/@typescript-eslint/type-utils/5.51.0_lzzuuodtsqwxnvqeq4g4likcqa:
resolution: {integrity: sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies: peerDependencies:
eslint: '*' eslint: '*'
@@ -255,8 +436,8 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@typescript-eslint/typescript-estree': 5.47.1_typescript@4.9.4 '@typescript-eslint/typescript-estree': 5.51.0_typescript@4.9.4
'@typescript-eslint/utils': 5.47.1_lzzuuodtsqwxnvqeq4g4likcqa '@typescript-eslint/utils': 5.51.0_lzzuuodtsqwxnvqeq4g4likcqa
debug: 4.3.4 debug: 4.3.4
eslint: 8.30.0 eslint: 8.30.0
tsutils: 3.21.0_typescript@4.9.4 tsutils: 3.21.0_typescript@4.9.4
@@ -265,35 +446,14 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/types/5.47.1:
resolution: {integrity: sha512-CmALY9YWXEpwuu6377ybJBZdtSAnzXLSQcxLSqSQSbC7VfpMu/HLVdrnVJj7ycI138EHqocW02LPJErE35cE9A==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/@typescript-eslint/types/5.48.0: /@typescript-eslint/types/5.48.0:
resolution: {integrity: sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw==} resolution: {integrity: sha512-UTe67B0Ypius0fnEE518NB2N8gGutIlTojeTg4nt0GQvikReVkurqxd2LvYa9q9M5MQ6rtpNyWTBxdscw40Xhw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true dev: true
/@typescript-eslint/typescript-estree/5.47.1_typescript@4.9.4: /@typescript-eslint/types/5.51.0:
resolution: {integrity: sha512-4+ZhFSuISAvRi2xUszEj0xXbNTHceV9GbH9S8oAD2a/F9SW57aJNQVOCxG8GPfSWH/X4eOPdMEU2jYVuWKEpWA==} resolution: {integrity: sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
'@typescript-eslint/types': 5.47.1
'@typescript-eslint/visitor-keys': 5.47.1
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
semver: 7.3.8
tsutils: 3.21.0_typescript@4.9.4
typescript: 4.9.4
transitivePeerDependencies:
- supports-color
dev: true dev: true
/@typescript-eslint/typescript-estree/5.48.0_typescript@4.9.4: /@typescript-eslint/typescript-estree/5.48.0_typescript@4.9.4:
@@ -317,17 +477,38 @@ packages:
- supports-color - supports-color
dev: true dev: true
/@typescript-eslint/utils/5.47.1_lzzuuodtsqwxnvqeq4g4likcqa: /@typescript-eslint/typescript-estree/5.51.0_typescript@4.9.4:
resolution: {integrity: sha512-l90SdwqfmkuIVaREZ2ykEfCezepCLxzWMo5gVfcJsJCaT4jHT+QjgSkYhs5BMQmWqE9k3AtIfk4g211z/sTMVw==} resolution: {integrity: sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
'@typescript-eslint/types': 5.51.0
'@typescript-eslint/visitor-keys': 5.51.0
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
semver: 7.3.8
tsutils: 3.21.0_typescript@4.9.4
typescript: 4.9.4
transitivePeerDependencies:
- supports-color
dev: true
/@typescript-eslint/utils/5.51.0_lzzuuodtsqwxnvqeq4g4likcqa:
resolution: {integrity: sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies: peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies: dependencies:
'@types/json-schema': 7.0.11 '@types/json-schema': 7.0.11
'@types/semver': 7.3.13 '@types/semver': 7.3.13
'@typescript-eslint/scope-manager': 5.47.1 '@typescript-eslint/scope-manager': 5.51.0
'@typescript-eslint/types': 5.47.1 '@typescript-eslint/types': 5.51.0
'@typescript-eslint/typescript-estree': 5.47.1_typescript@4.9.4 '@typescript-eslint/typescript-estree': 5.51.0_typescript@4.9.4
eslint: 8.30.0 eslint: 8.30.0
eslint-scope: 5.1.1 eslint-scope: 5.1.1
eslint-utils: 3.0.0_eslint@8.30.0 eslint-utils: 3.0.0_eslint@8.30.0
@@ -337,14 +518,6 @@ packages:
- typescript - typescript
dev: true dev: true
/@typescript-eslint/visitor-keys/5.47.1:
resolution: {integrity: sha512-rF3pmut2JCCjh6BLRhNKdYjULMb1brvoaiWDlHfLNVgmnZ0sBVJrs3SyaKE1XoDDnJuAx/hDQryHYmPUuNq0ig==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
'@typescript-eslint/types': 5.47.1
eslint-visitor-keys: 3.3.0
dev: true
/@typescript-eslint/visitor-keys/5.48.0: /@typescript-eslint/visitor-keys/5.48.0:
resolution: {integrity: sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q==} resolution: {integrity: sha512-5motVPz5EgxQ0bHjut3chzBkJ3Z3sheYVcSwS5BpHZpLqSptSmELNtGixmgj65+rIfhvtQTz5i9OP2vtzdDH7Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -353,16 +526,24 @@ packages:
eslint-visitor-keys: 3.3.0 eslint-visitor-keys: 3.3.0
dev: true dev: true
/acorn-jsx/5.3.2_acorn@8.8.1: /@typescript-eslint/visitor-keys/5.51.0:
resolution: {integrity: sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
'@typescript-eslint/types': 5.51.0
eslint-visitor-keys: 3.3.0
dev: true
/acorn-jsx/5.3.2_acorn@8.8.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies: peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies: dependencies:
acorn: 8.8.1 acorn: 8.8.2
dev: true dev: true
/acorn/8.8.1: /acorn/8.8.2:
resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
hasBin: true hasBin: true
dev: true dev: true
@@ -432,13 +613,13 @@ packages:
fill-range: 7.0.1 fill-range: 7.0.1
dev: true dev: true
/bundle-require/3.1.2_esbuild@0.15.18: /bundle-require/4.0.1_esbuild@0.17.7:
resolution: {integrity: sha512-Of6l6JBAxiyQ5axFxUM6dYeP/W7X2Sozeo/4EYB9sJhL+dqL7TKjg+shwxp6jlu/6ZSERfsYtIpSJ1/x3XkAEA==} resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
peerDependencies: peerDependencies:
esbuild: '>=0.13' esbuild: '>=0.17'
dependencies: dependencies:
esbuild: 0.15.18 esbuild: 0.17.7
load-tsconfig: 0.2.3 load-tsconfig: 0.2.3
dev: true dev: true
@@ -534,8 +715,8 @@ packages:
path-type: 4.0.0 path-type: 4.0.0
dev: true dev: true
/discord-api-types/0.37.24: /discord-api-types/0.37.33:
resolution: {integrity: sha512-1+Fb4huJCihdbkJLcq2p7nBmtlmAryNwjefT8wwJnL8c7bc7WA87Oaa5mbLe96QvZyfwnwRCDX40H0HhcVV50g==} resolution: {integrity: sha512-ZMH5RU3q1pvYS+2wGUJ5Zvy8jMGTQ4wCpbDlIQDkbIL/k6kJwBPsXnCg81g2GywlOuf0f8ezakxVSe+sZuY6ig==}
dev: true dev: true
/discord.js/14.7.1: /discord.js/14.7.1:
@@ -547,13 +728,13 @@ packages:
'@discordjs/rest': 1.5.0 '@discordjs/rest': 1.5.0
'@discordjs/util': 0.1.0 '@discordjs/util': 0.1.0
'@sapphire/snowflake': 3.4.0 '@sapphire/snowflake': 3.4.0
'@types/ws': 8.5.3 '@types/ws': 8.5.4
discord-api-types: 0.37.24 discord-api-types: 0.37.33
fast-deep-equal: 3.1.3 fast-deep-equal: 3.1.3
lodash.snakecase: 4.1.1 lodash.snakecase: 4.1.1
tslib: 2.4.1 tslib: 2.5.0
undici: 5.14.0 undici: 5.18.0
ws: 8.11.0 ws: 8.12.0
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
- utf-8-validate - utf-8-validate
@@ -566,214 +747,34 @@ packages:
esutils: 2.0.3 esutils: 2.0.3
dev: true dev: true
/esbuild-android-64/0.15.18: /esbuild/0.17.7:
resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} resolution: {integrity: sha512-+5hHlrK108fT6C6/40juy0w4DYKtyZ5NjfBlTccBdsFutR7WBxpIY633JzZJewdsCy8xWA/u2z0MSniIJwufYg==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
requiresBuild: true
dev: true
optional: true
/esbuild-android-arm64/0.15.18:
resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
/esbuild-darwin-64/0.15.18:
resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/esbuild-darwin-arm64/0.15.18:
resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/esbuild-freebsd-64/0.15.18:
resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/esbuild-freebsd-arm64/0.15.18:
resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-32/0.15.18:
resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-64/0.15.18:
resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-arm/0.15.18:
resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-arm64/0.15.18:
resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-mips64le/0.15.18:
resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-ppc64le/0.15.18:
resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-riscv64/0.15.18:
resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-s390x/0.15.18:
resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-netbsd-64/0.15.18:
resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
requiresBuild: true
dev: true
optional: true
/esbuild-openbsd-64/0.15.18:
resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
requiresBuild: true
dev: true
optional: true
/esbuild-sunos-64/0.15.18:
resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
requiresBuild: true
dev: true
optional: true
/esbuild-windows-32/0.15.18:
resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/esbuild-windows-64/0.15.18:
resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/esbuild-windows-arm64/0.15.18:
resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/esbuild/0.15.18:
resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==}
engines: {node: '>=12'} engines: {node: '>=12'}
hasBin: true hasBin: true
requiresBuild: true requiresBuild: true
optionalDependencies: optionalDependencies:
'@esbuild/android-arm': 0.15.18 '@esbuild/android-arm': 0.17.7
'@esbuild/linux-loong64': 0.15.18 '@esbuild/android-arm64': 0.17.7
esbuild-android-64: 0.15.18 '@esbuild/android-x64': 0.17.7
esbuild-android-arm64: 0.15.18 '@esbuild/darwin-arm64': 0.17.7
esbuild-darwin-64: 0.15.18 '@esbuild/darwin-x64': 0.17.7
esbuild-darwin-arm64: 0.15.18 '@esbuild/freebsd-arm64': 0.17.7
esbuild-freebsd-64: 0.15.18 '@esbuild/freebsd-x64': 0.17.7
esbuild-freebsd-arm64: 0.15.18 '@esbuild/linux-arm': 0.17.7
esbuild-linux-32: 0.15.18 '@esbuild/linux-arm64': 0.17.7
esbuild-linux-64: 0.15.18 '@esbuild/linux-ia32': 0.17.7
esbuild-linux-arm: 0.15.18 '@esbuild/linux-loong64': 0.17.7
esbuild-linux-arm64: 0.15.18 '@esbuild/linux-mips64el': 0.17.7
esbuild-linux-mips64le: 0.15.18 '@esbuild/linux-ppc64': 0.17.7
esbuild-linux-ppc64le: 0.15.18 '@esbuild/linux-riscv64': 0.17.7
esbuild-linux-riscv64: 0.15.18 '@esbuild/linux-s390x': 0.17.7
esbuild-linux-s390x: 0.15.18 '@esbuild/linux-x64': 0.17.7
esbuild-netbsd-64: 0.15.18 '@esbuild/netbsd-x64': 0.17.7
esbuild-openbsd-64: 0.15.18 '@esbuild/openbsd-x64': 0.17.7
esbuild-sunos-64: 0.15.18 '@esbuild/sunos-x64': 0.17.7
esbuild-windows-32: 0.15.18 '@esbuild/win32-arm64': 0.17.7
esbuild-windows-64: 0.15.18 '@esbuild/win32-ia32': 0.17.7
esbuild-windows-arm64: 0.15.18 '@esbuild/win32-x64': 0.17.7
dev: true dev: true
/escape-string-regexp/4.0.0: /escape-string-regexp/4.0.0:
@@ -822,7 +823,7 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true hasBin: true
dependencies: dependencies:
'@eslint/eslintrc': 1.4.0 '@eslint/eslintrc': 1.4.1
'@humanwhocodes/config-array': 0.11.8 '@humanwhocodes/config-array': 0.11.8
'@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8 '@nodelib/fs.walk': 1.2.8
@@ -842,14 +843,14 @@ packages:
file-entry-cache: 6.0.1 file-entry-cache: 6.0.1
find-up: 5.0.0 find-up: 5.0.0
glob-parent: 6.0.2 glob-parent: 6.0.2
globals: 13.19.0 globals: 13.20.0
grapheme-splitter: 1.0.4 grapheme-splitter: 1.0.4
ignore: 5.2.4 ignore: 5.2.4
import-fresh: 3.3.0 import-fresh: 3.3.0
imurmurhash: 0.1.4 imurmurhash: 0.1.4
is-glob: 4.0.3 is-glob: 4.0.3
is-path-inside: 3.0.3 is-path-inside: 3.0.3
js-sdsl: 4.2.0 js-sdsl: 4.3.0
js-yaml: 4.1.0 js-yaml: 4.1.0
json-stable-stringify-without-jsonify: 1.0.1 json-stable-stringify-without-jsonify: 1.0.1
levn: 0.4.1 levn: 0.4.1
@@ -869,8 +870,8 @@ packages:
resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies: dependencies:
acorn: 8.8.1 acorn: 8.8.2
acorn-jsx: 5.3.2_acorn@8.8.1 acorn-jsx: 5.3.2_acorn@8.8.2
eslint-visitor-keys: 3.3.0 eslint-visitor-keys: 3.3.0
dev: true dev: true
@@ -941,8 +942,8 @@ packages:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
dev: true dev: true
/fastq/1.14.0: /fastq/1.15.0:
resolution: {integrity: sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==} resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
dependencies: dependencies:
reusify: 1.0.4 reusify: 1.0.4
dev: true dev: true
@@ -954,8 +955,8 @@ packages:
flat-cache: 3.0.4 flat-cache: 3.0.4
dev: true dev: true
/file-type/18.0.0: /file-type/18.2.0:
resolution: {integrity: sha512-jjMwFpnW8PKofLE/4ohlhqwDk5k0NC6iy0UHAJFKoY1fQeGMN0GDdLgHQrvCbSpMwbqzoCZhRI5dETCZna5qVA==} resolution: {integrity: sha512-M3RQMWY3F2ykyWZ+IHwNCjpnUmukYhtdkGGC1ZVEUb0ve5REGF7NNJ4Q9ehCUabtQKtSVFOMbFTXgJlFb0DQIg==}
engines: {node: '>=14.16'} engines: {node: '>=14.16'}
dependencies: dependencies:
readable-web-to-node-stream: 3.0.2 readable-web-to-node-stream: 3.0.2
@@ -1043,8 +1044,8 @@ packages:
path-is-absolute: 1.0.1 path-is-absolute: 1.0.1
dev: true dev: true
/globals/13.19.0: /globals/13.20.0:
resolution: {integrity: sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==} resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
engines: {node: '>=8'} engines: {node: '>=8'}
dependencies: dependencies:
type-fest: 0.20.2 type-fest: 0.20.2
@@ -1159,8 +1160,8 @@ packages:
engines: {node: '>=10'} engines: {node: '>=10'}
dev: true dev: true
/js-sdsl/4.2.0: /js-sdsl/4.3.0:
resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==} resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==}
dev: true dev: true
/js-yaml/4.1.0: /js-yaml/4.1.0:
@@ -1397,14 +1398,14 @@ packages:
engines: {node: '>= 0.8.0'} engines: {node: '>= 0.8.0'}
dev: true dev: true
/prettier/2.8.3: /prettier/2.8.4:
resolution: {integrity: sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==} resolution: {integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==}
engines: {node: '>=10.13.0'} engines: {node: '>=10.13.0'}
hasBin: true hasBin: true
dev: true dev: true
/punycode/2.1.1: /punycode/2.3.0:
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
engines: {node: '>=6'} engines: {node: '>=6'}
dev: true dev: true
@@ -1462,8 +1463,8 @@ packages:
glob: 7.2.3 glob: 7.2.3
dev: true dev: true
/rollup/3.9.0: /rollup/3.15.0:
resolution: {integrity: sha512-nGGylpmblyjTpF4lEUPgmOw6OVxRvnI6Iuuh6Lz4O/X66cVOX1XJSsqP1YamxQ+mPuFE7qJxLFDSCk8rNv5dDw==} resolution: {integrity: sha512-F9hrCAhnp5/zx/7HYmftvsNBkMfLfk/dXUh73hPSM2E3CRgap65orDNJbLetoiUFwSAk6iHPLvBrZ5iHYvzqsg==}
engines: {node: '>=14.18.0', npm: '>=8.0.0'} engines: {node: '>=14.18.0', npm: '>=8.0.0'}
hasBin: true hasBin: true
optionalDependencies: optionalDependencies:
@@ -1479,7 +1480,7 @@ packages:
/rxjs/7.8.0: /rxjs/7.8.0:
resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==}
dependencies: dependencies:
tslib: 2.4.1 tslib: 2.5.0
dev: false dev: false
/safe-buffer/5.2.1: /safe-buffer/5.2.1:
@@ -1613,7 +1614,7 @@ packages:
/tr46/1.0.1: /tr46/1.0.1:
resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==}
dependencies: dependencies:
punycode: 2.1.1 punycode: 2.3.0
dev: true dev: true
/tree-kill/1.2.2: /tree-kill/1.2.2:
@@ -1625,12 +1626,12 @@ packages:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
dev: true dev: true
/ts-mixer/6.0.2: /ts-mixer/6.0.3:
resolution: {integrity: sha512-zvHx3VM83m2WYCE8XL99uaM7mFwYSkjR2OZti98fabHrwkjsCvgwChda5xctein3xGOyaQhtTeDq/1H/GNvF3A==} resolution: {integrity: sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ==}
dev: true dev: true
/ts-pattern/4.0.6: /ts-pattern/4.1.4:
resolution: {integrity: sha512-sFHQYD4KoysBi7e7a2mzDPvRBeqA4w+vEyRE+P5MU9VLq8eEYxgKCgD9RNEAT+itGRWUTYN+hry94GDPLb1/Yw==} resolution: {integrity: sha512-Mcw65oUd1w5ktKi5BRwrnz16Otwk9iv7P0dKgvbi+A1albCDgnixohSqNLuFwIp5dzxPmTPm0iDQ6p1ZJr9uGw==}
dev: false dev: false
/ts-results-es/3.5.0: /ts-results-es/3.5.0:
@@ -1641,11 +1642,11 @@ packages:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
dev: true dev: true
/tslib/2.4.1: /tslib/2.5.0:
resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==}
/tsup/6.5.0_typescript@4.9.4: /tsup/6.6.2_typescript@4.9.4:
resolution: {integrity: sha512-36u82r7rYqRHFkD15R20Cd4ercPkbYmuvRkz3Q1LCm5BsiFNUgpo36zbjVhCOgvjyxNBWNKHsaD5Rl8SykfzNA==} resolution: {integrity: sha512-+yQ6SI4rVtp1+YpcYOePumJLEVQ896CDNRt9dJ2L/DeMnLf1+FTOCVw5eioLBH0xLdHgogO9NQ6vPNF5MfkSJw==}
engines: {node: '>=14'} engines: {node: '>=14'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@@ -1660,17 +1661,17 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
bundle-require: 3.1.2_esbuild@0.15.18 bundle-require: 4.0.1_esbuild@0.17.7
cac: 6.7.14 cac: 6.7.14
chokidar: 3.5.3 chokidar: 3.5.3
debug: 4.3.4 debug: 4.3.4
esbuild: 0.15.18 esbuild: 0.17.7
execa: 5.1.1 execa: 5.1.1
globby: 11.1.0 globby: 11.1.0
joycon: 3.1.1 joycon: 3.1.1
postcss-load-config: 3.1.4 postcss-load-config: 3.1.4
resolve-from: 5.0.0 resolve-from: 5.0.0
rollup: 3.9.0 rollup: 3.15.0
source-map: 0.8.0-beta.0 source-map: 0.8.0-beta.0
sucrase: 3.29.0 sucrase: 3.29.0
tree-kill: 1.2.2 tree-kill: 1.2.2
@@ -1708,8 +1709,8 @@ packages:
hasBin: true hasBin: true
dev: true dev: true
/undici/5.14.0: /undici/5.18.0:
resolution: {integrity: sha512-yJlHYw6yXPPsuOH0x2Ib1Km61vu4hLiRRQoafs+WUgX1vO64vgnxiCEN9dpIrhZyHFsai3F0AEj4P9zy19enEQ==} resolution: {integrity: sha512-1iVwbhonhFytNdg0P4PqyIAXbdlVZVebtPDvuM36m66mRw4OGrCm2MYynJv/UENFLdP13J1nPVQzVE2zTs1OeA==}
engines: {node: '>=12.18'} engines: {node: '>=12.18'}
dependencies: dependencies:
busboy: 1.6.0 busboy: 1.6.0
@@ -1718,7 +1719,7 @@ packages:
/uri-js/4.4.1: /uri-js/4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies: dependencies:
punycode: 2.1.1 punycode: 2.3.0
dev: true dev: true
/util-deprecate/1.0.2: /util-deprecate/1.0.2:
@@ -1759,12 +1760,12 @@ packages:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: true dev: true
/ws/8.11.0: /ws/8.12.0:
resolution: {integrity: sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==} resolution: {integrity: sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
peerDependencies: peerDependencies:
bufferutil: ^4.0.1 bufferutil: ^4.0.1
utf-8-validate: ^5.0.2 utf-8-validate: '>=5.0.2'
peerDependenciesMeta: peerDependenciesMeta:
bufferutil: bufferutil:
optional: true optional: true

View File

@@ -1,2 +1,2 @@
export { single, transient, many } from './lifetimeFunctions'; export { single, transient, many } from './lifetimeFunctions';
export { useContainerRaw } from './provider'; export { useContainerRaw } from './provider';

View File

@@ -1,19 +1,26 @@
import { _const } from '../utilities/functions'; import { _const } from '../utilities/functions';
type NotFunction = string | number | boolean | null | undefined | bigint | type NotFunction =
readonly any[] | { apply?: never, [k: string]: any } | | string
{ call?: never, [k: string]: any }; | number
| boolean
| null
| undefined
| bigint
| readonly any[]
| { apply?: never; [k: string]: any }
| { call?: never; [k: string]: any };
/** /**
* @deprecated * @deprecated
* @param cb * @param cb
*/ */
export function single<T extends NotFunction>(cb: T) : () => T; export function single<T extends NotFunction>(cb: T): () => T;
/** /**
* New signature * New signature
* @param cb * @param cb
*/ */
export function single<T extends () => unknown>(cb: T) : T; export function single<T extends () => unknown>(cb: T): T;
/** /**
* Please note that on intellij, the deprecation is for all signatures, which is unintended behavior (and * Please note that on intellij, the deprecation is for all signatures, which is unintended behavior (and
* very annoying). * very annoying).
@@ -21,23 +28,23 @@ export function single<T extends () => unknown>(cb: T) : T;
* @param cb * @param cb
*/ */
export function single<T>(cb: T) { export function single<T>(cb: T) {
if(typeof cb === 'function') return cb; if (typeof cb === 'function') return cb;
return () => cb; return () => cb;
} }
/** /**
* @deprecated * @deprecated
* @param cb * @param cb
* Deprecated signature * Deprecated signature
*/ */
export function transient<T extends NotFunction>(cb: T) : () => () => T export function transient<T extends NotFunction>(cb: T): () => () => T;
export function transient<T extends () => () => unknown>(cb: T) : T; export function transient<T extends () => () => unknown>(cb: T): T;
/** /**
* Following iti's singleton and transient implementation, * Following iti's singleton and transient implementation,
* use transient if you want a new dependency every time your container getter is called * use transient if you want a new dependency every time your container getter is called
* @param cb * @param cb
*/ */
export function transient<T>(cb: (() => () => T) | T) { export function transient<T>(cb: (() => () => T) | T) {
if(typeof cb !== 'function') return () => () => cb; if (typeof cb !== 'function') return () => () => cb;
return cb; return cb;
} }

View File

@@ -20,20 +20,18 @@ export function composeRoot<T extends Dependencies>(conf: DependencyConfiguratio
//Get the current container. This should have no client or possible logger yet. //Get the current container. This should have no client or possible logger yet.
const currentContainer = containerSubject.getValue(); const currentContainer = containerSubject.getValue();
const excludeLogger = conf.exclude?.has('@sern/logger'); const excludeLogger = conf.exclude?.has('@sern/logger');
if(!excludeLogger) { if (!excludeLogger) {
currentContainer.add({ currentContainer.add({
'@sern/logger' : () => new DefaultLogging() '@sern/logger': () => new DefaultLogging(),
}); });
} }
//Build the container based on the callback provided by the user //Build the container based on the callback provided by the user
const container = conf.build(currentContainer); const container = conf.build(currentContainer);
//Check if the built container contains @sern/client or throw //Check if the built container contains @sern/client or throw
// a runtime exception // a runtime exception
Result Result.wrap(() => container.get('@sern/client')).expect(SernError.MissingRequired);
.wrap(() => container.get('@sern/client'))
.expect(SernError.MissingRequired);
if(!excludeLogger) { if (!excludeLogger) {
container.get('@sern/logger')?.info({ message: 'All dependencies loaded successfully.' }); container.get('@sern/logger')?.info({ message: 'All dependencies loaded successfully.' });
} }
//I'm sorry little one //I'm sorry little one
@@ -61,12 +59,15 @@ export function useContainerRaw<T extends Dependencies>() {
*/ */
function defaultContainer() { function defaultContainer() {
return createContainer() return createContainer()
.add({ '@sern/errors': () => new DefaultErrorHandling()}) .add({ '@sern/errors': () => new DefaultErrorHandling() })
.add({ '@sern/store' : () => new ModuleStore()}) .add({ '@sern/store': () => new ModuleStore() })
.add(ctx => { .add(ctx => {
return { return {
'@sern/modules': () => new DefaultModuleManager(ctx['@sern/store']) '@sern/modules': () => new DefaultModuleManager(ctx['@sern/store']),
}; };
}) })
.add({ '@sern/emitter': () => new SernEmitter()}) as Container<Omit<Dependencies, '@sern/client' | '@sern/logger'>, {}>; .add({ '@sern/emitter': () => new SernEmitter() }) as Container<
} Omit<Dependencies, '@sern/client' | '@sern/logger'>,
{}
>;
}

View File

@@ -54,7 +54,7 @@ export function dispatchAutocomplete(
const option = treeSearch(interaction, module.options); const option = treeSearch(interaction, module.options);
if (option !== undefined) { if (option !== undefined) {
return { return {
module, module: option.command as Processed<Module>, //autocomplete is not a true "module" warning cast!
args: [interaction], args: [interaction],
}; };
} }

View File

@@ -34,13 +34,15 @@ export default class InteractionHandler extends EventsHandler<{
concatMap(payload => executeModule(this.emitter, payload)), concatMap(payload => executeModule(this.emitter, payload)),
catchError(handleError(this.crashHandler, this.logger)), catchError(handleError(this.crashHandler, this.logger)),
finalize(() => { finalize(() => {
this.logger?.info({ message: 'interactionCreate stream closed or reached end of lifetime'}); this.logger?.info({
message: 'interactionCreate stream closed or reached end of lifetime',
});
useContainerRaw() useContainerRaw()
?.disposeAll() ?.disposeAll()
.then(() => { .then(() => {
this.logger?.info({ message: 'Cleaning container and crashing' }); this.logger?.info({ message: 'Cleaning container and crashing' });
}); });
}) }),
) )
.subscribe(); .subscribe();
} }

View File

@@ -32,13 +32,15 @@ export default class MessageHandler extends EventsHandler<{
concatMap(payload => executeModule(this.emitter, payload)), concatMap(payload => executeModule(this.emitter, payload)),
catchError(handleError(this.crashHandler, this.logger)), catchError(handleError(this.crashHandler, this.logger)),
finalize(() => { finalize(() => {
this.logger?.info({ message: 'messageCreate stream closed or reached end of lifetime'}); this.logger?.info({
message: 'messageCreate stream closed or reached end of lifetime',
});
useContainerRaw() useContainerRaw()
?.disposeAll() ?.disposeAll()
.then(() => { .then(() => {
this.logger?.info({ message: 'Cleaning container and crashing' }); this.logger?.info({ message: 'Cleaning container and crashing' });
}); });
}) }),
) )
.subscribe(); .subscribe();
} }

View File

@@ -7,7 +7,7 @@ import { _const as i } from '../utilities/functions';
import SernEmitter from '../sernEmitter'; import SernEmitter from '../sernEmitter';
import { callPlugin, everyPluginOk, filterMapTo } from './operators'; import { callPlugin, everyPluginOk, filterMapTo } from './operators';
import type { Processed } from '../../types/handler'; import type { Processed } from '../../types/handler';
import type { VoidResult } from '../../types/plugin'; import type { ControlPlugin, VoidResult } from '../../types/plugin';
/** /**
* Ignores messages from any person / bot except itself * Ignores messages from any person / bot except itself
@@ -94,7 +94,7 @@ export function executeModule(
* @returns receiver function for flattening a stream of data * @returns receiver function for flattening a stream of data
*/ */
export function createResultResolver< export function createResultResolver<
T extends Processed<Module>, T extends { execute: (...args: any[]) => any; onEvent : ControlPlugin[] },
Args extends { module: T; [key: string]: unknown }, Args extends { module: T; [key: string]: unknown },
Output, Output,
>(config: { >(config: {

View File

@@ -32,7 +32,7 @@ export function callPlugin(args: unknown): OperatorFunction<
return pipe( return pipe(
concatMap(async plugin => { concatMap(async plugin => {
const isNewPlugin = Reflect.has(plugin, guayin); const isNewPlugin = Reflect.has(plugin, guayin);
if(isNewPlugin) { if (isNewPlugin) {
if (Array.isArray(args)) { if (Array.isArray(args)) {
return plugin.execute(...args); return plugin.execute(...args);
} }

View File

@@ -52,13 +52,13 @@ export function processEvents({ containerConfig, events }: Wrapper) {
tap(dispatcher => dispatcher.subscribe()), tap(dispatcher => dispatcher.subscribe()),
catchError(handleError(errorHandling, logger)), catchError(handleError(errorHandling, logger)),
finalize(() => { finalize(() => {
logger?.info({ message: 'an event module reached end of lifetime'}); logger?.info({ message: 'an event module reached end of lifetime' });
useContainerRaw() useContainerRaw()
?.disposeAll() ?.disposeAll()
.then(() => { .then(() => {
logger?.info({ message: 'Cleaning container and crashing' }); logger?.info({ message: 'Cleaning container and crashing' });
}); });
}) }),
) )
.subscribe(); .subscribe();
} }

View File

@@ -16,7 +16,8 @@ import type {
StringSelectCommand, StringSelectCommand,
TextCommand, TextCommand,
UserSelectCommand, UserSelectCommand,
ContextMenuMsg, Module, ContextMenuMsg,
Module,
} from '../../types/module'; } from '../../types/module';
import type { Args, Payload, Processed, SlashOptions } from '../../types/handler'; import type { Args, Payload, Processed, SlashOptions } from '../../types/handler';
import type Context from '../structures/context'; import type Context from '../structures/context';

View File

@@ -10,7 +10,7 @@ export function makePlugin<V extends unknown[]>(
return { return {
type, type,
execute, execute,
[guayin]: undefined [guayin]: undefined,
} as Plugin<V>; } as Plugin<V>;
} }

View File

@@ -15,4 +15,4 @@ export * from './handler/structures';
export * from './handler/plugins'; export * from './handler/plugins';
export * from './handler/contracts'; export * from './handler/contracts';
export { SernEmitter }; export { SernEmitter };
export * from './handler/dependencies'; export * from './handler/dependencies';

View File

@@ -62,8 +62,8 @@ export type MapDeps<Deps extends Dependencies, T extends readonly unknown[]> = T
//Basically, '@sern/client' | '@sern/store' | '@sern/modules' | '@sern/error' | '@sern/emitter' will be provided defaults, and you can exclude the rest //Basically, '@sern/client' | '@sern/store' | '@sern/modules' | '@sern/error' | '@sern/emitter' will be provided defaults, and you can exclude the rest
export type OptionalDependencies = '@sern/logger'; export type OptionalDependencies = '@sern/logger';
export type Processed<T> = T & { name: string; description: string }; export type Processed<T> = T & { name: string; description: string };
export type Deprecated<Message extends string> = [never, Message] export type Deprecated<Message extends string> = [never, Message];
export interface DependencyConfiguration<T extends Dependencies> { export interface DependencyConfiguration<T extends Dependencies> {
exclude?: Set<OptionalDependencies>; exclude?: Set<OptionalDependencies>;
build: (root: Container<Omit<Dependencies, '@sern/client'>, {}>) => Container<T, {}> build: (root: Container<Omit<Dependencies, '@sern/client'>, {}>) => Container<T, {}>;
} }

View File

@@ -22,8 +22,8 @@ export type PluginResult = Awaitable<VoidResult>;
export type VoidResult = Result<void, void>; export type VoidResult = Result<void, void>;
export interface Controller { export interface Controller {
next: () => Ok<void> next: () => Ok<void>;
stop: () => Err<void> stop: () => Err<void>;
} }
export interface Plugin<Args extends any[] = any[]> { export interface Plugin<Args extends any[] = any[]> {
type: PluginType; type: PluginType;
@@ -50,7 +50,10 @@ export interface CommandPlugin<T extends CommandType = CommandType> {
name?: string; name?: string;
description?: string; description?: string;
type: PluginType.Command; type: PluginType.Command;
execute: (m: InitArgs<Processed<CommandModule>>, controller?: Deprecated<'Please import controller instead'>) => PluginResult; execute: (
m: InitArgs<Processed<CommandModule>>,
controller?: Deprecated<'Please import controller instead'>,
) => PluginResult;
} }
/** /**
* @deprecated * @deprecated
@@ -60,7 +63,7 @@ export interface EventPlugin<T extends CommandType> {
name?: string; name?: string;
description?: string; description?: string;
type: PluginType.Event; type: PluginType.Event;
execute: (args : CommandArgs<T, PluginType.Event>, controller?: Controller) => PluginResult execute: (args: CommandArgs<T, PluginType.Event>, controller?: Controller) => PluginResult;
} }
export type DiscordEmitterPlugin = Deprecated<'Please view alternatives: '>; export type DiscordEmitterPlugin = Deprecated<'Please view alternatives: '>;
export type ExternalEmitterPlugin = Deprecated<'Please view alternatives: '>; export type ExternalEmitterPlugin = Deprecated<'Please view alternatives: '>;