468 Commits
1.0.0 ... main

Author SHA1 Message Date
Jacob Nguyen
a2653f2adf Merge pull request #93 from sern-handler/feat/google-snippet
Some checks failed
Deploy to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled
2025-06-28 09:47:43 -05:00
202fe46c1e format 2025-06-28 15:20:39 +02:00
83387aaffc feat: google snippet 2025-06-28 15:13:22 +02:00
Jacob Nguyen
ebb4fa55b4 Merge pull request #92 from Peter-MJ-Parker/patch-5
Some checks failed
Deploy to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled
Add tip for multiple commands dirs
2025-04-13 21:55:09 -05:00
Peter-MJ-Parker
05b5961c16 fix tip 2025-04-12 10:52:01 -05:00
Peter-MJ-Parker
26910a3b17 Add tip for multiple commands dirs
After a recent patch, we can now use an array of folders to tell seen where to look for commands. Using an array, we can keep our commands separate from our components (ie: Select Menus, Buttons, Modals). 
Additionally, patched the cautionary statement at the bottom of the page to signify we don't support CJS anymore.
2025-04-12 10:33:31 -05:00
Jacob Nguyen
505438decf Merge pull request #90 from sern-handler/feat/inst-pl-arg
Some checks failed
Deploy to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled
install by name on sern cli thingy
2025-03-10 00:59:24 -05:00
6bd4bd7475 feat: install plugin code snippet poc 2025-03-01 13:05:18 +01:00
eaad749115 chore: update docs 2025-02-28 23:44:23 +01:00
Jacob Nguyen
09ed080160 Merge pull request #89 from sern-handler/jacoobes-patch-6
Some checks failed
Deploy to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled
Update cli build.mdx
2025-02-06 22:24:35 -06:00
Jacob Nguyen
15f624c41f Update build.mdx 2025-02-06 22:09:47 -06:00
Jacob Nguyen
e540d6a241 Update build.mdx 2025-02-05 09:57:21 -06:00
Jacob Nguyen
fa5fc42fba sdfasd 2025-02-04 22:22:49 -06:00
Jacob Nguyen
f6ac97695e mayhaps 2025-02-04 22:17:16 -06:00
Jacob Nguyen
2a7a57236c s 2025-02-04 21:52:57 -06:00
Jacob Nguyen
5cc194b008 tasdf 2025-02-04 21:37:06 -06:00
Jacob Nguyen
92c97b605f shudwurl 2025-02-04 21:30:27 -06:00
Jacob Nguyen
a773a1d658 watchexample 2025-02-04 20:22:51 -06:00
Jacob Nguyen
b446871ec7 Update cli build.mdx 2025-02-04 16:49:27 -06:00
Jacob Nguyen
b94e34aad5 Merge pull request #84 from sern-handler/feat/quickstart-guide
Some checks failed
Deploy to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled
replace current getting started page with a quickstart guide
2025-01-29 12:53:48 -06:00
Jacob Nguyen
67154cedd5 Merge pull request #87 from sern-handler/jacoobes-patch-5
Update package.json
2025-01-29 12:37:25 -06:00
jacoobes
3e032e70d8 bldessupfdsajkfdsalealsdjfdsa 2025-01-29 12:04:06 -06:00
Jacob Nguyen
e714241ecc adsrfds 2025-01-29 11:10:51 -06:00
Jacob Nguyen
73e1a4f39c afjalsdkfjasl 2025-01-29 11:07:35 -06:00
Jacob Nguyen
1f66a7d195 sdfad 2025-01-29 10:56:47 -06:00
Jacob Nguyen
c0b74d72ab Update package.json 2025-01-29 10:52:41 -06:00
Jacob Nguyen
2a01fe44fa Update postcss.config.mjs 2025-01-29 10:40:21 -06:00
Jacob Nguyen
66c8858533 Update postcss.config.mjs 2025-01-29 10:33:35 -06:00
Jacob Nguyen
69a4f07e8b Update global.css 2025-01-29 10:30:25 -06:00
Jacob Nguyen
af0eea3dd1 Create postcss.config.mjs 2025-01-29 10:29:29 -06:00
b3096c1072 help 2025-01-27 21:23:44 +01:00
425d7cc739 chore: add tailwindcss 2025-01-27 21:16:31 +01:00
49f1ea6b57 chore: add astrojs tailwind 2025-01-27 18:57:56 +01:00
Jacob Nguyen
aeda731f97 Create goal.mdx (#86)
Some checks failed
Deploy to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled
2025-01-27 18:53:09 +01:00
90cea45453 feat: initial quickstart guide 2025-01-26 18:37:48 +01:00
bfaf83d60c init 2025-01-24 07:41:47 +01:00
Jacob Nguyen
087b8aee86 Delete src/content/docs/v4/reference/goal.mdx
Some checks failed
Deploy to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled
2025-01-23 21:36:58 -06:00
Jacob Nguyen
b793b8ca77 Create goal.mdx 2025-01-23 21:09:51 -06:00
Jacob Nguyen
c1773b8b40 Merge pull request #78 from sern-handler/jacoobes-patch-3
Some checks failed
Deploy to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled
Update error-handling.mdx
2025-01-18 13:38:00 -06:00
Jacob Nguyen
3e3cc36ec8 Update error-handling.mdx 2025-01-18 13:32:32 -06:00
Jacob Nguyen
54d269375c Merge pull request #77 from sern-handler/jacoobes-patch-2
Update error-handling.mdx
2025-01-18 12:51:53 -06:00
Jacob Nguyen
663410eaed Update plugins.mdx 2025-01-18 12:51:42 -06:00
Jacob Nguyen
515d2ced78 Update error-handling.mdx 2025-01-18 12:49:19 -06:00
Jacob Nguyen
8e9d895d1a Update error-handling.mdx 2025-01-15 19:41:40 -06:00
Jacob Nguyen
5055daac9b fa
Some checks failed
Deploy to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled
2025-01-14 23:19:52 -06:00
Jacob Nguyen
1da3e57866 sdf 2025-01-14 23:14:36 -06:00
Jacob Nguyen
9d2c3f6582 Update error-handling.mdx
Some checks failed
Deploy to GitHub Pages / Deploy to GitHub Pages (push) Has been cancelled
2025-01-13 10:33:10 -06:00
Jacob Nguyen
d5cee30e4f Merge pull request #76 from sern-handler/error-handling-ref
Some checks are pending
Deploy to GitHub Pages / Deploy to GitHub Pages (push) Waiting to run
errrefguide
2025-01-12 22:43:37 -06:00
Jacob Nguyen
daabc51b93 b 2025-01-12 22:43:16 -06:00
Jacob Nguyen
3abe33b75d fk 2025-01-12 22:37:09 -06:00
Jacob Nguyen
cafecdc532 polish 2025-01-12 22:32:05 -06:00
Jacob Nguyen
b4284e4d1a errrefguide 2025-01-12 22:25:50 -06:00
Jacob Nguyen
21f70725bb Merge pull request #75 from sern-handler/jacoobes-patch-1
Update setup.ts
2025-01-12 21:53:32 -06:00
Jacob Nguyen
bdedc81993 Update setup.ts 2025-01-12 19:41:38 -06:00
Jacob Nguyen
c3c16be90f Update setup.ts 2025-01-12 12:42:49 -06:00
Duro
d16c8f7e64 fix: fix modules link 2024-10-01 16:40:21 -04:00
Jacob Nguyen
a8118c58dc Update modules.mdx 2024-10-01 12:55:40 -05:00
34864fecea fix: bulding in general 2024-07-27 01:41:53 +02:00
Jacob Nguyen
29d61f7b0e Merge pull request #72 from Peter-MJ-Parker/patch-4
tip for new users
2024-07-21 20:02:24 -05:00
Peter-MJ-Parker
9e17b952b5 tip for new users
I've seen where users ran the script in a new folder then forgot to cd into `project` folder twice to run project commands. So this is a nice friendly tip for the end user.
2024-07-21 19:13:11 -05:00
cca08b8812 chore: chaneg analytics endpoint 2024-07-20 13:07:50 +02:00
Jacob Nguyen
aaff2a0c49 Merge pull request #71 from LolzTheDev/patch-2
make tasks docs more user friendly
2024-07-19 20:19:25 -05:00
LolzTheDev
b016cf1665 fix tip 2024-07-19 20:15:51 -05:00
LolzTheDev
4542c9263d add task kill method 2024-07-19 19:36:12 -05:00
LolzTheDev
74ee21ffc6 make tasks more user friendly
fix up anything that is wrong pls lol 🙏
2024-07-19 19:32:17 -05:00
2bfe4bc6c1 ci: use @sernbot on lunaria 2024-07-20 00:31:10 +02:00
Jacob Nguyen
57fdb2ba6c Merge pull request #70 from Peter-MJ-Parker/patch-3
edit: params is for MessageComponents
2024-07-19 17:29:46 -05:00
Peter-MJ-Parker
28c2a3d29f edit: params is for MessageComponents
Just to note what the params is.
*params* are for message components dynamic custom ids. When you have a command that returns multiple message components like buttons or menus or modals and your customId starts with `id/arg`, you can use one commandModule rather than multiples to control what each one does.
2024-07-19 17:20:10 -05:00
9dcc8d587d feat: analytics 2024-07-19 22:04:27 +02:00
4f4a28e9d5 ci: workflow dispatch github pages 2024-07-19 15:47:25 +02:00
Jacob Nguyen
ddf443f51e Update tasks.mdx 2024-07-18 21:01:07 -05:00
Jacob Nguyen
d6a3ddc48f fix admonition 2024-07-18 16:54:44 -05:00
Jacob Nguyen
8d7d356bd5 Merge branch 'main' of https://github.com/sern-handler/website 2024-07-18 16:51:10 -05:00
Jacob Nguyen
15d6008ba3 more config 2024-07-18 16:50:58 -05:00
DuroCodes
3a3370b635 fix: change astro site in config 2024-07-18 17:30:12 -04:00
Jacob Nguyen
0ac2b02e24 an otehr try 2024-07-18 16:16:16 -05:00
Jacob Nguyen
6329c6802a deploy again 2024-07-18 16:13:59 -05:00
Jacob Nguyen
2d1f133bca Merge branch 'DuroCodes-main' 2024-07-18 16:05:11 -05:00
Jacob Nguyen
d25c1ed4ac merge 2024-07-18 16:04:46 -05:00
Jacob Nguyen
b4a95d374f Merge pull request #69 from LolzTheDev/patch-1
fix syntax mistake
2024-07-18 11:45:58 -05:00
LolzTheDev
fbd5688aa8 fix syntax mistake
unclosed bracket (`ownerOnly` takes a string array afaik)
2024-07-18 11:43:03 -05:00
DuroCodes
1687538a71 fix: fix capitalization of Event Modules in v4/reference/modules.mdx 2024-07-17 17:23:40 -04:00
DuroCodes
1f6bd9f315 fix: fix invalid links on config.mdx page 2024-07-17 15:15:19 -04:00
jacob
134ac19836 yeaaaaa 2024-07-17 00:12:35 -05:00
jacob
3fa02ec79a add config and tasks (almost done) 2024-07-17 00:09:49 -05:00
jacob
a1955894ee Again 2024-07-16 23:49:45 -05:00
jacob
1ee9099ede add more docs 2024-07-16 23:32:06 -05:00
jacob
d85822601d yea again 2024-07-01 21:27:52 -05:00
jacob
3ed7e3fefd add publish transition help 2024-07-01 21:19:41 -05:00
DuroCodes
85b93e01cf fix: make v4 sidebar preferred 2024-07-01 15:28:50 -04:00
DuroCodes
00e63c260f fix: fix railway-deploy blog post link 2024-06-29 12:42:20 -04:00
92fccd1e63 chore: remove getting started blog guide
it's just too outdated
2024-06-29 12:16:49 +02:00
DuroCodes
8e7dfd7a7e fix: fix lunaria 2024-06-27 22:30:07 -04:00
Jacob Nguyen
b5dc4f4cb1 update docs 2024-06-22 14:59:58 -05:00
DuroCodes
df7616482b fix: whoops forgot to change the postinstall script 2024-06-20 23:16:01 -04:00
DuroCodes
c4f0c16b36 fix:change setup.mjs back into a setup.ts since that wasnt the issue 2024-06-20 22:46:57 -04:00
DuroCodes
c1542d8346 fix: add tools to tsconfig ignore 2024-06-20 22:44:27 -04:00
DuroCodes
9077a640c0 fix: change setup.ts -> setup.mjs 2024-06-20 22:42:38 -04:00
DuroCodes
7ea8d0bcfe fix: fix cloning tools from git 2024-06-20 22:39:59 -04:00
DuroCodes
68ee39407b fix: fix delay and width on carousel 2024-06-16 17:15:28 -04:00
Jacob Nguyen
f6b3fd038b temp broken link until publisher is on website 2024-06-14 20:25:41 -05:00
DuroCodes
2349813860 refactor: remove useless class 2024-06-11 18:34:02 -04:00
DuroCodes
0deed60247 feat: make bot showcase shuffled 2024-06-11 18:32:25 -04:00
DuroCodes
30137eafaf feat: add shadcn + react and community showcase carousel 2024-06-11 18:28:11 -04:00
Jacob Nguyen
3dc5b74cbe slogan found 2024-06-11 12:58:48 -05:00
Jacob Nguyen
c93e38fe6c fix line placement 2024-06-11 11:04:50 -05:00
Jacob Nguyen
27d3feab67 add more to reference 2024-06-11 10:55:31 -05:00
DuroCodes
5678001351 refactor: refactor StarlightMultiSidebarSelect event listener 2024-06-11 00:02:09 -04:00
DuroCodes
966a5b5727 fix: remove unnecessary else 2024-06-11 00:00:11 -04:00
DuroCodes
3907687e2b fix: remove bunx degit ... so it builds 2024-06-10 23:59:15 -04:00
DuroCodes
e540a14dd9 fix: fix setup for tools documentation 2024-06-10 23:53:35 -04:00
DuroCodes
c13abec8e0 fix: await bun shell call for tools in setup.mjs 2024-06-10 23:50:17 -04:00
Jacob Nguyen
7309c321ea dsfds 2024-06-10 20:51:11 -05:00
Jacob Nguyen
95e79d3969 disclaimer for cli publish and more docs 2024-06-10 20:35:24 -05:00
Jacob Nguyen
e1a0d47153 fix new stuff 2024-06-08 00:48:54 -05:00
Jacob Nguyen
b9aa726564 update api for v4 changes 2024-06-08 00:37:39 -05:00
Jacob Nguyen
58509a86ce gen tools docs 2024-06-07 20:27:07 -05:00
DuroCodes
b2d44cf58e fix: remove APPLICATION_ID from clear CLI pages 2024-06-05 23:49:52 -04:00
DuroCodes
2a086abb09 fix: update typedoc plugin 2024-06-05 02:12:15 -04:00
Jacob Nguyen
85ecc72418 making website look better 2024-06-03 00:02:18 -05:00
Jacob Nguyen
2e769800dd doc update 2024-05-31 00:52:52 -05:00
Jacob Nguyen
b524fa7008 sdfsd 2024-05-27 16:01:45 -05:00
Jacob Nguyen
fb736be2d2 fix links 2024-05-27 15:24:32 -05:00
Jacob Nguyen
5abf123935 nice ref 2024-05-27 15:20:07 -05:00
DuroCodes
ee8d2b3960 fix: add sern-handler to tsconfig excludes 2024-05-27 15:58:06 -04:00
DuroCodes
05838646ca fix: don't remove .git 2024-05-27 15:57:37 -04:00
DuroCodes
591f7ba61f fix: change tsconfig.json to exclude sern-handler cloned repos 2024-05-27 15:49:07 -04:00
DuroCodes
9c193b14c8 fix: fix gitignore to not make submodules 2024-05-27 15:47:08 -04:00
DuroCodes
1d05d9a29b fix: remove sern-handler folders 2024-05-27 15:46:54 -04:00
DuroCodes
b33e3ddb8c fix: remove .git from cloned repos for typedoc 2024-05-27 15:38:57 -04:00
DuroCodes
0b28832000 feat: add v4 api docs 2024-05-27 15:32:33 -04:00
DuroCodes
ead095ba61 fix: fix link validation glob 2024-05-27 10:51:21 -04:00
DuroCodes
ae0f356f78 fix: update link validation for glob support 2024-05-27 10:02:43 -04:00
Jacob Nguyen
92435fd3cf add more reference 2024-05-27 01:23:44 -05:00
DuroCodes
01a5a70c3f fix: fix CLI on sidebar 2024-05-25 21:31:58 -04:00
DuroCodes
5ac909e1aa feat: add og image generation 2024-05-25 17:34:13 -04:00
jacob
79cbe92934 onemoreupdate 2024-05-25 15:50:03 -05:00
jacob
1a029fdc23 more consumable 2024-05-25 15:17:17 -05:00
jacob
184e56486e presence snippet 2024-05-25 15:11:01 -05:00
DuroCodes
761579a09c feat: add VALIDATE_LINKS env argument 2024-05-25 03:01:17 -04:00
DuroCodes
b3b98676c4 fix: fix link validation 2024-05-24 17:50:31 -04:00
DuroCodes
1c6c0f8ec5 feat: add link validation & fix broken/relative links 2024-05-24 17:31:00 -04:00
DuroCodes
8b177a8f40 feat: change sidebar to use dropdown rather than tabs 2024-05-24 16:52:21 -04:00
DuroCodes
e5efba21db feat: add icon to PackageManagers 2024-05-24 15:02:42 -04:00
DuroCodes
50c086e6ec style: rename component to match other overrides 2024-05-24 11:02:59 -04:00
Jacob Nguyen
a055d098eb modal/module example 2024-05-24 01:29:52 -05:00
DuroCodes
bec379b882 chore: update astro 2024-05-23 21:59:46 -04:00
DuroGFX
1c0ef3b273 fix: fix CLI sidebar section & add CLI to v4 2024-05-23 01:02:50 +00:00
Duro
e43df2f5a7 fix: fix sidebar for blog pages 2024-05-22 20:15:07 -04:00
Jacob Nguyen
812788e610 v4 docs update 2024-05-22 18:50:01 -05:00
DuroCodes
ad25263a7d fix: change pages to .mdx so lunaria doesn't track api docs 2024-05-14 21:07:39 -04:00
DuroCodes
6de5b4c7a6 fix: fix api docs path 2024-05-14 21:06:27 -04:00
DuroCodes
55715a2a84 fix: remove src/content/api api docs 2024-05-14 21:02:47 -04:00
DuroCodes
f43a51c7b1 feat: add i18n support 2024-05-14 20:53:47 -04:00
DuroCodes
441af2e4aa fix: fix maybeWrapper parameter for Sern#init page 2024-05-14 18:13:57 -04:00
DuroCodes
96e71610ad refactor: move typedoc script into setup.mjs 2024-05-14 17:12:42 -04:00
DuroCodes
deec96d45d feat: make important files highlighted when using FileTree 2024-05-14 12:47:50 -04:00
DuroCodes
136a8f4f43 fix: fix consts import in astro config 2024-05-14 12:45:48 -04:00
DuroCodes
bc59a4ae9b fix: change logo to png instead of svg, fix favicon svg to be an actual vector 2024-05-13 22:02:46 -04:00
DuroCodes
f581fb260d refactor: extract constants into consts.ts, add prettier tailwind plugin for class sorting 2024-05-13 20:03:29 -04:00
DuroCodes
fdf1d78c92 fix: re-add width to sidebar inputs 2024-05-13 19:42:00 -04:00
DuroCodes
09b55ae035 style: more tailwind reformatting 2024-05-13 14:16:02 -04:00
DuroCodes
397f028c9f refactor: sort tailwind classes 2024-05-13 14:09:08 -04:00
DuroCodes
128b32b261 fix: fix mobile sidebar hopefully? 2024-05-11 15:35:11 -04:00
DuroCodes
301e60a0ef fix: fix sidebar on mobile by adding size: 100%? 2024-05-11 15:20:08 -04:00
DuroCodes
f044bf3819 feat: add Generated badge to API docs 2024-05-11 15:18:40 -04:00
DuroCodes
93772f5b84 fix: add width to sidebar to hopefully fix mobile? 2024-05-11 15:13:06 -04:00
DuroCodes
a441e57439 feat: add tabs for v3/v4 2024-05-10 14:42:21 -04:00
DuroCodes
a2fc1f66c0 fix: fix mobile nav menu width 2024-05-10 13:34:00 -04:00
DuroCodes
39f5be584e feat: update CLI docs 2024-05-09 13:02:03 -04:00
DuroCodes
2513e3e233 fix: fix icon color in SiteTitle mobile navbar 2024-05-09 12:19:17 -04:00
DuroCodes
c83dbf2f94 fix: fix sern.config.json link in CLI page 2024-05-09 12:18:31 -04:00
DuroCodes
e6ffca3bc8 feat: add lastUpdated, use path aliases 2024-05-09 12:14:12 -04:00
DuroCodes
529e6fccf5 refactor: change how images are imported in markdown 2024-05-09 11:58:40 -04:00
DuroCodes
40a2e39fc8 feat: rewrite most of the docs pages 2024-05-08 23:58:28 -04:00
DuroCodes
b6c9174230 fix: fix Menu not having arrow on mobile 2024-05-08 21:51:47 -04:00
DuroCodes
b0f713b312 fix: fix images on prod build, add src path alias 2024-05-08 21:20:54 -04:00
Jacob Nguyen
46f0d12e87 Update cli.md 2024-05-08 19:45:05 -05:00
DuroCodes
ff5c732ecf fix: fix duplicate search results for blog 2024-05-08 19:13:35 -04:00
DuroCodes
c5a80836be refactor: move types into seperate file, add zodFetch 2024-05-08 13:37:10 -04:00
DuroCodes
6ff3328990 fix: remove useless + '' 2024-05-07 17:03:34 -04:00
DuroCodes
9780e9349b feat: add DISCORD_URL constant 2024-05-07 17:02:44 -04:00
DuroCodes
01164761a9 feat: add link/hover to sponsors card, add BASE_URL 2024-05-07 17:00:07 -04:00
DuroCodes
2529e1c9c2 fix: fix link & change "Docs" link to "goal" page instead of "New Project" 2024-05-07 16:48:19 -04:00
DuroCodes
fd4fd9ee03 feat: add 'edit page' to docs 2024-05-07 16:45:50 -04:00
DuroCodes
54c49c239a feat: move nav links (Plugins/Sponsors/Blog) to SiteTitle for Mobile 2024-05-07 16:42:24 -04:00
3955337bee Revert "starlight rewrite" (#65)
This reverts commit f6f60dee0d.
2024-05-07 16:25:00 +02:00
Duro
f6f60dee0d starlight rewrite (#64)
* feat: migrate to starlight

* fix: add .gitignore

* fix: delete node_modules directory

* chore: update lockfile

* fix: remove .DS_STORE files

* feat: add github pages workflow

* feat: add netlify.toml, remove unneeded import on sponsors page

* fix: fix netlify publish directory

* fix: add .nvmrc

* fix: add checking for typedoc file

* fix: fix github pages script `bun build` -> `bun run build`

* fix: fix publish_dir in github pages workflow

* feat: add custom Head file for open-graph

* fix: hopefully fix deploying

* fix: fix git repo path

* fix: maybe fix build?

* fix: maybe fix build idk at this point

* fix: this should fix typedoc but it's throwing errors for no reason

* fix: my disappointment is immeasurable and my day is ruined

* fix: make API docs collapsed by default

* fix: remove sern-handler before git clone

* fix: fix og:image for sern by adding sern-logo to public folder

* fix: fix image path i think

* fix: fix services tabs

* on push no branch (for testing)

* also add workflow dispatch

* move to automata pushing & change back the branch rule

* remove sern capitalization

---------

Co-authored-by: Izan Gil <66965250+SrIzan10@users.noreply.github.com>
2024-05-07 16:12:29 +02:00
5b6f7c4647 remove sern capitalization 2024-05-07 15:53:14 +02:00
5c998e8505 move to automata pushing & change back the branch rule 2024-05-07 07:50:20 +02:00
b03ff6a2be also add workflow dispatch 2024-05-07 07:41:37 +02:00
e217af622e on push no branch (for testing) 2024-05-07 07:40:19 +02:00
DuroCodes
90f1dd6d41 fix: fix services tabs 2024-05-06 23:41:30 -04:00
DuroCodes
bfee22f66d fix: fix image path i think 2024-05-06 23:34:07 -04:00
DuroCodes
efd1bb09a5 fix: fix og:image for sern by adding sern-logo to public folder 2024-05-06 23:27:48 -04:00
DuroCodes
af9e70c515 fix: remove sern-handler before git clone 2024-05-06 23:21:41 -04:00
DuroCodes
6d3b0163e4 fix: make API docs collapsed by default 2024-05-06 23:18:32 -04:00
DuroCodes
afc48eae3c fix: my disappointment is immeasurable and my day is ruined 2024-05-06 23:15:39 -04:00
DuroCodes
85341b03d6 fix: this should fix typedoc but it's throwing errors for no reason 2024-05-06 22:54:27 -04:00
DuroCodes
7e389c8efa fix: maybe fix build idk at this point 2024-05-06 22:49:30 -04:00
DuroCodes
d97855e5dd fix: maybe fix build? 2024-05-06 22:43:12 -04:00
DuroCodes
03aa453f63 fix: fix git repo path 2024-05-06 22:37:27 -04:00
DuroCodes
e25146788b fix: hopefully fix deploying 2024-05-06 22:36:23 -04:00
DuroCodes
4d00dabc55 feat: add custom Head file for open-graph 2024-05-06 21:31:03 -04:00
DuroCodes
2081a2d63a fix: fix publish_dir in github pages workflow 2024-05-06 21:28:30 -04:00
DuroCodes
5f574edd6f fix: fix github pages script bun build -> bun run build 2024-05-06 21:26:59 -04:00
DuroCodes
71feb7e9c3 fix: add checking for typedoc file 2024-05-06 21:26:17 -04:00
DuroCodes
a229f2cc6d fix: add .nvmrc 2024-05-06 21:16:59 -04:00
DuroCodes
ebf13ede37 fix: fix netlify publish directory 2024-05-06 21:12:53 -04:00
DuroCodes
c3cb994eae feat: add netlify.toml, remove unneeded import on sponsors page 2024-05-06 21:09:19 -04:00
DuroCodes
54943e37aa feat: add github pages workflow 2024-05-06 21:07:08 -04:00
DuroCodes
b29faf80ea fix: remove .DS_STORE files 2024-05-06 21:01:23 -04:00
DuroCodes
b850f7d25a chore: update lockfile 2024-05-06 17:18:18 -04:00
Duro
ee2066632e fix: delete node_modules directory 2024-05-06 17:17:40 -04:00
DuroCodes
5bae733dff fix: add .gitignore 2024-05-06 17:16:41 -04:00
DuroCodes
bb190f2d81 feat: migrate to starlight 2024-05-06 17:15:30 -04:00
sernbot
767acedea7 docs: Update API section 2024-05-05 19:29:58 +00:00
Jacob Nguyen
1c3a1c5587 Merge pull request #63 from DuroCodes/main
Plugin Card Aligning
2024-04-27 16:20:46 -05:00
DuroCodes
24e7497555 fix: fix plugin card aligning 2024-04-27 17:14:24 -04:00
Jacob Nguyen
63ba2ac1e0 Merge pull request #62 from sern-handler/feat/pluginPage
feat: plugin page
2024-04-27 13:48:37 -05:00
71f4a22c0c add plugin description to modal 2024-04-27 20:43:10 +02:00
db15c21617 limit description characters to 100 2024-04-27 20:40:01 +02:00
33932ee255 copilot leak 2024-04-27 20:23:11 +02:00
5d04413dbe wow such feature 2024-04-27 20:19:22 +02:00
Jacob Nguyen
b6c2a3c92e Merge pull request #57 from sern-handler/feat/sponsorpage
Sponsor page
2024-04-21 13:43:54 -05:00
aba602380d add simple loading icon 2024-04-18 21:02:21 +02:00
aebc4fd49c initial built from the ground up page done 2024-04-18 20:04:29 +02:00
Jacob Nguyen
48423d7a89 ya 2024-04-09 18:37:36 -05:00
Jacob Nguyen
83d3877102 Merge pull request #56 from caffeinatedcharlie/main
docs: correct the Discord redirect inside of new-project.md
2024-04-07 08:59:49 -05:00
caffeinatedcharlie
e2ffc93116 docs: correct the Discord redirect inside of new-project.md
the new-project.md Discord link is https://sern.dev.discord not https://sern.dev/discord
2024-04-07 09:36:05 +01:00
78be0a3faa fix: change package name because of automata monorepo stuff 2024-03-24 21:25:38 +01:00
Jacob Nguyen
208061040f docusaurus v3 (#55) 2024-03-15 17:39:32 +01:00
Jacob Nguyen
71735a778e Merge pull request #54 from DuroCodes/main
Add category files, fix some capitalization, and add new blog post
2024-03-15 11:09:12 -05:00
sern bot
23ed21fbf7 chore: update api documentation 2024-03-09 14:30:19 +00:00
DuroCodes
62ebeec1d9 fix: maybe fix sidebar? idk it works fine for me now 2024-02-24 13:19:19 -05:00
DuroCodes
7821e065e6 fix: update docgen config, lowercase "sern" 2024-02-24 12:50:24 -05:00
DuroCodes
bc9c900197 feat: add _category_.json files, add railway deploy post, change blogSidebarCount in docusaurus config, fix capitalization 2024-02-23 07:53:25 -05:00
Jacob Nguyen
d14ca62954 Merge pull request #46 from sern-handler/fix/publish
fix: add missing documentation
2024-02-12 12:56:43 -06:00
Jacob Nguyen
7dd24d8a6e Merge pull request #52 from sern-handler/feat/clear
clear
2024-01-27 23:46:18 -06:00
Jacob Nguyen
c9d8ef511a clear 2024-01-25 21:31:56 -06:00
Jacob Nguyen
1e14ce2a76 Merge pull request #51 from DuroCodes/patch-1
fix: fix broken link on dependency injection page
2024-01-12 00:43:09 -06:00
Duro
6907748dbf fix: fix broken link on dependency injection page 2024-01-11 22:32:45 -05:00
Jacob Nguyen
ae72c3eedc make install instruction simpler (#50)
* make install instruction simpler

* Create .nvmrc
2024-01-09 19:46:35 +01:00
sern bot
a69e19503c chore: update api documentation 2024-01-08 18:32:17 +00:00
sern bot
edd1d1492d chore: update api documentation 2024-01-07 21:30:44 +00:00
sern bot
92959c3319 chore: update api documentation 2023-12-30 03:54:55 +00:00
sern bot
b14a033c86 chore: update api documentation 2023-12-21 20:52:34 +00:00
sern bot
55a691e787 chore: update api documentation 2023-12-16 23:50:28 +00:00
Jacob Nguyen
0bd5ab15cb Merge pull request #49 from sern-handler/fix/docusaurus-docgen-stuff
fix: docusaurus docgen stuff
2023-12-16 17:38:45 -06:00
4cd89d146f chore: move code and add old comment 2023-12-16 23:29:59 +00:00
a37d077848 fix: docusaurus docgen stuff 2023-12-16 23:25:42 +00:00
7e444894c7 fix: workflow errors because of transition to yarn (#48) 2023-10-16 07:09:01 +02:00
c0b5631bc7 feat: anonymous analytics and move to yarn (#47) 2023-10-15 21:21:36 +02:00
jacob
6fb9c98a47 more info 2023-09-25 11:00:45 -05:00
jacob
c7a06a0779 more info 2023-09-25 11:00:06 -05:00
Jacob Nguyen
c047c3b1cc Merge pull request #44 from needhamgary/patch-1
refactor: update to proper usage
2023-09-24 18:38:45 -05:00
jacob
a48f96841a fix: add missing documentation 2023-09-24 18:36:48 -05:00
Jacob Nguyen
828471eba7 Merge pull request #45 from needhamgary/main
Fix: fix some files
2023-09-24 10:51:12 -05:00
Gary
1b49dc80b5 Fix: remove unnecessary "is"
Just didn't make sense.
2023-09-24 10:21:01 -05:00
Gary
82605f326b Fix: add missing import 2023-09-24 10:14:45 -05:00
Gary
3b5795c0e6 refactor: update to proper usage
makeDependencies was improperly inserted
2023-09-24 08:54:46 -05:00
sern bot
f2388eb23d chore: update api documentation 2023-09-04 23:27:10 +02:00
Jacob Nguyen
948b3bb8cf Merge pull request #42 from SrIzan10/docusaurus-configs
chore: docgen config file
2023-09-04 12:46:55 -05:00
ce43790214 chore: docgen config file 2023-09-04 19:36:18 +02:00
Jacob Nguyen
3eb3690232 Merge pull request #41 from sern-handler/feat/clibuild
feat: cli build guide
2023-08-31 21:52:28 -05:00
Jacob Nguyen
74b259e1b6 build docs 2023-08-23 20:28:45 -05:00
Jacob Nguyen
76eb15c793 progress on build docs 2023-08-22 14:49:45 -05:00
Jacob Nguyen
2689b95e85 fix broken links 2023-08-13 10:52:46 -05:00
Jacob Nguyen
e64667b31c Update publish.md 2023-08-13 00:57:14 -05:00
Jacob Nguyen
749b706a02 Merge pull request #40 from sern-handler/cli
feat: dedicated cli information
2023-08-09 13:08:46 -05:00
Jacob Nguyen
2f757710e1 publish + 2023-08-09 13:04:50 -05:00
Jacob Nguyen
d77ee3f7f5 casing 2023-08-09 12:57:09 -05:00
Jacob Nguyen
1d142db329 feat: dedicated cli information 2023-08-09 12:52:03 -05:00
Jacob Nguyen
71f100d079 Merge pull request #39 from sern-handler/Murtatrxx-patch-1
refactor: Update services.md
2023-08-04 21:20:51 -05:00
Jacob Nguyen
0b8de88344 update service guide 2023-08-04 21:08:51 -05:00
xxDeveloper
bfc4d6ac8e fix: JSX issue 2023-08-04 20:14:30 +03:00
xxDeveloper
b06251f499 please work 2023-08-04 20:06:52 +03:00
xxDeveloper
19db611a9b fix: Deploy success 2023-08-04 20:01:11 +03:00
xxDeveloper
ef452e678a fix: Unterminated JSX tag 2023-08-04 19:50:29 +03:00
xxDeveloper
c7a8611476 docs: Add some magic 2023-08-04 19:44:22 +03:00
xxDeveloper
9802586bf7 docs: Update services.md 2023-08-04 19:35:18 +03:00
Jacob Nguyen
d59674eca2 Merge pull request #38 from sern-handler/meta
try new meta
2023-07-29 18:43:42 -05:00
Jacob Nguyen
9168f61c09 better links 2023-07-29 18:28:27 -05:00
Jacob Nguyen
c1d64d1172 more info 2023-07-29 18:21:13 -05:00
Jacob Nguyen
2b3cdc2374 fix meta 2023-07-29 18:19:41 -05:00
Jacob Nguyen
530a622c36 try again 2023-07-29 18:07:05 -05:00
Jacob Nguyen
c46f074926 try new meta 2023-07-29 17:31:02 -05:00
Jacob Nguyen
3cc8b38390 fix links oops 2023-07-29 17:20:21 -05:00
Jacob Nguyen
ef6420a669 Merge pull request #36 from sern-handler/feat/version3
feat: version 3
2023-07-29 17:03:42 -05:00
Jacob Nguyen
e10e6cbd2f upgrades to guide and frontpage 2023-07-29 11:09:03 -05:00
xxDeveloper
d531eb7340 fix: Why 2023-07-28 18:10:11 +03:00
xxDeveloper
332399bb43 fix: Search issues 2023-07-28 18:05:26 +03:00
xxDeveloper
b97bc9dde7 fix: Optimise search 2023-07-28 17:52:14 +03:00
xxDeveloper
d447a40f98 fix: DocSearch 2023-07-28 17:40:34 +03:00
xxDeveloper
eca35e1309 fix: Please work 2023-07-28 17:32:36 +03:00
xxDeveloper
44645d89de fix: Search 2023-07-28 17:25:31 +03:00
xxDeveloper
66bdaf7f9f docs: Add search 2023-07-28 17:22:38 +03:00
xxDeveloper
d9a69a4b6b docs: Update choose-ide.md 2023-07-28 14:03:28 +03:00
Jacob Nguyen
70ff70a1bf update svgs 2023-07-28 00:37:35 -05:00
Jacob Nguyen
59b6096423 update npm create 2023-07-28 00:25:46 -05:00
Jacob Nguyen
ee11018d48 feat: big ass revamp 2023-07-28 00:15:56 -05:00
Jacob Nguyen
e547c0f485 Merge pull request #37 from SrIzan10/new-logo
feat: new logo!
2023-07-26 10:20:59 -05:00
75140b3d38 feat: new logo! 2023-07-26 17:16:15 +02:00
Jacob Nguyen
f1917da3e6 feat: add new interfaces 2023-07-17 09:59:50 -05:00
Jacob Nguyen
7a80638a1b update docs and blog 2023-07-17 09:55:43 -05:00
Jacob Nguyen
4c6b6f9177 comment out plugin 2023-06-30 21:59:32 -05:00
Jacob Nguyen
49a910f90a fix docs build 2023-06-30 21:56:51 -05:00
Jacob Nguyen
05e470b99b change walkthrough name and update walkthrough 2023-06-28 10:34:30 -05:00
Jacob Nguyen
ebe5c84ba3 separating walkthroughs 2023-06-26 23:03:54 -05:00
Jacob Nguyen
a4d12af7f2 chore: add more 2023-06-26 22:22:26 -05:00
Jacob Nguyen
b8377ec5a4 Merge pull request #34 from sern-handler/chore/docs
chore: update docs
2023-04-19 12:58:13 -05:00
Jacob Nguyen
b8be42b1d7 Merge pull request #33 from SrIzan10/patch-6
chore: change srizan domain from ml to dev
2023-04-19 12:56:54 -05:00
Jacob Nguyen
9eebee836a chore: change ethan's title 2023-04-15 15:21:53 -05:00
Jacob Nguyen
64adb7b0ca chore: update docusaurus and docs 2023-04-15 15:08:48 -05:00
Jacob Nguyen
51a9774b58 chore: update docs 2023-04-15 15:08:05 -05:00
Jacob Nguyen
4feb242b61 chore: update links 2023-04-15 15:07:45 -05:00
24a2098402 chore: change srizan domain from ml to dev 2023-04-04 16:26:22 +02:00
xxDeveloper
6ab8f09271 Update preparing.md 2023-02-06 23:04:24 +03:00
xxDeveloper
04a7824983 Update preparing.md 2023-02-06 22:53:19 +03:00
xxDeveloper
994f0ca0e8 Update preparing.md 2023-02-06 22:52:37 +03:00
Jacob Nguyen
a60c20545e Merge pull request #31 from sern-handler/twofive
feat: twopointfive blog
2023-01-30 12:23:10 -06:00
Jacob Nguyen
9923ad226d fix: comment plugin out 2023-01-26 15:55:38 -06:00
Jacob Nguyen
a418273592 fix: typo 2023-01-26 15:51:08 -06:00
Jacob Nguyen
cefbc62823 docs: finish blog 2023-01-26 15:47:53 -06:00
Jacob Nguyen
437b8759cb docs: add new plugins docs 2023-01-17 11:33:48 -06:00
Jacob Nguyen
7e0c9c012f fix: links 2023-01-17 11:33:25 -06:00
Jacob Nguyen
9087c085c4 feat: update documentation and clarify documentation 2023-01-17 11:23:46 -06:00
Jacob Nguyen
adfbe3b8a4 feat: update docs and some blog progress 2023-01-12 22:06:31 -06:00
Jacob Nguyen
39ff89aa00 feat: blog2/main (#30) 2022-12-28 22:43:41 +03:00
Jacob Nguyen
486b4eced9 feat: starting writing 2.0 release blog 2022-12-13 23:22:31 -06:00
THEALAN
ccc5466b9c Label Fixes (#28) 2022-12-05 08:00:56 +03:00
xxDeveloper
ffc3e5419a Update CNAME 2022-11-05 13:57:43 +03:00
xxDeveloper
c965f6fca2 feat: Improvements 2022-10-09 12:38:06 +03:00
ba9b7605a6 feat: how to use sern blog post (#27)
* feat: how to use sern blog post

* fix: all issues
2022-10-09 10:37:04 +03:00
xxDeveloper
3842e2dc35 fix: Improvements for previous release-logs 2022-10-08 20:20:13 +03:00
Jacob Nguyen
dd0a61d71a Merge pull request #26 from sern-handler/feat-blog
feat: blog
2022-09-28 11:50:11 -05:00
Jacob Nguyen
b588f64dd5 fix: admonition 2022-09-28 01:47:54 -05:00
Jacob Nguyen
9a686c27f0 fix: admonition 2022-09-28 01:45:14 -05:00
Jacob Nguyen
068ee4c7f3 feat: change date of blog 2022-09-28 01:39:01 -05:00
Jacob Nguyen
61bef454da fix: try fiux 2022-09-28 01:31:45 -05:00
Jacob Nguyen
0c5cc44017 fix: links 2022-09-28 01:24:32 -05:00
Jacob Nguyen
62e0d6a61e feat: blogwork 2022-09-28 00:20:58 -05:00
Jacob Nguyen
784d50b8a7 feat: adding blogs 2022-09-27 14:33:41 -05:00
xxDeveloper
6857d86848 fix: typo at subtitle 2022-09-25 13:51:38 +03:00
0936b2db77 fix: hand lers. rede fined. (#25) 2022-09-25 13:46:42 +03:00
Jacob Nguyen
db4c4adfa8 Merge pull request #24 from SrIzan10/patch-4
feat: change discord embed preview color
2022-09-16 13:08:02 -05:00
92a99887eb revert: nvm 2022-09-16 20:06:15 +02:00
ae3a02b066 fix: attempt 2 2022-09-16 20:03:35 +02:00
a745ed65f1 feat: image on embed, attempt 1 2022-09-16 19:55:54 +02:00
f4377c8689 feat: change discord embed preview color 2022-09-16 19:49:00 +02:00
Duro
d253d3845a fix: node download link (#23) 2022-09-15 18:11:47 +03:00
d6378cf861 fix: hero image stretched out (#21)
* fix: icon on iPhone 13 stretched out

* chore: fix typo

* feat: adding width attr

Co-authored-by: Jacob Nguyen <76754747+jacoobes@users.noreply.github.com>
2022-08-31 19:41:15 +03:00
b36464273e fix: if you have more problems, join the discord (#22) 2022-08-29 17:21:57 +03:00
7648247f38 fix: duplicate title in index (#19) 2022-08-29 17:12:48 +03:00
0efe03d88a fix: typo and its contributors (#20) 2022-08-29 15:31:32 +03:00
xxDeveloper
7c8008625d chore: Zoho domain verification 2022-08-24 22:05:08 +03:00
xxDeveloper
98254a7391 Delete zoho-domain-verification.html 2022-08-24 22:04:23 +03:00
xxDeveloper
85b6bbb1cf chore: Zoho domain verification 2022-08-24 21:55:14 +03:00
Jacob Nguyen
24569595f9 Merge pull request #18 from SrIzan10/srizan-patch-1
feat: static discord link
2022-08-18 14:55:14 -05:00
647c89755c fix: discord.html moved to static/ 2022-08-18 21:35:45 +02:00
0e6caf5c8a feat: discord link 2022-08-18 20:35:56 +02:00
Jacob Nguyen
9a7e98bede feat: update config (#17) 2022-08-17 22:36:33 +03:00
Jacob Nguyen
43f6e227ca Merge pull request #16 from EvolutionX-10/master
fix: edit the page link (again) + js snippet fix
2022-08-17 12:25:02 -05:00
Jacob Nguyen
427fa8cdc9 chore: update branch name in workflow 2022-08-17 12:10:06 -05:00
Evo
ce68afeeaf fix: js snippet for ping cmd 2022-08-17 22:35:50 +05:30
Evo
0f01b5863e chore: fixes link (again) 2022-08-17 22:23:53 +05:30
Evo
0fafea8539 Merge branch 'sern-handler:master' into master 2022-08-17 22:23:12 +05:30
Evo
96283b2d45 fix: edit the page link (#1) (#15) 2022-08-17 19:51:47 +03:00
Evo
5f28408e05 fix: edit the page link (#1) 2022-08-17 22:20:05 +05:30
Jacob Nguyen
6214328309 Merge pull request #13 from AnisTigrini/fix/license-rendering-bug
fix: Small rendering bug on MIT License
2022-08-16 21:47:27 -05:00
Anis Tigrini
5244a9d020 fixed double quotes issue 2022-08-16 22:44:09 -04:00
Anis Tigrini
95f07e7bfa fixed alt on MIT License 2022-08-16 22:26:02 -04:00
Anis Tigrini
428e975fee fixed MIT license rendering on website 2022-08-16 22:19:56 -04:00
Jacob Nguyen
178a49dcc5 Merge pull request #12 from EvolutionX-10/patch-1
fix: incorrect example in event module
2022-08-13 21:15:46 -05:00
Evo
57b2a3ec73 chore: address requested changes 2022-08-14 07:44:17 +05:30
Evo
40e4fe60ad fix: incorrect example in event module 2022-08-14 07:06:46 +05:30
Jacob Nguyen
2051a692be chore: edit link so no new windows 2022-08-13 16:53:10 -05:00
Jacob Nguyen
4e66d27350 fix: broken link 2022-08-13 16:48:29 -05:00
Jacob Nguyen
e19b5e345e feat: add favicon 2022-08-13 16:45:31 -05:00
Jacob Nguyen
8845e3827d feat: action changes and edit link 2022-08-13 16:34:53 -05:00
Jacob Nguyen
d30eb72469 feat: delete needless assets/dir 2022-08-13 16:23:23 -05:00
Jacob Nguyen
73478e6d29 Trigger Build 2022-08-13 15:31:26 -05:00
Jacob Nguyen
b9227a70e2 Trigger Build 2022-08-13 15:25:07 -05:00
Jacob Nguyen
07b83f76fe feat: edit action 2022-08-13 15:19:41 -05:00
Jacob Nguyen
3956759f06 Trigger Build 2022-08-13 15:15:08 -05:00
Jacob Nguyen
88b4ffae11 feat: update gh action 2022-08-13 14:54:05 -05:00
Jacob Nguyen
2bce9458bf feat: update gh action 2022-08-13 14:51:14 -05:00
Jacob Nguyen
cd601bdefe Merge remote-tracking branch 'origin/jacoobes' into jacoobes 2022-08-13 14:46:44 -05:00
Jacob Nguyen
ae9c40ee50 feat: configure docusaurus.config.js for github pages 2022-08-13 14:46:16 -05:00
Jacob Nguyen
d4abf4bc9d feat: move CNAME to static/ 2022-08-13 14:46:16 -05:00
Jacob Nguyen
e4eaf9dda2 feat: remove old index.html in static/ 2022-08-13 14:46:16 -05:00
Jacob Nguyen
5178605264 feat: remove old index.html in static/ 2022-08-13 14:46:16 -05:00
xxDeveloper
62982d91e4 ci: Create docusaurus workflow 2022-08-13 22:44:08 +03:00
Jacob Nguyen
e8acece51a feat: configure docusaurus.config.js for github pages 2022-08-13 14:41:38 -05:00
Jacob Nguyen
463f0f61e0 feat: move CNAME to static/ 2022-08-13 14:38:57 -05:00
Jacob Nguyen
d23c54dd2c feat: remove old index.html in static/ 2022-08-13 14:36:15 -05:00
Jacob Nguyen
e627b8bb55 feat: remove old index.html in static/ 2022-08-13 14:27:21 -05:00
Jacob Nguyen
add28784d2 Merge pull request #11 from sern-handler/jacoobes
feat: Added docs
2022-08-13 14:18:54 -05:00
Jacob Nguyen
0eccac926f Merge branch 'master' into jacoobes
# Conflicts:
#	docs/guide/.nojekyll
#	docs/guide/README.md
#	docs/guide/getting-started/choose-ide.md
#	docs/guide/good-to-know/sern-config.html
#	docs/guide/intro.html
#	docs/guide/other/release-notes.html
#	docs/guide/walkthrough/cli.md
#	docs/guide/walkthrough/conclusion.md
#	docs/guide/walkthrough/first-command.md
#	docs/guide/walkthrough/first-event.md
#	docs/guide/walkthrough/goal.md
#	docs/guide/walkthrough/good-to-know.md
#	docs/guide/walkthrough/plugins.md
#	docs/guide/walkthroughs/cli.html
#	docs/guide/walkthroughs/conclusion.html
#	docs/guide/walkthroughs/first-command.html
#	docs/guide/walkthroughs/first-event.html
#	docs/guide/walkthroughs/plugins.html
#	netlify.toml
#	package.json
2022-08-13 14:05:39 -05:00
Jacob Nguyen
f18d4ded88 feat: add a few more admonitions 2022-08-13 13:55:04 -05:00
Jacob Nguyen
a128e8dee6 feat: cleaning up, adding admonitions 2022-08-13 13:45:13 -05:00
Jacob Nguyen
211aeaefbd feat: add intro 2022-08-12 22:04:29 -05:00
Jacob Nguyen
33301874f9 feat: fix responsiveness and uneven footer
Co-authored-by: xxDeveloper <Murtatrxx@users.noreply.github.com>
2022-08-11 20:14:30 -05:00
Jacob Nguyen
cc7bd61542 feat: make blog private for now 2022-08-09 17:39:33 -05:00
Jacob Nguyen
48912ed979 feat: sidebar order for walkthrough 2022-08-09 17:35:04 -05:00
Jacob Nguyen
cd964af129 feat: made hero larger 2022-08-09 17:18:19 -05:00
Jacob Nguyen
4e604a0449 feat: add coming soon plugins page 2022-08-09 16:52:07 -05:00
Jacob Nguyen
6f4ab8ef9c feat: fixing some links after repo change 2022-08-09 16:20:31 -05:00
Jacob Nguyen
e43eec5f20 feat: change linebreaks, remove other/ 2022-08-09 16:02:05 -05:00
Jacob Nguyen
fe27ff5a0c feat: progresso noodle soup
Co-authored-by: xxDeveloper <Murtatrxx@users.noreply.github.com>
2022-08-08 16:41:48 -05:00
Jacob Nguyen
eb3b049a19 feat: work on blog and edit README.md 2022-08-08 14:00:55 -05:00
Jacob Nguyen
974b909946 feat: add netlify serve directory 2022-08-08 11:27:10 -05:00
Jacob Nguyen
f607b95346 feat: commit out plugins 2022-08-07 18:03:48 -05:00
Jacob Nguyen
ed91cceabc feat: changes 2022-08-07 17:29:05 -05:00
Jacob Nguyen
83320e49f6 feat adding guide to repo, adding api 2022-08-07 16:43:28 -05:00
Jacob Nguyen
fc3dde72f9 feat adding guide to repo, adding api 2022-08-07 16:42:55 -05:00
Jacob Nguyen
e0444a9998 feat: add doc blog 2022-08-07 10:51:42 -05:00
Jacob Nguyen
8e4f5299df feat: add resources 2022-08-07 10:50:21 -05:00
Jacob Nguyen
70010ffe57 feat: start merge 2022-08-07 10:47:25 -05:00
xxDeveloper
97309dba62 feat: Added more functionality bot 404 page 2022-07-28 21:34:22 +03:00
xxDeveloper
31651e1963 feat: Added 404 page 2022-07-28 21:31:05 +03:00
Jacob Nguyen
05e188439d fixes: fixes a lot of the bad links and rewording for brevity (#9)
* bug: typos

* fix: links

* fix: sidebar links

* fix: cli link

* fix: local links

* fix: oops forgot some links

* fixing more links

* docs: adding brevity

* feat: adding basic plugin description back

* fix: export -> exports

* fix: intro href

* fix: docs link (don't want unwanted redirect to home

* fix: titles

* style: format ( vscode default )

* docs: comment out

* adding nojekyll

* fix: idk trying to fix netlify deploy

* Create netlify.toml

* Update package.json

* docs: Removed nojekyll

* chore: update netlify.toml

Co-authored-by: xxDeveloper <77380166+Murtatrxx@users.noreply.github.com>
2022-07-26 23:17:05 +03:00
xxDeveloper
5bfe0f825c Update netlify.toml 2022-07-26 21:55:26 +03:00
xxDeveloper
da0eefdf3b Create netlify.toml 2022-07-26 21:53:27 +03:00
xxDeveloper
2ee09a6e7a docs: Fix the color 2022-07-25 11:38:49 +03:00
xxDeveloper
fc134c0c9c docs: Guide v1.0.0 2022-07-24 23:26:42 +03:00
xxDeveloper
24765af575 Merge branch 'master' of https://github.com/sern-handler/website 2022-07-24 23:24:04 +03:00
xxDeveloper
243c020628 docs: Guide v1.0.0 2022-07-24 23:23:38 +03:00
xxDeveloper
cff7bd7e09 docs(readme): Uncapitalized the brand name 2022-07-15 16:56:01 +03:00
xxDeveloper
0eec925422 Merge pull request #8 from sern-handler/guide-improve
docs: Guide improve
2022-07-15 16:55:23 +03:00
xxDeveloper
b08f1ff29f docs(website): Uncapitalized the brand name 2022-07-15 16:48:56 +03:00
xxDeveloper
674184badb Merge pull request #7 from sern-handler/jacoobes
docs: Added guide
2022-07-12 23:35:00 +03:00
Jacob Nguyen
9cfb202014 feat: requested changes 2022-07-12 14:28:07 -05:00
Jacob Nguyen
c2e1028bc8 fix: anchorsx2 2022-07-11 16:00:53 -05:00
Jacob Nguyen
99a3ed27f7 fix: anchors 2022-07-11 15:58:23 -05:00
Jacob Nguyen
0e83cb99ec feat: change to requested https://github.com/sern-handler/website/pull/7 2022-07-11 15:54:27 -05:00
Jacob Nguyen
23ab9d36f5 feat: all of it has been written i think ( rough draft ) 2022-07-10 14:44:57 -05:00
Jacob Nguyen
3fbfdeff76 feat: add diagram 2022-07-10 00:04:52 -05:00
Jacob Nguyen
3d05c4873f feat: eventplugins.drawio.svg 2022-07-09 23:55:53 -05:00
Jacob Nguyen
d34b97dfa8 feat: Event plugin diagram 2022-07-09 23:49:35 -05:00
Jacob Nguyen
e37640b6b2 event-plugin-diagram 2022-07-09 23:30:00 -05:00
Jacob Nguyen
0e363ad491 feat: finish command plugin section 2022-07-09 23:26:17 -05:00
Jacob Nguyen
7ff79a4576 feat: more progress on docs 2022-07-06 01:06:32 -05:00
Jacob Nguyen
7771807657 feat: typos 2022-07-02 10:45:13 -05:00
Jacob Nguyen
8f33ee8e60 Merge remote-tracking branch 'origin/jacoobes' into jacoobes
# Conflicts:
#	guide-en/README.md
2022-07-02 10:23:39 -05:00
Jacob Nguyen
ed3a4a53e3 feat: revert changes 2022-07-02 10:23:07 -05:00
xxDeveloper
f84e2e686a docs: Updated template Disclaimer 2022-07-02 11:53:22 +03:00
Jacob Nguyen
93e3aeccd8 feat: add another example of commandModule 2022-07-01 20:36:33 -05:00
Jacob Nguyen
7140a7aef8 feat: adding docs 2022-07-01 19:10:17 -05:00
xxDeveloper
3abba07c89 Merge branch 'master' of https://github.com/sern-handler/website 2022-06-26 23:32:28 +03:00
xxDeveloper
28395413ae feat: Added templates for other languages 2022-06-26 23:32:23 +03:00
xxDeveloper
70e20f6030 feat: Remove name, add todo 2022-06-26 23:29:43 +03:00
Jacob Nguyen
2542851e2e feat: Remove name, add todo 2022-06-26 15:28:52 -05:00
xxDeveloper
c129a4e032 Merge branch 'master' of https://github.com/sern-handler/website 2022-06-26 23:27:02 +03:00
xxDeveloper
d8cab0782e feat: Added some text to preparing.md 2022-06-26 23:26:56 +03:00
xxDeveloper
bf0611bd79 feat: Added some text to choose-ide.md file 2022-06-26 23:24:25 +03:00
xxDeveloper
3d0cf23c53 Create LICENSE 2022-06-26 23:19:16 +03:00
xxDeveloper
9a0f5a5dbc chore: Shortened the discord link 2022-06-26 23:17:26 +03:00
xxDeveloper
384e09541b fix: Fixed the topbar link to the guide 2022-06-26 23:16:17 +03:00
xxDeveloper
97722573fa feat: Added first steps template 2022-06-26 23:12:54 +03:00
xxDeveloper
bc6f9048c2 feat: Few improvements to templates 2022-06-26 23:10:13 +03:00
xxDeveloper
c1d5931ccd Merge branch 'master' of https://github.com/sern-handler/website 2022-06-26 23:06:30 +03:00
xxDeveloper
81c7250f63 docs: 💎 Added guide templates 2022-06-26 23:06:20 +03:00
xxDeveloper
f1db5ff361 docs: Updated readme 2022-06-24 15:53:31 +03:00
xxDeveloper
6aa53edc22 chore: Updated icon 2022-06-24 15:51:37 +03:00
xxDeveloper
2f46becc47 chore: Updated topbar links 2022-06-24 15:47:55 +03:00
xxDeveloper
54b58d944f feat: 💥 Pretend links to be working 2022-06-23 22:25:12 +03:00
xxDeveloper
f90b05bf92 ci: please build page pls 2022-06-23 21:32:06 +03:00
267 changed files with 18829 additions and 11714 deletions

31
.github/workflows/github-pages.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: Deploy to GitHub Pages
on:
push:
branches:
- main
workflow_dispatch:
jobs:
deploy:
name: Deploy to GitHub Pages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: oven-sh/setup-bun@v1
with:
bun-version: latest
- name: Install Dependencies
run: bun install
- name: Build
run: bun run build
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.AUTOMATA_TOKEN }}
publish_dir: ./dist
user_name: sernbot
user_email: ${{ secrets.AUTOMATA_EMAIL }}

34
.github/workflows/lunaria.yml vendored Normal file
View File

@@ -0,0 +1,34 @@
name: Lunaria
on:
pull_request_target:
types: [opened, synchronize]
branches: [main]
permissions:
contents: read
pull-requests: write
jobs:
lunaria-overview:
name: Generate Lunaria Overview
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: latest
- name: Install Dependencies
run: bun install
- name: Generate Lunaria Overview
uses: yanthomasdev/lunaria-action@main
with:
token: ${{ secrets.AUTOMATA_TOKEN }}

24
.gitignore vendored Normal file
View File

@@ -0,0 +1,24 @@
# build output
dist/
# generated types
.astro/
# dependencies
node_modules/
# logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# environment variables
.env
.env.production
# macOS-specific files
.DS_Store
sern-handler-*
/tools/

8
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

7
.idea/discord.xml generated Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DiscordProjectSettings">
<option name="show" value="PROJECT_FILES" />
<option name="description" value="" />
</component>
</project>

6
.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/website.iml" filepath="$PROJECT_DIR$/.idea/website.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

9
.idea/website.iml generated Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

411
.idea/workspace.xml generated Normal file
View File

@@ -0,0 +1,411 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="53dd69d3-e01a-4656-b414-c727f5aa549a" name="Changes" comment="limit description characters to 100">
<change beforePath="$PROJECT_DIR$/src/pages/index.module.css" beforeDir="false" afterPath="$PROJECT_DIR$/src/pages/index.module.css" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ComposerSettings">
<execution />
</component>
<component name="Git.Merge.Settings">
<option name="BRANCH" value="master" />
</component>
<component name="Git.Rebase.Settings">
<option name="NEW_BASE" value="jacoobes" />
</component>
<component name="Git.Settings">
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="main" />
</map>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="GithubPullRequestsUISettings">
<option name="selectedUrlAndAccountId">
<UrlAndAccount>
<option name="accountId" value="1fedf39a-45aa-449b-9d1d-6f25985f42b4" />
<option name="url" value="https://github.com/sern-handler/website.git" />
</UrlAndAccount>
</option>
</component>
<component name="MacroExpansionManager">
<option name="directoryName" value="d62oj9rg" />
</component>
<component name="MarkdownSettingsMigration">
<option name="stateVersion" value="1" />
</component>
<component name="ProjectColorInfo">{
&quot;associatedIndex&quot;: 5
}</component>
<component name="ProjectId" id="2DJXFY4dwukGLOzXi05b6lHCkuk" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
"Git.Branch.Popup.ShowAllRemotes": "true",
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"WebServerToolWindowFactoryState": "false",
"git-widget-placeholder": "feat/pluginPage",
"kotlin-language-version-configured": "true",
"last_opened_file_path": "C:/Users/jacob/OneDrive/Desktop/Projects/sern/website",
"node.js.detected.package.eslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
"node.js.selected.package.tslint": "(autodetect)",
"nodejs_package_manager_path": "npm",
"project.structure.last.edited": "Modules",
"project.structure.proportion": "0.0",
"project.structure.side.proportion": "0.0",
"ts.external.directory.path": "/home/srizan/Documents/Development/sern-website/node_modules/typescript/lib",
"vue.rearranger.settings.migration": "true"
}
}]]></component>
<component name="RecentsManager">
<key name="MoveFile.RECENT_KEYS">
<recent name="C:\Users\jacob\IdeaProjects\website\static\img" />
</key>
</component>
<component name="RunManager" selected="npm.start">
<configuration name="build" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
<package-json value="$PROJECT_DIR$/package.json" />
<command value="run" />
<scripts>
<script value="build" />
</scripts>
<node-interpreter value="project" />
<envs />
<method v="2" />
</configuration>
<configuration name="start" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
<package-json value="$PROJECT_DIR$/package.json" />
<command value="run" />
<scripts>
<script value="start" />
</scripts>
<node-interpreter value="project" />
<envs />
<method v="2" />
</configuration>
<configuration name="typedoc-json" type="js.build_tools.npm" temporary="true" nameIsGenerated="true">
<package-json value="$PROJECT_DIR$/package.json" />
<command value="run" />
<scripts>
<script value="typedoc-json" />
</scripts>
<node-interpreter value="project" />
<envs />
<method v="2" />
</configuration>
<recent_temporary>
<list>
<item itemvalue="npm.start" />
<item itemvalue="npm.build" />
<item itemvalue="npm.typedoc-json" />
</list>
</recent_temporary>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="53dd69d3-e01a-4656-b414-c727f5aa549a" name="Changes" comment="chore: edit link so no new windows" />
<created>1660418057765</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1660418057765</updated>
<workItem from="1660418059202" duration="1120000" />
<workItem from="1660419190329" duration="211000" />
<workItem from="1660703091089" duration="348000" />
<workItem from="1661890199928" duration="3164000" />
<workItem from="1661963277269" duration="666000" />
<workItem from="1661966300011" duration="124000" />
<workItem from="1664254948139" duration="391000" />
<workItem from="1664301972139" duration="4356000" />
<workItem from="1664322335828" duration="5088000" />
<workItem from="1664342243187" duration="510000" />
<workItem from="1664342844947" duration="41000" />
<workItem from="1664345686862" duration="1690000" />
<workItem from="1670994246639" duration="17000" />
<workItem from="1670994294247" duration="1058000" />
<workItem from="1671030002725" duration="5842000" />
<workItem from="1671047161316" duration="3576000" />
<workItem from="1671119393024" duration="3889000" />
<workItem from="1673974979200" duration="2385000" />
<workItem from="1674757791435" duration="925000" />
<workItem from="1713448008567" duration="8323000" />
<workItem from="1714235989637" duration="2619000" />
</task>
<task id="LOCAL-00001" summary="feat: remove old index.html in static/">
<created>1660418841831</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1660418841831</updated>
</task>
<task id="LOCAL-00002" summary="feat: remove old index.html in static/">
<created>1660419375631</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1660419375631</updated>
</task>
<task id="LOCAL-00003" summary="feat: edit action">
<created>1660421982013</created>
<option name="number" value="00003" />
<option name="presentableId" value="LOCAL-00003" />
<option name="project" value="LOCAL" />
<updated>1660421982013</updated>
</task>
<task id="LOCAL-00004" summary="feat: delete needless assets/dir">
<created>1660425803740</created>
<option name="number" value="00004" />
<option name="presentableId" value="LOCAL-00004" />
<option name="project" value="LOCAL" />
<updated>1660425803740</updated>
</task>
<task id="LOCAL-00005" summary="feat: action changes and edit link">
<created>1660426493480</created>
<option name="number" value="00005" />
<option name="presentableId" value="LOCAL-00005" />
<option name="project" value="LOCAL" />
<updated>1660426493480</updated>
</task>
<task id="LOCAL-00006" summary="feat: add favicon">
<created>1660427131558</created>
<option name="number" value="00006" />
<option name="presentableId" value="LOCAL-00006" />
<option name="project" value="LOCAL" />
<updated>1660427131558</updated>
</task>
<task id="LOCAL-00007" summary="fix: broken link">
<created>1660427309873</created>
<option name="number" value="00007" />
<option name="presentableId" value="LOCAL-00007" />
<option name="project" value="LOCAL" />
<updated>1660427309873</updated>
</task>
<task id="LOCAL-00008" summary="chore: edit link so no new windows">
<created>1660427590730</created>
<option name="number" value="00008" />
<option name="presentableId" value="LOCAL-00008" />
<option name="project" value="LOCAL" />
<updated>1660427590730</updated>
</task>
<task id="LOCAL-00009" summary="chore: fix typo">
<created>1661890861168</created>
<option name="number" value="00009" />
<option name="presentableId" value="LOCAL-00009" />
<option name="project" value="LOCAL" />
<updated>1661890861168</updated>
</task>
<task id="LOCAL-00010" summary="feat: adding width attr">
<created>1661963793586</created>
<option name="number" value="00010" />
<option name="presentableId" value="LOCAL-00010" />
<option name="project" value="LOCAL" />
<updated>1661963793586</updated>
</task>
<task id="LOCAL-00011" summary="feat: adding blogs">
<created>1664307221790</created>
<option name="number" value="00011" />
<option name="presentableId" value="LOCAL-00011" />
<option name="project" value="LOCAL" />
<updated>1664307221790</updated>
</task>
<task id="LOCAL-00012" summary="feat: blogwork">
<created>1664342459061</created>
<option name="number" value="00012" />
<option name="presentableId" value="LOCAL-00012" />
<option name="project" value="LOCAL" />
<updated>1664342459061</updated>
</task>
<task id="LOCAL-00013" summary="fix: links">
<created>1664346272428</created>
<option name="number" value="00013" />
<option name="presentableId" value="LOCAL-00013" />
<option name="project" value="LOCAL" />
<updated>1664346272428</updated>
</task>
<task id="LOCAL-00014" summary="fix: try fiux">
<created>1664346705175</created>
<option name="number" value="00014" />
<option name="presentableId" value="LOCAL-00014" />
<option name="project" value="LOCAL" />
<updated>1664346705175</updated>
</task>
<task id="LOCAL-00015" summary="feat: change date of blog">
<created>1664347141696</created>
<option name="number" value="00015" />
<option name="presentableId" value="LOCAL-00015" />
<option name="project" value="LOCAL" />
<updated>1664347141696</updated>
</task>
<task id="LOCAL-00016" summary="feat: starting writing 2.0 release blog">
<created>1670995351643</created>
<option name="number" value="00016" />
<option name="presentableId" value="LOCAL-00016" />
<option name="project" value="LOCAL" />
<updated>1670995351643</updated>
</task>
<task id="LOCAL-00017" summary="feat: adding more to blog">
<created>1671035904313</created>
<option name="number" value="00017" />
<option name="presentableId" value="LOCAL-00017" />
<option name="project" value="LOCAL" />
<updated>1671035904313</updated>
</task>
<task id="LOCAL-00018" summary="feat: update docs and links">
<created>1671049168115</created>
<option name="number" value="00018" />
<option name="presentableId" value="LOCAL-00018" />
<option name="project" value="LOCAL" />
<updated>1671049168115</updated>
</task>
<task id="LOCAL-00019" summary="feat: update docs and links">
<created>1671049335597</created>
<option name="number" value="00019" />
<option name="presentableId" value="LOCAL-00019" />
<option name="project" value="LOCAL" />
<updated>1671049335597</updated>
</task>
<task id="LOCAL-00020" summary="feat: fix blog links">
<created>1671050397033</created>
<option name="number" value="00020" />
<option name="presentableId" value="LOCAL-00020" />
<option name="project" value="LOCAL" />
<updated>1671050397033</updated>
</task>
<task id="LOCAL-00021" summary="feat: update blog">
<created>1671121547701</created>
<option name="number" value="00021" />
<option name="presentableId" value="LOCAL-00021" />
<option name="project" value="LOCAL" />
<updated>1671121547701</updated>
</task>
<task id="LOCAL-00022" summary="feat: update typedoc">
<created>1671121807771</created>
<option name="number" value="00022" />
<option name="presentableId" value="LOCAL-00022" />
<option name="project" value="LOCAL" />
<updated>1671121807771</updated>
</task>
<task id="LOCAL-00023" summary="feat: try again">
<created>1671123452807</created>
<option name="number" value="00023" />
<option name="presentableId" value="LOCAL-00023" />
<option name="project" value="LOCAL" />
<updated>1671123452807</updated>
</task>
<task id="LOCAL-00024" summary="feat: update docs and some blog progress">
<created>1673582791487</created>
<option name="number" value="00024" />
<option name="presentableId" value="LOCAL-00024" />
<option name="project" value="LOCAL" />
<updated>1673582791487</updated>
</task>
<task id="LOCAL-00025" summary="feat: update documentation and clarify documentation">
<created>1673976226325</created>
<option name="number" value="00025" />
<option name="presentableId" value="LOCAL-00025" />
<option name="project" value="LOCAL" />
<updated>1673976226325</updated>
</task>
<task id="LOCAL-00026" summary="fix: links">
<created>1673976805332</created>
<option name="number" value="00026" />
<option name="presentableId" value="LOCAL-00026" />
<option name="project" value="LOCAL" />
<updated>1673976805332</updated>
</task>
<task id="LOCAL-00027" summary="docs: add new plugins docs">
<created>1673976828238</created>
<option name="number" value="00027" />
<option name="presentableId" value="LOCAL-00027" />
<option name="project" value="LOCAL" />
<updated>1673976828238</updated>
</task>
<task id="LOCAL-00028" summary="initial built from the ground up page done">
<option name="closed" value="true" />
<created>1713463473768</created>
<option name="number" value="00028" />
<option name="presentableId" value="LOCAL-00028" />
<option name="project" value="LOCAL" />
<updated>1713463473768</updated>
</task>
<task id="LOCAL-00029" summary="copilot leak">
<option name="closed" value="true" />
<created>1714242192383</created>
<option name="number" value="00029" />
<option name="presentableId" value="LOCAL-00029" />
<option name="project" value="LOCAL" />
<updated>1714242192383</updated>
</task>
<task id="LOCAL-00030" summary="limit description characters to 100">
<option name="closed" value="true" />
<created>1714243202496</created>
<option name="number" value="00030" />
<option name="presentableId" value="LOCAL-00030" />
<option name="project" value="LOCAL" />
<updated>1714243202496</updated>
</task>
<option name="localTasksCounter" value="31" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State />
</value>
</entry>
</map>
</option>
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="feat: add favicon" />
<MESSAGE value="fix: broken link" />
<MESSAGE value="chore: edit link so no new windows" />
<MESSAGE value="chore: fix typo" />
<MESSAGE value="feat: adding width attr" />
<MESSAGE value="feat: adding blogs" />
<MESSAGE value="feat: blogwork" />
<MESSAGE value="fix: try fiux" />
<MESSAGE value="feat: change date of blog" />
<MESSAGE value="feat: starting writing 2.0 release blog" />
<MESSAGE value="feat: adding more to blog" />
<MESSAGE value="feat: update docs and links" />
<MESSAGE value="feat: fix blog links" />
<MESSAGE value="feat: update blog" />
<MESSAGE value="feat: update typedoc" />
<MESSAGE value="feat: try again" />
<MESSAGE value="feat: add image" />
<MESSAGE value="feat: update docs and some blog progress" />
<MESSAGE value="feat: update documentation and clarify documentation" />
<MESSAGE value="fix: links" />
<MESSAGE value="docs: add new plugins docs" />
<MESSAGE value="initial built from the ground up page done" />
<MESSAGE value="wow such feature" />
<MESSAGE value="copilot leak" />
<MESSAGE value="limit description characters to 100" />
<option name="LAST_COMMIT_MESSAGE" value="limit description characters to 100" />
</component>
<component name="XSLT-Support.FileAssociations.UIState">
<expand />
<select />
</component>
</project>

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
lts/*

12
.prettierrc.mjs Normal file
View File

@@ -0,0 +1,12 @@
/** @type {import("prettier").Config} */
export default {
plugins: ["prettier-plugin-astro", "prettier-plugin-tailwindcss"],
overrides: [
{
files: "*.astro",
options: {
parser: "astro",
},
},
],
};

12
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,12 @@
{
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/Thumbs.db": true,
".idea": true,
".vscode": true
}
}

1
CNAME
View File

@@ -1 +0,0 @@
sern-handler.js.org

View File

@@ -1 +1,3 @@
# docs
# Website (v2)
sern's clean, modern, and user-friendly web interface. (now built with [Starlight](https://starlight.astro.build/))

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

View File

@@ -1,2 +0,0 @@
"use strict";

181
astro.config.mjs Normal file
View File

@@ -0,0 +1,181 @@
import { defineConfig } from "astro/config";
import starlight from "@astrojs/starlight";
import starlightBlog from "starlight-blog";
import tailwind from "@astrojs/tailwind";
import { createStarlightTypeDocPlugin } from "starlight-typedoc";
import lunaria from "@lunariajs/starlight";
import { GITHUB_URL, DISCORD_URL } from "./src/utils/consts";
import starlightLinksValidator from 'starlight-links-validator';
import react from "@astrojs/react";
const [typeDocV3, typeDocV3Sidebar] = createStarlightTypeDocPlugin();
const [typeDocV4, typeDocV4Sidebar] = createStarlightTypeDocPlugin();
// https://astro.build/config
export default defineConfig({
// TODO: Change this whenever site is deployed to `sern.dev`
site: 'https://sern.dev/',
integrations: [starlight({
title: "sern",
lastUpdated: true,
defaultLocale: "root",
locales: {
root: {
label: "English",
lang: "en"
},
es: {
label: "Español"
},
tr: {
label: "Türkçe"
}
},
social: {
github: GITHUB_URL,
discord: DISCORD_URL
},
editLink: {
baseUrl: GITHUB_URL + "/website/edit/main/"
},
components: {
Head: "~/overrides/Head.astro",
SiteTitle: "~/overrides/SiteTitle.astro",
ThemeSelect: "~/overrides/ThemeSelect.astro",
Sidebar: "~/overrides/Sidebar.astro",
FallbackContentNotice: "~/overrides/FallbackContentNotice.astro"
},
logo: {
src: "~/assets/logo/navbar-icon.png",
replacesTitle: true
},
customCss: ["~/styles/global.css"],
sidebar: [
{
label: "v4",
items: [{
...typeDocV4Sidebar,
badge: {
text: "Generated"
}
}, {
label: "CLI",
autogenerate: {
directory: "v4/cli"
}
}, {
label: "Reference",
autogenerate: {
directory: "v4/reference"
}
}, {
label: "Snippets",
autogenerate: {
directory: "v4/snippets"
}
}, {
label: "Transition",
autogenerate: {
directory: "v4/transition"
}
}, {
label: "Tools",
autogenerate: {
directory: "v4/tools"
}
}]
},
{
label: "v3",
items: [{
...typeDocV3Sidebar,
badge: {
text: "Generated"
}
}, {
label: "CLI",
autogenerate: {
directory: "v3/cli"
}
}, {
label: "Guide",
items: [{
label: "Getting Started",
autogenerate: {
directory: "v3/guide/getting-started"
}
}, {
label: "Walkthrough",
autogenerate: {
directory: "v3/guide/walkthrough"
}
}]
}]
},
],
head: [
!import.meta.env.DEV ? {
tag: 'script',
attrs: {
src: 'https://analytics.sern.dev/ua.js',
'data-website-id': 'db608ae9-3ae2-49ed-9f7c-3ba0d5abe1b6',
defer: true,
},
} : {
tag: 'meta',
attrs: {
name: 'isdev',
content: 'true',
},
},
],
plugins: [starlightBlog({
authors: {
jacoobes: {
name: "jacoobes",
title: "Head Dev",
url: "https://github.com/jacoobes",
picture: "https://github.com/jacoobes.png"
},
ethan: {
name: "Sr Izan",
title: "Head Dev",
url: "https://github.com/SrIzan10",
picture: "https://github.com/SrIzan10.png"
},
sern: {
name: "sern Team",
url: GITHUB_URL,
picture: "https://github.com/sernbot.png"
},
murtatrxx: {
name: "Murtatrxx",
title: "Head Dev",
url: "https://github.com/Murtatrxx",
picture: "https://github.com/Murtatrxx.png"
},
duro: {
name: "Duro",
title: "Developer",
url: "https://github.com/DuroCodes",
picture: "https://github.com/DuroCodes.png"
}
}
}), typeDocV3({
tsconfig: './sern-handler-v3/tsconfig.json',
entryPoints: ['./sern-handler-v3/src/index.ts'],
output: 'v3/api',
sidebar: {
collapsed: true
}
}), typeDocV4({
tsconfig: './sern-handler-v4/tsconfig.json',
entryPoints: ['./sern-handler-v4/src/index.ts'],
output: 'v4/api',
sidebar: {
collapsed: true
}
}), lunaria(), starlightLinksValidator({
exclude: ['/plugins', '?(../../../..?(/../..))/v{3,4}/api/**/*']
})]
}), tailwind(), react()]
});

1702
bun.lock Normal file

File diff suppressed because it is too large Load Diff

17
components.json Normal file
View File

@@ -0,0 +1,17 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "default",
"rsc": false,
"tsx": true,
"tailwind": {
"config": "tailwind.config.mjs",
"css": "src/styles/global.css",
"baseColor": "neutral",
"cssVariables": false,
"prefix": ""
},
"aliases": {
"components": "~/components",
"utils": "~/utils"
}
}

14
ec.config.mjs Normal file
View File

@@ -0,0 +1,14 @@
import { defineEcConfig } from '@astrojs/starlight/expressive-code';
import { pluginLineNumbers } from '@expressive-code/plugin-line-numbers';
export default defineEcConfig({
plugins: [pluginLineNumbers()],
defaultProps: {
showLineNumbers: false,
overridesByLang: {
'js,javascript,typescript,ts,json': {
showLineNumbers: true,
},
},
},
});

View File

@@ -1,71 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Sern - A batteries-included & powerful discord.js framework</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"/>
<link rel="stylesheet" href="assets/css/style.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<link rel="shortcut icon" href="assets/images/icon.png" type="image/x-icon"/>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.3/font/bootstrap-icons.css">
<meta name="og:title" content="Sern - A batteries-included & powerful discord.js framework">
<meta name="og:description" content="A customizable, batteries-included, powerful discord.js framework to automate and streamline bot development">
<meta name="og:image" content="assets/images/icon.png">
<meta name="og:url" content="https://github.com/sern-handler/handler">
<meta name="og:type" content="website">
<script src="assets/js/main.js"></script>
</head>
<body class="user-select-none">
<nav class="navbar navbar-expand-lg py-1.25 navbar-light bg-light shadow-rm">
<div class="container">
<a href="#" class="navbar-brand">
<img src="assets/images/logo.png" width="42" height="40" alt="" class="d-inline-block align-middle mr-2">
<span class="text font-weight-bold font-family-ubuntu hover-zoom">SernHandler</span>
<span>7 <i class="bi bi-star-fill padding-7px"></i>・270 <i class="bi bi-cloud-arrow-down-fill"></i></span>
</a>
<button type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation" class="navbar-toggler"><span class="navbar-toggler-icon"></span></button>
<div id="navbarSupportedContent" class="collapse navbar-collapse">
<ul class="navbar-nav ml-auto">
<li class="nav-item"><a href="#" class="nav-link"><i class="bi bi-puzzle-fill mr-2"></i>Plugins (UD)</a></li>
<li class="nav-item"><a href="#" class="nav-link"><i class="bi bi-github mr-2"></i>Github Profile</a></li>
<li class="nav-item"><a href="#" class="nav-link"><i class="bi bi-compass-fill mr-2"></i>Guide</a></li>
<li class="nav-item"><a href="#" class="nav-link"><i class="bi bi-bookmarks-fill mr-2"></i>Documentation</a></li>
</ul>
</div>
</div>
</nav>
<header class="masthead">
<div class="container px-5">
<div class="row gx-5 align-items-center">
<div class="col-lg-6">
<div class="mb-5 mb-lg-0 text-center text-lg-start">
<h1 class="display-1 lh-1 mb-3 fw-bold text-bold">Handlers. Redefined.</h1>
<p class="lead fw-normal text-muted mb-5 text-align-left">With the support of the community made plugins and powerful CLI, it's more than just a handler.</p>
<div class="d-flex flex-column flex-lg-row align-items-center">
<img class="app-badge" src="assets/images/R.png" alt="..." /><p class="fw-bold font-family-ubuntu text ml-2 mt-3 qi">• npm install @sern/handler</p>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="masthead-device-mockup">
<div class="device-wrapper">
<div class="device" data-device="iPhoneX" data-orientation="portrait" data-color="black">
<div class="screen">
<img src="assets/images/logo.png" class="hero-img" height="120%">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</header>
</body>
</html>

31
lunaria.config.json Normal file
View File

@@ -0,0 +1,31 @@
{
"$schema": "./node_modules/@lunariajs/core/config.schema.json",
"repository": {
"name": "sern-handler/website"
},
"defaultLocale": {
"label": "English",
"lang": "en"
},
"locales": [
{
"label": "English",
"lang": "en"
},
{
"label": "Español",
"lang": "es"
},
{
"label": "Türkçe",
"lang": "tr"
}
],
"files": [
{
"location": "src/content/docs/**/*.mdx",
"pattern": "src/content/docs/@lang/@path",
"type": "universal"
}
]
}

3
netlify.toml Normal file
View File

@@ -0,0 +1,3 @@
[build]
publish = "dist"
command = "bun run build"

View File

@@ -1,19 +1,54 @@
{
"name": "@sern/website",
"version": "1.0.0",
"description": "Sern's modern, clean and beginner friendly web interface",
"main": "index.js",
"name": "sern-docs",
"type": "module",
"version": "0.0.1",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"dev": "astro dev",
"start": "astro dev",
"build": "astro check && astro build",
"preview": "astro preview",
"astro": "astro",
"postinstall": "bun run setup.ts",
"lunaria:build": "lunaria build",
"lunaria:preview": "lunaria preview"
},
"repository": {
"type": "git",
"url": "git+https://github.com/sern-handler/website.git"
"dependencies": {
"@astrojs/check": "0.7.0",
"@astrojs/react": "^3.5.0",
"@astrojs/starlight": "0.23.1",
"@astrojs/starlight-tailwind": "2.0.3",
"@astropub/md": "^0.4.0",
"@expressive-code/plugin-line-numbers": "^0.35.3",
"@lunariajs/core": "^0.0.32",
"@lunariajs/starlight": "^0.0.6",
"@radix-ui/react-slot": "^1.0.2",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
"astro": "4.9.1",
"astro-og-canvas": "^0.5.0",
"canvaskit-wasm": "^0.39.1",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"embla-carousel-auto-scroll": "^8.1.4",
"embla-carousel-react": "^8.1.4",
"lucide-react": "^0.394.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"sharp": "^0.32.5",
"starlight-blog": "^0.7.1",
"starlight-links-validator": "^0.9.0",
"starlight-typedoc": "0.12.2",
"tailwind-merge": "^2.3.0",
"tailwindcss-animate": "^1.0.7",
"typedoc": "^0.25.13",
"typedoc-plugin-markdown": "next",
"typescript": "~5.4.5"
},
"author": "xxDeveloper",
"license": "MIT",
"bugs": {
"url": "https://github.com/sern-handler/website/issues"
},
"homepage": "https://github.com/sern-handler/website#readme"
"devDependencies": {
"@tailwindcss/postcss": "^4.0.0",
"@types/bun": "^1.1.1",
"prettier": "^3.2.5",
"prettier-plugin-astro": "^0.13.0",
"prettier-plugin-tailwindcss": "^0.5.14"
}
}

7
postcss.config.cjs Normal file
View File

@@ -0,0 +1,7 @@
module.exports = {
plugins: {
"@tailwindcss/postcss": {},
}
};

1
public/CNAME Normal file
View File

@@ -0,0 +1 @@
sern.dev

13
public/favicon.svg Normal file
View File

@@ -0,0 +1,13 @@
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1080 1080" width="1080" height="1080">
<title>favicon</title>
<style>
.s0 { fill: #ffffff }
.s1 { fill: #ed5087 }
.s2 { fill: #20317b }
</style>
<path id="Shape 1" class="s0" d="m540 1080c-298.6 0-540-241.4-540-540 0-298.6 241.4-540 540-540 298.6 0 540 241.4 540 540 0 298.6-241.4 540-540 540z"/>
<g id="Layer">
<path id="Layer" class="s1" d="m344.6 406.3v129.4h280 280l-0.1-112.2-0.1-112.2-1.1-4c-4.1-14.4-14.5-24.8-29-28.9l-4-1.2-262.8-0.1-262.9-0.1z"/>
<path id="Layer" class="s2" d="m175.3 661.3l0.1 109.2 1.2 3.5c2.3 7.6 5.4 13 10.5 18 5.2 5.2 10.5 8.3 18.7 10.8 2.5 0.8 21.3 0.8 265.1 1l262.3 0.1v-125.9-125.8h-279-279z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 726 B

BIN
public/sern-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

66
setup.ts Normal file
View File

@@ -0,0 +1,66 @@
import { $ } from "bun";
import { GITHUB_URL } from "~/utils/consts";
import { existsSync, rm } from "node:fs";
import { copyFile } from "node:fs/promises";
interface GitItem {
name: string;
repo: string;
branch?: string;
folder?: string;
install?: boolean;
degit?: boolean;
}
const gits: GitItem[] = [
{
name: "sern-handler-v3",
repo: "handler",
branch: "version/3"
},
{
name: "sern-handler-v4",
repo: "handler",
},
{
name: "tools",
repo: "tools",
folder: "packages",
install: false,
degit: true,
},
];
for (const git of gits) {
await $`rm -rf ${git.name}`;
await $`git clone -b ${git.branch ?? "main"} ${GITHUB_URL}/${git.repo} ${git.name}`;
if (git.install ?? true) {
await $`cd ${git.name} && bun install`;
}
if (git.folder) {
await $`mv ${git.name}/${git.folder}/* ${git.name} && rm -rf ${git.name}/${git.folder}`;
}
if (git.degit) {
rm(git.name+"/.git", { recursive: true }, (err) => {
if(err) {
throw err;
}
})
}
}
const tools = (await $`ls -d tools/* | grep -v .github`.text())
.split("\n")
.filter(
(t) => existsSync(`${t}/index.mdx`) && existsSync(`${t}/metadata.json`),
);
for (const tool of tools) {
await copyFile(
`${tool}/index.mdx`,
`src/content/docs/v4/tools/${tool.split("/")[1]}.mdx`,
);
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -0,0 +1,11 @@
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2160 2160" width="2160" height="2160">
<title>sern-logo</title>
<style>
.s0 { fill: #ed5087 }
.s1 { fill: #20317b }
</style>
<g id="Layer">
<path id="Layer" class="s0" d="m690 812v258h558.5 558.5l-0.2-223.8-0.3-223.7-2.2-8c-8.1-28.7-28.9-49.5-57.8-57.7l-8-2.3-524.2-0.3-524.3-0.2z"/>
<path id="Layer" class="s1" d="m352.2 1320.7l0.3 217.8 2.2 7c4.7 15.2 10.9 25.8 21 35.8 10.4 10.5 21 16.6 37.3 21.5 5.1 1.6 42.5 1.7 528.8 2l523.2 0.2v-251-251h-556.5-556.5z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 554 B

View File

@@ -0,0 +1,43 @@
import { Link } from "lucide-react";
import type { Bot } from "~/utils/types";
export default ({ bot }: { bot: Bot }) => (
<div className="not-content relative h-full border border-gray-300 p-4 dark:border-gray-700">
<div className="mb-4 flex items-center justify-between">
<img src={bot.pfpLink} alt={bot.name} className="h-8 w-8 rounded-full" />
<h3>{bot.name}</h3>
<div className="flex items-center space-x-2">
{bot.srcLink && (
<a
href={bot.srcLink}
target="_blank"
rel="noopener noreferrer"
className="h-6 w-6 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"
>
<svg
role="img"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
className="fill-current"
>
<path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" />
</svg>
</a>
)}
{bot.inviteLink && (
<a
href={bot.inviteLink}
target="_blank"
rel="noopener noreferrer"
className="h-6 w-6 text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"
>
<Link size={"1.5rem"} />
</a>
)}
</div>
</div>
<div>
<p>{bot.description}</p>
</div>
</div>
);

View File

@@ -0,0 +1,36 @@
import AutoScroll from "embla-carousel-auto-scroll";
import {
Carousel,
CarouselContent,
CarouselItem,
} from "~/components/ui/carousel";
import type { Bot } from "~/utils/types";
import BotCard from "./BotCard";
export default ({ bots }: { bots: Bot[] }) => (
<div className="not-content flex justify-center">
<Carousel
opts={{
align: "start",
loop: true,
}}
plugins={[
AutoScroll({
speed: 0.75,
stopOnMouseEnter: true,
stopOnInteraction: false,
startDelay: 0,
}),
]}
className="w-11/12 md:w-full"
>
<CarouselContent>
{bots.map((bot) => (
<CarouselItem key={bot.id} className="pl-6 md:basis-1/2">
<BotCard bot={bot} />
</CarouselItem>
))}
</CarouselContent>
</Carousel>
</div>
);

View File

@@ -0,0 +1,21 @@
---
import { z } from "astro/zod";
import BotCarousel from "~/components/BotCarousel";
import { BotSchema } from "~/utils/types";
import { zodFetch } from "~/utils/fetch";
import { shuffle } from "~/utils/shuffle";
const botResponse = await zodFetch(
z.array(BotSchema),
"Failed to fetch community bot data",
"https://frontpage.sern.dev/getBots",
);
if (!botResponse.ok) {
return console.error(botResponse.error);
}
---
<div>
<BotCarousel bots={shuffle(botResponse.value)} client:load />
</div>

View File

@@ -0,0 +1,16 @@
---
import { Icon } from "@astrojs/starlight/components";
---
<span class="group">
<span class="group-hover:hidden">
<div
class="flex h-8 w-8 items-center justify-center rounded border border-[var(--sl-color-orange)] bg-[var(--sl-color-orange-low)] p-1 text-gray-900 dark:text-white"
>
<Icon name="warning" />
</div>
</span>
<span class="hidden group-hover:block">
<b>[DEPRECATED]</b>
</span>
</span>

View File

@@ -0,0 +1,42 @@
---
import { Icon } from "@astrojs/starlight/components";
interface Props {
title: string;
button: string;
icon: Parameters<typeof Icon>[0]["name"];
}
const { title, icon, button } = Astro.props;
const modalId = `modal-${Math.random().toString(36).slice(2)}`;
---
<div>
<label
for={modalId}
class="flex cursor-pointer items-center justify-center rounded-lg bg-accent-600 px-4 py-2 text-white dark:bg-accent-200 dark:text-gray-900"
>
<b>{button}</b>
<Icon name={icon} class="h-6 w-6" />
</label>
</div>
<div>
<input
type="checkbox"
id={modalId}
class="peer fixed appearance-none opacity-0"
/>
<label
for={modalId}
class="pointer-events-none invisible fixed inset-0 z-50 flex cursor-pointer items-center justify-center overflow-hidden overscroll-contain bg-white/70 opacity-0 backdrop-blur-md transition-all duration-200 ease-in-out peer-checked:pointer-events-auto peer-checked:visible peer-checked:opacity-100 dark:bg-gray-800/70 peer-checked:[&>*]:translate-y-0 peer-checked:[&>*]:scale-100"
>
<div
class="w-5/6 -translate-y-4 scale-95 transform border border-gray-300 bg-white p-4 shadow-lg transition-all duration-200 ease-in-out dark:border-gray-700 dark:bg-gray-900"
>
<h2 class="mb-4 text-xl font-bold">{title}</h2>
<slot />
</div>
</label>
</div>

View File

@@ -0,0 +1,77 @@
---
import { Tabs, TabItem, Code } from "@astrojs/starlight/components";
type Command = "add" | "update" | "remove" | "create" | "dev";
type PackageManager = (typeof packageManagers)[number];
const packageManagers = ["NPM", "PNPM", "Yarn", "Bun"] as const;
interface Props {
command: Command;
text: string;
}
const packageManagerCode = (
command: Command,
text: string,
manager: PackageManager,
) => {
const commands: Record<Command, Record<PackageManager, string>> = {
add: {
NPM: `npm install ${text}`,
Yarn: `yarn add ${text}`,
PNPM: `pnpm add ${text}`,
Bun: `bun add ${text}`,
},
update: {
NPM: `npm update ${text}`,
Yarn: `yarn upgrade ${text}`,
PNPM: `pnpm update ${text}`,
Bun: `bun update ${text}`,
},
remove: {
NPM: `npm uninstall ${text}`,
Yarn: `yarn remove ${text}`,
PNPM: `pnpm remove ${text}`,
Bun: `bun remove ${text}`,
},
create: {
NPM: `npm create ${text}`,
Yarn: `yarn create ${text}`,
PNPM: `pnpm create ${text}`,
Bun: `bun create ${text}`,
},
dev: {
NPM: `npm run build && npm start`,
Yarn: `yarn build && yarn start`,
PNPM: `pnpm build && pnpm start`,
Bun: `bun build && bun start`,
}
};
return commands[command][manager];
};
const packageManagerIcon = (manager: PackageManager) => {
const icons = {
NPM: "seti:npm",
Yarn: "seti:yarn",
PNPM: "pnpm",
Bun: "bun",
} as const;
return icons[manager];
};
const { command, text } = Astro.props;
---
<Tabs syncKey="package-manager">
{
packageManagers.map((manager) => (
<TabItem label={manager} icon={packageManagerIcon(manager)}>
<Code lang="sh" code={packageManagerCode(command, text, manager)} />
</TabItem>
))
}
</Tabs>

View File

@@ -0,0 +1,32 @@
---
import { Markdown } from "@astropub/md";
import PluginModal from "./PluginModal.astro";
import DeprecatedIcon from "./DeprecatedIcon.astro";
import type { Plugin } from "~/utils/types";
type Props = Plugin;
const plugin = Astro.props;
const description = (
plugin.description.length > 200
? plugin.description.slice(0, 200) + "..."
: plugin.description
).replace("[DEPRECATED]", "");
const deprecated = plugin.description.includes("[DEPRECATED]");
---
<div
class="not-content relative border border-gray-300 p-4 dark:border-gray-700"
>
<div class="mb-4 flex items-center justify-between">
<h3>{plugin.name}</h3>
{deprecated && <DeprecatedIcon />}
</div>
<div class="mb-14">
<Markdown of={description} />
</div>
<div class="absolute bottom-4 right-4">
<PluginModal {...plugin} />
</div>
</div>

View File

@@ -0,0 +1,49 @@
---
import { Code } from "@astrojs/starlight/components";
import { Markdown } from "@astropub/md";
import type { Plugin } from "~/utils/types";
import Modal from "./Modal.astro";
type Props = Plugin;
const { name, description, example, author } = Astro.props;
const trimmedCode = example
.replace("```ts", "")
.replace("```", "")
.split("\n")
.filter(Boolean)
.join("\n");
const trimmedDescription = description.replace("[DEPRECATED]", "");
const deprecated = description.includes("[DEPRECATED]");
const authors = new Intl.ListFormat("en", {
style: "long",
type: "conjunction",
}).format(
author.map((s) =>
s
.replace(/[\]<>@]/g, "")
.split("[")[0]
.trim(),
),
);
---
<Modal button="View" icon="right-arrow" title={`${name} by ${authors}`}>
{
deprecated && (
<div class="mb-4 rounded-md border border-[var(--sl-color-orange)] bg-[var(--sl-color-orange-low)] p-2 text-gray-900 dark:text-white">
This plugin is deprecated and should not be used in new projects.
</div>
)
}
<div class="mb-4">
<Code lang="bash" code={`sern plugin ${name}`} />
</div>
<div class="mb-4">
<Markdown of={trimmedDescription} />
</div>
<Code lang="ts" title="src/commands/ping.ts" code={trimmedCode} />
</Modal>

View File

@@ -0,0 +1,35 @@
---
import type { Contributor } from "~/utils/types";
type Props = Contributor;
const {
name,
image,
totalAmountDonated,
isAdmin,
publicMessage,
collectiveSlug,
} = Astro.props;
---
<a
class="not-content relative flex flex-col items-center border border-gray-300 p-4 text-inherit no-underline hover:bg-gray-200 dark:border-gray-700 dark:hover:bg-gray-800"
href={`https://opencollective.com/${collectiveSlug}`}
>
<div class="flex flex-col items-center text-center">
<img class="h-16 w-16 rounded-full" src={image} alt={name} />
{
isAdmin && (
<div class="mt-2 rounded-full bg-accent-600 px-2 py-1 text-xs font-semibold text-white dark:bg-accent-200 dark:text-gray-900">
Admin
</div>
)
}
<p class="font-semibold">{name}</p>
</div>
<p class="mb-8 text-center text-sm">{publicMessage}</p>
<p class="absolute bottom-2 text-center font-semibold">
${totalAmountDonated / 100}
</p>
</a>

View File

@@ -0,0 +1,56 @@
import * as React from "react"
import { Slot } from "@radix-ui/react-slot"
import { cva, type VariantProps } from "class-variance-authority"
import { cn } from "~/utils"
const buttonVariants = cva(
"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-950 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 dark:ring-offset-neutral-950 dark:focus-visible:ring-neutral-300",
{
variants: {
variant: {
default: "bg-neutral-900 text-neutral-50 hover:bg-neutral-900/90 dark:bg-neutral-50 dark:text-neutral-900 dark:hover:bg-neutral-50/90",
destructive:
"bg-red-500 text-neutral-50 hover:bg-red-500/90 dark:bg-red-900 dark:text-neutral-50 dark:hover:bg-red-900/90",
outline:
"border border-neutral-200 bg-white hover:bg-neutral-100 hover:text-neutral-900 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",
secondary:
"bg-neutral-100 text-neutral-900 hover:bg-neutral-100/80 dark:bg-neutral-800 dark:text-neutral-50 dark:hover:bg-neutral-800/80",
ghost: "hover:bg-neutral-100 hover:text-neutral-900 dark:hover:bg-neutral-800 dark:hover:text-neutral-50",
link: "text-neutral-900 underline-offset-4 hover:underline dark:text-neutral-50",
},
size: {
default: "h-10 px-4 py-2",
sm: "h-9 rounded-md px-3",
lg: "h-11 rounded-md px-8",
icon: "h-10 w-10",
},
},
defaultVariants: {
variant: "default",
size: "default",
},
}
)
export interface ButtonProps
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
VariantProps<typeof buttonVariants> {
asChild?: boolean
}
const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
({ className, variant, size, asChild = false, ...props }, ref) => {
const Comp = asChild ? Slot : "button"
return (
<Comp
className={cn(buttonVariants({ variant, size, className }))}
ref={ref}
{...props}
/>
)
}
)
Button.displayName = "Button"
export { Button, buttonVariants }

View File

@@ -0,0 +1,260 @@
import * as React from "react"
import useEmblaCarousel, {
type UseEmblaCarouselType,
} from "embla-carousel-react"
import { ArrowLeft, ArrowRight } from "lucide-react"
import { cn } from "~/utils"
import { Button } from "~/components/ui/button"
type CarouselApi = UseEmblaCarouselType[1]
type UseCarouselParameters = Parameters<typeof useEmblaCarousel>
type CarouselOptions = UseCarouselParameters[0]
type CarouselPlugin = UseCarouselParameters[1]
type CarouselProps = {
opts?: CarouselOptions
plugins?: CarouselPlugin
orientation?: "horizontal" | "vertical"
setApi?: (api: CarouselApi) => void
}
type CarouselContextProps = {
carouselRef: ReturnType<typeof useEmblaCarousel>[0]
api: ReturnType<typeof useEmblaCarousel>[1]
scrollPrev: () => void
scrollNext: () => void
canScrollPrev: boolean
canScrollNext: boolean
} & CarouselProps
const CarouselContext = React.createContext<CarouselContextProps | null>(null)
function useCarousel() {
const context = React.useContext(CarouselContext)
if (!context) {
throw new Error("useCarousel must be used within a <Carousel />")
}
return context
}
const Carousel = React.forwardRef<
HTMLDivElement,
React.HTMLAttributes<HTMLDivElement> & CarouselProps
>(
(
{
orientation = "horizontal",
opts,
setApi,
plugins,
className,
children,
...props
},
ref
) => {
const [carouselRef, api] = useEmblaCarousel(
{
...opts,
axis: orientation === "horizontal" ? "x" : "y",
},
plugins
)
const [canScrollPrev, setCanScrollPrev] = React.useState(false)
const [canScrollNext, setCanScrollNext] = React.useState(false)
const onSelect = React.useCallback((api: CarouselApi) => {
if (!api) {
return
}
setCanScrollPrev(api.canScrollPrev())
setCanScrollNext(api.canScrollNext())
}, [])
const scrollPrev = React.useCallback(() => {
api?.scrollPrev()
}, [api])
const scrollNext = React.useCallback(() => {
api?.scrollNext()
}, [api])
const handleKeyDown = React.useCallback(
(event: React.KeyboardEvent<HTMLDivElement>) => {
if (event.key === "ArrowLeft") {
event.preventDefault()
scrollPrev()
} else if (event.key === "ArrowRight") {
event.preventDefault()
scrollNext()
}
},
[scrollPrev, scrollNext]
)
React.useEffect(() => {
if (!api || !setApi) {
return
}
setApi(api)
}, [api, setApi])
React.useEffect(() => {
if (!api) {
return
}
onSelect(api)
api.on("reInit", onSelect)
api.on("select", onSelect)
return () => {
api?.off("select", onSelect)
}
}, [api, onSelect])
return (
<CarouselContext.Provider
value={{
carouselRef,
api: api,
opts,
orientation:
orientation || (opts?.axis === "y" ? "vertical" : "horizontal"),
scrollPrev,
scrollNext,
canScrollPrev,
canScrollNext,
}}
>
<div
ref={ref}
onKeyDownCapture={handleKeyDown}
className={cn("relative", className)}
role="region"
aria-roledescription="carousel"
{...props}
>
{children}
</div>
</CarouselContext.Provider>
)
}
)
Carousel.displayName = "Carousel"
const CarouselContent = React.forwardRef<
HTMLDivElement,
React.HTMLAttributes<HTMLDivElement>
>(({ className, ...props }, ref) => {
const { carouselRef, orientation } = useCarousel()
return (
<div ref={carouselRef} className="overflow-hidden">
<div
ref={ref}
className={cn(
"flex",
orientation === "horizontal" ? "-ml-4" : "-mt-4 flex-col",
className
)}
{...props}
/>
</div>
)
})
CarouselContent.displayName = "CarouselContent"
const CarouselItem = React.forwardRef<
HTMLDivElement,
React.HTMLAttributes<HTMLDivElement>
>(({ className, ...props }, ref) => {
const { orientation } = useCarousel()
return (
<div
ref={ref}
role="group"
aria-roledescription="slide"
className={cn(
"min-w-0 shrink-0 grow-0 basis-full",
orientation === "horizontal" ? "pl-4" : "pt-4",
className
)}
{...props}
/>
)
})
CarouselItem.displayName = "CarouselItem"
const CarouselPrevious = React.forwardRef<
HTMLButtonElement,
React.ComponentProps<typeof Button>
>(({ className, variant = "outline", size = "icon", ...props }, ref) => {
const { orientation, scrollPrev, canScrollPrev } = useCarousel()
return (
<Button
ref={ref}
variant={variant}
size={size}
className={cn(
"absolute h-8 w-8 rounded-full",
orientation === "horizontal"
? "-left-12 top-1/2 -translate-y-1/2"
: "-top-12 left-1/2 -translate-x-1/2 rotate-90",
className
)}
disabled={!canScrollPrev}
onClick={scrollPrev}
{...props}
>
<ArrowLeft className="h-4 w-4" />
<span className="sr-only">Previous slide</span>
</Button>
)
})
CarouselPrevious.displayName = "CarouselPrevious"
const CarouselNext = React.forwardRef<
HTMLButtonElement,
React.ComponentProps<typeof Button>
>(({ className, variant = "outline", size = "icon", ...props }, ref) => {
const { orientation, scrollNext, canScrollNext } = useCarousel()
return (
<Button
ref={ref}
variant={variant}
size={size}
className={cn(
"absolute h-8 w-8 rounded-full",
orientation === "horizontal"
? "-right-12 top-1/2 -translate-y-1/2"
: "-bottom-12 left-1/2 -translate-x-1/2 rotate-90",
className
)}
disabled={!canScrollNext}
onClick={scrollNext}
{...props}
>
<ArrowRight className="h-4 w-4" />
<span className="sr-only">Next slide</span>
</Button>
)
})
CarouselNext.displayName = "CarouselNext"
export {
type CarouselApi,
Carousel,
CarouselContent,
CarouselItem,
CarouselPrevious,
CarouselNext,
}

3
src/content.ts Normal file
View File

@@ -0,0 +1,3 @@
import { getCollection } from "astro:content";
export const allPages = await getCollection("docs");

7
src/content/config.ts Normal file
View File

@@ -0,0 +1,7 @@
import { defineCollection } from "astro:content";
import { docsSchema } from "@astrojs/starlight/schema";
import { blogSchema } from "starlight-blog/schema";
export const collections = {
docs: defineCollection({ schema: docsSchema({ extend: blogSchema() }) }),
};

View File

@@ -0,0 +1,86 @@
---
slug: blog/1.2.0
title: Release 1.2.0
authors: [jacoobes]
tags: [release]
date: 2022-09-28
---
## Class-based modules
Today we're announcing the ability to create class based modules!
To get started, install
import PackageManagers from '~/components/PackageManagers.astro';
<PackageManagers command="add" text="@sern/handler@latest" />
Quick List of changes!
- [Class-based modules](#class-based-modules-1)
- [Deprecation Warnings](#deprecation-warnings)
- [Dependencies Update](#dependencies-update)
### Class based modules
Incorporate class based modules into your project instead of the traditional `commandModule` or `eventModule`
Extend the new `CommandExecutable` or `EventExecutable`
```ts title="commands/meaning-of-life.ts" {15}
import {
CommandType,
CommandExecutable,
type Args,
type Context,
} from "@sern/handler";
import { publish } from "../plugins/publish.js";
import { serendipityOnly } from "../plugins/serendipityOnly.js";
export default class extends CommandExecutable<CommandType.Both> {
type = CommandType.Both as const;
description = "What is the meaning of life?";
override onEvent = [serendipityOnly()];
override plugins = [publish()];
execute = async (ctx: Context, args: Args) => {
await ctx.reply("42");
};
}
```
:::caution
execute must not be a method of the class. It should be as above, a property on the class!
:::
```ts title="events/guildMemberAdd.ts" {6}
import { CommandType, EventExecutable, type EventType } from "@sern/handler";
import type { GuildMember } from "discord.js";
export default class extends EventExecutable<EventType.Discord> {
type = EventType.Discord as const;
execute = (member: GuildMember) => {
console.log(member);
};
}
```
Now, you might ask **why** this feature was added. <br /> Simply put, to give flexibility to the developers.
I believe that you should build your own structures however you might like and customize to your liking.
In addition, **decorators now unofficially work with modules!**
Feel free to use TypeScript experimental decorators to augment and customize your classes.
### Deprecation Warnings
The next update will bring sern v2 with some important features. Here are some things to watch out for.
- [Wrapper#client](/v3/api/interfaces/wrapper) will be deprecated
- [Wrapper#sernEmitter](/v3/api/interfaces/wrapper) will be deprecated
- a SernEmitter will be automatically created once Sern#init is called
- The option to pass in a function or array for [Wrapper#events](/v3/api/interfaces/wrapper) will be deprecated. Only strings are accepted.
- `Sern#addExternal` will be deprecated in favor of a better way.
### Dependencies Update
- TypeScript has been updated to 4.8.3
- Discord.js has been upgraded to 14.5

View File

@@ -0,0 +1,217 @@
---
slug: blog/2.0.0
title: Release 2.0.0
authors: [jacoobes]
tags: [release]
date: 2022-12-13
---
## 2.0 Release
Join our [discord](https://sern.dev/discord)! <br />
Wow! We're finally increasing our semantic versioning by +`1.7.9.` <br />
What does this mean?
### Plugin Support for Event Modules
You can now use plugins for event modules. Previous version would throw an error if the
`plugins` field was populated.
```typescript
export function commandPlTest(): SernEmitterPlugin {
return {
type: PluginType.Command,
execute: ({ mod }, controller) => {
if (mod.name === "module.register") {
console.log("Event Module created correctly");
return controller.next();
}
console.log("event name is wrong");
return controller.stop();
},
};
}
```
Applying this plugin to some `eventModule`:
```typescript
export default eventModule({
name: "error",
type: EventType.Sern,
plugins: [commandPlTest()],
execute(m) {
console.log(m);
},
});
```
## Dependency Injection and Decoupling
The powerful npm package `iti` decouples sern even more.
Decoupling data structures with the Inversion of Control pattern separates data from logic, which will help speed production
and make sern even more customizable than before.
### How do I start?
```typescript title="src/index.ts"
//With typescript, you can customize / augment your typings.
interface MyDependencies extends Dependencies {
"@sern/client": Singleton<Client>;
"@sern/logger": Singleton<DefaultLogging>;
}
export const useContainer = Sern.makeDependencies<MyDependencies>({
// exclude: new Set(['@sern/logger']), don't autofill optional dependencies
build: (root) =>
root
.add({ "@sern/client": single(client) })
.add({ "@sern/logger": single(new DefaultLogging()) }),
});
Sern.init({
defaultPrefix: "!", // removing defaultPrefix will shut down text commands
commands: "src/commands",
// events: 'src/events' (optional),
containerConfig: {
get: useContainer, //pass in your dependency getter here
},
});
```
Using the `Sern#makeDependencies` function, inject your dependencies.
We'll use specific dependencies that are created with the `@sern/keyword`
key.
Using typescript to display all `keywords` and what they represent:
```typescript
export interface Dependencies {
"@sern/client": Singleton<EventEmitter>; //Discord Client
"@sern/logger"?: Singleton<Logging>; //Logger
"@sern/emitter": Singleton<SernEmitter>; //SernEmitter
"@sern/store": Singleton<ModuleStore>; //Stores all Command Modules
"@sern/modules": Singleton<ModuleManager>; //Manages Modules
"@sern/errors": Singleton<ErrorHandling>; //A Lifetime / Crash Handler
}
```
:::danger
Sern#addExternal has been deprecated and removed in favor of Sern#makeDependencies
:::
At the moment, one optional dependency, `@sern/logger`, exists. If not added explicitly,
we'll **autofill** with a [DefaultLogger](https://sern.dev/docs/api/classes/defaultlogging).
:::tip
If you don't want a logger, add it to the
`exclude` field while composing dependencies.
:::
Use your generated dependency getter `useContainer` (use whatever name you want), access them
from anywhere.
:::note
the function [useContainerRaw](https://sern.dev/docs/api/modules#usecontainerraw) is provided for direct access to dependencies and the internal
data structure. Use this wisely as no guarantees are made and crashes can happen.
:::
The `build` field follows [createContainer](https://itijs.org/docs/quick-start#usage) function call.
## New CommandTypes
2.0 includes all the new role select menus. `CommandType.MenuSelect` has been renamed into
`CommandType.StringSelect`. The remaining SelectMenus are
`CommandType.RoleSelect`, `CommandType.ChannelSelect`, `CommandType.UserSelect`, `CommandType.MentionableSelect`
```typescript title="commands/roleselect.ts"
export default commandModule({
type: CommandType.RoleSelect,
execute(ctx) {
ctx.reply("role select");
},
});
```
In addition, commandModules with ContextMenus have been renamed.
```diff
- CommandType.MenuUser, CommandType.MenuMsg
+ CommandType.CtxUser, CommandType.CtxMsg
```
## Typings Simplification
Pre 2.0:
<img src="https://cdn.discordapp.com/attachments/820348341358952550/1038577974829666386/image.png" />
<br/> <br/> <br/>
Post 2.0:
<br/>
<img src="https://cdn.discordapp.com/attachments/820348341358952550/1052623728489550015/image.png" />
CommandPlugin<T\> and EventPlugin<T\> typings have also been static'ified, transformed from types to interfaces
## Breaking Changes
<img src="https://img.srizan.dev/Discord_z8Sn1UBfEe.png" />
<br />
All deprecation warnings from previous versions have taken effect, and are removed in 2.0.
```diff lang="ts" showLineNumbers=false
- type Module = EventModule | CommandModule
+ type AnyModule = EventModule | CommandModule
-export type SpreadParams<T extends (...args: never) => unknown> = (
- args: Parameters<T>[number],
- ) => unknown;
```
Override type has been removed due to redundancy
```diff
- discord.js : 14.5
+ discord.js : 14.7
-typescript: 4.7
+ typescript: 4.9
```
```diff lang="ts" showLineNumbers=false
+ interface Wrapper {
+ readonly defaultPrefix?: string;
+ readonly commands: string;
+ readonly events?: string;
+ readonly containerConfig : {
+ get: (...keys: (keyof Dependencies)[]) => unknown[];
+ }
+}
- interface Wrapper {
- readonly client: Client;
- readonly sernEmitter?: SernEmitter;
- readonly defaultPrefix?: string;
- readonly commands: string;
- readonly events?:
- | string
- | { mod: EventModule; absPath: string }[]
- | (() => { mod: EventModule; absPath: string }[]);
-}
```
```diff lang="ts" showLineNumbers=false
+ DefaultLogger
+ DefaultModuleManager
+ SernEmitter
+ DefaultErrorHandling
+ type Singleton<T> = () => T
+ type Transient<T> = () => () => T;
+ type LogPayload<T = unknown> = { message: T }
+ export const single = <T>() => T
+ export const many = <T>() => () => T
```
Including the previous section, some names to symbols and data structures were altered to
be better represented. view [changelog](/404.html)
## Context refactoring
The context data structure has been internally altered to represent its dynamics better.

View File

@@ -0,0 +1,39 @@
---
slug: blog/2.5.0
title: Release 2.5.0
authors: [jacoobes]
tags: [release]
date: 2023-01-12
---
## 2.5 Release
### Join our [discord](https://sern.dev/discord) <br />
- Thank you for using sern in your projects. It's only going to get better!
- I apologize for the sudden small breaking change. After this update, there won't be any for a while.
Wow! We're increasing our semantic versioning by `+0.3.9` <br />
What does this mean?
### Breaking changes
- `controller` parameter for plugins has been removed
- You'll need to import it instead
- This **breaks** old `CommandPlugin`, but **not** old `EventPlugin`
### Deprecations
- `CommandPlugin` and `EventPlugin` have been renamed to [InitPlugin](/v3/api/interfaces/initplugin) and [ControlPlugin](/v3/api/interfaces/controlplugin), respectively
### Reason
- The naming of plugins was getting too complex. For example, plugin naming evolved into CommandModuleCommandPlugin, CommandModuleEventPlugin and more.
- I realize that this affects all plugins. I have updated all [plugins](https://github.com/sern-handler/awesome-plugins/pull/68) to match these changes
- The old way of declaring plugins has been deprecated in favor of newer functions that facilitate and ease typings
- [CommandControlPlugin](/v3/api/functions/commandcontrolplugin)
- [CommandInitPlugin](/v3/api/functions/commandinitplugin)
- [EventControlPlugin](/v3/api/functions/eventcontrolplugin)
- [EventInitPlugin](/v3/api/functions/eventinitplugin)
- [DiscordEventControlPlugin](/v3/api/functions/discordeventcontrolplugin)
This will probably be the last breaking change in a while. Thanks for using sern!

View File

@@ -0,0 +1,109 @@
---
slug: blog/3.0.0
title: Release 3.0.0
authors: [jacoobes]
tags: [release]
date: 2023-06-18
---
## 3.0 Release
### Join our [discord](https://sern.dev/discord) <br />
### Features
#### Dependency Management
- `Service` API (recommended to use this over useContainer hooks)
- Dependencies type must be globally augmented in order for Services api to function properly
- new methods on ModuleManager
- getPublishableCommands()
- Init Hooks
- implement starting behavior for dependencies
- To enforce and type check this, use the `Initializable` type when making your Dependencies type!
- Emitter interface
- More generic interface to define any event emitter
- You can now swap out the SernEmitter with whatever emitter now.
```ts
class DatabaseService implements Init {
//some hypothetical database
_pgsql : database()
async init() {
await _pgsql.load()
}
}
await makeDependencies({
build: root => root.add({
db: new DatabaseService() //will be init'ed automatically
})
})
```
- new SernEmitter event `modulesLoaded` , which allows users to customize behavior after all modules are loaded!
```ts
export default eventModule({
name: "modulesLoaded",
type: EventType.Sern,
execute: () => {
console.log("All modules loaded");
},
});
```
#### Quality of Life
- faster module loading
- I utilize async generators for reading files now. A lot faster than the first iteration.
- better error handling
- Less boilerplate
- Services api cleans up v2 boilerplate
- class modules devex got upgraded and work better than before
- automatically ignore any files not ending in (mts, cts, mjs, cjs, ts, js)
- ignore commands and events with `!` prefix on filename or directory (ie: `!filename.ts` or `!directory` will be ignored by sern)
- `Service` API (recommended to use this over useContainer hooks)
- Dependencies type must be globally augmented in order for Services api to function properly
- Less boilerplate
- new methods on ModuleManager
- automatically ignore any files not ending in (mts, cts, mjs, cjs, ts, js)
- ignore commands / events with `!` prefix on filename or directory (ie: `!filename.ts` or `!directory`)
- new SernEmitter event `modulesLoaded` , which allows users to customize behavior after all modules are loaded!
- Init Hooks
- implement starting behavior for dependencies
### Experimental
- Experimental things may be subject to removal, need feedback and are not guaranteed stable
- dev / prod mode
- sern will behave differently depending on mode set
- init sern from `file` option
- reads from local sern.config.json
```js
Sern.init("file");
```
### Breaking changes
- Sern.makeDependencies -> makeDependencies
- it is asynchronous and top level function now. Make sure to await it before initing for proper synchronization.
- module store and manager internally changed, so those using them may recieve breaking changes
- BaseOptions type removed
```diff lang="ts" showLineNumbers=false
- Sern.makeDependencies({ build: () => {} })
+ await makeDependencies({ build: () => {} })
```
### Deprecations
- Removed all previous marked deprecations in v3
- ModuleStore will be removed as a dependency in v4. The only way to access modules should be through ModuleManager
- Default Dependencies will be made internal in the v4. Users should only have access to its interface / contract

View File

@@ -0,0 +1,38 @@
---
slug: blog/new-logo
title: New logo!
authors: [sern]
tags: [branding]
date: 2023-07-04
---
Hey everyone! Today we have very special news for you all: We're changing our logo!
# Why?
You see, on today's standards, having a simple logo is essential. Our logo aligns perfectly with these design principles but it can always be improved.
We were chilling, you know, cooking sern handler v3, sern gui, `npm create @sern/bot` and serncord when we thought about changing the logo to a sleek design with less colors.
And here we are!
# Who did our new branding?
[Ropox](https://github.com/Murtatrxx)!
Bro's the GOAT. This website is maintained by him, the domain costs are funded by him and also he started brainstorming how the logo would be on paper:
![paper prototypes](~/assets/blog/paper-prototypes.jpg)
And there it all clicked:
![paper logo](~/assets/blog/paper-logo.png)
seren tried by the way!
![seren tried](~/assets/blog/seren-tried.png)
# Anyways, here it is:
![sern logo](~/assets/logo/sern-logo.png)
Pretty nice!
By the way, we have animations and variations on the way, so make sure to stay updated in the [discord server](https://sern.dev/discord)!
# Finally, from the entire sern team, thank you for sticking around ❤️

View File

@@ -0,0 +1,37 @@
---
slug: blog/railway-deploy
title: Deploying sern with Railway
authors: [duro]
tags: [guides]
date: 2024-02-23
---
In this guide, I'll be showing you how to deploy your sern bot with [Railway](https://railway.app/).
This guide assumes you have a sern bot already set up and ready to deploy. If you don't, you can follow the [walkthrough](/v3/guide/walkthrough/new-project) to set up your bot.
## GitHub Repository
The first thing you'll need to deploy your bot is a GitHub repository for your bot. If you don't have one, you can create one by following the [GitHub guide](https://docs.github.com/en/get-started/quickstart/create-a-repo).
Once you have your repository set up, you can push your bot's code to the repository, and you're ready to deploy using Railway.
## Railway Setup
After you have your bot's code in a GitHub repository, you'll need to create an account on Railway. You can sign up using your GitHub account at [railway.app](https://railway.app/).
Once you've created your account, navigate to the [dashboard](https://railway.app/dashboard) and click the "New Project" button. Click the "Deploy from GitHub repo" button, and select your bot's repository.
Once you've selected your repository, click the "Add Variables" button to add your bot's environment variables. You'll need your environment variables from your `.env` file to add to Railway. (You can also add these later if you want.)
## Deploy
Once you've added your environment variables, click the "Deploy" button, and Railway will start deploying your bot. Once the deployment is complete, you'll be able to see your bot's URL and logs.
:::note
Make sure you add your environment variables, and your node start script is correct in your `package.json` file.
If you have any issues deploying your bot, you can check the logs for any errors.
:::
That's it! Your bot is now deployed and running on Railway. If you have any issues or questions, feel free to ask in the [sern Discord server](https://sern.dev/discord).

View File

@@ -0,0 +1,35 @@
---
title: Create your dream Discord bot.
template: splash
description: sern is a framework for building Discord bots; Better DX and an ecosystem of packages & plugins.
hero:
tagline: sern is a framework for building Discord bots; Better DX and an ecosystem of packages & plugins.
image:
file: ~/assets/logo/sern-logo.svg
actions:
- text: <b>npm create @sern/bot</b>
link: /v4/reference/getting-started
icon: right-arrow
variant: primary
---
import { Card, CardGrid } from "@astrojs/starlight/components";
import CommunityShowcase from "~/components/CommunityShowcase.astro";
<h1 class="text-center">Showcase</h1>
<CommunityShowcase />
<h1 class="text-center">Features</h1>
<CardGrid stagger>
<Card title="Modular" icon="puzzle">
Take apart, build, or customize code with ease to create robust bots.
</Card>
<Card title="Concise" icon="pencil">
Commands are significantly smaller than other competitors. Write impactful, concise code.
</Card>
<Card title="Familiar" icon="star">
Code like a traditional command framework. The API is simple and resembles classic v12 command handlers.
</Card>
</CardGrid>

View File

@@ -0,0 +1,96 @@
---
editUrl: false
next: false
prev: false
title: "@sern/handler"
---
## Namespaces
- [Presence](/v3/api/namespaces/presence/readme/)
- [Sern](/v3/api/namespaces/sern/readme/)
## Enumerations
- [CommandType](/v3/api/enumerations/commandtype/)
- [EventType](/v3/api/enumerations/eventtype/)
- [PayloadType](/v3/api/enumerations/payloadtype/)
- [PluginType](/v3/api/enumerations/plugintype/)
## Classes
- [Context](/v3/api/classes/context/)
- [ModuleStore](/v3/api/classes/modulestore/)
## Interfaces
- [BothCommand](/v3/api/interfaces/bothcommand/)
- [ButtonCommand](/v3/api/interfaces/buttoncommand/)
- [ChannelSelectCommand](/v3/api/interfaces/channelselectcommand/)
- [CommandModuleDefs](/v3/api/interfaces/commandmoduledefs/)
- [ContextMenuMsg](/v3/api/interfaces/contextmenumsg/)
- [ContextMenuUser](/v3/api/interfaces/contextmenuuser/)
- [ControlPlugin](/v3/api/interfaces/controlplugin/)
- [Controller](/v3/api/interfaces/controller/)
- [CoreDependencies](/v3/api/interfaces/coredependencies/)
- [CoreModuleStore](/v3/api/interfaces/coremodulestore/)
- [DiscordEventCommand](/v3/api/interfaces/discordeventcommand/)
- [Disposable](/v3/api/interfaces/disposable/)
- [Emitter](/v3/api/interfaces/emitter/)
- [ErrorHandling](/v3/api/interfaces/errorhandling/)
- [EventModuleDefs](/v3/api/interfaces/eventmoduledefs/)
- [ExternalEventCommand](/v3/api/interfaces/externaleventcommand/)
- [Init](/v3/api/interfaces/init/)
- [InitPlugin](/v3/api/interfaces/initplugin/)
- [Logging](/v3/api/interfaces/logging/)
- [MentionableSelectCommand](/v3/api/interfaces/mentionableselectcommand/)
- [ModalSubmitCommand](/v3/api/interfaces/modalsubmitcommand/)
- [Plugin](/v3/api/interfaces/plugin/)
- [RoleSelectCommand](/v3/api/interfaces/roleselectcommand/)
- [SernAutocompleteData](/v3/api/interfaces/sernautocompletedata/)
- [SernEventCommand](/v3/api/interfaces/serneventcommand/)
- [SernEventsMapping](/v3/api/interfaces/serneventsmapping/)
- [SernSubCommandData](/v3/api/interfaces/sernsubcommanddata/)
- [SernSubCommandGroupData](/v3/api/interfaces/sernsubcommandgroupdata/)
- [SlashCommand](/v3/api/interfaces/slashcommand/)
- [StringSelectCommand](/v3/api/interfaces/stringselectcommand/)
- [TextCommand](/v3/api/interfaces/textcommand/)
- [UserSelectCommand](/v3/api/interfaces/userselectcommand/)
- [Wrapper](/v3/api/interfaces/wrapper/)
## Type Aliases
- [AnyCommandPlugin](/v3/api/type-aliases/anycommandplugin/)
- [AnyEventPlugin](/v3/api/type-aliases/anyeventplugin/)
- [Args](/v3/api/type-aliases/args/)
- [CommandModule](/v3/api/type-aliases/commandmodule/)
- [EventModule](/v3/api/type-aliases/eventmodule/)
- [Initializable](/v3/api/type-aliases/initializable/)
- [LogPayload](/v3/api/type-aliases/logpayload/)
- [Payload](/v3/api/type-aliases/payload/)
- [PluginResult](/v3/api/type-aliases/pluginresult/)
- [SernOptionsData](/v3/api/type-aliases/sernoptionsdata/)
- [Singleton](/v3/api/type-aliases/singleton/)
- [SlashOptions](/v3/api/type-aliases/slashoptions/)
- [Transient](/v3/api/type-aliases/transient/)
## Variables
- [controller](/v3/api/variables/controller/)
## Functions
- [CommandControlPlugin](/v3/api/functions/commandcontrolplugin/)
- [CommandInitPlugin](/v3/api/functions/commandinitplugin/)
- [DiscordEventControlPlugin](/v3/api/functions/discordeventcontrolplugin/)
- [EventControlPlugin](/v3/api/functions/eventcontrolplugin/)
- [EventInitPlugin](/v3/api/functions/eventinitplugin/)
- [Service](/v3/api/functions/service/)
- [Services](/v3/api/functions/services/)
- [commandModule](/v3/api/functions/commandmodule/)
- [discordEvent](/v3/api/functions/discordevent/)
- [eventModule](/v3/api/functions/eventmodule/)
- [makeDependencies](/v3/api/functions/makedependencies/)
- [makePlugin](/v3/api/functions/makeplugin/)
- [single](/v3/api/functions/single/)
- [transient](/v3/api/functions/transient/)

View File

@@ -0,0 +1,291 @@
---
editUrl: false
next: false
prev: false
title: "Context"
---
## Since
1.0.0
Provides values shared between
Message and ChatInputCommandInteraction
## Extends
- `CoreContext`\<`Message`, `ChatInputCommandInteraction`\>
## Accessors
### channel
> `get` **channel**(): `null` \| `TextBasedChannel`
#### Returns
`null` \| `TextBasedChannel`
#### Source
[src/core/structures/context.ts:39](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/context.ts#L39)
***
### channelId
> `get` **channelId**(): `string`
#### Returns
`string`
#### Source
[src/core/structures/context.ts:45](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/context.ts#L45)
***
### client
> `get` **client**(): `Client`\<`boolean`\>
#### Returns
`Client`\<`boolean`\>
#### Source
[src/core/structures/context.ts:91](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/context.ts#L91)
***
### createdTimestamp
> `get` **createdTimestamp**(): `number`
#### Returns
`number`
#### Source
[src/core/structures/context.ts:65](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/context.ts#L65)
***
### guild
> `get` **guild**(): `null` \| `Guild`
#### Returns
`null` \| `Guild`
#### Source
[src/core/structures/context.ts:71](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/context.ts#L71)
***
### guildId
> `get` **guildId**(): `null` \| `string`
#### Returns
`null` \| `string`
#### Source
[src/core/structures/context.ts:77](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/context.ts#L77)
***
### id
> `get` **id**(): `string`
#### Returns
`string`
#### Source
[src/core/structures/context.ts:33](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/context.ts#L33)
***
### inGuild
> `get` **inGuild**(): `boolean`
#### Returns
`boolean`
#### Source
[src/core/structures/context.ts:97](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/context.ts#L97)
***
### interaction
> `get` **interaction**(): `I`
#### Returns
`I`
#### Source
[src/core/structures/core-context.ts:15](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/core-context.ts#L15)
***
### member
> `get` **member**(): `null` \| `GuildMember` \| `APIInteractionGuildMember`
#### Returns
`null` \| `GuildMember` \| `APIInteractionGuildMember`
#### Source
[src/core/structures/context.ts:85](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/context.ts#L85)
***
### message
> `get` **message**(): `M`
#### Returns
`M`
#### Source
[src/core/structures/core-context.ts:12](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/core-context.ts#L12)
***
### options
> `get` **options**(): `Omit`\<`CommandInteractionOptionResolver`\<`CacheType`\>, `"getMessage"` \| `"getFocused"`\>
#### Returns
`Omit`\<`CommandInteractionOptionResolver`\<`CacheType`\>, `"getMessage"` \| `"getFocused"`\>
#### Source
[src/core/structures/context.ts:26](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/context.ts#L26)
***
### user
> `get` **user**(): `User`
If context is holding a message, message.author
else, interaction.user
#### Returns
`User`
#### Source
[src/core/structures/context.ts:55](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/context.ts#L55)
***
### userId
> `get` **userId**(): `string`
#### Returns
`string`
#### Source
[src/core/structures/context.ts:61](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/context.ts#L61)
## Methods
### isMessage()
> **isMessage**(): `this is CoreContext<Message<boolean>, never>`
#### Returns
`this is CoreContext<Message<boolean>, never>`
#### Inherited from
`CoreContext.isMessage`
#### Source
[src/core/structures/core-context.ts:19](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/core-context.ts#L19)
***
### isSlash()
> **isSlash**(): `this is CoreContext<never, ChatInputCommandInteraction<CacheType>>`
#### Returns
`this is CoreContext<never, ChatInputCommandInteraction<CacheType>>`
#### Inherited from
`CoreContext.isSlash`
#### Source
[src/core/structures/core-context.ts:23](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/core-context.ts#L23)
***
### reply()
> **reply**(`content`): `Promise`\<`Message`\<`boolean`\>\>
#### Parameters
**content**: `ReplyOptions`
#### Returns
`Promise`\<`Message`\<`boolean`\>\>
#### Source
[src/core/structures/context.ts:103](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/context.ts#L103)
***
### wrap()
> `static` **wrap**(`wrappable`): [`Context`](/v3/api/classes/context/)
#### Parameters
**wrappable**: `Message`\<`boolean`\> \| `BaseInteraction`\<`CacheType`\>
#### Returns
[`Context`](/v3/api/classes/context/)
#### Overrides
`CoreContext.wrap`
#### Source
[src/core/structures/context.ts:113](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/context.ts#L113)

View File

@@ -0,0 +1,36 @@
---
editUrl: false
next: false
prev: false
title: "ModuleStore"
---
## Constructors
### new ModuleStore()
> **new ModuleStore**(): [`ModuleStore`](/v3/api/classes/modulestore/)
#### Returns
[`ModuleStore`](/v3/api/classes/modulestore/)
## Properties
### commands
> **commands**: `Map`\<`string`, `Module`\>
#### Source
[src/core/structures/module-store.ts:10](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/module-store.ts#L10)
***
### metadata
> **metadata**: `WeakMap`\<`Module`, `CommandMeta`\>
#### Source
[src/core/structures/module-store.ts:9](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/module-store.ts#L9)

View File

@@ -0,0 +1,144 @@
---
editUrl: false
next: false
prev: false
title: "CommandType"
---
## Since
1.0.0
A bitfield that discriminates command modules
## Example
```ts
export default commandModule({
// highlight-next-line
type : CommandType.Text,
name : 'a text command'
execute(message) {
console.log(message.content)
}
})
```
## Enumeration Members
### Both
> **Both**: `3`
#### Source
[src/core/structures/enums.ts:20](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L20)
***
### Button
> **Button**: `16`
#### Source
[src/core/structures/enums.ts:23](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L23)
***
### ChannelSelect
> **ChannelSelect**: `1024`
#### Source
[src/core/structures/enums.ts:29](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L29)
***
### CtxMsg
> **CtxMsg**: `8`
#### Source
[src/core/structures/enums.ts:22](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L22)
***
### CtxUser
> **CtxUser**: `4`
#### Source
[src/core/structures/enums.ts:21](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L21)
***
### MentionableSelect
> **MentionableSelect**: `512`
#### Source
[src/core/structures/enums.ts:28](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L28)
***
### Modal
> **Modal**: `64`
#### Source
[src/core/structures/enums.ts:25](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L25)
***
### RoleSelect
> **RoleSelect**: `256`
#### Source
[src/core/structures/enums.ts:27](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L27)
***
### Slash
> **Slash**: `2`
#### Source
[src/core/structures/enums.ts:19](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L19)
***
### StringSelect
> **StringSelect**: `32`
#### Source
[src/core/structures/enums.ts:24](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L24)
***
### Text
> **Text**: `1`
#### Source
[src/core/structures/enums.ts:18](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L18)
***
### UserSelect
> **UserSelect**: `128`
#### Source
[src/core/structures/enums.ts:26](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L26)

View File

@@ -0,0 +1,58 @@
---
editUrl: false
next: false
prev: false
title: "EventType"
---
A bitfield that discriminates event modules
## Example
```ts
export default eventModule({
//highlight-next-line
type : EventType.Discord,
name : 'guildMemberAdd'
execute(member : GuildMember) {
console.log(member)
}
})
```
## Enumeration Members
### Discord
> **Discord**: `1`
The EventType for handling discord events
#### Source
[src/core/structures/enums.ts:51](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L51)
***
### External
> **External**: `3`
The EventType for handling external events.
Could be for example, `process` events, database events
#### Source
[src/core/structures/enums.ts:60](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L60)
***
### Sern
> **Sern**: `2`
The EventType for handling sern events
#### Source
[src/core/structures/enums.ts:55](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L55)

View File

@@ -0,0 +1,42 @@
---
editUrl: false
next: false
prev: false
title: "PayloadType"
---
## Enumeration Members
### Failure
> **Failure**: `"failure"`
The PayloadType for a SernEmitter failure event
#### Source
[src/core/structures/enums.ts:98](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L98)
***
### Success
> **Success**: `"success"`
The PayloadType for a SernEmitter success event
#### Source
[src/core/structures/enums.ts:94](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L94)
***
### Warning
> **Warning**: `"warning"`
The PayloadType for a SernEmitter warning event
#### Source
[src/core/structures/enums.ts:102](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L102)

View File

@@ -0,0 +1,44 @@
---
editUrl: false
next: false
prev: false
title: "PluginType"
---
A bitfield that discriminates plugins
## Example
```ts
export default function myPlugin() : EventPlugin<CommandType.Text> {
//highlight-next-line
type : PluginType.Event,
execute([ctx, args], controller) {
return controller.next();
}
}
```
## Enumeration Members
### Control
> **Control**: `2`
The PluginType for EventPlugins
#### Source
[src/core/structures/enums.ts:85](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L85)
***
### Init
> **Init**: `1`
The PluginType for InitPlugins
#### Source
[src/core/structures/enums.ts:81](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/structures/enums.ts#L81)

View File

@@ -0,0 +1,29 @@
---
editUrl: false
next: false
prev: false
title: "CommandControlPlugin"
---
> **CommandControlPlugin**\<`I`\>(`execute`): [`Plugin`](/v3/api/interfaces/plugin/)\<`unknown`[]\>
## Type parameters
**I** *extends* [`CommandType`](/v3/api/enumerations/commandtype/)
## Parameters
**execute**
## Returns
[`Plugin`](/v3/api/interfaces/plugin/)\<`unknown`[]\>
## Since
2.5.0
@__PURE__
## Source
[src/core/create-plugins.ts:37](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/create-plugins.ts#L37)

View File

@@ -0,0 +1,29 @@
---
editUrl: false
next: false
prev: false
title: "CommandInitPlugin"
---
> **CommandInitPlugin**\<`I`\>(`execute`): [`Plugin`](/v3/api/interfaces/plugin/)\<`unknown`[]\>
## Type parameters
**I** *extends* [`CommandType`](/v3/api/enumerations/commandtype/)
## Parameters
**execute**
## Returns
[`Plugin`](/v3/api/interfaces/plugin/)\<`unknown`[]\>
## Since
2.5.0
@__PURE__
## Source
[src/core/create-plugins.ts:28](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/create-plugins.ts#L28)

View File

@@ -0,0 +1,35 @@
---
editUrl: false
next: false
prev: false
title: "DiscordEventControlPlugin"
---
> **DiscordEventControlPlugin**\<`T`\>(`name`, `execute`): [`Plugin`](/v3/api/interfaces/plugin/)\<`unknown`[]\>
## Type parameters
**T** *extends* keyof `ClientEvents`
## Parameters
**name**: `T`
**execute**
## Returns
[`Plugin`](/v3/api/interfaces/plugin/)\<`unknown`[]\>
## Since
2.5.0
## Experimental
A specialized function for creating control plugins with discord.js ClientEvents.
Will probably be moved one day!
## Source
[src/core/create-plugins.ts:58](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/create-plugins.ts#L58)

View File

@@ -0,0 +1,29 @@
---
editUrl: false
next: false
prev: false
title: "EventControlPlugin"
---
> **EventControlPlugin**\<`I`\>(`execute`): [`Plugin`](/v3/api/interfaces/plugin/)\<`unknown`[]\>
## Type parameters
**I** *extends* [`EventType`](/v3/api/enumerations/eventtype/)
## Parameters
**execute**
## Returns
[`Plugin`](/v3/api/interfaces/plugin/)\<`unknown`[]\>
## Since
2.5.0
@__PURE__
## Source
[src/core/create-plugins.ts:46](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/create-plugins.ts#L46)

View File

@@ -0,0 +1,29 @@
---
editUrl: false
next: false
prev: false
title: "EventInitPlugin"
---
> **EventInitPlugin**\<`I`\>(`execute`): [`Plugin`](/v3/api/interfaces/plugin/)\<`unknown`[]\>
## Type parameters
**I** *extends* [`EventType`](/v3/api/enumerations/eventtype/)
## Parameters
**execute**
## Returns
[`Plugin`](/v3/api/interfaces/plugin/)\<`unknown`[]\>
## Since
2.5.0
@__PURE__
## Source
[src/core/create-plugins.ts:19](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/create-plugins.ts#L19)

View File

@@ -0,0 +1,41 @@
---
editUrl: false
next: false
prev: false
title: "Service"
---
> **Service**\<`T`\>(`key`): `NonNullable`\<`UnpackFunction`\<`Partial`\<`Dependencies`\>\[`T`\]\>\>
The new Service api, a cleaner alternative to useContainer
To obtain intellisense, ensure a .d.ts file exists in the root of compilation.
Usually our scaffolding tool takes care of this.
Note: this method only works AFTER your container has been initiated
## Type parameters
**T** *extends* keyof `Dependencies`
## Parameters
**key**: `T`
a key that corresponds to a dependency registered.
## Returns
`NonNullable`\<`UnpackFunction`\<`Partial`\<`Dependencies`\>\[`T`\]\>\>
## Since
3.0.0
## Example
```ts
const client = Service('@sern/client');
```
## Source
[src/core/ioc/dependency-injection.ts:37](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/ioc/dependency-injection.ts#L37)

View File

@@ -0,0 +1,31 @@
---
editUrl: false
next: false
prev: false
title: "Services"
---
> **Services**\<`T`\>(...`keys`): `IntoDependencies`\<`T`\>
## Type parameters
**T** *extends* keyof `Dependencies`[]
## Parameters
• ...**keys**: [`...T[]`]
## Returns
`IntoDependencies`\<`T`\>
array of dependencies, in the same order of keys provided
## Since
3.0.0
The plural version of [Service](../../../../../../v3/api/functions/service)
## Source
[src/core/ioc/dependency-injection.ts:47](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/ioc/dependency-injection.ts#L47)

View File

@@ -0,0 +1,24 @@
---
editUrl: false
next: false
prev: false
title: "commandModule"
---
> **commandModule**(`mod`): [`CommandModule`](/v3/api/type-aliases/commandmodule/)
## Parameters
**mod**: `InputCommand`
## Returns
[`CommandModule`](/v3/api/type-aliases/commandmodule/)
## Since
1.0.0 The wrapper function to define command modules for sern
## Source
[src/core/modules.ts:19](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/modules.ts#L19)

View File

@@ -0,0 +1,36 @@
---
editUrl: false
next: false
prev: false
title: "discordEvent"
---
> **discordEvent**\<`T`\>(`mod`): [`EventModule`](/v3/api/type-aliases/eventmodule/)
Create event modules from discord.js client events,
This is an [eventModule](../../../../../../v3/api/functions/eventmodule) for discord events,
where typings can be very bad.
## Type parameters
**T** *extends* keyof `ClientEvents`
## Parameters
**mod**
**mod.execute**
**mod.name**: `T`
**mod.plugins?**: [`AnyEventPlugin`](/v3/api/type-aliases/anyeventplugin/)[]
## Returns
[`EventModule`](/v3/api/type-aliases/eventmodule/)
## Experimental
## Source
[src/core/modules.ts:47](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/modules.ts#L47)

View File

@@ -0,0 +1,25 @@
---
editUrl: false
next: false
prev: false
title: "eventModule"
---
> **eventModule**(`mod`): [`EventModule`](/v3/api/type-aliases/eventmodule/)
## Parameters
**mod**: `InputEvent`
## Returns
[`EventModule`](/v3/api/type-aliases/eventmodule/)
## Since
1.0.0
The wrapper function to define event modules for sern
## Source
[src/core/modules.ts:32](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/modules.ts#L32)

View File

@@ -0,0 +1,24 @@
---
editUrl: false
next: false
prev: false
title: "makeDependencies"
---
> **makeDependencies**\<`T`\>(`conf`): `Promise`\<\<`V`\>(...`keys`) => `IntoDependencies`\<`V`\>\>
## Type parameters
**T** *extends* `Dependencies`
## Parameters
**conf**: `ValidDependencyConfig`
## Returns
`Promise`\<\<`V`\>(...`keys`) => `IntoDependencies`\<`V`\>\>
## Source
[src/core/ioc/base.ts:144](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/ioc/base.ts#L144)

View File

@@ -0,0 +1,26 @@
---
editUrl: false
next: false
prev: false
title: "makePlugin"
---
> **makePlugin**\<`V`\>(`type`, `execute`): [`Plugin`](/v3/api/interfaces/plugin/)\<`V`\>
## Type parameters
**V** *extends* `unknown`[]
## Parameters
**type**: [`PluginType`](/v3/api/enumerations/plugintype/)
**execute**
## Returns
[`Plugin`](/v3/api/interfaces/plugin/)\<`V`\>
## Source
[src/core/create-plugins.ts:6](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/create-plugins.ts#L6)

View File

@@ -0,0 +1,35 @@
---
editUrl: false
next: false
prev: false
title: "single"
---
> **single**\<`T`\>(`cb`): () => `T`
@__PURE__
## Type parameters
**T**
## Parameters
**cb**
## Returns
`Function`
### Returns
`T`
## Since
2.0.0.
Creates a singleton object.
## Source
[src/core/ioc/dependency-injection.ts:11](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/ioc/dependency-injection.ts#L11)

View File

@@ -0,0 +1,39 @@
---
editUrl: false
next: false
prev: false
title: "transient"
---
> **transient**\<`T`\>(`cb`): () => () => `T`
@__PURE__
## Type parameters
**T**
## Parameters
**cb**
## Returns
`Function`
### Returns
`Function`
#### Returns
`T`
## Since
2.0.0
Creates a transient object
## Source
[src/core/ioc/dependency-injection.ts:21](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/ioc/dependency-injection.ts#L21)

View File

@@ -0,0 +1,124 @@
---
editUrl: false
next: false
prev: false
title: "BothCommand"
---
## Extends
- `Module`
## Properties
### alias?
> `optional` **alias**: `string`[]
#### Source
[src/types/core-modules.ts:125](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L125)
***
### description
> **description**: `string`
#### Overrides
`Module.description`
#### Source
[src/types/core-modules.ts:126](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L126)
***
### execute()
> **execute**: (`ctx`, `args`) => `unknown`
#### Parameters
**ctx**: [`Context`](/v3/api/classes/context/)
**args**: [`Args`](/v3/api/type-aliases/args/)
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:128](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L128)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/v3/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L34)
***
### options?
> `optional` **options**: [`SernOptionsData`](/v3/api/type-aliases/sernoptionsdata/)[]
#### Source
[src/types/core-modules.ts:127](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L127)
***
### plugins
> **plugins**: [`InitPlugin`](/v3/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L35)
***
### type
> **type**: [`Both`](/v3/api/enumerations/commandtype/#both)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:124](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L124)

View File

@@ -0,0 +1,102 @@
---
editUrl: false
next: false
prev: false
title: "ButtonCommand"
---
## Extends
- `Module`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L36)
***
### execute()
> **execute**: (`ctx`) => `unknown`
#### Parameters
**ctx**: `ButtonInteraction`\<`CacheType`\>
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:65](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L65)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/v3/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/v3/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L35)
***
### type
> **type**: [`Button`](/v3/api/enumerations/commandtype/#button)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:64](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L64)

View File

@@ -0,0 +1,102 @@
---
editUrl: false
next: false
prev: false
title: "ChannelSelectCommand"
---
## Extends
- `Module`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L36)
***
### execute()
> **execute**: (`ctx`) => `unknown`
#### Parameters
**ctx**: `ChannelSelectMenuInteraction`\<`CacheType`\>
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:75](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L75)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/v3/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/v3/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L35)
***
### type
> **type**: [`ChannelSelect`](/v3/api/enumerations/commandtype/#channelselect)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:74](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L74)

View File

@@ -0,0 +1,126 @@
---
editUrl: false
next: false
prev: false
title: "CommandModuleDefs"
---
## Properties
### 1
> **1**: [`TextCommand`](/v3/api/interfaces/textcommand/)
#### Source
[src/types/core-modules.ts:150](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L150)
***
### 1024
> **1024**: [`ChannelSelectCommand`](/v3/api/interfaces/channelselectcommand/)
#### Source
[src/types/core-modules.ts:158](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L158)
***
### 128
> **128**: [`UserSelectCommand`](/v3/api/interfaces/userselectcommand/)
#### Source
[src/types/core-modules.ts:160](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L160)
***
### 16
> **16**: [`ButtonCommand`](/v3/api/interfaces/buttoncommand/)
#### Source
[src/types/core-modules.ts:155](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L155)
***
### 2
> **2**: [`SlashCommand`](/v3/api/interfaces/slashcommand/)
#### Source
[src/types/core-modules.ts:151](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L151)
***
### 256
> **256**: [`RoleSelectCommand`](/v3/api/interfaces/roleselectcommand/)
#### Source
[src/types/core-modules.ts:157](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L157)
***
### 3
> **3**: [`BothCommand`](/v3/api/interfaces/bothcommand/)
#### Source
[src/types/core-modules.ts:152](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L152)
***
### 32
> **32**: [`StringSelectCommand`](/v3/api/interfaces/stringselectcommand/)
#### Source
[src/types/core-modules.ts:156](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L156)
***
### 4
> **4**: [`ContextMenuUser`](/v3/api/interfaces/contextmenuuser/)
#### Source
[src/types/core-modules.ts:154](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L154)
***
### 512
> **512**: [`MentionableSelectCommand`](/v3/api/interfaces/mentionableselectcommand/)
#### Source
[src/types/core-modules.ts:159](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L159)
***
### 64
> **64**: [`ModalSubmitCommand`](/v3/api/interfaces/modalsubmitcommand/)
#### Source
[src/types/core-modules.ts:161](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L161)
***
### 8
> **8**: [`ContextMenuMsg`](/v3/api/interfaces/contextmenumsg/)
#### Source
[src/types/core-modules.ts:153](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L153)

View File

@@ -0,0 +1,102 @@
---
editUrl: false
next: false
prev: false
title: "ContextMenuMsg"
---
## Extends
- `Module`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L36)
***
### execute()
> **execute**: (`ctx`) => `unknown`
#### Parameters
**ctx**: `MessageContextMenuCommandInteraction`\<`CacheType`\>
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:60](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L60)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/v3/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/v3/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L35)
***
### type
> **type**: [`CtxMsg`](/v3/api/enumerations/commandtype/#ctxmsg)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:59](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L59)

View File

@@ -0,0 +1,102 @@
---
editUrl: false
next: false
prev: false
title: "ContextMenuUser"
---
## Extends
- `Module`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L36)
***
### execute()
> **execute**: (`ctx`) => `unknown`
#### Parameters
**ctx**: `UserContextMenuCommandInteraction`\<`CacheType`\>
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:55](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L55)
***
### name?
> `optional` **name**: `string`
#### Inherited from
`Module.name`
#### Source
[src/types/core-modules.ts:33](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L33)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/v3/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/v3/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L35)
***
### type
> **type**: [`CtxUser`](/v3/api/enumerations/commandtype/#ctxuser)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:54](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L54)

View File

@@ -0,0 +1,38 @@
---
editUrl: false
next: false
prev: false
title: "ControlPlugin"
---
## Type parameters
**Args** *extends* `any`[] = `any`[]
## Properties
### execute()
> **execute**: (...`args`) => [`PluginResult`](/v3/api/type-aliases/pluginresult/)
#### Parameters
• ...**args**: `Args`
#### Returns
[`PluginResult`](/v3/api/type-aliases/pluginresult/)
#### Source
[src/types/core-plugin.ts:73](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-plugin.ts#L73)
***
### type
> **type**: [`Control`](/v3/api/enumerations/plugintype/#control)
#### Source
[src/types/core-plugin.ts:72](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-plugin.ts#L72)

View File

@@ -0,0 +1,34 @@
---
editUrl: false
next: false
prev: false
title: "Controller"
---
## Properties
### next()
> **next**: () => `Ok`\<`void`\>
#### Returns
`Ok`\<`void`\>
#### Source
[src/types/core-plugin.ts:59](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-plugin.ts#L59)
***
### stop()
> **stop**: () => `Err`\<`void`\>
#### Returns
`Err`\<`void`\>
#### Source
[src/types/core-plugin.ts:60](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-plugin.ts#L60)

View File

@@ -0,0 +1,94 @@
---
editUrl: false
next: false
prev: false
title: "CoreDependencies"
---
## Properties
### @sern/client()
> **@sern/client**: () => [`Emitter`](/v3/api/interfaces/emitter/)
#### Returns
[`Emitter`](/v3/api/interfaces/emitter/)
#### Source
[src/types/ioc.ts:28](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/ioc.ts#L28)
***
### @sern/emitter()
> **@sern/emitter**: () => [`Emitter`](/v3/api/interfaces/emitter/)
#### Returns
[`Emitter`](/v3/api/interfaces/emitter/)
#### Source
[src/types/ioc.ts:29](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/ioc.ts#L29)
***
### @sern/errors()
> **@sern/errors**: () => [`ErrorHandling`](/v3/api/interfaces/errorhandling/)
#### Returns
[`ErrorHandling`](/v3/api/interfaces/errorhandling/)
#### Source
[src/types/ioc.ts:36](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/ioc.ts#L36)
***
### @sern/logger()?
> `optional` **@sern/logger**: () => [`Logging`](/v3/api/interfaces/logging/)\<`unknown`\>
#### Returns
[`Logging`](/v3/api/interfaces/logging/)\<`unknown`\>
#### Source
[src/types/ioc.ts:37](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/ioc.ts#L37)
***
### @sern/modules()
> **@sern/modules**: () => `ModuleManager`
#### Returns
`ModuleManager`
#### Source
[src/types/ioc.ts:35](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/ioc.ts#L35)
***
### ~~@sern/store()~~
> **@sern/store**: () => [`CoreModuleStore`](/v3/api/interfaces/coremodulestore/)
:::caution[Deprecated]
Will be removed and turned internal
:::
#### Returns
[`CoreModuleStore`](/v3/api/interfaces/coremodulestore/)
#### Source
[src/types/ioc.ts:34](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/ioc.ts#L34)

View File

@@ -0,0 +1,28 @@
---
editUrl: false
next: false
prev: false
title: "CoreModuleStore"
---
Represents a core module store that stores IDs mapped to file paths.
## Properties
### commands
> **commands**: `Map`\<`string`, `Module`\>
#### Source
[src/core/contracts/module-store.ts:7](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/contracts/module-store.ts#L7)
***
### metadata
> **metadata**: `WeakMap`\<`Module`, `CommandMeta`\>
#### Source
[src/core/contracts/module-store.ts:8](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/contracts/module-store.ts#L8)

View File

@@ -0,0 +1,106 @@
---
editUrl: false
next: false
prev: false
title: "DiscordEventCommand"
---
## Extends
- `Module`
## Type parameters
**T** *extends* keyof `ClientEvents` = keyof `ClientEvents`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L36)
***
### name?
> `optional` **name**: `T`
#### Overrides
`Module.name`
#### Source
[src/types/core-modules.ts:106](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L106)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/v3/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/v3/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L35)
***
### type
> **type**: [`Discord`](/v3/api/enumerations/eventtype/#discord)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:107](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L107)
## Methods
### execute()
> **execute**(...`args`): `unknown`
#### Parameters
• ...**args**: `ClientEvents`\[`T`\]
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:108](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L108)

View File

@@ -0,0 +1,23 @@
---
editUrl: false
next: false
prev: false
title: "Disposable"
---
Represents a Disposable contract.
Let dependencies implement this to dispose and cleanup.
## Methods
### dispose()
> **dispose**(): `unknown`
#### Returns
`unknown`
#### Source
[src/core/contracts/hooks.ts:15](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/contracts/hooks.ts#L15)

View File

@@ -0,0 +1,66 @@
---
editUrl: false
next: false
prev: false
title: "Emitter"
---
## Methods
### addListener()
> **addListener**(`eventName`, `listener`): `this`
#### Parameters
**eventName**: `string` \| `symbol`
**listener**: `AnyFunction`
#### Returns
`this`
#### Source
[src/core/contracts/emitter.ts:6](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/contracts/emitter.ts#L6)
***
### emit()
> **emit**(`eventName`, ...`payload`): `boolean`
#### Parameters
**eventName**: `string` \| `symbol`
• ...**payload**: `any`[]
#### Returns
`boolean`
#### Source
[src/core/contracts/emitter.ts:8](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/contracts/emitter.ts#L8)
***
### removeListener()
> **removeListener**(`eventName`, `listener`): `this`
#### Parameters
**eventName**: `string` \| `symbol`
**listener**: `AnyFunction`
#### Returns
`this`
#### Source
[src/core/contracts/emitter.ts:7](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/contracts/emitter.ts#L7)

View File

@@ -0,0 +1,52 @@
---
editUrl: false
next: false
prev: false
title: "ErrorHandling"
---
## Since
2.0.0
## Methods
### ~~crash()~~
> **crash**(`err`): `never`
:::caution[Deprecated]
Version 4 will remove this method
:::
#### Parameters
**err**: `Error`
#### Returns
`never`
#### Source
[src/core/contracts/error-handling.ts:9](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/contracts/error-handling.ts#L9)
***
### updateAlive()
> **updateAlive**(`error`): `void`
A function that is called on every throw.
#### Parameters
**error**: `Error`
#### Returns
`void`
#### Source
[src/core/contracts/error-handling.ts:14](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/contracts/error-handling.ts#L14)

View File

@@ -0,0 +1,36 @@
---
editUrl: false
next: false
prev: false
title: "EventModuleDefs"
---
## Properties
### 1
> **1**: [`DiscordEventCommand`](/v3/api/interfaces/discordeventcommand/)\<keyof `ClientEvents`\>
#### Source
[src/types/core-modules.ts:166](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L166)
***
### 2
> **2**: [`SernEventCommand`](/v3/api/interfaces/serneventcommand/)\<keyof [`SernEventsMapping`](/v3/api/interfaces/serneventsmapping/)\>
#### Source
[src/types/core-modules.ts:165](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L165)
***
### 3
> **3**: [`ExternalEventCommand`](/v3/api/interfaces/externaleventcommand/)
#### Source
[src/types/core-modules.ts:167](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L167)

View File

@@ -0,0 +1,112 @@
---
editUrl: false
next: false
prev: false
title: "ExternalEventCommand"
---
## Extends
- `Module`
## Properties
### description?
> `optional` **description**: `string`
#### Inherited from
`Module.description`
#### Source
[src/types/core-modules.ts:36](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L36)
***
### emitter
> **emitter**: keyof `Dependencies`
#### Source
[src/types/core-modules.ts:48](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L48)
***
### name?
> `optional` **name**: `string`
#### Overrides
`Module.name`
#### Source
[src/types/core-modules.ts:47](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L47)
***
### onEvent
> **onEvent**: [`ControlPlugin`](/v3/api/interfaces/controlplugin/)\<`any`[]\>[]
#### Inherited from
`Module.onEvent`
#### Source
[src/types/core-modules.ts:34](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L34)
***
### plugins
> **plugins**: [`InitPlugin`](/v3/api/interfaces/initplugin/)\<`any`[]\>[]
#### Inherited from
`Module.plugins`
#### Source
[src/types/core-modules.ts:35](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L35)
***
### type
> **type**: [`External`](/v3/api/enumerations/eventtype/#external)
#### Overrides
`Module.type`
#### Source
[src/types/core-modules.ts:49](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L49)
## Methods
### execute()
> **execute**(...`args`): `unknown`
#### Parameters
• ...**args**: `unknown`[]
#### Returns
`unknown`
#### Overrides
`Module.execute`
#### Source
[src/types/core-modules.ts:50](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/types/core-modules.ts#L50)

View File

@@ -0,0 +1,23 @@
---
editUrl: false
next: false
prev: false
title: "Init"
---
Represents an initialization contract.
Let dependencies implement this to initiate some logic.
## Methods
### init()
> **init**(): `unknown`
#### Returns
`unknown`
#### Source
[src/core/contracts/hooks.ts:7](https://github.com/sern-handler/handler/blob/a19edaf8838dcf088d3947f4a6aa6213d8f5bb9e/src/core/contracts/hooks.ts#L7)

Some files were not shown because too many files have changed in this diff Show More