From 724a69d9738b592ed639a1126852f0dba1ca329a Mon Sep 17 00:00:00 2001 From: David Malchin Date: Sun, 28 Jan 2024 04:40:30 +0200 Subject: [PATCH] feat: overhaul (#12) - Improve existing documentation. - Add some missing documentation. - Partially standardize code styling and other stuff. - Remove docs for heavily WIP resources (ambulancejob & medical). --- .gitignore | 1 + README.md | 9 +- components/counters.module.css | 6 - components/counters.tsx | 24 - next.config.js | 2 +- package.json | 15 +- pages/_app.js | 6 - pages/_app.mdx | 5 + pages/_meta.json | 2 +- pages/converting.mdx | 37 +- pages/developers.mdx | 14 +- pages/faq.mdx | 49 +- pages/index.mdx | 38 +- pages/installation.mdx | 56 +- pages/release.mdx | 52 +- pages/resources.mdx | 5 - pages/resources/_meta.json | 3 + pages/resources/core/Modules.mdx | 44 - pages/resources/core/_meta.json | 6 - pages/resources/core/events/server.mdx | 72 -- pages/resources/core/functions/client.mdx | 413 --------- pages/resources/core/functions/server.mdx | 360 ------- pages/resources/core/functions/shared.mdx | 176 ---- pages/resources/core/player.mdx | 102 -- .../qbx_ambulancejob/Events/Client.mdx | 15 - .../qbx_ambulancejob/Events/Server.mdx | 24 - pages/resources/qbx_binoculars.mdx | 13 + pages/resources/qbx_core.mdx | 9 + pages/resources/qbx_core/_meta.json | 6 + .../{core => qbx_core}/events/_meta.json | 0 .../{core => qbx_core}/events/client.mdx | 40 +- pages/resources/qbx_core/events/server.mdx | 93 ++ .../functions => qbx_core/exports}/_meta.json | 0 pages/resources/qbx_core/exports/client.mdx | 38 + pages/resources/qbx_core/exports/server.mdx | 501 ++++++++++ pages/resources/qbx_core/exports/shared.mdx | 78 ++ pages/resources/qbx_core/modules/_meta.json | 5 + pages/resources/qbx_core/modules/lib.mdx | 7 + .../resources/qbx_core/modules/lib/_meta.json | 5 + .../resources/qbx_core/modules/lib/client.mdx | 215 +++++ .../resources/qbx_core/modules/lib/server.mdx | 38 + .../resources/qbx_core/modules/lib/shared.mdx | 152 +++ pages/resources/qbx_core/modules/logger.mdx | 47 + .../resources/qbx_core/modules/playerdata.mdx | 7 + pages/resources/qbx_core/types/gang.mdx | 6 + pages/resources/qbx_core/types/job.mdx | 9 + pages/resources/qbx_core/types/player.mdx | 162 ++++ .../resources/qbx_core/types/player_data.mdx | 14 + .../qbx_core/types/player_entity.mdx | 91 ++ pages/resources/qbx_core/types/vehicle.mdx | 10 + pages/resources/qbx_core/types/weapon.mdx | 9 + pages/resources/qbx_divegear.mdx | 13 + pages/resources/qbx_diving.mdx | 13 + pages/resources/qbx_diving/Events/server.mdx | 23 - pages/resources/qbx_diving/_meta.json | 3 + pages/resources/qbx_diving/events/server.mdx | 30 + pages/resources/qbx_management.mdx | 13 + .../qbx_management/Functions/Server.mdx | 22 - pages/resources/qbx_management/_meta.json | 3 + .../qbx_management/exports/server.mdx | 25 + pages/resources/qbx_medical/Events/Server.mdx | 23 - .../qbx_medical/Functions/Client.mdx | 156 ---- .../qbx_medical/Functions/Server/Hooks.mdx | 38 - pnpm-lock.yaml | 877 +++++++++--------- style.css | 11 +- 65 files changed, 2270 insertions(+), 2071 deletions(-) delete mode 100644 components/counters.module.css delete mode 100644 components/counters.tsx delete mode 100644 pages/_app.js create mode 100644 pages/_app.mdx delete mode 100644 pages/resources.mdx create mode 100644 pages/resources/_meta.json delete mode 100644 pages/resources/core/Modules.mdx delete mode 100644 pages/resources/core/_meta.json delete mode 100644 pages/resources/core/events/server.mdx delete mode 100644 pages/resources/core/functions/client.mdx delete mode 100644 pages/resources/core/functions/server.mdx delete mode 100644 pages/resources/core/functions/shared.mdx delete mode 100644 pages/resources/core/player.mdx delete mode 100644 pages/resources/qbx_ambulancejob/Events/Client.mdx delete mode 100644 pages/resources/qbx_ambulancejob/Events/Server.mdx create mode 100644 pages/resources/qbx_binoculars.mdx create mode 100644 pages/resources/qbx_core.mdx create mode 100644 pages/resources/qbx_core/_meta.json rename pages/resources/{core => qbx_core}/events/_meta.json (100%) rename pages/resources/{core => qbx_core}/events/client.mdx (57%) create mode 100644 pages/resources/qbx_core/events/server.mdx rename pages/resources/{core/functions => qbx_core/exports}/_meta.json (100%) create mode 100644 pages/resources/qbx_core/exports/client.mdx create mode 100644 pages/resources/qbx_core/exports/server.mdx create mode 100644 pages/resources/qbx_core/exports/shared.mdx create mode 100644 pages/resources/qbx_core/modules/_meta.json create mode 100644 pages/resources/qbx_core/modules/lib.mdx create mode 100644 pages/resources/qbx_core/modules/lib/_meta.json create mode 100644 pages/resources/qbx_core/modules/lib/client.mdx create mode 100644 pages/resources/qbx_core/modules/lib/server.mdx create mode 100644 pages/resources/qbx_core/modules/lib/shared.mdx create mode 100644 pages/resources/qbx_core/modules/logger.mdx create mode 100644 pages/resources/qbx_core/modules/playerdata.mdx create mode 100644 pages/resources/qbx_core/types/gang.mdx create mode 100644 pages/resources/qbx_core/types/job.mdx create mode 100644 pages/resources/qbx_core/types/player.mdx create mode 100644 pages/resources/qbx_core/types/player_data.mdx create mode 100644 pages/resources/qbx_core/types/player_entity.mdx create mode 100644 pages/resources/qbx_core/types/vehicle.mdx create mode 100644 pages/resources/qbx_core/types/weapon.mdx create mode 100644 pages/resources/qbx_divegear.mdx create mode 100644 pages/resources/qbx_diving.mdx delete mode 100644 pages/resources/qbx_diving/Events/server.mdx create mode 100644 pages/resources/qbx_diving/_meta.json create mode 100644 pages/resources/qbx_diving/events/server.mdx create mode 100644 pages/resources/qbx_management.mdx delete mode 100644 pages/resources/qbx_management/Functions/Server.mdx create mode 100644 pages/resources/qbx_management/_meta.json create mode 100644 pages/resources/qbx_management/exports/server.mdx delete mode 100644 pages/resources/qbx_medical/Events/Server.mdx delete mode 100644 pages/resources/qbx_medical/Functions/Client.mdx delete mode 100644 pages/resources/qbx_medical/Functions/Server/Hooks.mdx diff --git a/.gitignore b/.gitignore index f74c781..65eb68d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .next node_modules +out diff --git a/README.md b/README.md index 5af8964..cb869b8 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,12 @@ -# Nextra Docs Template - -This is a template for creating documentation with [Nextra](https://nextra.site). +# Qbox Project Documentation ## Local Development First, run `pnpm i` to install the dependencies. Then, run `pnpm dev` to start the development server and visit localhost:3000. + +## Acknowledgements + +- [`shuding/nextra-docs-template`](https://github.com/shuding/nextra-docs-template) - the template used +- [`overextended/overextended.github.io`](https://github.com/overextended/overextended.github.io) - much of the styling copied over from here diff --git a/components/counters.module.css b/components/counters.module.css deleted file mode 100644 index 4a5d0c8..0000000 --- a/components/counters.module.css +++ /dev/null @@ -1,6 +0,0 @@ -.counter { - border: 1px solid #ccc; - border-radius: 5px; - padding: 2px 6px; - margin: 12px 0 0; -} diff --git a/components/counters.tsx b/components/counters.tsx deleted file mode 100644 index b78f12d..0000000 --- a/components/counters.tsx +++ /dev/null @@ -1,24 +0,0 @@ -// Example from https://beta.reactjs.org/learn - -import { useState } from 'react' -import styles from './counters.module.css' - -function MyButton() { - const [count, setCount] = useState(0) - - function handleClick() { - setCount(count + 1) - } - - return ( -
- -
- ) -} - -export default function MyApp() { - return -} diff --git a/next.config.js b/next.config.js index dc82846..aa7100c 100644 --- a/next.config.js +++ b/next.config.js @@ -5,7 +5,7 @@ const withNextra = require('nextra')({ module.exports = { ...withNextra(), - rewrites: null, + rewrites: undefined, output: 'export', images: { unoptimized: true, diff --git a/package.json b/package.json index 50d0e74..2d8b7cb 100644 --- a/package.json +++ b/package.json @@ -18,16 +18,17 @@ }, "homepage": "https://github.com/shuding/nextra-docs-template#readme", "dependencies": { - "next": "^13.0.6", - "nextra": "latest", - "nextra-theme-docs": "latest", + "@tabler/icons-react": "^2.46.0", + "next": "^13.5.6", + "nextra": "^2.12.3", + "nextra-theme-docs": "^2.12.3", "react": "^18.2.0", "react-dom": "^18.2.0" }, "devDependencies": { - "@types/node": "18.11.10", - "@types/react": "^18.2.13", - "@types/react-dom": "^18.2.6", - "typescript": "^4.9.3" + "@types/node": "18.19.8", + "@types/react": "^18.2.48", + "@types/react-dom": "^18.2.18", + "typescript": "^5.3.3" } } diff --git a/pages/_app.js b/pages/_app.js deleted file mode 100644 index 37e3d78..0000000 --- a/pages/_app.js +++ /dev/null @@ -1,6 +0,0 @@ -import '../style.css' - -// This default export is required in a new `pages/_app.js` file. -export default function MyApp({ Component, pageProps }) { - return -} \ No newline at end of file diff --git a/pages/_app.mdx b/pages/_app.mdx new file mode 100644 index 0000000..f04e6eb --- /dev/null +++ b/pages/_app.mdx @@ -0,0 +1,5 @@ +import '../style.css'; + +export default function App({ Component, pageProps }) { + return ; +} diff --git a/pages/_meta.json b/pages/_meta.json index c90ca86..f372b88 100644 --- a/pages/_meta.json +++ b/pages/_meta.json @@ -2,7 +2,7 @@ "index": "Introduction", "installation": "Installation", "resources": "Resources", - "converting": "Converting from QB", + "converting": "Converting from QBCore", "contributors": "Contributing", "developers": "Developer's Guide", "release": "Release Readiness", diff --git a/pages/converting.mdx b/pages/converting.mdx index 7f3b570..e7d405d 100644 --- a/pages/converting.mdx +++ b/pages/converting.mdx @@ -1,21 +1,34 @@ -# Converting to Qbox from Qb +# Converting from QBCore -1. Check your job grades in `qbx_core/shared/jobs.lua`. In Qbox, job grades are numbers without quotations, whereas in Qb they are strings. -2. Configure ox_inventory and convert your database. Back it up first! https://overextended.dev/ox_inventory/Frameworks/qb -3. Qbox has multicharacter built-in to core. If you want to keep using your own multicharacter resource, disable core's via core config. Otherwise delete your multicharacter resource. -4. Qbox maintains a qb compatibility layer, so you can continue to use exports['qb-core'] and it should have full compatibibility. However, this means you won't get access to all the Qbox features and functions. So consider switching off of exports['qb-core'] when you can. This bridge layer means that qb-core resources should be 100% compatible with Qbox. +1. Check your job grades in `qbx_core/shared/jobs.lua`. + In Qbox, job grades are numbers without quotations, whereas in QBCore they are strings. +2. Configure ox_inventory and convert your database. + Back it up first! ([see ox_inventory documentation](https://overextended.dev/ox_inventory/Frameworks/qb)) +3. Qbox has multicharacter built into qbx_core. + If you want to keep using your own multicharacter resource, configure qbx_core accordingly. + Otherwise you can disable or delete your old multicharacter resource. +4. Qbox has a queue system built into qbx_core. + If you want to keep using your own queue system, specify `set qbx:enablequeue "true"` inside your cfg file. + Otherwise you can disable or delete your old queue system. +5. Qbox maintains a qb-core compatibility layer so all existing qb-core resources should expect compatibility most times. + You can continue using `exports['qb-core']`, however, this means you won't get access to all the new Qbox features and functions, so consider switching off of `exports['qb-core']` when you can. + Do note that undocumented and invalid usages of qb-core are not supported and may not be in the future. + See the [FAQ](./faq#will-my-qbcore-scripts-work-with-qbox) for more details. -## Switching a resource from Qb to Qbox -Within Qbox the core object no longer exists. Instead the data can be accessed via a combination of export functions and imported modules +## Migrating a resource from QBCore to Qbox -1. Import the needed modules from qbx_core to supply replacement functions for ones from QBCore +Within Qbox, the core object no longer exists. +Instead, the data can be accessed via a combination of export functions and imported modules. + +1. Import the needed modules from qbx_core to supply replacement functions for ones from QBCore; 2. Replace calls to QBCore one by one with calls to the imported modules and exported functions. Both can be used at the same time, so conversion can be done partially, or over time. ### Common replacements + ```lua QBCore.Functions. -> exports.qbx_core: -QBCore.Functions.GetPlayerData() -> QBX.PlayerData (requires playerdata module import) -QBCore.Functions.GetPlate -> GetPlate (requires utils module import) +QBCore.Functions.GetPlayerData() -> QBX.PlayerData -- requires importing the playerdata module +QBCore.Functions.GetPlate(vehicle) -> qbx.getVehiclePlate(vehicle) -- requires importing the lib module QBCore.Shared.Jobs -> exports.qbx_core:GetJobs() QBCore.Shared.Gangs -> exports.qbx_core:GetGangs() QBCore.Shared.Vehicles -> exports.qbx_core:GetVehiclesByName() @@ -25,6 +38,6 @@ QBCore.Shared.Items -> exports.ox_inventory:Items() exports['qb-core']:KeyPressed() -> lib.hideTextUI() exports['qb-core']:HideText() -> lib.hideTextUI() -exports['qb-core']:DrawText(text, position) -> lib.showTextUI(text, {position = position}) -exports['qb-core']:ChangeText(text, position) -> lib.hideTextUI() lib.showTextUI(text, {position = position}) +exports['qb-core']:DrawText(text, position) -> lib.showTextUI(text, { position = position }) +exports['qb-core']:ChangeText(text, position) -> lib.hideTextUI() lib.showTextUI(text, { position = position }) ``` diff --git a/pages/developers.mdx b/pages/developers.mdx index 5889d95..17ed7a4 100644 --- a/pages/developers.mdx +++ b/pages/developers.mdx @@ -1,17 +1,21 @@ # Developer's Guide -This guide is intended for those creating scripts using qbx_core. Following these principles will make it less likely for your -script to break in future Qbox updates. +This guide is intended for those creating scripts using qbx_core. +Following these principles will make it less likely for your script to break in future updates. ## Do not access database tables owned by core -Doing this will break your script if the database schema changes in the future. If the data you need can't be read or written using a core function, +Doing this will break your script if the database schema changes in the future. +If the data you need can't be read or written using a core function, create a GitHub issue so we can rectify the problem for everyone. ## Do not modify core code -Doing this will make it difficult for you to update core and make it difficult to debug issues that may be due to custom changes. We've attempted to design things with flexibility in mind. -However, if you really think you need to modify core, file a GitHub issue first, and we'll see if we can trigger an event for you, surface a config value, or re-design something for the flexibility you need. +Doing this will make it difficult for you to update in the future, and create confusion when debugging issues that may or may not be due to your custom changes. + +We've attempted to design things with flexibility in mind. \ +However, if you really feel you need to modify core, file a GitHub issue first. +We'll see if we can trigger an event for you, surface a config value, or re-design something for the flexibility you need. ## Do not use deprecated functions/events diff --git a/pages/faq.mdx b/pages/faq.mdx index cbfe9d3..ebeb868 100644 --- a/pages/faq.mdx +++ b/pages/faq.mdx @@ -1,35 +1,44 @@ # Frequently Asked Questions -## What are the differences between Qb and Qbox? +## What are the differences between QBCore and Qbox? -While originally forked from Qb, many Qbox resources have been refactored to improve code quality, enhance security, lower performance overhead, and integrate with [overextended](https://overextended.dev) resources. -Where appropriate Qbox also integrates directly with other open source projects, rather than maintain subpar resources in-house. -Qbox maintains high quality standards, with a strong community of regular contributors. As time goes on, expect greater differences in player facing features. +While originally forked from QBCore, many Qbox resources have been refactored to improve code quality, enhance security, lower performance overhead, and integrate with [overextended](https://overextended.dev) resources. +Where appropriate Qbox also integrates directly with other open source projects, rather than maintaining subpar resources in-house. -## Will Qb compatible scripts work with Qbox? +Qbox maintains high quality standards, with a strong community of regular contributors. +As time goes on, expect greater differences in player facing features. -Yes. We've created a bridge layer for backwards compatibility with Qb scripts. You can continue to use Qb scripts without any modifications. +## Will my QBCore scripts work with Qbox? -## When will Qbox get a stable release? +TL;DR: Yes (in most cases). -Expect individual resources to get versioned releases over the coming months as they get stabilized and tested. +We've created a bridge layer for backwards compatibility with the documented and proper ways of using qb-core, +and you can continue to use most QBCore scripts without any modifications. + +An exception to this is resources that use qb-core in undocumented, unsupported, invalid, and/or improper ways, such as: +- Direct access to database tables; +- Direct access to qb-core files that aren't meant to be used by other resources; +- Invalid usages of existing functions; +- And other unexpected ways not mentioned here. ## Who should use Qbox? -Servers currently using QB and servers interested in running QB resources in the future +Servers currently using QBCore and servers interested in running QBCore in the future. + +## Is Qbox ready to use? + +Since qbx_core is backwards compatible with qb-core resources, we recommend using only the released Qbox resources for a stable experience. -## Is Qbox ready to be used? -Since qbx_core is backwards compatible with qb resources, we recommend using the released qbox resources only for a stable experience. +## Which resources are ready to use? -## Which resources are released? +- [qbx_core](./resources/qbx_core) +- [qbx_divegear](./resources/qbx_divegear) +- [qbx_diving](./resources/qbx_diving) +- [qbx_binoculars](./resources/qbx_binoculars) +- [qbx_management](./resources/qbx_management) -qbx_core -qbx_divegear -qbx_diving -qbx_binoculars -qbx_management +## Common Problems -# Common Problems +### No such export GetCoreObject in resource qbx_core -## No Such export GetCoreObject in resource qbx_core -Qbox does not have the core object. However, you can continue to use exports['qb-core']:GetCoreObject() to get a core object from Qbox's QB bridge layer. +Qbox does not have the core object. However, you can continue to use `exports['qb-core']:GetCoreObject()` to get a core object from Qbox's QB bridge layer. diff --git a/pages/index.mdx b/pages/index.mdx index 13e912c..0e34d81 100644 --- a/pages/index.mdx +++ b/pages/index.mdx @@ -1,21 +1,35 @@ -import { Callout } from 'nextra/components' - # Introduction -Qbox is a FiveM roleplay framework. This framework strives to be greater and combines with [overextended's resources](https://github.com/overextended) to achieve this greatness. Come witness the greatness and be overwhelmed by it! +Qbox is a FiveM roleplay framework created on September 27, 2022. - - Qbox was created on September 27, 2022. - This project started as a fork of QBCore with a goal of making improvements while maintaining backwards compatibility. - +Starting as a QBCore fork, its goal was improving upon QBCore while maintaining backwards compatibility. \ +Today this framework strives to be much greater, and utilizes [overextended's resources](https://github.com/overextended) to achieve its goals. -## Contributing +## Support & Questions -Contributions are always welcome, but we prefer quality over quantity! Please read our [contributing guidelines](https://qbox-project.github.io/contributors) to learn how best to contribute. +Support for Qbox is provided by the community in the support channels of the [Qbox Discord](https://discord.gg/qbox). +Luckily, Qbox benefits from a great community with varied experience. +We encourage everyone to help each other in a friendly and respectable manner. -## Support +## Converting from QBCore -Support for Qbox is provided by the community in the support channels of the [Qbox Discord](https://discord.gg/qbox). +Already have a server that uses QBCore? No worries! +Qbox has backwards-compatibility for almost all QBCore scripts, with a few exceptions (learn more in the [FAQ](./faq#will-my-qbcore-scripts-work-with-qbox)). + +Planning on converting to Qbox anyway to be able to utilize its new and modern functions and features? +Learn how to convert your resources to Qbox in [Converting from QBCore](./converting). + +## Note for Developers + +Planning on utilizing qbx_core in your next resource? +Make sure to read the [Developer's Guide](./developers) to learn about principles that make you avoid bad practices and help you in having a better developer expetience. + +## Contributing to Qbox + +Contributions are always welcome, but we prefer quality over quantity! +Please read our [contributing guidelines](https://qbox-project.github.io/contributors) to learn how best to contribute. + +## Frequently Asked Questions -Luckily, Qbox benefits from a great community with varied experience. We encourage everyone to help each other in a friendly and respectable manner. \ No newline at end of file +Check out the [FAQ](./faq) to learn more about Qbox. diff --git a/pages/installation.mdx b/pages/installation.mdx index 7e73b7e..6294c9e 100644 --- a/pages/installation.mdx +++ b/pages/installation.mdx @@ -1,43 +1,43 @@ import { Callout, Steps, Tabs } from 'nextra/components' # Installation - - - We highly recommend using **txAdmin** to install your FiveM server. - For detailed instructions, refer to [Setting up a server](https://docs.fivem.net/docs/server-manual/setting-up-a-server-txadmin/). + + + We highly recommend using **txAdmin** to install your FiveM server. \ + For detailed instructions, refer to [Setting up a server using txAdmin](https://docs.fivem.net/docs/server-manual/setting-up-a-server-txadmin/). -### Download the server -1. Download the latest [FiveM artifacts](https://runtime.fivem.net/artifacts/fivem/build_server_windows/master/) and extract the files. + ### Download the server + + Download the latest [FiveM artifacts](https://runtime.fivem.net/artifacts/fivem/build_server_windows/master/) and extract the files. -### Start the server installation -Run `FXServer.exe` to begin the installation and follow all the steps. + ### Start the server installation -### Deploy the recipe -When prompted, select `Remote URL Template` - + Run `FXServer.exe` to begin the installation and follow all the steps. -![Deployment Type](/txadmin-deployment-type.jpg) + ### Deploy the recipe + When prompted, select `Remote URL Template`: -Use the raw recipe link shown below. + ![Deployment Type](/txadmin-deployment-type.jpg) - - -```ansi filename="Qbox recipe" copy -https://raw.githubusercontent.com/Qbox-project/txAdminRecipe/main/qbox.yaml -``` - - -```ansi filename="Qbox Lean recipe" copy -https://raw.githubusercontent.com/Qbox-project/txAdminRecipe/main/qbox-lean.yaml -``` - - + Use the raw recipe link shown below. -### Run the server + + + ```ansi filename="Qbox recipe" copy + https://raw.githubusercontent.com/Qbox-project/txAdminRecipe/main/qbox.yaml + ``` + + + ```ansi filename="Qbox Lean recipe" copy + https://raw.githubusercontent.com/Qbox-project/txAdminRecipe/main/qbox-lean.yaml + ``` + + -Once you have completed all of the installation steps, run the server. + ### Run the server - \ No newline at end of file + Once you have completed all of the installation steps, run the server. + diff --git a/pages/release.mdx b/pages/release.mdx index 04cdafe..1f146ee 100644 --- a/pages/release.mdx +++ b/pages/release.mdx @@ -1,42 +1,50 @@ # Release Readiness -A resource is release ready when all of the following are true +Guidelines for indicating that a resource is stable and ready for release. ## Code Quality -1. No lint errors -2. prints replaced with lib.print -3. ox_lib is used to replace natives where possible -4. Code has been refactored to use best practices and following style guide -5. Code is readable and well organized -6. No deprecated functions are being invoked + +1. No lint errors are present. +2. All `print` statements are replaced with `lib.print`. +3. ox_lib is used to replace natives where possible. +4. Code uses best practices and follows the contribution guidelines. +5. Code is readable and well organized. +6. No deprecated functions are being invoked. ## Database Practices -1. Does not read from tables it does not own. Uses exports from the owning resources to get data instead -2. Has database calls to tables it does own in a designated storage layer of the resource (see server/storage.lua on core) + +1. Does not read directly from tables it does not own, and uses exports and functions from the owning resources to get the data instead. +2. Has direct database calls to tables it does own in a designated storage layer of the resource (see `server/storage.lua` in qbx_core). ## Config Practices -1. Config is located inside of a config folder, and is split between client.lua, shared.lua, and server.lua. Each of this is a module (i.e. returns a table) + +1. Config is located inside of a config folder and is split between `client.lua`, `shared.lua`, `server.lua`, and optionally more. Each of these are a module (i.e. returns a table). ## Core Practices -1. Client PlayerData is accessed using playerdata module, instead of a core export -2. Utils module is used to replace duplicate code like DrawText + +1. Client PlayerData is accessed using playerdata module, instead of a qbx_core export. +2. Lib module is used to replace duplicate code like DrawText. ## Resource Quality -1. Resource features provide a good experience for players/devs/owners/admins -2. Resource is scoped appropriately (i.e. it shouldn't be split, or combined with another resource) -3. README is not outdated -4. No known bugs + +1. Resource features provide a good experience for players/devs/owners/admins. +2. Resource is scoped appropriately (i.e. it shouldn't be split, or combined with another resource). +3. README is not outdated. +4. No known bugs. ## Stability -1. No breaking changes are planned in the near future -2. Resource has been tested or unchanged for long enough to give confidence that major bugs are not present + +1. No breaking changes are planned in the near future. +2. Resource has been tested or unchanged for long enough to give confidence that major bugs are not present. ## Dependencies + 1. Dependencies are declared and enforced using [lib.checkDependency](https://overextended.dev/ox_lib/Modules/Version/Shared). fxmanifest dependencies should be used intentionally; understanding the behavior of restarting a resource. -2. Dependencies are stable +2. Dependencies are stable. ## Release Automation & Documentation -1. The first line of code executed by the server is [lib.versionCheck](https://overextended.dev/ox_lib/Modules/Version/Server#libversioncheck) -2. The resource has a .github folder with bug/suggestion templates, automated version updater & release script + +1. The first line of code executed by the server is [lib.versionCheck](https://overextended.dev/ox_lib/Modules/Version/Server#libversioncheck). +2. The resource has a `.github` folder with bug/suggestion templates, automated version updater & release script. 3. The resource has a README which contains marketing material about the resource and it's features. Note that this is not technical documentation. -4. The resources public API (events & exports) are documented on the [technical-docs](https://qbox-project.github.io/resources) +4. The resource's public API (events & exports) are documented on the technical docs (here). diff --git a/pages/resources.mdx b/pages/resources.mdx deleted file mode 100644 index e51cc9b..0000000 --- a/pages/resources.mdx +++ /dev/null @@ -1,5 +0,0 @@ -# Resources - -We have a lot of resources available to use. - -All of the resources have their own usage, they are documented here. diff --git a/pages/resources/_meta.json b/pages/resources/_meta.json new file mode 100644 index 0000000..918f3e8 --- /dev/null +++ b/pages/resources/_meta.json @@ -0,0 +1,3 @@ +{ + "qbx_core": "qbx_core" +} diff --git a/pages/resources/core/Modules.mdx b/pages/resources/core/Modules.mdx deleted file mode 100644 index 0301d7a..0000000 --- a/pages/resources/core/Modules.mdx +++ /dev/null @@ -1,44 +0,0 @@ -# Modules - -Modules are code libraries that can be imported into other scripts to provide additional functionality. They are located in qbx_core/modules folder - -## playerdata - -Adds global QBX.PlayerData and keeps it updated -https://github.com/Qbox-project/qbx_core/blob/14edd8e082b6579ef30a5e34df29f5a26bc29a21/server/player.lua#L3 - -### Installation -Add 'qbx_core/modules/playerdata.lua' to client_scripts in fxmanifest.lua - -## utils - -Adds global utility functions - -### Installation -Add 'qbx_core/modules/utils.lua' to shared_scripts in fxmanifest.lua - -## logger - -logs to either discord or ox_lib depending on whether webhook is nil or not - -```lua ----@field source string source of the log. Usually a playerId or name of a resource. ----@field event string the action or 'event' being logged. Usually a verb describing what the name is doing. Example: SpawnVehicle ----@field message string the message attached to the log ----@field webhook? string Discord logs only. url of the webhook this log should send to. ----@field color? string Discord logs only. what color the message should be ----@field tags? string[] Discord logs only. tags in discord. Example: {'<@&roleid>', '<@userid>', '@everyone'} -``` - -### Example use - -```lua -local logger = require '@qbx_core.modules.logger' - -logger.log({ - source = 'my source', - event = 'my event', - message = 'my message', - tags = {'@everyone'} -}) -``` diff --git a/pages/resources/core/_meta.json b/pages/resources/core/_meta.json deleted file mode 100644 index 378ba7e..0000000 --- a/pages/resources/core/_meta.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "functions": "Functions", - "events": "Events", - "Modules": "Modules", - "player": "Player" -} diff --git a/pages/resources/core/events/server.mdx b/pages/resources/core/events/server.mdx deleted file mode 100644 index 74b98f7..0000000 --- a/pages/resources/core/events/server.mdx +++ /dev/null @@ -1,72 +0,0 @@ -import { Callout } from "nextra/components"; - -# Server - - - These events **MUST NOT** be triggered by any other scripts. - - -## Non-Networked Events - -### QBCore:Server:OnPlayerLoaded - -Player has finished loading - -```lua ----@param player Player -``` - -### QBCore:Server:OnPlayerUnload - -Player begins process of logging out. No guarantee of whether player still exists in core memory at time event is triggered. - -```lua ----@param src number -``` - -### QBCore:Server:OnPermissionUpdate - -Player's permissions are updated. Only applies to permissions created through QB permission functions. - -```lua ----@param src number -``` - -### QBCore:Server:OnJobUpdate - -Player's job changes - -```lua ----@param src number ----@param job Job -``` - -### QBCore:Server:OnGangUpdate - -Player's gang changes - -```lua ----@param src number ----@param gang Gang -``` - -### QBCore:Server:SetDuty - -Player's duty changes - -```lua ----@param src number ----@param boolean onDuty -``` - -### QBCore:Server:OnMoneyChange - -Player's cash/bank balance changes - -```lua ----@param src number ----@param moneyType 'cash' | 'bank' | 'crypto' ----@param amount number ----@param operation 'add' | 'remove' | 'set' ----@param reason string -``` diff --git a/pages/resources/core/functions/client.mdx b/pages/resources/core/functions/client.mdx deleted file mode 100644 index 821a339..0000000 --- a/pages/resources/core/functions/client.mdx +++ /dev/null @@ -1,413 +0,0 @@ -import { Callout } from "nextra/components"; - -# Client - -## Exports - - - called using `exports.qbx_core:` - - - -### Notify - -Text box popup for player which dissappears after a set time. - -```lua ----@param text table|string text of the notification ----@param notifyType? NotificationType informs default styling. Defaults to 'inform' ----@param duration? integer milliseconds notification will remain on screen. Defaults to 5000 ----@param subTitle? string extra text under the title ----@param notifyPosition? NotificationPosition ----@param notifyStyle? table Custom styling. Please refer too https://overextended.dev/ox_lib/Modules/Interface/Client/notify#libnotify ----@param notifyIcon? string Font Awesome 6 icon name ----@param notifyIconColor? string Custom color for the icon chosen before -``` - -## Module: utils - - - called using `` - - -### DrawText2D - -Draws Text onto the screen in 2D - -```lua ----@param text string ----@param coords vector2 ----@param width? number ----@param height? number ----@param scale? number 0.0-10.0 ----@param font? integer ----@param r? integer red 0-255 ----@param g? integer green 0-255 ----@param b? integer blue 0-255 ----@param a? integer alpha 0-255 -``` - -### DrawText3D - -Draws Text onto the screen in 3D - -```lua ----@param coords vector3 ----@param text string ----@param scale? number ----@param font? integer ----@param r? integer red 0-255 ----@param g? integer green 0-255 ----@param b? integer blue 0-255 ----@param a? integer alpha 0-255 -``` - -### GetEntityAndNetIdFromBagName - -Wrapper for getting an entity handle and network id from a state bag name, [source](https://github.com/overextended/ox_core/blob/main/client/utils.lua) - -```lua ----@async ----@param bagName string ----@return integer, integer -``` - -### EntityStateHandler - -Wrapper for a state bag handler made for entities, [source](https://github.com/overextended/ox_core/blob/main/client/utils.lua) - -```lua ----@param keyFilter string ----@param cb fun(entity: number, netId: number, value: any, bagName: string) ----@return number -``` - -### PlayAnim - -Play an animation - -```lua ----@async ----@param animDict string ----@param animName string ----@param upperbodyOnly boolean ----@param duration integer ms -``` - -### GetEntities - -Returns the entities from the specified pool in the current scope - -```lua ----@param pool string ----@param ignoreList? integer[] ----@return integer[] -``` - -### GetVehicles - -Returns all vehicles in the current scope - -```lua ----@param ignoreList? integer[] ignore specific vehicle handles ----@return integer[] -``` - -### GetObjects - -Returns all objects in the current scope - -```lua ----@param ignoreList? integer[] ignore specific object handles ----@return integer[] -``` - -### GetPeds - -Returns all peds in the current scope - -```lua ----@param ignoreList? integer[] ignore specific ped handles ----@return integer[] -``` - -### GetPickups - -Returns all pickups in the current scope - -```lua ----@param ignoreList? integer[] ignore specific pickup handles ----@return integer[] -``` - -### GetPlayersInScope - -Returns all players in the current scope - -```lua ----@param ignoreList? integer[] ignore specific player ids ----@return integer[] -``` - -### GetClosestEntity - -Returns the closest entity from the list and the specified coords (if set) - -```lua ----@param entities integer[] ----@param coords vector3? if unset uses player coords ----@return integer closestObj or -1 ----@return number closestDistance or -1 -``` - -### GetClosestPed - -Returns the closest ped. -Use QBX.Functions.GetClosestPlayer if wanting to ignore non-player peds. - -```lua ----@param coords? vector3 uses player position if not set ----@param ignoreList? integer[] ----@return integer closestPed or -1 ----@return number closestDistance or -1 -``` - -### GetClosestVehicle - -Returns the closest vehicle - -```lua ----@param coords? vector3 uses player position if not set ----@param ignoreList? integer[] ----@return integer? vehicle ----@return number? closestDistance -``` - -### GetClosestObject - -Returns the closest object - -```lua ----@return number? ----@return integer|nil -``` - -### DeleteVehicle - -Deletes the specified vehicle - -```lua ----@param vehicle integer ----@return boolean -``` - -### GetClosestPlayer - -Returns the closest player - -```lua ----@param coords? vector3 uses player position if not set ----@param maxDistance? number ----@return integer? playerId ----@return number? closestDistance -``` - -### GetPlayersFromCoords - -Returns the players close to the coords - -```lua ----@param coords? vector3 uses player position if not set ----@param distance? number ----@return number[] playerIds -``` - -### GetClosestBone - -Returns the closest bone to the local ped of the specified entity - -```lua ----@param entity integer ----@param list integer[] | {id: integer}[] bones ----@return integer | {id: integer} | {id: integer, type: string, name: string} ----@return vector3 boneCoords ----@return number boneDistance -``` - -### GetBoneDistance - -Returns the distance from the player to the bone - -```lua ----@param entity integer ----@param boneType integer ----@param bone string | integer ----@return number distance -``` - -### AttachProp - -```lua ----@param ped integer ----@param model string | integer ----@param boneId integer ----@param x number ----@param y number ----@param z number ----@param xR number ----@param yR number ----@param zR number ----@param vertex boolean ----@return integer prop -``` - -### GetVehicleDisplayName - -Returns the model name of the vehicle - -```lua ----@param vehicle integer ----@return string -``` - -### GetVehicleMakeName - -Returns the brand name of the vehicle - -```lua ----@param vehicle integer ----@return string -``` - -### IsVehicleSpawnClear - -Check if there is no vehicle obstructing the coords - -```lua ----@param coords vector3? defaults to player position ----@param radius? number ----@return boolean -``` - -### StartParticleAtCoord - -Spawns a particle at the coords - -```lua ----@param dict string ----@param ptName string ----@param looped boolean ----@param coords? vector3 defaults to player position ----@param rot vector3 ----@param scale? number defaults to 1.0 ----@param alpha? number defaults to 1.0 ----@param color? {r: number, g: number, b: number} ----@param duration? integer ms ----@return integer -``` - -### StartParticleOnEntity - -Spawns a particle on the specified entity - -```lua ----@param dict string ----@param ptName string ----@param looped boolean ----@param entity integer ----@param bone? string | number ----@param offset vector3 ----@param rot vector3 ----@param scale? number defaults to 1.0 ----@param alpha? number defaults to 1.0 ----@param color? {r: number, b: number, g: number} ----@param evolution? {name: string, amount: number} ----@param duration? integer ms ----@return number -``` - -### GetStreetNameAtCoords - -Returns the street name and cross section from the coords - -```lua ----@param coords vector3 ----@return {main: string, cross: string} -``` - -### GetZoneAtCoords - -Returns the name of the zone at the specified coords - -```lua ----@param coords vector3 ----@return string -``` - -### GetCardinalDirection - -Returns the direction the specified entity or local ped is standing towards - -```lua ----@param entity? number defaults to player ped ----@return 'North' | 'South' | 'East' | 'West' | string direction or error message -``` - -### GetCurrentTime - -Returns the current time in-game - -```lua ----@class CurrentTime ----@field formattedMin string ----@field formattedHour integer ----@field ampm 'AM' | 'PM' ----@field min number ----@field hour number - ----@return CurrentTime -``` - -### GetGroundZCoord - -Returns the z coord at the first ground the game can find - -```lua ----@param coords vector3 ----@return vector3? -``` - -### ClearAllVehicleExtras - -Clear all vehicle extras - -```lua ----@param vehicle integer -``` - -### ChangeVehicleExtra - -Set the status of an extra on the vehicle - -```lua ----@param vehicle integer ----@param extra integer ----@param enable boolean -``` - -### SetVehicleExtras - -Set the vehicle extras of a vehicle according to a table - -```lua ----@param vehicle integer ----@param extras table -``` - -### IsWearingGloves - -Returns if the local ped is wearing gloves - -```lua ----@return boolean -``` diff --git a/pages/resources/core/functions/server.mdx b/pages/resources/core/functions/server.mdx deleted file mode 100644 index c5ee566..0000000 --- a/pages/resources/core/functions/server.mdx +++ /dev/null @@ -1,360 +0,0 @@ -import { Callout } from "nextra/components"; - -# Server - -## Exports - - - called using `exports.qbx_core:` - - -### CreateJobs - -Add or overwrite jobs. This is a runtime only change and will not modify files. - -```lua ----@param jobs table -``` - -### RemoveJob - -Remove a job from memory. This is a runtime only change and will not modify files. - -```lua ----@param jobName string ----@return boolean success ----@return string message -``` - -### CreateGangs - -Add or overwrite gangs. This is a runtime only change and will not modify files. - -```lua ----@param gangs table -``` - -### RemoveGang - -Remove a gang from memory. This is a runtime only change and will not modify files. - -```lua ----@param gangName string ----@return boolean success ----@return string message -``` - -### GetCoreVersion - -```lua ----@param InvokingResource string ----@return string version -``` - -### ExploitBan - -```lua ----@param playerId Source server id ----@param origin string reason -``` - -### GetSource - -```lua ----@param identifier string ----@return integer source of the player with the matching identifier or 0 if no player found -``` - -### GetPlayer - -```lua ----@param source Source|string source or identifier of the player ----@return Player -``` - -### GetPlayerByCitizenId - -```lua ----@param citizenid string ----@return Player? -``` - -### GetPlayerByPhone - -```lua ----@param number string ----@return Player? -``` - -### GetQBPlayers - -Will return an array of QB Player class instances, unlike the GetPlayers() wrapper which only returns IDs - -```lua ----@return table -``` - -### GetDutyCountJob - -Gets a list of all on duty players of a specified job and the number - -```lua ----@param job string name ----@return integer ----@return Source[] -``` - -### GetDutyCountType - -Gets a list of all on duty players of a specified job type and the number - -```lua ----@param type string ----@return integer ----@return Source[] -``` - -### GetBucketObjects - -Returns the objects related to buckets, first returned value is the player buckets, second one is entity buckets - -```lua ----@return table ----@return table -``` - -### SetPlayerBucket - -Will set the provided player id / source into the provided bucket id - -```lua ----@param source Source ----@param bucket integer ----@return boolean -``` - -### SetEntityBucket - -Will set any entity into the provided bucket, for example peds / vehicles / props / etc. - -```lua ----@param entity integer ----@param bucket integer ----@return boolean -``` - -### GetPlayersInBucket - -Will return an array of all the player ids inside the current bucket - -```lua ----@param bucket integer ----@return Source[]|boolean -``` - -### GetEntitiesInBucket - -Will return an array of all the entities inside the current bucket (not for player entities, use GetPlayersInBucket for that) - -```lua ----@param bucket integer ----@return boolean | integer[] -``` - -### CreateUseableItem - -```lua ----@param item string name ----@param data fun(source: Source, item: unknown) -``` - -### CanUseItem - -```lua ----@param item string name ----@return unknown -``` - -### IsWhitelisted - -Check if player is whitelisted, kept like this for backwards compatibility or future plans - -```lua ----@param source Source ----@return boolean -``` - -### AddPermission - -```lua ----@param source Source ----@param permission string -``` - -### RemovePermission - -```lua ----@param source Source ----@param permission string -``` - -### HasPermission - -Checking for Permission Level - -```lua ----@param source Source ----@param permission string ----@return boolean -``` - -### GetPermission - -```lua ----@param source Source ----@return table -``` - -### IsOptin - -Get whether player is opted into admin reports or not - -```lua ----@param source Source ----@return boolean -``` - -### ToggleOptin - -Opt in or out of admin reports - -```lua ----@param source Source -``` - -### IsPlayerBanned - -Check if player is banned - -```lua ----@param source Source ----@return boolean ----@return string? playerMessage -``` - -### Notify - -Text box popup for player which dissappears after a set time. - -```lua ----@param source ----@param text table|string text of the notification ----@param notifyType? NotificationType informs default styling. Defaults to 'inform' ----@param duration? integer milliseconds notification will remain on screen. Defaults to 5000 ----@param subTitle? string extra text under the title ----@param notifyPosition? NotificationPosition ----@param notifyStyle? table Custom styling. Please refer too https://overextended.dev/ox_lib/Modules/Interface/Client/notify#libnotify ----@param notifyIcon? string Font Awesome 6 icon name ----@param notifyIconColor? string Custom color for the icon chosen before -``` - -### Login -Login an existing character or create a new one. This is the preferred function for creating characters if the owning player is online. - -```lua ----@param source Source ----@param citizenid? string populated for existing characters only ----@param newData? PlayerEntity populated for new characters only ----@return boolean success -``` - -### GetOfflinePlayer - -```lua ----@param citizenid string ----@return Player? if found in storage -``` - -### Logout -Logs player out of their current character - -```lua ----@param source Source -``` - -### CreatePlayer -Creates a new character and saves in database. - -```lua ----@param playerData PlayerData ----@param offline boolean ----@return Player player -``` - -### Save -Save player info to database - -```lua ----@param source Source -``` - -### SaveOffline -Saves PlayerData to database - -```lua ----@param playerData PlayerEntity -``` - -### DeleteCharacter -Delete a character permanently. This action cannot be undone. - -```lua ----@param citizenid string -``` - -### GenerateUniqueIdentifier -Generate unique values for player identifiers - -```lua ----@param type UniqueIdType The type of unique value to generate ----@return string | number UniqueVal unique value generated -``` - -## Module: utils - - - called using `` - - -### SpawnVehicle - -Deletes vehicle ped is in before spawning a new one - -```lua ----@param source integer ----@param model string | integer ----@param coords? vector4 defaults to player's position ----@param warp? boolean ----@param table? props vehicle properties to set ----@return integer? netId -``` - -### KickWithReason - -Kick Player - -```lua ----@param source Source ----@param reason string ----@param setKickReason? fun(reason: string) ----@param deferrals? Deferrals -``` - -### IsLicenseInUse - -Check for duplicate license - -```lua ----@param license string ----@return boolean -``` \ No newline at end of file diff --git a/pages/resources/core/functions/shared.mdx b/pages/resources/core/functions/shared.mdx deleted file mode 100644 index 35ea39d..0000000 --- a/pages/resources/core/functions/shared.mdx +++ /dev/null @@ -1,176 +0,0 @@ -import { Callout } from "nextra/components"; - -# Shared - -## Exports - - - called using `exports.qbx_core:` - - -### GetJobs -Returns the jobs table - -```lua ----@return table -``` - -### GetGangs -Returns the gangs table - -```lua ----@return table -``` - -### GetVehiclesByName -Returns a table mapping vehicle name to vehicle - -```lua ----@return table -``` - -### GetVehiclesByHash -Returns a table mapping vehicle hash to vehicle - -```lua ----@return table -``` - -### GetVehiclesByCategory -Returns a table mapping vehicle category to vehicles - -```lua ----@return table -``` - -### GetWeapons -Returns the weapons table - -```lua ----@return table -``` - -### GetLocations -Returns the locations table - -```lua ----@return table -``` - -## Module: utils - - - called using `` - - -### GetCoordsFromEntity - -Get the coords including the heading from an entity - -```lua ----@param entity number ----@return vector4 -``` - -### GetPlate - -Returns the number plate of the specified vehicle - -```lua ----@param vehicle integer ----@return string? -``` - -### CommaValue - -Converts a number to a string version with commas - -```lua ----@param num number ----@return string -``` - -### string.split - -Split a string by a character - -```lua ----@param str string ----@param delimiter string character ----@return string[] -``` - -### string.trim - -Trim unwanted characters off the string - -```lua ----@param str string ----@return string? ----@return number? count -``` - -### string.firstToUpper - -Returns a string with the first character uppercase'd - -```lua ----@param str string ----@return string? ----@return number? count -``` - -### math.round - -Returns a rounded number - -```lua ----@param value number ----@param numDecimalPlaces integer ----@return integer -``` - -### RandomLetter - -Returns a random letter - -```lua ----@param length integer ----@return string -``` - -### RandomNumber - -Returns a random number - -```lua ----@param length integer ----@return string -``` - -### RandomNumberOrLetter - -Returns a random number or letter - -```lua ----@param length integer ----@return string -``` - -### GenerateRandomPlate - -Generates a random number plate according to a pattern, [pattern format](https://docs.fivem.net/natives/?_0x79780FD2), [plate generation source](https://github.com/citizenfx/fivem/blob/cb97fbc54050e2309930128d6deed515d004a1bd/code/components/extra-natives-five/src/VehicleNumberPlateNatives.cpp#L25-L112) - -```lua ----@return string -``` - -### MapTableBySubfield - -Creates a new key value table with the key being the subfield and the value being matching entries of the input table - -```lua ----@param subfield string ----@param table table ----@return table -``` \ No newline at end of file diff --git a/pages/resources/core/player.mdx b/pages/resources/core/player.mdx deleted file mode 100644 index c85e796..0000000 --- a/pages/resources/core/player.mdx +++ /dev/null @@ -1,102 +0,0 @@ -import { Callout } from "nextra/components"; - -# Player -```lua ----@field Functions table ----@field PlayerData table ----@field Offline boolean -``` - -## Functions - - - called using `player.Functions.` - - -### SetJob -```lua ----@param job string name ----@param grade integer ----@return boolean success if job was set -``` - -### SetGang -```lua ----@param gang string name ----@param grade integer ----@return boolean success if gang was set -``` - -### SetJobDuty -```lua ----@param onDuty boolean -``` - -### SetPlayerData -Overwrites a top level key of playerdata with the specified value. - -```lua ----@param key string ----@param val any -``` - -### SetMetaData -Stores a key value pair - -```lua ----@param meta string ----@param val any -``` - -### GetMetaData -Retrieves value in metadata given a key - -```lua ----@param meta string ----@return any -``` - -### AddJobReputation -```lua ----@param amount number -``` - -### AddMoney -```lua ----@param moneytype MoneyType ----@param amount number ----@param reason? string ----@return boolean success if money was added -``` - -### RemoveMoney -```lua ----@param moneytype MoneyType ----@param amount number ----@param reason? string ----@return boolean success if money was removed -``` - -### SetMoney -```lua ----@param moneytype MoneyType ----@param amount number ----@param reason? string ----@return boolean success if money was set -``` - -### GetMoney -```lua ----@param moneytype MoneyType ----@return boolean | number amount or false if moneytype does not exist -``` - -### SetCreditCard -Sets owned credit card number. Does not give character any items. - -```lua ----@param cardNumber number -``` - -### Save -Saves character to database \ No newline at end of file diff --git a/pages/resources/qbx_ambulancejob/Events/Client.mdx b/pages/resources/qbx_ambulancejob/Events/Client.mdx deleted file mode 100644 index c0a43f8..0000000 --- a/pages/resources/qbx_ambulancejob/Events/Client.mdx +++ /dev/null @@ -1,15 +0,0 @@ -import { Callout } from "nextra/components"; - -# Client - - - These events **MUST NOT** be triggered by any other scripts. - - -## Networked Events - -### qbx_ambulancejob:client:onPlayerRespawn - -```lua -RegisterNetEvent('qbx_ambulancejob:client:onPlayerRespawn', function(hospitalName) end) -``` \ No newline at end of file diff --git a/pages/resources/qbx_ambulancejob/Events/Server.mdx b/pages/resources/qbx_ambulancejob/Events/Server.mdx deleted file mode 100644 index 3214087..0000000 --- a/pages/resources/qbx_ambulancejob/Events/Server.mdx +++ /dev/null @@ -1,24 +0,0 @@ -import { Callout } from "nextra/components"; - -# Server - - - These events **MUST NOT** be triggered by any other scripts. - - -## Networked Events - -### qbx_ambulancejob:server:playerEnteredBed - -```lua -RegisterNetEvent('qbx_ambulancejob:server:playerEnteredBed', function(hospitalName) end) -``` - -### qbx_ambulancejob:server:playerLeftBed - -```lua -RegisterNetEvent('qbx_ambulancejob:server:playerLeftBed', function(hospitalName) end) -``` - - - diff --git a/pages/resources/qbx_binoculars.mdx b/pages/resources/qbx_binoculars.mdx new file mode 100644 index 0000000..baaacf2 --- /dev/null +++ b/pages/resources/qbx_binoculars.mdx @@ -0,0 +1,13 @@ +--- +title: qbx_binoculars +--- + +import { Cards, Card } from 'nextra/components'; +import { IconBrandGithub, IconTag } from '@tabler/icons-react'; + +# qbx_binoculars + + + } title="GitHub" href="https://github.com/Qbox-Project/qbx_binoculars" /> + } title="Releases" href="https://github.com/Qbox-Project/qbx_binoculars/releases" /> + diff --git a/pages/resources/qbx_core.mdx b/pages/resources/qbx_core.mdx new file mode 100644 index 0000000..e8d1b42 --- /dev/null +++ b/pages/resources/qbx_core.mdx @@ -0,0 +1,9 @@ +import { Cards, Card } from 'nextra/components'; +import { IconBrandGithub, IconTag } from '@tabler/icons-react'; + +# qbx_core + + + } title="GitHub" href="https://github.com/Qbox-Project/qbx_core" /> + } title="Releases" href="https://github.com/Qbox-Project/qbx_core/releases" /> + diff --git a/pages/resources/qbx_core/_meta.json b/pages/resources/qbx_core/_meta.json new file mode 100644 index 0000000..2cf6638 --- /dev/null +++ b/pages/resources/qbx_core/_meta.json @@ -0,0 +1,6 @@ +{ + "exports": "Exports", + "events": "Events", + "modules": "Modules", + "types": "Types" +} diff --git a/pages/resources/core/events/_meta.json b/pages/resources/qbx_core/events/_meta.json similarity index 100% rename from pages/resources/core/events/_meta.json rename to pages/resources/qbx_core/events/_meta.json diff --git a/pages/resources/core/events/client.mdx b/pages/resources/qbx_core/events/client.mdx similarity index 57% rename from pages/resources/core/events/client.mdx rename to pages/resources/qbx_core/events/client.mdx index ed028b4..6908b50 100644 --- a/pages/resources/core/events/client.mdx +++ b/pages/resources/qbx_core/events/client.mdx @@ -1,16 +1,21 @@ import { Callout } from "nextra/components"; -# Client +# Client Events These events **MUST NOT** be triggered by any other scripts. + + Some of these events use custom types. + You can learn more about those in the Types section of this resource. + + ## Non-Networked Events ### QBCore:Client:OnPlayerLoaded -Player finishes spawning +Triggered when the player finishes spawning. ```lua AddEventHandler('QBCore:Client:OnPlayerLoaded', function() end) @@ -20,16 +25,18 @@ AddEventHandler('QBCore:Client:OnPlayerLoaded', function() end) ### QBCore:Client:SetDuty -Player's duty changes +Triggered when the player's job duty is updated. ```lua ----@param boolean onDuty RegisterNetEvent('QBCore:Client:SetDuty', function(onDuty) end) ``` +- onDuty: `boolean` + ### QBCore:Client:OnPermissionUpdate -Player's permissions are updated. Only works for permissions set by qbx +Triggered when the player's permissions are updated. \ +Only works for permissions set via Qbox. ```lua RegisterNetEvent('QBCore:Client:OnPermissionUpdate', function() end) @@ -37,7 +44,7 @@ RegisterNetEvent('QBCore:Client:OnPermissionUpdate', function() end) ### qbx_core:client:playerLoggedOut -Player logs out and no longer exists in core memory +Triggered when the player logs out and no longer exists in qbx_core's memory. ```lua RegisterNetEvent('qbx_core:client:playerLoggedOut', function() end) @@ -45,30 +52,33 @@ RegisterNetEvent('qbx_core:client:playerLoggedOut', function() end) ### QBCore:Client:OnJobUpdate -Player's job is changed +Triggered when the player's job is updated. ```lua ----@param job Job RegisterNetEvent('QBCore:Client:OnJobUpdate', function(job) end) ``` +- job: `Job` + ### QBCore:Client:OnGangUpdate -Player's gang is changed +Triggered when the player's gang is updated. ```lua ----@param gang Gang RegisterNetEvent('QBCore:Client:OnGangUpdate', function(gang) end) ``` +- gang: `Gang` + ### QBCore:Client:OnMoneyChange -Player's cash/bank balance is updated +Triggered when the player's cash/bank balance is updated. ```lua ----@param moneyType 'cash' | 'bank' | 'crypto' ----@param amount number ----@param operation 'add' | 'remove' | 'set' ----@param reason string RegisterNetEvent('QBCore:Client:OnMoneyChange', function(moneytype, amount, operation, reason) end) ``` + +- moneyType: `'cash' | 'bank' | 'crypto'` +- amount: `number` +- operation: `'add' | 'remove' | 'set'` +- reason: `string` diff --git a/pages/resources/qbx_core/events/server.mdx b/pages/resources/qbx_core/events/server.mdx new file mode 100644 index 0000000..bea4c00 --- /dev/null +++ b/pages/resources/qbx_core/events/server.mdx @@ -0,0 +1,93 @@ +import { Callout } from "nextra/components"; + +# Server Events + + + These events **MUST NOT** be triggered by any other scripts. + + + + Some of these events use custom types. + You can learn more about those in the Types section of this resource. + + +## Non-Networked Events + +### QBCore:Server:OnPlayerUnload + +Triggered when aplayer begins the process of logging out. \ +There is no guarantee that the player still exists in qbx_core's memory at the time this event is triggered. + +```lua +AddEventHandler('QBCore:Server:OnPlayerUnload', function(src) end) +``` + +- src: `integer` + +### QBCore:Server:OnPermissionUpdate + +Triggered when the player's permissions are updated. \ +Only applies to permissions created through QB permission functions. + +```lua +AddEventHandler('QBCore:Server:OnPermissionUpdate', function(src) end) +``` + +- src: `integer` + +### QBCore:Server:OnJobUpdate + +Triggered when a player's job updates. + +```lua +AddEventHandler('QBCore:Server:OnJobUpdate', function(src, job) end) +``` + +- src: `integer` +- job: `Job` + +### QBCore:Server:OnGangUpdate + +Triggered when a player's gang updates. + +```lua +AddEventHandler('QBCore:Server:OnGangUpdate', function(src, gang) end) +``` + +- src: `integer` +- gang: `Gang` + +### QBCore:Server:SetDuty + +Triggered when a player's job duty updates. + +```lua +AddEventHandler('QBCore:Server:SetDuty', function(src, onDuty) end) +``` + +- src: `integer` +- onDuty: `boolean` + +### QBCore:Server:OnMoneyChange + +Triggered when a player's cash/bank balance updates. + +```lua +AddEventHandler('QBCore:Server:OnMoneyChange', function(src, moneyType, amount, operation, reason) end) +``` + +- src: `integer` +- moneyType: `'cash' | 'bank' | 'crypto'` +- amount: `number` +- operation: `'add' | 'remove' | 'set'` +- reason: `string` + +## Networked Events + +### QBCore:Server:OnPlayerLoaded + +Triggered when a player has finished loading. + +```lua +RegisterNetEvent('QBCore:Client:OnPlayerLoaded', function() end) +``` diff --git a/pages/resources/core/functions/_meta.json b/pages/resources/qbx_core/exports/_meta.json similarity index 100% rename from pages/resources/core/functions/_meta.json rename to pages/resources/qbx_core/exports/_meta.json diff --git a/pages/resources/qbx_core/exports/client.mdx b/pages/resources/qbx_core/exports/client.mdx new file mode 100644 index 0000000..7292f6d --- /dev/null +++ b/pages/resources/qbx_core/exports/client.mdx @@ -0,0 +1,38 @@ +import { Callout } from "nextra/components"; + +# Client Exports + +## Notify + + + See [`lib.notify`] for more details. + + +Text box popup which disappears after a given amount of time. + +```lua +exports.qbx_core:Notify(text, notifyType, duration, subTitle, notifyPosition, notifyStyle, notifyIcon, notifyIconColor) +``` + +- text: `table | string` + - The text of the notification. + - Can be a string, or a table containing: + - text?: `string` + - caption?: `string` +- notifyType?: `'inform' | 'error' | 'success' | 'warning'` + - Default: `'inform'` +- duration?: `integer` + - The duration in milliseconds for which the notification will remain on screen. + - Default: `5000` +- subTitle?: `string` + - Additional text under the title. +- notifyPosition?: `'top' | 'top-right' | 'top-left' | 'bottom' | 'bottom-right' | 'bottom-left' | 'center-right' | 'center-left'` + - Default: `top-right` (changable in config) +- notifyStyle?: `table` + - Custom styling. Refer to [`lib.notify`]. +- notifyIcon?: `string` + - Font Awesome 6 icon name. +- notifyIconColor?: `string` + - Custom color for `notifyIcon`. + +[`lib.notify`]: https://overextended.dev/ox_lib/Modules/Interface/Client/notify#libnotify diff --git a/pages/resources/qbx_core/exports/server.mdx b/pages/resources/qbx_core/exports/server.mdx new file mode 100644 index 0000000..86a37a3 --- /dev/null +++ b/pages/resources/qbx_core/exports/server.mdx @@ -0,0 +1,501 @@ +import { Callout } from 'nextra/components'; + +# Server Exports + + + Some of these exports use custom types. + You can learn more about those in the Types section of this resource. + + +## CreateJobs + +Adds or overwrites the given jobs. + + + This is a runtime-only change. This won't persist across restarts and won't modify files. + + +```lua +exports.qbx_core:CreateJobs(jobs) +``` + +- jobs: `table` + +## RemoveJob + +Removes the given job. + + + This is a runtime-only change. This won't persist across restarts and won't modify files. + + +```lua +exports.qbx_core:RemoveJob(jobName) +``` + +- jobName: `string` + +Returns: + +- success: `boolean` +- message: `'success' | 'invalid_job_name' | 'job_not_exists'` + +## CreateGangs + +Adds or overwrites the given gangs. + + + This is a runtime-only change. This won't persist across restarts and won't modify files. + + +```lua +exports.qbx_core:CreateGangs(gangs) +``` + +- gangs: `table` + +## RemoveGang + +Removes the given gang. + + + This is a runtime-only change. This won't persist across restarts and won't modify files. + + +```lua +exports.qbx_core:RemoveGang(gangName) +``` + +- gangName: `string` + +Returns: + +- success: `boolean` +- message: `'success' | 'invalid_gang_name' | 'gang_not_exists'` + +## GetCoreVersion + +Returns the current version of `qbx_core` set in its fxmanifest. + +```lua +exports.qbx_core:GetCoreVersion(InvokingResource) +``` + +- InvokingResource: `string` + +Returns: `string` + +## ExploitBan + +Bans the given player for the given reason. + +```lua +exports.qbx_core:ExploitBan(playerId, origin) +``` + +- playerId: `integer` +- origin: `string` + +## GetSource + +Returns the ID of the player that has the given identifier, or 0 if the player is not in the server. + +```lua +exports.qbx_core:GetSource(identifier) +``` + +- identifier: `string` + +Returns: `integer` + +## GetPlayer + +Returns the Player object for the given player ID or identifier. + +```lua +exports.qbx_core:GetPlayer(source) +``` + +- source: `integer` + +Returns: `Player?` + +## GetPlayerByCitizenId + +Returns the Player object for the given citizenid. + +```lua +exports.qbx_core:GetPlayerByCitizenId(citizenid) +``` + +- citizenid: `string` + +Returns: `Player?` + +## GetPlayerByPhone + +Returns the Player object for the given phone number. + +```lua +exports.qbx_core:GetPlayerByPhone(number) +``` + +- number: `string` + +Returns: `Player?` + +## GetQBPlayers + +Returns the player ID to Player object map of logged-in players. + +```lua +exports.qbx_core:GetQBPlayers() +``` + +Returns: `table` + +## GetDutyCountJob + +Returns the amount of players that are on-duty in the given job, and a list of their IDs. + +```lua +exports.qbx_core:GetDutyCountJob(job) +``` + +- job: `string` + +Returns: + +- count: `integer` +- players: `integer[]` + +## GetDutyCountType + +Returns the amount of players that are on-duty in the given job type, and a list of their IDs. + +```lua +exports.qbx_core:GetDutyCountType(jobType) +``` + +- jobType: `string` + +Returns: + +- count: `integer` +- players: `integer[]` + +## GetBucketObjects + +Returns the player to bucket and entity to bucket maps. + +```lua +exports.qbx_core:GetBucketObjects() +``` + +Returns: + +- playerBuckets: `table` +- entityBuckets: `table` + +## SetPlayerBucket + +Sets the given player to the given bucket. \ +Returns `false` if one of the parameters is nil, and `true` otherwise. + +```lua +exports.qbx_core:SetPlayerBucket(source, bucket) +``` + +- source: `integer` +- bucket: `integer` + +Returns: `boolean` + +## SetEntityBucket + +Sets the given entity (e.g. ped, vehicle, prop, etc.) to the given bucket. \ +Returns `false` if one of the parameters is nil, and `true` otherwise. + +```lua +exports.qbx_core:SetEntityBucket(entity, bucket) +``` + +- entity: `integer` +- bucket: `integer` + +Returns: `boolean` + +## GetPlayersInBucket + +Returns a list of all the players in the given bucket, or `false` if there are no known player buckets. + +```lua +exports.qbx_core:GetPlayersInBucket(bucket) +``` + +- bucket: `integer` + +Returns: `integer[] | false` + +## GetEntitiesInBucket + +Returns a list of all the entities in the given bucket, or `false` if there are no known entity buckets. + +```lua +exports.qbx_core:GetPlayersInBucket(bucket) +``` + +- bucket: `integer` + +Returns: `integer[] | false` + +## CreateUseableItem + +Registers the given function to run when the given item is used. + +```lua +exports.qbx_core:CreateUseableItem(item, data) +``` + +- item: `string` +- data: `fun(source: integer, item: unknown)` + +## CanUseItem + +Returns the data set to run when the given item is used, or `nil` if none exists. + +```lua +exports.qbx_core:CanUseItem(item) +``` + +- item: `string` + +Returns: `unknown` + +## IsWhitelisted + +Returns whether the given player is whitelisted. + +```lua +exports.qbx_core:IsWhitelisted(source) +``` + +- source: `integer` + +Returns: `boolean` + +## AddPermission + +Adds the given permission to the given player. + +```lua +exports.qbx_core:AddPermission(source, permission) +``` + +- source: `integer` +- permission: `string` + +## RemovePermission + +Removes the given permission from the given player. + +```lua +exports.qbx_core:RemovePermission(source, permission) +``` + +- source: `integer` +- permission: `string` + +## HasPermission + +Returns whether the given player has the given permission. + +```lua +exports.qbx_core:HasPermission(source, permission) +``` + +- source: `integer` +- permission: `string` + +Returns: `boolean` + +## GetPermission + +Gets the given player's permissions. + +```lua +exports.qbx_core:GetPermission(source) +``` + +- source: `integer` + +Returns: `table` + +## IsOptin + +Returns whether the given player is optin to admin reports. + +```lua +exports.qbx_core:IsOptin(source) +``` + +- source: `integer` + +Returns: `boolean` + +## ToggleOptin + +Opts the given player in and out of admin reports. + +```lua +exports.qbx_core:ToggleOptin(source) +``` + +- source: `integer` + +## IsPlayerBanned + +Returns whether the given player is banned, and a message to be shown to the player. + +```lua +exports.qbx_core:IsPlayerBanned(source) +``` + +- source: `integer` + +Returns: + +- banned: `boolean` +- playerMessage: `string` + - A message written to be shown to the player. + +## Notify + + + See [`lib.notify`] for more details. + + +Text box popup for the given player which disappears after a given amount of time. + +```lua +exports.qbx_core:Notify(source, text, notifyType, duration, subTitle, notifyPosition, notifyStyle, notifyIcon, notifyIconColor) +``` + +- source: `integer` +- text: `table | string` + - The text of the notification. + - Can be a string, or a table containing: + - text?: `string` + - caption?: `string` +- notifyType?: `'inform' | 'error' | 'success' | 'warning'` + - Default: `'inform'` +- duration?: `integer` + - The duration in milliseconds for which the notification will remain on screen. + - Default: `5000` +- subTitle?: `string` + - Additional text under the title. +- notifyPosition?: `'top' | 'top-right' | 'top-left' | 'bottom' | 'bottom-right' | 'bottom-left' | 'center-right' | 'center-left'` + - Default: `top-right` (changable in config) +- notifyStyle?: `table` + - Custom styling. Refer to [`lib.notify`]. +- notifyIcon?: `string` + - Font Awesome 6 icon name. +- notifyIconColor?: `string` + - Custom color for `notifyIcon`. + +[`lib.notify`]: https://overextended.dev/ox_lib/Modules/Interface/Client/notify#libnotify + +## Login + +Logs into an existing character or creates a new one, and returns whether it was successful. \ +This is the preferred function for creating characters if the owning player is online. + +```lua +exports.qbx_core:Login(source, citizenid, newData) +``` + +- source: `integer` +- citizenid?: `string` +- newData?: `PlayerEntity` + +Returns: `boolean` + +## GetOfflinePlayer + +Gets a Player object using the given citizenid and returns it, or `nil` if nothing was found. + +```lua +exports.qbx_core:GetOfflinePlayer(citizenid) +``` + +- citizenid: `string` + +Returns: `Player?` + +## Logout + +Logs the given player out of their current character. + +```lua +exports.qbx_core:Logout(source) +``` + +- source: `integer` + +## CreatePlayer + +Creates a new character and saves it to the database. + +```lua +exports.qbx_core:CreatePlayer(playerData, offline) +``` + +- playerData: `PlayerData` +- offline: `boolean` + +Returns: `Player` + +## Save + +Save the given player's info to the database. + +```lua +exports.qbx_core:Save(source) +``` + +- source: `integer` + +## SaveOffline + +Saves the given PlayerData to the database. + +```lua +exports.qbx_core:SaveOffline(playerData) +``` + +- playerData: `PlayerEntity` + +## DeleteCharacter + +Delete a character permanently by the given citizenid. + + + This action cannot be undone. + + +```lua +exports.qbx_core:DeleteCharacter(citizenid) +``` + +- citizenid: `string` + +## GenerateUniqueIdentifier + +Returns unique values for player identifiers. + +```lua +exports.qbx_core:GenerateUniqueIdentifier(type) +``` +- type: `'citizenid' | 'AccountNumber' | 'PhoneNumber' | 'FingerId' | 'WalletId' | 'SerialNumber'` + +Returns: `string | number` diff --git a/pages/resources/qbx_core/exports/shared.mdx b/pages/resources/qbx_core/exports/shared.mdx new file mode 100644 index 0000000..24b9efb --- /dev/null +++ b/pages/resources/qbx_core/exports/shared.mdx @@ -0,0 +1,78 @@ +import { Callout } from 'nextra/components'; + +# Shared Exports + + + Some of these exports use custom types. + You can learn more about those in the Types section of this resource. + + +## GetJobs + +Returns the jobs table. + +```lua +exports.qbx_core:GetJobs() +``` + +Returns: `table` + +## GetGangs + +Returns the gangs table. + +```lua +exports.qbx_core:GetGangs() +``` + +Returns: `table` + +## GetVehiclesByName + +Returns a table mapping vehicle name to vehicle. + +```lua +exports.qbx_core:GetVehiclesByName() +``` + +Returns: `table` + +## GetVehiclesByHash + +Returns a table mapping vehicle hash to vehicle. + +```lua +exports.qbx_core:GetVehiclesByHash() +``` + +Returns: `table` + +## GetVehiclesByCategory + +Returns a table mapping vehicle category to vehicles. + +```lua +exports.qbx_core:GetVehiclesByCategory() +``` + +Returns: `table` + +## GetWeapons + +Returns the weapons table. + +```lua +exports.qbx_core:GetWeapons() +``` + +Returns: `table` + +## GetLocations + +Returns the locations table. + +```lua +exports.qbx_core:GetLocations() +``` + +Returns: `table` diff --git a/pages/resources/qbx_core/modules/_meta.json b/pages/resources/qbx_core/modules/_meta.json new file mode 100644 index 0000000..9bddbda --- /dev/null +++ b/pages/resources/qbx_core/modules/_meta.json @@ -0,0 +1,5 @@ +{ + "lib": "lib", + "logger": "logger", + "playerdata": "playerdata" +} diff --git a/pages/resources/qbx_core/modules/lib.mdx b/pages/resources/qbx_core/modules/lib.mdx new file mode 100644 index 0000000..218d57d --- /dev/null +++ b/pages/resources/qbx_core/modules/lib.mdx @@ -0,0 +1,7 @@ +# lib + +Adds global utility functions. + +## Installation + +Add `@qbx_core/modules/lib.lua` to `shared_scripts` in your fxmanifest. diff --git a/pages/resources/qbx_core/modules/lib/_meta.json b/pages/resources/qbx_core/modules/lib/_meta.json new file mode 100644 index 0000000..d448e21 --- /dev/null +++ b/pages/resources/qbx_core/modules/lib/_meta.json @@ -0,0 +1,5 @@ +{ + "shared": "Shared", + "client": "Client", + "server": "Server" +} diff --git a/pages/resources/qbx_core/modules/lib/client.mdx b/pages/resources/qbx_core/modules/lib/client.mdx new file mode 100644 index 0000000..c6ff03d --- /dev/null +++ b/pages/resources/qbx_core/modules/lib/client.mdx @@ -0,0 +1,215 @@ +# Client Lib + +## drawText2d + +Draws text onto the screen in 2D space for a single frame. + +```lua +qbx.drawText2d(params) +``` + +- params: `table` + - text: `string` + - coords: `vector2` + - On-screen coordinates. + - scale?: `integer` + - Default: `0.35` + - font?: `integer` + - Default: `4` + - color?: `vector4` + - An RGBA value; white by default. + - width?: `number` + - Default: `1.0` + - height?: `number` + - Default: `1.0` + +## drawText3d + +Draws text onto the screen in 3D space for a single frame. + +```lua +qbx.drawText3d(params) +``` + +- params: `table` + - text: `string` + - coords: `vector3` + - In-world coordinates. + - scale?: `integer` + - Default: `0.35` + - font?: `integer` + - Default: `4` + - color?: `vector4` + - An RGBA value; white by default. + +## getEntityAndNetIdFromBagName + +Gets and returns an entity handle and network id from a state bag name. \ +Will return `0` for both if an invalid entity was received. + +```lua +qbx.getEntityAndNetIdFromBagName(bagName) +``` + +- bagName: `string` + +Returns: + +- entity: `integer` +- netId: `integer` + +## entityStateHandler + +Returns a state bag handler made for entities. + +```lua +qbx.entityStateHandler(keyFilter, cb) +``` + +- keyFilter: `string` +- cb: `fun(entity: number, netId: number, value: any, bagName: string)` + +Returns: `number` + +## deleteVehicle + +Deletes the specified vehicle and returns whether it was successful. + +```lua +qbx.deleteVehicle(vehicle) +``` + +- vehicle: `integer` + +Returns: `boolean` + +## getVehicleDisplayName + +Returns the model name of the given vehicle. + +```lua +qbx.getVehicleDisplayName(vehicle) +``` + +- vehicle: `integer` + +Returns: `string` + +## getVehicleMakeName + +Returns the brand name of the given vehicle. + +```lua +qbx.getVehicleMakeName(vehicle) +``` + +- vehicle: `integer` + +Returns: `string` + +## getStreetName + +Returns the street name and cross section name at the given coords. + +```lua +qbx.getStreetName(coords) +``` + +- coords: `vector3` + +Returns: + +- streetName: `table` + - main: `string` + - cross: `string` + +## getZoneName + +Returns the name of the zone at the given coords. + +```lua +qbx.getZoneName(coords) +``` + +- coords: `vector3` + +Returns: `string` + +## setVehicleExtra + +Set an extra on the given vehicle. + +```lua +qbx.setVehicleExtra(vehicle, extra, enable) +``` + +- vehicle: `integer` +- extra: `integer` +- enable: `boolean` + - Whether to enable the extra. + +## resetVehicleExtras + +Enables all the extras of the given vehicle. + +```lua +qbx.resetVehicleExtras(vehicle) +``` + +- vehicle: `integer` + +## setVehicleExtras + +Sets all the extras of the given vehicle. + +```lua +qbx.setVehicleExtra(vehicle, extras) +``` + +- vehicle: `integer` +- extras: `table` + +## isWearingGloves + +Returns if the local ped is wearing gloves. + +```lua +qbx.isWearingGloves() +``` + +Returns: `boolean` + +## loadAudioBank + +Attempts to load an audio bank and returns whether it was successful. \ +Remember to use `ReleaseScriptAudioBank` since you can only load up to 10 banks. + +```lua +qbx.loadAudioBank(audioBank, timeout) +``` + +- audioBank: `string` +- timeout?: `number` + +Returns: `boolean` + +## playAudio + +Plays a sound with the provided audio name and audio ref. \ +If `returnSoundId` is false or not specified the soundId is released, \ +otherwise the function returns the soundId without releasing it. + +```lua +qbx.playAudio(params) +``` + +- params: `table` + - audioName: `string` + - audioRef: `string` + - returnSoundId?: `boolean` + - audioSource?: `number | vector3` + - Entity handle or vector3 coords. + - range?: `number` + - Only used if `audioSource` is a vector3 coordinate. + +Returns: `number?` diff --git a/pages/resources/qbx_core/modules/lib/server.mdx b/pages/resources/qbx_core/modules/lib/server.mdx new file mode 100644 index 0000000..4236ae3 --- /dev/null +++ b/pages/resources/qbx_core/modules/lib/server.mdx @@ -0,0 +1,38 @@ +# Server Lib + +## spawnVehicle + +Creates a vehicle on the server-side and returns its net ID. + +```lua +qbx.spawnVehicle(params) +``` + +- params: `table` + - model: `integer` + - A vehicle modle hash. + - spawnSource: `integer | vector3 | vector4` + - The handle of an entity or coords to spawn the vehicle at. + - warp?: `boolean | integer` + - An optional ped ID to warp into the vehicle after it spawns. + - If `spawnSource` is a ped ID, you can pass `true` to warp the ped specified there instead. + - props?: `table` + - Refer to ox_lib's [Vehicle Properties](https://overextended.dev/ox_lib/Modules/VehicleProperties/Client#vehicle-properties). + +Returns: `integer` + +```lua +-- spawns the vehicle at `myVectorCoords` and warps `myPed` inside +qbx.spawnVehicle({ + model = `asbo`, + spawnSource = myVectorCoords, + warp = myPed, +}) + +-- spawns the vehicle at `myPed` and warps the same ped inside +qbx.spawnVehicle({ + model = `asbo`, + spawnSource = myPed, + warp = true, -- causes `myPed` to be warped into the vehicle +}) +``` diff --git a/pages/resources/qbx_core/modules/lib/shared.mdx b/pages/resources/qbx_core/modules/lib/shared.mdx new file mode 100644 index 0000000..a15922c --- /dev/null +++ b/pages/resources/qbx_core/modules/lib/shared.mdx @@ -0,0 +1,152 @@ +import { Callout } from 'nextra/components'; + +# Shared Lib + +## armsWithoutGloves.male + +A set of male torso drawable variations that don't have gloves. \ +Used for [`qbx.isWearingGloves`](./client#iswearinggloves) and backwards compatibility. + +```lua +qbx.armsWithoutGloves.male +``` + +Type: `table` + +## armsWithoutGloves.female + +A set of female torso drawable variations that don't have gloves. \ +Used for [`qbx.isWearingGloves`](./client#iswearinggloves) and backwards compatibility. + +```lua +qbx.armsWithoutGloves.female +``` + +Type: `table` + +## string.trim + +Returns the given string with its trailing whitespaces removed. + +```lua +qbx.string.trim(str) +``` + +- str: `string` + +Returns: `string` + +## string.capitalize + +Returns the given string with its first character capitalized. + +```lua +qbx.string.capitalize(str) +``` + +- str: `string` + +Returns: `string` + +## math.round + +Rounds and returns the given number. + +```lua +qbx.math.round(num, decimalPlaces) +``` + +- num: `number` +- decimalPlaces?: `integer` + +Returns: `number` + +## table.mapBySubfield + +Maps and returns the values of the given table by the given subfield. + +```lua +qbx.table.mapBySubfield(tble, subfield) +``` + +- tble: `table` +- subfield: `any` + +Returns: `table` + +```lua +local tble = { + { + myCategory = 'first', + someValue = 1, + }, + { + myCategory = 'second', + someValue = 2, + }, +} + +local mapped = qbx.table.mapBySubfield(tble, 'myCategory') + +print(json.encode(mapped)) +-- Output: { "first": [{ myCategory: "first", someValue: 1 }], "second": [{ myCategory: "second", someValue: 2 }] } +``` + +## getVehiclePlate + +Returns the number plate of the given vehicle, or `nil` if the vehicle or plate does not exist. + +```lua +qbx.getVehiclePlate(vehicle) +``` + +- vehicle: `integer` + +Returns: `string?` + +## generateRandomPlate + +Generates and returns a random number plate with the given pattern. \ +Note that the generated plate may or may not be already used by an existing vehicle. + + + For more info about the pattern see [`lib.string.random`](https://overextended.dev/ox_lib/Modules/String/Shared#stringrandom) from ox_lib. + + +```lua +qbx.generateRandomPlate(pattern) +``` + +- pattern?: `string` + +Returns: `string` + +## getCardinalDirection + +Returns the cardinal direction that the given entity is staring towards. + +``` + North + 45° 0° 315° + \ .- - - - - - -. / + X X + .' \ / '. + | \ / | +West | X | East + | / \ | + '. / \ .' + X X + / '- - - - - - -' \ + 135° 225° + South +``` + +(art inspired by [`SET_PED_TURNING_THRESHOLDS`](https://github.com/citizenfx/fivem/blob/0b61c93a3308360ea70d443398eab17f47453e11/code/components/extra-natives-five/src/PedExtraNatives.cpp#L390-L400)) + +```lua +qbx.getCardinalDirection(entity) +``` + +- entity: `integer` + +Returns: `'North' | 'South' | 'East' | 'West'` diff --git a/pages/resources/qbx_core/modules/logger.mdx b/pages/resources/qbx_core/modules/logger.mdx new file mode 100644 index 0000000..531cba2 --- /dev/null +++ b/pages/resources/qbx_core/modules/logger.mdx @@ -0,0 +1,47 @@ +import { Callout } from 'nextra/components'; + +# logger + + + See the ox_lib [Logger](https://overextended.dev/ox_lib/Modules/Logger/Server) for further details. + + +Adds a logger that logs to Discord if a webhook is given, and with ox_lib otherwise. + +```lua +local logger = require '@qbx_core.modules.logger' + +logger.log(log) +``` + +- log: `table` + - source: `string` + - The source of the log; usually a player ID or the name of a resource. + - event: `string` + - The action or `event` being logged; usually a verb describing what the name is doing. + - Example: `'SpawnVehicle'` + - message: `string` + - A message attached to the log. + - webhook?: `string` + - Discord logs only. + - The URL of the webhook that this should log to. + - color?: `string` + - Discord logs only. + - The color the message should be. + - tags?: `string[]` + - Discord logs only. + - Tags to be added to the Discord message. + - Example: `{ '<@&roleid>', '<@userid>', '@everyone' }` + +## Example Usage + +```lua +local logger = require '@qbx_core.modules.logger' + +logger.log({ + source = 'my source', + event = 'my event', + message = 'my message', + tags = { '@everyone' }, +}) +``` \ No newline at end of file diff --git a/pages/resources/qbx_core/modules/playerdata.mdx b/pages/resources/qbx_core/modules/playerdata.mdx new file mode 100644 index 0000000..de67887 --- /dev/null +++ b/pages/resources/qbx_core/modules/playerdata.mdx @@ -0,0 +1,7 @@ +# playerdata + +Adds a `QBX.PlayerData` global and keeps it updated. + +## Installation + +Add `@qbx_core/modules/playerdata.lua` to `client_scripts` in your fxmanifest. diff --git a/pages/resources/qbx_core/types/gang.mdx b/pages/resources/qbx_core/types/gang.mdx new file mode 100644 index 0000000..b05ad2b --- /dev/null +++ b/pages/resources/qbx_core/types/gang.mdx @@ -0,0 +1,6 @@ +# Gang + +## Fields + +- label: `string` +- grades: `table` diff --git a/pages/resources/qbx_core/types/job.mdx b/pages/resources/qbx_core/types/job.mdx new file mode 100644 index 0000000..29765a1 --- /dev/null +++ b/pages/resources/qbx_core/types/job.mdx @@ -0,0 +1,9 @@ +# Job + +## Fields + +- label: `string` +- type?: `string` +- defaultDuty: `boolean` +- offDutyPay: `boolean` +- grades: `table` diff --git a/pages/resources/qbx_core/types/player.mdx b/pages/resources/qbx_core/types/player.mdx new file mode 100644 index 0000000..ed1c3fd --- /dev/null +++ b/pages/resources/qbx_core/types/player.mdx @@ -0,0 +1,162 @@ +# Player + +## Fields + +- [Functions](#functions): `table` +- PlayerData: [`PlayerData`](./player_data) +- Offline: `boolean` + +## Functions + +### SetJob + +Attempts to set the player's job with the given grade, and returns whether it was successful. + +```lua +Player.Functions.SetJob(jobName, grade) +``` + +- jobName: `string` +- grade: `integer` + +Returns: `boolean` + +### SetGang + +Attempts to set the player's gang with the given grade, and returns whether it was successful. + +```lua +Player.Functions.SetGang(gangName, grade) +``` + +- gangName: `string` +- grade: `integer` + +Returns: `boolean` + +### SetJobDuty + +Sets the player's duty. + +```lua +Player.Functions.SetJobDuty(onDuty) +``` + +- onDuty: `boolean` + +### SetPlayerData + +Overwrites the given top level key of the PlayerData with the given value. + +```lua +Player.Functions.SetPlayerData(key, val) +``` + +- key: `string` +- val: `any` + +### SetMetaData + +Stores the given key value pair in the player's metadata. + +```lua +Player.Functions.SetMetaData(meta, val) +``` + +- meta: `string` +- val: `any` + +### GetMetaData + +Returns the value pair of the given key in the player's metadata. + +```lua +Player.Functions.GetMetaData(meta) +``` + +- meta: `string` + +Returns: `any` + +### AddJobReputation + +Adds the given amount to the player's job reputation. + +```lua +Player.Functions.AddJobReputation(amount) +``` + +- amount: `number` + +### AddMoney + +Attempts to add the given amount of money as the given type, and returns whether it was successful. + +```lua +Player.Functions.AddMoney(moneytype, amount, reason) +``` + +- moneytype: `'cash' | 'bank' | 'crypto'` +- amount: `number` +- reason?: `string` + +Returns: `boolean` + +### RemoveMoney + +Attempts to subtract the given amount of money as the given type, and returns whether it was successful. + +```lua +Player.Functions.RemoveMoney(moneytype, amount, reason) +``` + +- moneytype: `'cash' | 'bank' | 'crypto'` +- amount: `number` +- reason?: `string` + +Returns: `boolean` + +### SetMoney + +Attempts to set the given amount of money as the given type, and returns whether it was successful. + +```lua +Player.Functions.SetMoney(moneytype, amount, reason) +``` + +- moneytype: `'cash' | 'bank' | 'crypto'` +- amount: `number` +- reason?: `string` + +Returns: `boolean` + +### GetMoney + +Returns the amount of money of the given type, or `false` if the type doesn't exist. + +```lua +Player.Functions.GetMoney(moneytype) +``` + +- moneytype: `'cash' | 'bank' | 'crypto'` + +Returns: `number | false` + +### SetCreditCard + +Sets the player's owned credit card number. \ +Does not give the player's character any items. + +```lua +Player.Functions.SetCreditCard(cardNumber) +``` + +- cardNumber: `number` + +### Save + +Saves the player's current character info to the database. + +```lua +Player.Functions.Save() +``` diff --git a/pages/resources/qbx_core/types/player_data.mdx b/pages/resources/qbx_core/types/player_data.mdx new file mode 100644 index 0000000..4b89be4 --- /dev/null +++ b/pages/resources/qbx_core/types/player_data.mdx @@ -0,0 +1,14 @@ +--- +title: PlayerData +--- + +# PlayerData + +Extends: [`PlayerEntity`](./player_entity) + +## Fields + +- source?: `integer` + - Present if the player is online. +- optin?: `boolean` + - Present if the player is online. diff --git a/pages/resources/qbx_core/types/player_entity.mdx b/pages/resources/qbx_core/types/player_entity.mdx new file mode 100644 index 0000000..80b3b1a --- /dev/null +++ b/pages/resources/qbx_core/types/player_entity.mdx @@ -0,0 +1,91 @@ +--- +title: PlayerEntity +--- + +# PlayerEntity + +## Fields + +- citizenid: `string` +- license: `string` +- name: `string` +- money: `table` + - cash: `number` + - bank: `number` + - crypto: `number` +- charinfo: `table` + - firstname: `string` + - lastname: `string` + - birthdate: `string` + - nationality: `string` + - cid: `integer` + - gender: `integer` + - backstory: `string` + - phone: `string` + - account: `string` + - card: `number` +- job: `table` + - name: `string` + - label: `string` + - payment: `number` + - type: `string` + - onduty: `boolean` + - isboss: `boolean` + - grade: `table` + - name: `string` + - level: `number` +- gang: `table` + - name: `string` + - label: `string` + - isboss: `boolean` + - grade: `table` + - name: `string` + - level: `number` +- position: `vector4` +- metadata: `table` + - health: `number` + - armor: `number` + - hunger: `number` + - thirst: `number` + - stress: `number` + - isdead: `boolean` + - inlaststand: `boolean` + - ishandcuffed: `boolean` + - tracker: `boolean` + - injail: `number` + - jailitems: `table` + - status: `table` + - phone: `table` + - background: `any` + - profilepicture: `any` + - bloodtype: `string` + - dealerrep: `number` + - craftingrep: `number` + - attachmentcraftingrep: `number` + - currentapartment?: `integer` + - jobrep: `table` + - tow: `number` + - trucker: `number` + - taxi: `number` + - hotdog: `number` + - callsign: `string` + - fingerprint: `string` + - walletid: `string` + - criminalrecord: `table` + - hasRecord: `number` + - date?: `table` + - licences: `table` + - id: `boolean` + - driver: `boolean` + - weapon: `boolean` + - inside: `table` + - house?: `any` + - apartment: `table` + - apartmentType?: `any` + - apartmentId?: `integer` + - phonedata: `table` + - SerialNumber: `string` + - InstalledApps: `table` +- cid: `integer` +- items: `table` + - Deprecated. diff --git a/pages/resources/qbx_core/types/vehicle.mdx b/pages/resources/qbx_core/types/vehicle.mdx new file mode 100644 index 0000000..520fe77 --- /dev/null +++ b/pages/resources/qbx_core/types/vehicle.mdx @@ -0,0 +1,10 @@ +# Vehicle + +## Fields + +- name: `string` +- brand: `string` +- model: `string` +- price: `number` +- category: `string` +- hash: `integer` diff --git a/pages/resources/qbx_core/types/weapon.mdx b/pages/resources/qbx_core/types/weapon.mdx new file mode 100644 index 0000000..4a72cf6 --- /dev/null +++ b/pages/resources/qbx_core/types/weapon.mdx @@ -0,0 +1,9 @@ +# Weapon + +## Fields + +- name: `string` +- label: `string` +- weapontype: `string` +- ammotype?: `string` +- damagereason: `string` diff --git a/pages/resources/qbx_divegear.mdx b/pages/resources/qbx_divegear.mdx new file mode 100644 index 0000000..244d549 --- /dev/null +++ b/pages/resources/qbx_divegear.mdx @@ -0,0 +1,13 @@ +--- +title: qbx_divegear +--- + +import { Cards, Card } from 'nextra/components'; +import { IconBrandGithub, IconTag } from '@tabler/icons-react'; + +# qbx_divegear + + + } title="GitHub" href="https://github.com/Qbox-Project/qbx_divegear" /> + } title="Releases" href="https://github.com/Qbox-Project/qbx_divegear/releases" /> + diff --git a/pages/resources/qbx_diving.mdx b/pages/resources/qbx_diving.mdx new file mode 100644 index 0000000..b453773 --- /dev/null +++ b/pages/resources/qbx_diving.mdx @@ -0,0 +1,13 @@ +--- +title: qbx_diving +--- + +import { Cards, Card } from 'nextra/components'; +import { IconBrandGithub, IconTag } from '@tabler/icons-react'; + +# qbx_diving + + + } title="GitHub" href="https://github.com/Qbox-Project/qbx_diving" /> + } title="Releases" href="https://github.com/Qbox-Project/qbx_diving/releases" /> + diff --git a/pages/resources/qbx_diving/Events/server.mdx b/pages/resources/qbx_diving/Events/server.mdx deleted file mode 100644 index 8e22f0f..0000000 --- a/pages/resources/qbx_diving/Events/server.mdx +++ /dev/null @@ -1,23 +0,0 @@ -import { Callout } from "nextra/components"; - -# Server - - - These events **MUST NOT** be triggered by any other scripts. - - -## Non-Networked Events - -### qbx_diving:server:coralTaken - -Player has collected coral from the sea bed - -```lua ----@param vec3 coords -``` - -## Networked Events - -### qbx_diving:server:sellCoral - -Player attempts to sell coral. Does not guarantee player has any coral in inventory. diff --git a/pages/resources/qbx_diving/_meta.json b/pages/resources/qbx_diving/_meta.json new file mode 100644 index 0000000..ba07b6a --- /dev/null +++ b/pages/resources/qbx_diving/_meta.json @@ -0,0 +1,3 @@ +{ + "events": "Events" +} diff --git a/pages/resources/qbx_diving/events/server.mdx b/pages/resources/qbx_diving/events/server.mdx new file mode 100644 index 0000000..60d7cb7 --- /dev/null +++ b/pages/resources/qbx_diving/events/server.mdx @@ -0,0 +1,30 @@ +import { Callout } from "nextra/components"; + +# Server Events + + + These events **MUST NOT** be triggered by any other scripts. + + +## Non-Networked Events + +### qbx_diving:server:coralTaken + +Triggered when a player has collected coral from the sea bed. + +```lua +AddEventHandler('qbx_diving:server:coralTaken', function(coords) end) +``` + +- coords: `vector3` + +## Networked Events + +### qbx_diving:server:sellCoral + +Triggered when a player attempts to sell coral. \ +Does not guarantee that the player has any coral in their inventory. + +```lua +RegisterNetEvent('qbx_diving:server:sellCoral', function() end) +``` diff --git a/pages/resources/qbx_management.mdx b/pages/resources/qbx_management.mdx new file mode 100644 index 0000000..93f1115 --- /dev/null +++ b/pages/resources/qbx_management.mdx @@ -0,0 +1,13 @@ +--- +title: qbx_manangement +--- + +import { Cards, Card } from 'nextra/components'; +import { IconBrandGithub, IconTag } from '@tabler/icons-react'; + +# qbx_manangement + + + } title="GitHub" href="https://github.com/Qbox-Project/qbx_management" /> + } title="Releases" href="https://github.com/Qbox-Project/qbx_management/releases" /> + diff --git a/pages/resources/qbx_management/Functions/Server.mdx b/pages/resources/qbx_management/Functions/Server.mdx deleted file mode 100644 index cab2a34..0000000 --- a/pages/resources/qbx_management/Functions/Server.mdx +++ /dev/null @@ -1,22 +0,0 @@ -import { Callout } from "nextra/components"; - -# Server - -## Exports - - - called using `exports.qbx_management:` - - -### RegisterBossMenu - -Creates a boss menu. This is a runtime only change and will not modify files. - -```lua ----@class MenuInfo ----@field groupName string Name of the group ----@field type 'job'|'gang' Type of group ----@field coords vector3 Coordinates of the zone ----@field size? vector3 uses vec3(1.5, 1.5, 1.5) if not set ----@field rotation? number uses 0.0 if not set -``` \ No newline at end of file diff --git a/pages/resources/qbx_management/_meta.json b/pages/resources/qbx_management/_meta.json new file mode 100644 index 0000000..562a7f4 --- /dev/null +++ b/pages/resources/qbx_management/_meta.json @@ -0,0 +1,3 @@ +{ + "exports": "Exports" +} diff --git a/pages/resources/qbx_management/exports/server.mdx b/pages/resources/qbx_management/exports/server.mdx new file mode 100644 index 0000000..0a2f436 --- /dev/null +++ b/pages/resources/qbx_management/exports/server.mdx @@ -0,0 +1,25 @@ +import { Callout } from 'nextra/components'; + +# Server Exports + +## RegisterBossMenu + +Creates a boss menu. + + + This is a runtime-only change. + This won't persist across restarts and won't modify files. + + +```lua +exports.qbx_management:RegisterBossMenu(menuInfo) +``` + +- menuInfo: `table` + - groupName: `string` + - type: `'gang' | 'job'` + - coords: `vector3` + - size?: `vector3` + - Default: `vec3(1.5, 1.5, 1.5)` + - rotation?: `number` + - Default: `0.0` diff --git a/pages/resources/qbx_medical/Events/Server.mdx b/pages/resources/qbx_medical/Events/Server.mdx deleted file mode 100644 index fdb7f0f..0000000 --- a/pages/resources/qbx_medical/Events/Server.mdx +++ /dev/null @@ -1,23 +0,0 @@ -import { Callout } from "nextra/components"; - -# Server - - - These events **MUST NOT** be triggered by any other scripts. - - -## Non-Networked Events - -### qbx_medical:server:playerRespawned - -## Networked Events - -### qbx_medical:server:playerDied - -Player has been put into death state - -### qbx_medical:server:onPlayerLaststand - -Player has been put into last stand state - - diff --git a/pages/resources/qbx_medical/Functions/Client.mdx b/pages/resources/qbx_medical/Functions/Client.mdx deleted file mode 100644 index 6091143..0000000 --- a/pages/resources/qbx_medical/Functions/Client.mdx +++ /dev/null @@ -1,156 +0,0 @@ -import { Callout } from "nextra/components"; - -# Client - -## Exports - - - called using `exports.qbx_medical:` - - -### playDeadAnimation - -Puts player in the dead animation - -### killPlayer - -Puts player in death state - -### allowRespawn - -Allows player the ability to respawn - -### disableRespawn - -Does not allow the player the ability to respawn - -### getBleedLevel - -0-4. How fast the player is bleeding - -```lua ----@return integer level -``` - -### setBleedLevel - -0-4. How fast the player is bleeding - -```lua ----@param integer level -``` - -### getInjuries - -Gets the players injuries - -```lua ----@return Injury[] -``` - -### getHp - -Gets player's health - -```lua ----@return number -``` - -### setHp - -Sets player's health - -```lua ----@param number -``` - -### isDead - -Returns whether the player is in dead state or not - -```lua ----@return boolean -``` - -### getLaststand - -Returns whether the player is in last stand state or not - -```lua ----@return boolean -``` - -### getDeathTime - -How many seconds until player's death timer reaches 0. This can only be used on a player in death state already. - -```lua ----@return integer -``` - -### setDeathTime - -Set how many seconds left until player's death timer reaches 0. This can only be used on a player in death state already. - -```lua ----@param integer -``` - -### getLaststandTime - -How many seconds until player reaches death state. This can only be used on a player in last stand state. - -```lua ----@return integer -``` - -### setLaststandTime - -Set many seconds until player reaches death state. This can only be used on a player in last stand state. - -```lua ----@param integer -``` - -### resetMinorInjuries - -Removes injuries with a severity of 2 or less. - -### resetAllInjuries - -Removes all injuries and satiates hunger and thirst - -### createInjury - -Creates an injury on a body part with random severity between 1 and maxSeverity. - -```lua ----@param bodyPart BodyPart ----@param bone Bone ----@param maxSeverity number -``` - -### getPatientStatus - -Convert body parts to human readable strings - -```lua ----@param damagedBodyParts BodyParts ----@return string[] -``` - -### makePlayerBlackout - -Makes player ragdoll, and provides a blackout effect with screen shake - -### makePlayerFadeOut - -Fades the screen out and back in - -### removeBleed - -Reduce bleeding by a certain amount - -```lua ----@param integer -``` \ No newline at end of file diff --git a/pages/resources/qbx_medical/Functions/Server/Hooks.mdx b/pages/resources/qbx_medical/Functions/Server/Hooks.mdx deleted file mode 100644 index b58aa2b..0000000 --- a/pages/resources/qbx_medical/Functions/Server/Hooks.mdx +++ /dev/null @@ -1,38 +0,0 @@ -# Hooks - -Credit to overextended for the hook system. - -Event hooks allow 3rd party resources to define new behaviour without modifying the inventory code directly. - -## registerHook - -```lua -exports.qbx_medical:registerHook(eventName, function(payload) end) -``` - -- eventName: `string` -- payload: `table` - -Return: - -- hookId: `number` - -### respawn - -Triggered when moving any item from one slot to another, or when "giving" an item. -By returning `false`, you can cancel the action and revert the inventory state. - -```lua ----@param payload {source: number} -``` - -## removeHooks - -Removes a hook created by the invoking resource with the the specified id. -If no id is specified then all hooks registered by the resource are removed. - -```lua -exports.qbx_medical:removeHooks(id) -``` - -- id?: `number` \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index da4f1d4..b1e1147 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,15 +5,18 @@ settings: excludeLinksFromLockfile: false dependencies: + '@tabler/icons-react': + specifier: ^2.46.0 + version: 2.46.0(react@18.2.0) next: - specifier: ^13.0.6 - version: 13.4.12(react-dom@18.2.0)(react@18.2.0) + specifier: ^13.5.6 + version: 13.5.6(react-dom@18.2.0)(react@18.2.0) nextra: - specifier: latest - version: 2.12.3(next@13.4.12)(react-dom@18.2.0)(react@18.2.0) + specifier: ^2.12.3 + version: 2.13.2(next@13.5.6)(react-dom@18.2.0)(react@18.2.0) nextra-theme-docs: - specifier: latest - version: 2.12.3(next@13.4.12)(nextra@2.12.3)(react-dom@18.2.0)(react@18.2.0) + specifier: ^2.12.3 + version: 2.13.2(next@13.5.6)(nextra@2.13.2)(react-dom@18.2.0)(react@18.2.0) react: specifier: ^18.2.0 version: 18.2.0 @@ -23,38 +26,39 @@ dependencies: devDependencies: '@types/node': - specifier: 18.11.10 - version: 18.11.10 + specifier: 18.19.8 + version: 18.19.8 '@types/react': - specifier: ^18.2.13 - version: 18.2.18 + specifier: ^18.2.48 + version: 18.2.48 '@types/react-dom': - specifier: ^18.2.6 - version: 18.2.7 + specifier: ^18.2.18 + version: 18.2.18 typescript: - specifier: ^4.9.3 - version: 4.9.5 + specifier: ^5.3.3 + version: 5.3.3 packages: - /@babel/runtime@7.22.6: - resolution: {integrity: sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ==} + /@babel/runtime@7.23.8: + resolution: {integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==} engines: {node: '>=6.9.0'} dependencies: - regenerator-runtime: 0.13.11 + regenerator-runtime: 0.14.1 dev: false - /@braintree/sanitize-url@6.0.3: - resolution: {integrity: sha512-g2hMyGSFYOvt0eeY2c2wrG1B6dVWF1be4vGxG9mI1BEHJuQm4Hie2HrooxYHBDRDi8hANIzQ8cuvBgxSVlQOTQ==} + /@braintree/sanitize-url@6.0.4: + resolution: {integrity: sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==} dev: false - /@headlessui/react@1.7.16(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-2MphIAZdSUacZBT6EXk8AJkj+EuvaaJbtCyHTJrPsz8inhzCl7qeNPI1uk1AUvCgWylVtdN8cVVmnhUDPxPy3g==} + /@headlessui/react@1.7.18(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-4i5DOrzwN4qSgNsL4Si61VMkUcWbcSKueUV7sFhpHzQcSShdlHENE5+QBntMSRvHt8NyoFO2AGG8si9lq+w4zQ==} engines: {node: '>=10'} peerDependencies: react: ^16 || ^17 || ^18 react-dom: ^16 || ^17 || ^18 dependencies: + '@tanstack/react-virtual': 3.0.2(react-dom@18.2.0)(react@18.2.0) client-only: 0.0.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -63,8 +67,8 @@ packages: /@mdx-js/mdx@2.3.0: resolution: {integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==} dependencies: - '@types/estree-jsx': 1.0.0 - '@types/mdx': 2.0.5 + '@types/estree-jsx': 1.0.3 + '@types/mdx': 2.0.10 estree-util-build-jsx: 2.2.2 estree-util-is-identifier-name: 2.1.0 estree-util-to-js: 1.2.0 @@ -89,8 +93,8 @@ packages: peerDependencies: react: '>=16' dependencies: - '@types/mdx': 2.0.5 - '@types/react': 18.2.18 + '@types/mdx': 2.0.10 + '@types/react': 18.2.48 react: 18.2.0 dev: false @@ -210,12 +214,12 @@ packages: '@napi-rs/simple-git-win32-x64-msvc': 0.1.9 dev: false - /@next/env@13.4.12: - resolution: {integrity: sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ==} + /@next/env@13.5.6: + resolution: {integrity: sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==} dev: false - /@next/swc-darwin-arm64@13.4.12: - resolution: {integrity: sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg==} + /@next/swc-darwin-arm64@13.5.6: + resolution: {integrity: sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -223,8 +227,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@13.4.12: - resolution: {integrity: sha512-WRvH7RxgRHlC1yb5oG0ZLx8F7uci9AivM5/HGGv9ZyG2Als8Ij64GC3d+mQ5sJhWjusyU6T6V1WKTUoTmOB0zQ==} + /@next/swc-darwin-x64@13.5.6: + resolution: {integrity: sha512-6cgBfxg98oOCSr4BckWjLLgiVwlL3vlLj8hXg2b+nDgm4bC/qVXXLfpLB9FHdoDu4057hzywbxKvmYGmi7yUzA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -232,8 +236,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@13.4.12: - resolution: {integrity: sha512-YEKracAWuxp54tKiAvvq73PUs9lok57cc8meYRibTWe/VdPB2vLgkTVWFcw31YDuRXdEhdX0fWS6Q+ESBhnEig==} + /@next/swc-linux-arm64-gnu@13.5.6: + resolution: {integrity: sha512-txagBbj1e1w47YQjcKgSU4rRVQ7uF29YpnlHV5xuVUsgCUf2FmyfJ3CPjZUvpIeXCJAoMCFAoGnbtX86BK7+sg==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -241,8 +245,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-musl@13.4.12: - resolution: {integrity: sha512-LhJR7/RAjdHJ2Isl2pgc/JaoxNk0KtBgkVpiDJPVExVWA1c6gzY57+3zWuxuyWzTG+fhLZo2Y80pLXgIJv7g3g==} + /@next/swc-linux-arm64-musl@13.5.6: + resolution: {integrity: sha512-cGd+H8amifT86ZldVJtAKDxUqeFyLWW+v2NlBULnLAdWsiuuN8TuhVBt8ZNpCqcAuoruoSWynvMWixTFcroq+Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -250,8 +254,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@13.4.12: - resolution: {integrity: sha512-1DWLL/B9nBNiQRng+1aqs3OaZcxC16Nf+mOnpcrZZSdyKHek3WQh6j/fkbukObgNGwmCoVevLUa/p3UFTTqgqg==} + /@next/swc-linux-x64-gnu@13.5.6: + resolution: {integrity: sha512-Mc2b4xiIWKXIhBy2NBTwOxGD3nHLmq4keFk+d4/WL5fMsB8XdJRdtUlL87SqVCTSaf1BRuQQf1HvXZcy+rq3Nw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -259,8 +263,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-musl@13.4.12: - resolution: {integrity: sha512-kEAJmgYFhp0VL+eRWmUkVxLVunn7oL9Mdue/FS8yzRBVj7Z0AnIrHpTIeIUl1bbdQq1VaoOztnKicAjfkLTRCQ==} + /@next/swc-linux-x64-musl@13.5.6: + resolution: {integrity: sha512-CFHvP9Qz98NruJiUnCe61O6GveKKHpJLloXbDSWRhqhkJdZD2zU5hG+gtVJR//tyW897izuHpM6Gtf6+sNgJPQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -268,8 +272,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@13.4.12: - resolution: {integrity: sha512-GMLuL/loR6yIIRTnPRY6UGbLL9MBdw2anxkOnANxvLvsml4F0HNIgvnU3Ej4BjbqMTNjD4hcPFdlEow4XHPdZA==} + /@next/swc-win32-arm64-msvc@13.5.6: + resolution: {integrity: sha512-aFv1ejfkbS7PUa1qVPwzDHjQWQtknzAZWGTKYIAaS4NMtBlk3VyA6AYn593pqNanlicewqyl2jUhQAaFV/qXsg==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -277,8 +281,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@13.4.12: - resolution: {integrity: sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww==} + /@next/swc-win32-ia32-msvc@13.5.6: + resolution: {integrity: sha512-XqqpHgEIlBHvzwG8sp/JXMFkLAfGLqkbVsyN+/Ih1mR8INb6YCc2x/Mbwi6hsAgUnqQztz8cvEbHJUbSl7RHDg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -286,8 +290,8 @@ packages: dev: false optional: true - /@next/swc-win32-x64-msvc@13.4.12: - resolution: {integrity: sha512-Z+56e/Ljt0bUs+T+jPjhFyxYBcdY2RIq9ELFU+qAMQMteHo7ymbV7CKmlcX59RI9C4YzN8PgMgLyAoi916b5HA==} + /@next/swc-win32-x64-msvc@13.5.6: + resolution: {integrity: sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -299,156 +303,183 @@ packages: resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} dev: false - /@swc/helpers@0.5.1: - resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} + /@swc/helpers@0.5.2: + resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + dependencies: + tslib: 2.6.2 + dev: false + + /@tabler/icons-react@2.46.0(react@18.2.0): + resolution: {integrity: sha512-X8MRxuslIOFqMjAo+GvUZDpjlOwNYNJTuOsHXf/NBvVI6ygqUf0FUNsDLLA5fQ6k6KtRwxMlgGB+eR8ZG1UP0g==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 + dependencies: + '@tabler/icons': 2.46.0 + prop-types: 15.8.1 + react: 18.2.0 + dev: false + + /@tabler/icons@2.46.0: + resolution: {integrity: sha512-Q5G8Pj5IO+Uhc6pszpu5/hGYY018JwEzzvmuqr+gKJtfIvAHA3umpwUilMRLEy89p+WCP+YsDhicMhfBCCv1qA==} + dev: false + + /@tanstack/react-virtual@3.0.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-9XbRLPKgnhMwwmuQMnJMv+5a9sitGNCSEtf/AZXzmJdesYk7XsjYHaEDny+IrJzvPNwZliIIDwCRiaUqR3zzCA==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - tslib: 2.6.1 + '@tanstack/virtual-core': 3.0.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@tanstack/virtual-core@3.0.0: + resolution: {integrity: sha512-SYXOBTjJb05rXa2vl55TTwO40A6wKu0R5i1qQwhJYNDIqaIGF7D0HsLw+pJAyi2OvntlEIVusx3xtbbgSUi6zg==} dev: false - /@theguild/remark-mermaid@0.0.4(react@18.2.0): - resolution: {integrity: sha512-C1gssw07eURtCwzXqZZdvyV/eawQ/cXfARaXIgBU9orffox+/YQ+exxmNu9v16NSGzAVsGF4qEVHvCOcCR/FpQ==} + /@theguild/remark-mermaid@0.0.5(react@18.2.0): + resolution: {integrity: sha512-e+ZIyJkEv9jabI4m7q29wZtZv+2iwPGsXJ2d46Zi7e+QcFudiyuqhLhHG/3gX3ZEB+hxTch+fpItyMS8jwbIcw==} peerDependencies: react: ^18.2.0 dependencies: - mermaid: 10.3.0 + mermaid: 10.7.0 react: 18.2.0 unist-util-visit: 5.0.0 transitivePeerDependencies: - supports-color dev: false - /@theguild/remark-npm2yarn@0.1.1: - resolution: {integrity: sha512-ZKwd/bjQ9V+pESLnu8+q8jqn15alXzJOuVckraebsXwqVBTw53Gmupiw9zCdLNHU829KTYNycJYea6m9HRLuOg==} + /@theguild/remark-npm2yarn@0.2.1: + resolution: {integrity: sha512-jUTFWwDxtLEFtGZh/TW/w30ySaDJ8atKWH8dq2/IiQF61dPrGfETpl0WxD0VdBfuLOeU14/kop466oBSRO/5CA==} dependencies: - npm-to-yarn: 2.0.0 + npm-to-yarn: 2.1.0 unist-util-visit: 5.0.0 dev: false /@types/acorn@4.0.6: resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.5 dev: false - /@types/d3-scale-chromatic@3.0.0: - resolution: {integrity: sha512-dsoJGEIShosKVRBZB0Vo3C8nqSDqVGujJU6tPznsBJxNJNwMF8utmS83nvCBKQYPpjCzaaHcrf66iTRpZosLPw==} + /@types/d3-scale-chromatic@3.0.3: + resolution: {integrity: sha512-laXM4+1o5ImZv3RpFAsTRn3TEkzqkytiOY0Dz0sq5cnd1dtNlk6sHLon4OvqaiJb28T0S/TdsBI3Sjsy+keJrw==} dev: false - /@types/d3-scale@4.0.3: - resolution: {integrity: sha512-PATBiMCpvHJSMtZAMEhc2WyL+hnzarKzI6wAHYjhsonjWJYGq5BXTzQjv4l8m2jO183/4wZ90rKvSeT7o72xNQ==} + /@types/d3-scale@4.0.8: + resolution: {integrity: sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==} dependencies: - '@types/d3-time': 3.0.0 + '@types/d3-time': 3.0.3 dev: false - /@types/d3-time@3.0.0: - resolution: {integrity: sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==} + /@types/d3-time@3.0.3: + resolution: {integrity: sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==} dev: false - /@types/debug@4.1.8: - resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: - '@types/ms': 0.7.31 + '@types/ms': 0.7.34 dev: false - /@types/estree-jsx@1.0.0: - resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==} + /@types/estree-jsx@1.0.3: + resolution: {integrity: sha512-pvQ+TKeRHeiUGRhvYwRrQ/ISnohKkSJR14fT2yqyZ4e9K5vqc7hrtY2Y1Dw0ZwAzQ6DQsxsaCUuSIIi8v0Cq6w==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.5 dev: false - /@types/estree@1.0.1: - resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} + /@types/estree@1.0.5: + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: false - /@types/hast@2.3.5: - resolution: {integrity: sha512-SvQi0L/lNpThgPoleH53cdjB3y9zpLlVjRbqB3rH8hx1jiRSBGAhyjV3H+URFjNVRqt2EdYNrbZE5IsGlNfpRg==} + /@types/hast@2.3.9: + resolution: {integrity: sha512-pTHyNlaMD/oKJmS+ZZUyFUcsZeBZpC0lmGquw98CqRVNgAdJZJeD7GoeLiT6Xbx5rU9VCjSt0RwEvDgzh4obFw==} dependencies: - '@types/unist': 2.0.7 + '@types/unist': 2.0.10 dev: false - /@types/hast@3.0.1: - resolution: {integrity: sha512-hs/iBJx2aydugBQx5ETV3ZgeSS0oIreQrFJ4bjBl0XvM4wAmDjFEALY7p0rTSLt2eL+ibjRAAs9dTPiCLtmbqQ==} + /@types/hast@3.0.3: + resolution: {integrity: sha512-2fYGlaDy/qyLlhidX42wAH0KBi2TCjKMH8CHmBXgRlJ3Y+OXTiqsPQ6IWarZKwF1JoUcAJdPogv1d4b0COTpmQ==} dependencies: - '@types/unist': 3.0.0 + '@types/unist': 3.0.2 dev: false - /@types/js-yaml@4.0.5: - resolution: {integrity: sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==} + /@types/js-yaml@4.0.9: + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} dev: false - /@types/katex@0.14.0: - resolution: {integrity: sha512-+2FW2CcT0K3P+JMR8YG846bmDwplKUTsWgT2ENwdQ1UdVfRk3GQrh6Mi4sTopy30gI8Uau5CEqHTDZ6YvWIUPA==} + /@types/katex@0.16.7: + resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} dev: false - /@types/katex@0.16.2: - resolution: {integrity: sha512-dHsSjSlU/EWEEbeNADr3FtZZOAXPkFPUO457QCnoNqcZQXNqNEu/svQd0Nritvd3wNff4vvC/f4e6xgX3Llt8A==} - dev: false - - /@types/mdast@3.0.12: - resolution: {integrity: sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==} + /@types/mdast@3.0.15: + resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} dependencies: - '@types/unist': 2.0.7 + '@types/unist': 2.0.10 dev: false - /@types/mdast@4.0.0: - resolution: {integrity: sha512-YLeG8CujC9adtj/kuDzq1N4tCDYKoZ5l/bnjq8d74+t/3q/tHquJOJKUQXJrLCflOHpKjXgcI/a929gpmLOEng==} + /@types/mdast@4.0.3: + resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} dependencies: - '@types/unist': 3.0.0 + '@types/unist': 3.0.2 dev: false - /@types/mdx@2.0.5: - resolution: {integrity: sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg==} + /@types/mdx@2.0.10: + resolution: {integrity: sha512-Rllzc5KHk0Al5/WANwgSPl1/CwjqCy+AZrGd78zuK+jO9aDM6ffblZ+zIjgPNAaEBmlO0RYDvLNh7wD0zKVgEg==} dev: false - /@types/ms@0.7.31: - resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: false - /@types/node@18.11.10: - resolution: {integrity: sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ==} + /@types/node@18.19.8: + resolution: {integrity: sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg==} + dependencies: + undici-types: 5.26.5 dev: true - /@types/prop-types@15.7.5: - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} + /@types/prop-types@15.7.11: + resolution: {integrity: sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==} - /@types/react-dom@18.2.7: - resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} + /@types/react-dom@18.2.18: + resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==} dependencies: - '@types/react': 18.2.18 + '@types/react': 18.2.48 dev: true - /@types/react@18.2.18: - resolution: {integrity: sha512-da4NTSeBv/P34xoZPhtcLkmZuJ+oYaCxHmyHzwaDQo9RQPBeXV+06gEk2FpqEcsX9XrnNLvRpVh6bdavDSjtiQ==} + /@types/react@18.2.48: + resolution: {integrity: sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==} dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.3 - csstype: 3.1.2 + '@types/prop-types': 15.7.11 + '@types/scheduler': 0.16.8 + csstype: 3.1.3 - /@types/scheduler@0.16.3: - resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} + /@types/scheduler@0.16.8: + resolution: {integrity: sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==} - /@types/unist@2.0.7: - resolution: {integrity: sha512-cputDpIbFgLUaGQn6Vqg3/YsJwxUwHLO13v3i5ouxT4lat0khip9AEWxtERujXV9wxIB1EyF97BSJFt6vpdI8g==} + /@types/unist@2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} dev: false - /@types/unist@3.0.0: - resolution: {integrity: sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==} + /@types/unist@3.0.2: + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} dev: false /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: false - /acorn-jsx@5.3.2(acorn@8.10.0): + /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.10.0 + acorn: 8.11.3 dev: false - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true dev: false @@ -498,8 +529,8 @@ packages: streamsearch: 1.1.0 dev: false - /caniuse-lite@1.0.30001519: - resolution: {integrity: sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==} + /caniuse-lite@1.0.30001579: + resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==} dev: false /ccount@2.0.1: @@ -543,8 +574,8 @@ packages: execa: 0.8.0 dev: false - /clsx@2.0.0: - resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} + /clsx@2.1.0: + resolution: {integrity: sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==} engines: {node: '>=6'} dev: false @@ -572,8 +603,8 @@ packages: engines: {node: '>= 12'} dev: false - /compute-scroll-into-view@3.0.3: - resolution: {integrity: sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A==} + /compute-scroll-into-view@3.1.0: + resolution: {integrity: sha512-rj8l8pD4bJ1nx+dAkMhV1xB5RuZEyVysfxJqB1pRchh1KVvwOv9b7CGB8ZfjTImVv2oF+sYMUkMZq6Na5Ftmbg==} dev: false /cose-base@1.0.3: @@ -596,29 +627,29 @@ packages: which: 1.3.1 dev: false - /csstype@3.1.2: - resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + /csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - /cytoscape-cose-bilkent@4.1.0(cytoscape@3.25.0): + /cytoscape-cose-bilkent@4.1.0(cytoscape@3.28.1): resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} peerDependencies: cytoscape: ^3.2.0 dependencies: cose-base: 1.0.3 - cytoscape: 3.25.0 + cytoscape: 3.28.1 dev: false - /cytoscape-fcose@2.2.0(cytoscape@3.25.0): + /cytoscape-fcose@2.2.0(cytoscape@3.28.1): resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} peerDependencies: cytoscape: ^3.2.0 dependencies: cose-base: 2.2.0 - cytoscape: 3.25.0 + cytoscape: 3.28.1 dev: false - /cytoscape@3.25.0: - resolution: {integrity: sha512-7MW3Iz57mCUo6JQCho6CmPBCbTlJr7LzyEtIkutG255HLVd4XuBg2I9BkTZLI/e4HoaOB/BiAzXuQybQ95+r9Q==} + /cytoscape@3.28.1: + resolution: {integrity: sha512-xyItz4O/4zp9/239wCcH8ZcFuuZooEeF8KHRmzjDfGdXsj3OG9MFSMA0pJE0uX3uCN/ygof6hHf4L7lst+JaDg==} engines: {node: '>=0.10'} dependencies: heap: 0.2.7 @@ -903,8 +934,8 @@ packages: lodash-es: 4.17.21 dev: false - /dayjs@1.11.9: - resolution: {integrity: sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==} + /dayjs@1.11.10: + resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} dev: false /debug@4.3.4: @@ -947,12 +978,12 @@ packages: engines: {node: '>=0.3.1'} dev: false - /dompurify@3.0.5: - resolution: {integrity: sha512-F9e6wPGtY+8KNMRAVfxeCOHU0/NPWMSENNq4pQctuXRqqdEPW7q3CrLbR5Nse044WwacyjHGOMlvNsBe1y6z9A==} + /dompurify@3.0.8: + resolution: {integrity: sha512-b7uwreMYL2eZhrSCRC4ahLTeZcPZxSmYfmcQGXGkXiZSNW1X85v+SDM5KsWcpivIiUBH47Ji7NtyUdpLeF5JZQ==} dev: false - /elkjs@0.8.2: - resolution: {integrity: sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ==} + /elkjs@0.9.1: + resolution: {integrity: sha512-JWKDyqAdltuUcyxaECtYG6H4sqysXSLeoXuGUBfRNESMTkj+w+qdb0jya8Z/WI0jVd03WQtCGhS6FOFtlhD5FQ==} dev: false /entities@4.5.0: @@ -979,13 +1010,13 @@ packages: /estree-util-attach-comments@2.1.1: resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.5 dev: false /estree-util-build-jsx@2.2.2: resolution: {integrity: sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg==} dependencies: - '@types/estree-jsx': 1.0.0 + '@types/estree-jsx': 1.0.3 estree-util-is-identifier-name: 2.1.0 estree-walker: 3.0.3 dev: false @@ -997,7 +1028,7 @@ packages: /estree-util-to-js@1.2.0: resolution: {integrity: sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA==} dependencies: - '@types/estree-jsx': 1.0.0 + '@types/estree-jsx': 1.0.3 astring: 1.8.6 source-map: 0.7.4 dev: false @@ -1012,14 +1043,14 @@ packages: /estree-util-visit@1.2.1: resolution: {integrity: sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw==} dependencies: - '@types/estree-jsx': 1.0.0 - '@types/unist': 2.0.7 + '@types/estree-jsx': 1.0.3 + '@types/unist': 2.0.10 dev: false /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.5 dev: false /execa@0.8.0: @@ -1046,8 +1077,8 @@ packages: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} dev: false - /flexsearch@0.7.31: - resolution: {integrity: sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA==} + /flexsearch@0.7.43: + resolution: {integrity: sha512-c5o/+Um8aqCSOXGcZoqZOm+NqtVwNsvVpWv6lfmSclU954O3wvQKxxK8zj74fPaSJbXpSLTs4PRhh+wnoCXnKg==} dev: false /focus-visible@5.2.0: @@ -1066,8 +1097,8 @@ packages: parse-url: 8.1.0 dev: false - /git-url-parse@13.1.0: - resolution: {integrity: sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==} + /git-url-parse@13.1.1: + resolution: {integrity: sha512-PCFJyeSSdtnbfhSNRw9Wk96dDCNx+sogTe4YNXeXSJxt7xz5hvXekuRn9JX7m+Mf4OscCu8h+mtAl3+h5Fo8lQ==} dependencies: git-up: 7.0.0 dev: false @@ -1108,86 +1139,69 @@ packages: type-fest: 1.4.0 dev: false - /hast-util-from-dom@4.2.0: - resolution: {integrity: sha512-t1RJW/OpJbCAJQeKi3Qrj1cAOLA0+av/iPFori112+0X7R3wng+jxLA+kXec8K4szqPRGI8vPxbbpEYvvpwaeQ==} + /hast-util-from-dom@5.0.0: + resolution: {integrity: sha512-d6235voAp/XR3Hh5uy7aGLbM3S4KamdW0WEgOaU1YoewnuYw4HXb5eRtv9g65m/RFGEfUY1Mw4UqCc5Y8L4Stg==} dependencies: - hastscript: 7.2.0 + '@types/hast': 3.0.3 + hastscript: 8.0.0 web-namespaces: 2.0.1 dev: false - /hast-util-from-html-isomorphic@1.0.0: - resolution: {integrity: sha512-Yu480AKeOEN/+l5LA674a+7BmIvtDj24GvOt7MtQWuhzUwlaaRWdEPXAh3Qm5vhuthpAipFb2vTetKXWOjmTvw==} + /hast-util-from-html-isomorphic@2.0.0: + resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==} dependencies: - '@types/hast': 2.3.5 - hast-util-from-dom: 4.2.0 - hast-util-from-html: 1.0.2 - unist-util-remove-position: 4.0.2 + '@types/hast': 3.0.3 + hast-util-from-dom: 5.0.0 + hast-util-from-html: 2.0.1 + unist-util-remove-position: 5.0.0 dev: false - /hast-util-from-html@1.0.2: - resolution: {integrity: sha512-LhrTA2gfCbLOGJq2u/asp4kwuG0y6NhWTXiPKP+n0qNukKy7hc10whqqCFfyvIA1Q5U5d0sp9HhNim9gglEH4A==} + /hast-util-from-html@2.0.1: + resolution: {integrity: sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==} dependencies: - '@types/hast': 2.3.5 - hast-util-from-parse5: 7.1.2 + '@types/hast': 3.0.3 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.1 parse5: 7.1.2 - vfile: 5.3.7 - vfile-message: 3.1.4 - dev: false - - /hast-util-from-parse5@7.1.2: - resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} - dependencies: - '@types/hast': 2.3.5 - '@types/unist': 2.0.7 - hastscript: 7.2.0 - property-information: 6.2.0 - vfile: 5.3.7 - vfile-location: 4.1.0 - web-namespaces: 2.0.1 + vfile: 6.0.1 + vfile-message: 4.0.2 dev: false /hast-util-from-parse5@8.0.1: resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} dependencies: - '@types/hast': 3.0.1 - '@types/unist': 3.0.0 + '@types/hast': 3.0.3 + '@types/unist': 3.0.2 devlop: 1.1.0 hastscript: 8.0.0 - property-information: 6.2.0 + property-information: 6.4.0 vfile: 6.0.1 vfile-location: 5.0.2 web-namespaces: 2.0.1 dev: false - /hast-util-is-element@2.1.3: - resolution: {integrity: sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==} + /hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} dependencies: - '@types/hast': 2.3.5 - '@types/unist': 2.0.7 - dev: false - - /hast-util-parse-selector@3.1.1: - resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} - dependencies: - '@types/hast': 2.3.5 + '@types/hast': 3.0.3 dev: false /hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} dependencies: - '@types/hast': 3.0.1 + '@types/hast': 3.0.3 dev: false - /hast-util-raw@9.0.1: - resolution: {integrity: sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==} + /hast-util-raw@9.0.2: + resolution: {integrity: sha512-PldBy71wO9Uq1kyaMch9AHIghtQvIwxBUkv823pKmkTM3oV1JxtsTNYdevMxvUHqcnOAuO65JKU2+0NOxc2ksA==} dependencies: - '@types/hast': 3.0.1 - '@types/unist': 3.0.0 + '@types/hast': 3.0.3 + '@types/unist': 3.0.2 '@ungap/structured-clone': 1.2.0 hast-util-from-parse5: 8.0.1 hast-util-to-parse5: 8.0.0 html-void-elements: 3.0.0 - mdast-util-to-hast: 13.0.2 + mdast-util-to-hast: 13.1.0 parse5: 7.1.2 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 @@ -1199,19 +1213,19 @@ packages: /hast-util-to-estree@2.3.3: resolution: {integrity: sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ==} dependencies: - '@types/estree': 1.0.1 - '@types/estree-jsx': 1.0.0 - '@types/hast': 2.3.5 - '@types/unist': 2.0.7 + '@types/estree': 1.0.5 + '@types/estree-jsx': 1.0.3 + '@types/hast': 2.3.9 + '@types/unist': 2.0.10 comma-separated-tokens: 2.0.3 estree-util-attach-comments: 2.1.1 estree-util-is-identifier-name: 2.1.0 hast-util-whitespace: 2.0.1 mdast-util-mdx-expression: 1.3.2 mdast-util-mdxjs-esm: 1.3.1 - property-information: 6.2.0 + property-information: 6.4.0 space-separated-tokens: 2.0.2 - style-to-object: 0.4.2 + style-to-object: 0.4.4 unist-util-position: 4.0.4 zwitch: 2.0.4 transitivePeerDependencies: @@ -1221,45 +1235,35 @@ packages: /hast-util-to-parse5@8.0.0: resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} dependencies: - '@types/hast': 3.0.1 + '@types/hast': 3.0.3 comma-separated-tokens: 2.0.3 devlop: 1.1.0 - property-information: 6.2.0 + property-information: 6.4.0 space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 dev: false - /hast-util-to-text@3.1.2: - resolution: {integrity: sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw==} + /hast-util-to-text@4.0.0: + resolution: {integrity: sha512-EWiE1FSArNBPUo1cKWtzqgnuRQwEeQbQtnFJRYV1hb1BWDgrAlBU0ExptvZMM/KSA82cDpm2sFGf3Dmc5Mza3w==} dependencies: - '@types/hast': 2.3.5 - '@types/unist': 2.0.7 - hast-util-is-element: 2.1.3 - unist-util-find-after: 4.0.1 + '@types/hast': 3.0.3 + '@types/unist': 3.0.2 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 dev: false /hast-util-whitespace@2.0.1: resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} dev: false - /hastscript@7.2.0: - resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} - dependencies: - '@types/hast': 2.3.5 - comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 3.1.1 - property-information: 6.2.0 - space-separated-tokens: 2.0.2 - dev: false - /hastscript@8.0.0: resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} dependencies: - '@types/hast': 3.0.1 + '@types/hast': 3.0.3 comma-separated-tokens: 2.0.3 hast-util-parse-selector: 4.0.0 - property-information: 6.2.0 + property-information: 6.4.0 space-separated-tokens: 2.0.2 dev: false @@ -1339,10 +1343,10 @@ packages: engines: {node: '>=12'} dev: false - /is-reference@3.0.1: - resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} + /is-reference@3.0.2: + resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.5 dev: false /is-ssh@1.4.0: @@ -1383,15 +1387,15 @@ packages: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: false - /katex@0.16.8: - resolution: {integrity: sha512-ftuDnJbcbOckGY11OO+zg3OofESlbR5DRl2cmN8HeWeeFIV7wTXvAOx8kEjZjobhA+9wh2fbKeO6cdcA9Mnovg==} + /katex@0.16.9: + resolution: {integrity: sha512-fsSYjWS0EEOwvy81j3vRA8TEAhQhKiqO+FQaKWp0m39qwOzHVBgAUBIXWj1pB+O2W3fIpNa6Y9KSKCVbfPhyAQ==} hasBin: true dependencies: commander: 8.3.0 dev: false - /khroma@2.0.0: - resolution: {integrity: sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==} + /khroma@2.1.0: + resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} dev: false /kind-of@6.0.3: @@ -1451,25 +1455,25 @@ packages: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} dev: false - /match-sorter@6.3.1: - resolution: {integrity: sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==} + /match-sorter@6.3.3: + resolution: {integrity: sha512-sgiXxrRijEe0SzHKGX4HouCpfHRPnqteH42UdMEW7BlWy990ZkzcvonJGv4Uu9WE7Y1f8Yocm91+4qFPCbmNww==} dependencies: - '@babel/runtime': 7.22.6 - remove-accents: 0.4.2 + '@babel/runtime': 7.23.8 + remove-accents: 0.5.0 dev: false /mdast-util-definitions@5.1.2: resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} dependencies: - '@types/mdast': 3.0.12 - '@types/unist': 2.0.7 + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 unist-util-visit: 4.1.2 dev: false /mdast-util-find-and-replace@2.2.2: resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} dependencies: - '@types/mdast': 3.0.12 + '@types/mdast': 3.0.15 escape-string-regexp: 5.0.0 unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 @@ -1478,8 +1482,8 @@ packages: /mdast-util-from-markdown@1.3.1: resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} dependencies: - '@types/mdast': 3.0.12 - '@types/unist': 2.0.7 + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 decode-named-character-reference: 1.0.2 mdast-util-to-string: 3.2.0 micromark: 3.2.0 @@ -1497,7 +1501,7 @@ packages: /mdast-util-gfm-autolink-literal@1.0.3: resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} dependencies: - '@types/mdast': 3.0.12 + '@types/mdast': 3.0.15 ccount: 2.0.1 mdast-util-find-and-replace: 2.2.2 micromark-util-character: 1.2.0 @@ -1506,7 +1510,7 @@ packages: /mdast-util-gfm-footnote@1.0.2: resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} dependencies: - '@types/mdast': 3.0.12 + '@types/mdast': 3.0.15 mdast-util-to-markdown: 1.5.0 micromark-util-normalize-identifier: 1.1.0 dev: false @@ -1514,14 +1518,14 @@ packages: /mdast-util-gfm-strikethrough@1.0.3: resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} dependencies: - '@types/mdast': 3.0.12 + '@types/mdast': 3.0.15 mdast-util-to-markdown: 1.5.0 dev: false /mdast-util-gfm-table@1.0.7: resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} dependencies: - '@types/mdast': 3.0.12 + '@types/mdast': 3.0.15 markdown-table: 3.0.3 mdast-util-from-markdown: 1.3.1 mdast-util-to-markdown: 1.5.0 @@ -1532,7 +1536,7 @@ packages: /mdast-util-gfm-task-list-item@1.0.2: resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} dependencies: - '@types/mdast': 3.0.12 + '@types/mdast': 3.0.15 mdast-util-to-markdown: 1.5.0 dev: false @@ -1553,7 +1557,7 @@ packages: /mdast-util-math@2.0.2: resolution: {integrity: sha512-8gmkKVp9v6+Tgjtq6SYx9kGPpTf6FVYRa53/DLh479aldR9AyP48qeVOgNZ5X7QUK7nOy4yw7vg6mbiGcs9jWQ==} dependencies: - '@types/mdast': 3.0.12 + '@types/mdast': 3.0.15 longest-streak: 3.1.0 mdast-util-to-markdown: 1.5.0 dev: false @@ -1561,9 +1565,9 @@ packages: /mdast-util-mdx-expression@1.3.2: resolution: {integrity: sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA==} dependencies: - '@types/estree-jsx': 1.0.0 - '@types/hast': 2.3.5 - '@types/mdast': 3.0.12 + '@types/estree-jsx': 1.0.3 + '@types/hast': 2.3.9 + '@types/mdast': 3.0.15 mdast-util-from-markdown: 1.3.1 mdast-util-to-markdown: 1.5.0 transitivePeerDependencies: @@ -1573,10 +1577,10 @@ packages: /mdast-util-mdx-jsx@2.1.4: resolution: {integrity: sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA==} dependencies: - '@types/estree-jsx': 1.0.0 - '@types/hast': 2.3.5 - '@types/mdast': 3.0.12 - '@types/unist': 2.0.7 + '@types/estree-jsx': 1.0.3 + '@types/hast': 2.3.9 + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 ccount: 2.0.1 mdast-util-from-markdown: 1.3.1 mdast-util-to-markdown: 1.5.0 @@ -1604,9 +1608,9 @@ packages: /mdast-util-mdxjs-esm@1.3.1: resolution: {integrity: sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w==} dependencies: - '@types/estree-jsx': 1.0.0 - '@types/hast': 2.3.5 - '@types/mdast': 3.0.12 + '@types/estree-jsx': 1.0.3 + '@types/hast': 2.3.9 + '@types/mdast': 3.0.15 mdast-util-from-markdown: 1.3.1 mdast-util-to-markdown: 1.5.0 transitivePeerDependencies: @@ -1616,15 +1620,15 @@ packages: /mdast-util-phrasing@3.0.1: resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} dependencies: - '@types/mdast': 3.0.12 + '@types/mdast': 3.0.15 unist-util-is: 5.2.1 dev: false /mdast-util-to-hast@12.3.0: resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} dependencies: - '@types/hast': 2.3.5 - '@types/mdast': 3.0.12 + '@types/hast': 2.3.9 + '@types/mdast': 3.0.15 mdast-util-definitions: 5.1.2 micromark-util-sanitize-uri: 1.2.0 trim-lines: 3.0.1 @@ -1633,24 +1637,25 @@ packages: unist-util-visit: 4.1.2 dev: false - /mdast-util-to-hast@13.0.2: - resolution: {integrity: sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==} + /mdast-util-to-hast@13.1.0: + resolution: {integrity: sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==} dependencies: - '@types/hast': 3.0.1 - '@types/mdast': 4.0.0 + '@types/hast': 3.0.3 + '@types/mdast': 4.0.3 '@ungap/structured-clone': 1.2.0 devlop: 1.1.0 micromark-util-sanitize-uri: 2.0.0 trim-lines: 3.0.1 unist-util-position: 5.0.0 unist-util-visit: 5.0.0 + vfile: 6.0.1 dev: false /mdast-util-to-markdown@1.5.0: resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} dependencies: - '@types/mdast': 3.0.12 - '@types/unist': 2.0.7 + '@types/mdast': 3.0.15 + '@types/unist': 2.0.10 longest-streak: 3.1.0 mdast-util-phrasing: 3.0.1 mdast-util-to-string: 3.2.0 @@ -1662,32 +1667,32 @@ packages: /mdast-util-to-string@3.2.0: resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} dependencies: - '@types/mdast': 3.0.12 + '@types/mdast': 3.0.15 dev: false - /mermaid@10.3.0: - resolution: {integrity: sha512-H5quxuQjwXC8M1WuuzhAp2TdqGg74t5skfDBrNKJ7dt3z8Wprl5S6h9VJsRhoBUTSs1TMtHEdplLhCqXleZZLw==} + /mermaid@10.7.0: + resolution: {integrity: sha512-PsvGupPCkN1vemAAjScyw4pw34p4/0dZkSrqvAB26hUvJulOWGIwt35FZWmT9wPIi4r0QLa5X0PB4YLIGn0/YQ==} dependencies: - '@braintree/sanitize-url': 6.0.3 - '@types/d3-scale': 4.0.3 - '@types/d3-scale-chromatic': 3.0.0 - cytoscape: 3.25.0 - cytoscape-cose-bilkent: 4.1.0(cytoscape@3.25.0) - cytoscape-fcose: 2.2.0(cytoscape@3.25.0) + '@braintree/sanitize-url': 6.0.4 + '@types/d3-scale': 4.0.8 + '@types/d3-scale-chromatic': 3.0.3 + cytoscape: 3.28.1 + cytoscape-cose-bilkent: 4.1.0(cytoscape@3.28.1) + cytoscape-fcose: 2.2.0(cytoscape@3.28.1) d3: 7.8.5 d3-sankey: 0.12.3 dagre-d3-es: 7.0.10 - dayjs: 1.11.9 - dompurify: 3.0.5 - elkjs: 0.8.2 - khroma: 2.0.0 + dayjs: 1.11.10 + dompurify: 3.0.8 + elkjs: 0.9.1 + khroma: 2.1.0 lodash-es: 4.17.21 mdast-util-from-markdown: 1.3.1 non-layered-tidy-tree-layout: 2.0.2 - stylis: 4.3.0 + stylis: 4.3.1 ts-dedent: 2.2.0 - uuid: 9.0.0 - web-worker: 1.2.0 + uuid: 9.0.1 + web-worker: 1.3.0 transitivePeerDependencies: - supports-color dev: false @@ -1788,8 +1793,8 @@ packages: /micromark-extension-math@2.1.2: resolution: {integrity: sha512-es0CcOV89VNS9wFmyn+wyFTKweXGW4CEvdaAca6SWRWPyYCbBisnjaHLjWO4Nszuiud84jCpkHsqAJoa768Pvg==} dependencies: - '@types/katex': 0.16.2 - katex: 0.16.8 + '@types/katex': 0.16.7 + katex: 0.16.9 micromark-factory-space: 1.1.0 micromark-util-character: 1.2.0 micromark-util-symbol: 1.1.0 @@ -1800,7 +1805,7 @@ packages: /micromark-extension-mdx-expression@1.0.8: resolution: {integrity: sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.5 micromark-factory-mdx-expression: 1.0.9 micromark-factory-space: 1.1.0 micromark-util-character: 1.2.0 @@ -1814,7 +1819,7 @@ packages: resolution: {integrity: sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA==} dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.1 + '@types/estree': 1.0.5 estree-util-is-identifier-name: 2.1.0 micromark-factory-mdx-expression: 1.0.9 micromark-factory-space: 1.1.0 @@ -1834,7 +1839,7 @@ packages: /micromark-extension-mdxjs-esm@1.0.5: resolution: {integrity: sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.5 micromark-core-commonmark: 1.1.0 micromark-util-character: 1.2.0 micromark-util-events-to-acorn: 1.2.3 @@ -1848,8 +1853,8 @@ packages: /micromark-extension-mdxjs@1.0.1: resolution: {integrity: sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q==} dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) + acorn: 8.11.3 + acorn-jsx: 5.3.2(acorn@8.11.3) micromark-extension-mdx-expression: 1.0.8 micromark-extension-mdx-jsx: 1.0.5 micromark-extension-mdx-md: 1.0.1 @@ -1878,7 +1883,7 @@ packages: /micromark-factory-mdx-expression@1.0.9: resolution: {integrity: sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.5 micromark-util-character: 1.2.0 micromark-util-events-to-acorn: 1.2.3 micromark-util-symbol: 1.1.0 @@ -1975,8 +1980,8 @@ packages: resolution: {integrity: sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w==} dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.1 - '@types/unist': 2.0.7 + '@types/estree': 1.0.5 + '@types/unist': 2.0.10 estree-util-visit: 1.2.1 micromark-util-symbol: 1.1.0 micromark-util-types: 1.1.0 @@ -2044,7 +2049,7 @@ packages: /micromark@3.2.0: resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} dependencies: - '@types/debug': 4.1.8 + '@types/debug': 4.1.12 debug: 4.3.4 decode-named-character-reference: 1.0.2 micromark-core-commonmark: 1.1.0 @@ -2074,8 +2079,8 @@ packages: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: false - /nanoid@3.3.6: - resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} + /nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: false @@ -2097,137 +2102,133 @@ packages: - supports-color dev: false - /next-seo@6.1.0(next@13.4.12)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-iMBpFoJsR5zWhguHJvsoBDxDSmdYTHtnVPB1ij+CD0NReQCP78ZxxbdL9qkKIf4oEuZEqZkrjAQLB0bkII7RYA==} + /next-seo@6.4.0(next@13.5.6)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-XQFxkOL2hw0YE+P100HbI3EAvcludlHPxuzMgaIjKb7kPK0CvjGvLFjd9hszZFEDc5oiQkGFA8+cuWcnip7eYA==} peerDependencies: next: ^8.1.1-canary.54 || >=9.0.0 react: '>=16.0.0' react-dom: '>=16.0.0' dependencies: - next: 13.4.12(react-dom@18.2.0)(react@18.2.0) + next: 13.5.6(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /next-themes@0.2.1(next@13.4.12)(react-dom@18.2.0)(react@18.2.0): + /next-themes@0.2.1(next@13.5.6)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==} peerDependencies: next: '*' react: '*' react-dom: '*' dependencies: - next: 13.4.12(react-dom@18.2.0)(react@18.2.0) + next: 13.5.6(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /next@13.4.12(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-eHfnru9x6NRmTMcjQp6Nz0J4XH9OubmzOa7CkWL+AUrUxpibub3vWwttjduu9No16dug1kq04hiUUpo7J3m3Xw==} - engines: {node: '>=16.8.0'} + /next@13.5.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw==} + engines: {node: '>=16.14.0'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 - fibers: '>= 3.1.0' react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: '@opentelemetry/api': optional: true - fibers: - optional: true sass: optional: true dependencies: - '@next/env': 13.4.12 - '@swc/helpers': 0.5.1 + '@next/env': 13.5.6 + '@swc/helpers': 0.5.2 busboy: 1.6.0 - caniuse-lite: 1.0.30001519 - postcss: 8.4.14 + caniuse-lite: 1.0.30001579 + postcss: 8.4.31 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(react@18.2.0) watchpack: 2.4.0 - zod: 3.21.4 optionalDependencies: - '@next/swc-darwin-arm64': 13.4.12 - '@next/swc-darwin-x64': 13.4.12 - '@next/swc-linux-arm64-gnu': 13.4.12 - '@next/swc-linux-arm64-musl': 13.4.12 - '@next/swc-linux-x64-gnu': 13.4.12 - '@next/swc-linux-x64-musl': 13.4.12 - '@next/swc-win32-arm64-msvc': 13.4.12 - '@next/swc-win32-ia32-msvc': 13.4.12 - '@next/swc-win32-x64-msvc': 13.4.12 + '@next/swc-darwin-arm64': 13.5.6 + '@next/swc-darwin-x64': 13.5.6 + '@next/swc-linux-arm64-gnu': 13.5.6 + '@next/swc-linux-arm64-musl': 13.5.6 + '@next/swc-linux-x64-gnu': 13.5.6 + '@next/swc-linux-x64-musl': 13.5.6 + '@next/swc-win32-arm64-msvc': 13.5.6 + '@next/swc-win32-ia32-msvc': 13.5.6 + '@next/swc-win32-x64-msvc': 13.5.6 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros dev: false - /nextra-theme-docs@2.12.3(next@13.4.12)(nextra@2.12.3)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-aZywZwokk/h5HrUTh/bsU981Sd2prZks7ci+HNG9wuMnm+drp3PBmRKIuQxBCiJurePVBJ2Qk2/wTV3VECGKnA==} + /nextra-theme-docs@2.13.2(next@13.5.6)(nextra@2.13.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-yE4umXaImp1/kf/sFciPj2+EFrNSwd9Db26hi98sIIiujzGf3+9eUgAz45vF9CwBw50FSXxm1QGRcY+slQ4xQQ==} peerDependencies: next: '>=9.5.3' - nextra: 2.12.3 + nextra: 2.13.2 react: '>=16.13.1' react-dom: '>=16.13.1' dependencies: - '@headlessui/react': 1.7.16(react-dom@18.2.0)(react@18.2.0) + '@headlessui/react': 1.7.18(react-dom@18.2.0)(react@18.2.0) '@popperjs/core': 2.11.8 - clsx: 2.0.0 + clsx: 2.1.0 escape-string-regexp: 5.0.0 - flexsearch: 0.7.31 + flexsearch: 0.7.43 focus-visible: 5.2.0 - git-url-parse: 13.1.0 + git-url-parse: 13.1.1 intersection-observer: 0.12.2 - match-sorter: 6.3.1 - next: 13.4.12(react-dom@18.2.0)(react@18.2.0) - next-seo: 6.1.0(next@13.4.12)(react-dom@18.2.0)(react@18.2.0) - next-themes: 0.2.1(next@13.4.12)(react-dom@18.2.0)(react@18.2.0) - nextra: 2.12.3(next@13.4.12)(react-dom@18.2.0)(react@18.2.0) + match-sorter: 6.3.3 + next: 13.5.6(react-dom@18.2.0)(react@18.2.0) + next-seo: 6.4.0(next@13.5.6)(react-dom@18.2.0)(react@18.2.0) + next-themes: 0.2.1(next@13.5.6)(react-dom@18.2.0)(react@18.2.0) + nextra: 2.13.2(next@13.5.6)(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - scroll-into-view-if-needed: 3.0.10 - zod: 3.21.4 + scroll-into-view-if-needed: 3.1.0 + zod: 3.22.4 dev: false - /nextra@2.12.3(next@13.4.12)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-0d8wXpGAccFpMFZuxnlnN56MIZj+AWGYXW3Xk6ByXyr0Mb+B/C/0aGZV5YrBex0V1wEqMGQl4LLAJI+AfCbSXg==} + /nextra@2.13.2(next@13.5.6)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-pIgOSXNUqTz1laxV4ChFZOU7lzJAoDHHaBPj8L09PuxrLKqU1BU/iZtXAG6bQeKCx8EPdBsoXxEuENnL9QGnGA==} engines: {node: '>=16'} peerDependencies: next: '>=9.5.3' react: '>=16.13.1' react-dom: '>=16.13.1' dependencies: - '@headlessui/react': 1.7.16(react-dom@18.2.0)(react@18.2.0) + '@headlessui/react': 1.7.18(react-dom@18.2.0)(react@18.2.0) '@mdx-js/mdx': 2.3.0 '@mdx-js/react': 2.3.0(react@18.2.0) '@napi-rs/simple-git': 0.1.9 - '@theguild/remark-mermaid': 0.0.4(react@18.2.0) - '@theguild/remark-npm2yarn': 0.1.1 - clsx: 2.0.0 + '@theguild/remark-mermaid': 0.0.5(react@18.2.0) + '@theguild/remark-npm2yarn': 0.2.1 + clsx: 2.1.0 github-slugger: 2.0.0 graceful-fs: 4.2.11 gray-matter: 4.0.3 - katex: 0.16.8 + katex: 0.16.9 lodash.get: 4.4.2 - next: 13.4.12(react-dom@18.2.0)(react@18.2.0) + next: 13.5.6(react-dom@18.2.0)(react@18.2.0) next-mdx-remote: 4.4.1(react-dom@18.2.0)(react@18.2.0) p-limit: 3.1.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - rehype-katex: 6.0.3 - rehype-pretty-code: 0.9.11(shiki@0.14.3) + rehype-katex: 7.0.0 + rehype-pretty-code: 0.9.11(shiki@0.14.7) rehype-raw: 7.0.0 remark-gfm: 3.0.1 remark-math: 5.1.1 remark-reading-time: 2.0.1 - shiki: 0.14.3 + shiki: 0.14.7 slash: 3.0.0 title: 3.5.3 unist-util-remove: 4.0.0 unist-util-visit: 5.0.0 - zod: 3.22.2 + zod: 3.22.4 transitivePeerDependencies: - supports-color dev: false @@ -2243,9 +2244,14 @@ packages: path-key: 2.0.1 dev: false - /npm-to-yarn@2.0.0: - resolution: {integrity: sha512-/IbjiJ7vqbxfxJxAZ+QI9CCRjnIbvGxn5KQcSY9xHh0lMKc/Sgqmm7yp7KPmd6TiTZX5/KiSBKlkGHo59ucZbg==} - engines: {node: '>=6.0.0'} + /npm-to-yarn@2.1.0: + resolution: {integrity: sha512-2C1IgJLdJngq1bSER7K7CGFszRr9s2rijEwvENPEgI0eK9xlD3tNwDc0UJnRj7FIT2aydWm72jB88uVswAhXHA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} dev: false /p-finally@1.0.0: @@ -2263,7 +2269,7 @@ packages: /parse-entities@4.0.1: resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} dependencies: - '@types/unist': 2.0.7 + '@types/unist': 2.0.10 character-entities: 2.0.2 character-entities-legacy: 3.0.0 character-reference-invalid: 2.0.1 @@ -2303,26 +2309,34 @@ packages: /periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} dependencies: - '@types/estree': 1.0.1 + '@types/estree': 1.0.5 estree-walker: 3.0.3 - is-reference: 3.0.1 + is-reference: 3.0.2 dev: false /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: false - /postcss@8.4.14: - resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} + /postcss@8.4.31: + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.6 + nanoid: 3.3.7 picocolors: 1.0.0 source-map-js: 1.0.2 dev: false - /property-information@6.2.0: - resolution: {integrity: sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==} + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + + /property-information@6.4.0: + resolution: {integrity: sha512-9t5qARVofg2xQqKtytzt+lZ4d1Qvj8t5B8fEwXK6qOfgRLgH/b13QlgEyDh033NOS31nXeFbYv7CLUDG1CeifQ==} dev: false /protocols@2.0.1: @@ -2343,6 +2357,10 @@ packages: scheduler: 0.23.0 dev: false + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + /react@18.2.0: resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} engines: {node: '>=0.10.0'} @@ -2354,45 +2372,46 @@ packages: resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} dev: false - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + /regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} dev: false - /rehype-katex@6.0.3: - resolution: {integrity: sha512-ByZlRwRUcWegNbF70CVRm2h/7xy7jQ3R9LaY4VVSvjnoVWwWVhNL60DiZsBpC5tSzYQOCvDbzncIpIjPZWodZA==} + /rehype-katex@7.0.0: + resolution: {integrity: sha512-h8FPkGE00r2XKU+/acgqwWUlyzve1IiOKwsEkg4pDL3k48PiE0Pt+/uLtVHDVkN1yA4iurZN6UES8ivHVEQV6Q==} dependencies: - '@types/hast': 2.3.5 - '@types/katex': 0.14.0 - hast-util-from-html-isomorphic: 1.0.0 - hast-util-to-text: 3.1.2 - katex: 0.16.8 - unist-util-visit: 4.1.2 + '@types/hast': 3.0.3 + '@types/katex': 0.16.7 + hast-util-from-html-isomorphic: 2.0.0 + hast-util-to-text: 4.0.0 + katex: 0.16.9 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.1 dev: false - /rehype-pretty-code@0.9.11(shiki@0.14.3): + /rehype-pretty-code@0.9.11(shiki@0.14.7): resolution: {integrity: sha512-Eq90eCYXQJISktfRZ8PPtwc5SUyH6fJcxS8XOMnHPUQZBtC6RYo67gGlley9X2nR8vlniPj0/7oCDEYHKQa/oA==} engines: {node: '>=16'} peerDependencies: shiki: '*' dependencies: - '@types/hast': 2.3.5 + '@types/hast': 2.3.9 hash-obj: 4.0.0 parse-numeric-range: 1.3.0 - shiki: 0.14.3 + shiki: 0.14.7 dev: false /rehype-raw@7.0.0: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} dependencies: - '@types/hast': 3.0.1 - hast-util-raw: 9.0.1 + '@types/hast': 3.0.3 + hast-util-raw: 9.0.2 vfile: 6.0.1 dev: false /remark-gfm@3.0.1: resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} dependencies: - '@types/mdast': 3.0.12 + '@types/mdast': 3.0.15 mdast-util-gfm: 2.0.2 micromark-extension-gfm: 2.0.3 unified: 10.1.2 @@ -2403,7 +2422,7 @@ packages: /remark-math@5.1.1: resolution: {integrity: sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw==} dependencies: - '@types/mdast': 3.0.12 + '@types/mdast': 3.0.15 mdast-util-math: 2.0.2 micromark-extension-math: 2.1.2 unified: 10.1.2 @@ -2421,7 +2440,7 @@ packages: /remark-parse@10.0.2: resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} dependencies: - '@types/mdast': 3.0.12 + '@types/mdast': 3.0.15 mdast-util-from-markdown: 1.3.1 unified: 10.1.2 transitivePeerDependencies: @@ -2440,14 +2459,14 @@ packages: /remark-rehype@10.1.0: resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} dependencies: - '@types/hast': 2.3.5 - '@types/mdast': 3.0.12 + '@types/hast': 2.3.9 + '@types/mdast': 3.0.15 mdast-util-to-hast: 12.3.0 unified: 10.1.2 dev: false - /remove-accents@0.4.2: - resolution: {integrity: sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==} + /remove-accents@0.5.0: + resolution: {integrity: sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==} dev: false /robust-predicates@3.0.2: @@ -2475,10 +2494,10 @@ packages: loose-envify: 1.4.0 dev: false - /scroll-into-view-if-needed@3.0.10: - resolution: {integrity: sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg==} + /scroll-into-view-if-needed@3.1.0: + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} dependencies: - compute-scroll-into-view: 3.0.3 + compute-scroll-into-view: 3.1.0 dev: false /section-matter@1.0.0: @@ -2501,8 +2520,8 @@ packages: engines: {node: '>=0.10.0'} dev: false - /shiki@0.14.3: - resolution: {integrity: sha512-U3S/a+b0KS+UkTyMjoNojvTgrBHjgp7L6ovhFVZsXmBGnVdQ4K4U9oK0z63w538S91ATngv1vXigHCSWOwnr+g==} + /shiki@0.14.7: + resolution: {integrity: sha512-dNPAPrxSc87ua2sKJ3H5dQ/6ZaY8RNnaAqK+t0eG7p0Soi2ydiqbGOTaZCqaYvA/uZYfS1LJnemt3Q+mSfcPCg==} dependencies: ansi-sequence-parser: 1.1.1 jsonc-parser: 3.2.0 @@ -2566,8 +2585,8 @@ packages: engines: {node: '>=0.10.0'} dev: false - /style-to-object@0.4.2: - resolution: {integrity: sha512-1JGpfPB3lo42ZX8cuPrheZbfQ6kqPPnPHlKMyeRYtfKD+0jG+QsXgXN57O/dvJlzlB2elI6dGmrPnl5VPQFPaA==} + /style-to-object@0.4.4: + resolution: {integrity: sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==} dependencies: inline-style-parser: 0.1.1 dev: false @@ -2589,8 +2608,8 @@ packages: react: 18.2.0 dev: false - /stylis@4.3.0: - resolution: {integrity: sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==} + /stylis@4.3.1: + resolution: {integrity: sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==} dev: false /supports-color@4.5.0: @@ -2628,8 +2647,8 @@ packages: engines: {node: '>=6.10'} dev: false - /tslib@2.6.1: - resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: false /type-fest@1.4.0: @@ -2637,16 +2656,20 @@ packages: engines: {node: '>=10'} dev: false - /typescript@4.9.5: - resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} - engines: {node: '>=4.2.0'} + /typescript@5.3.3: + resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + engines: {node: '>=14.17'} hasBin: true dev: true + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + dev: true + /unified@10.1.2: resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} dependencies: - '@types/unist': 2.0.7 + '@types/unist': 2.0.10 bail: 2.0.2 extend: 3.0.2 is-buffer: 2.0.5 @@ -2655,11 +2678,11 @@ packages: vfile: 5.3.7 dev: false - /unist-util-find-after@4.0.1: - resolution: {integrity: sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw==} + /unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} dependencies: - '@types/unist': 2.0.7 - unist-util-is: 5.2.1 + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 dev: false /unist-util-generated@2.0.1: @@ -2669,44 +2692,51 @@ packages: /unist-util-is@5.2.1: resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} dependencies: - '@types/unist': 2.0.7 + '@types/unist': 2.0.10 dev: false /unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} dependencies: - '@types/unist': 3.0.0 + '@types/unist': 3.0.2 dev: false /unist-util-position-from-estree@1.1.2: resolution: {integrity: sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww==} dependencies: - '@types/unist': 2.0.7 + '@types/unist': 2.0.10 dev: false /unist-util-position@4.0.4: resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} dependencies: - '@types/unist': 2.0.7 + '@types/unist': 2.0.10 dev: false /unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} dependencies: - '@types/unist': 3.0.0 + '@types/unist': 3.0.2 dev: false /unist-util-remove-position@4.0.2: resolution: {integrity: sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ==} dependencies: - '@types/unist': 2.0.7 + '@types/unist': 2.0.10 unist-util-visit: 4.1.2 dev: false + /unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + dependencies: + '@types/unist': 3.0.2 + unist-util-visit: 5.0.0 + dev: false + /unist-util-remove@4.0.0: resolution: {integrity: sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==} dependencies: - '@types/unist': 3.0.0 + '@types/unist': 3.0.2 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 dev: false @@ -2714,40 +2744,40 @@ packages: /unist-util-stringify-position@3.0.3: resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} dependencies: - '@types/unist': 2.0.7 + '@types/unist': 2.0.10 dev: false /unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} dependencies: - '@types/unist': 3.0.0 + '@types/unist': 3.0.2 dev: false /unist-util-visit-parents@4.1.1: resolution: {integrity: sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==} dependencies: - '@types/unist': 2.0.7 + '@types/unist': 2.0.10 unist-util-is: 5.2.1 dev: false /unist-util-visit-parents@5.1.3: resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} dependencies: - '@types/unist': 2.0.7 + '@types/unist': 2.0.10 unist-util-is: 5.2.1 dev: false /unist-util-visit-parents@6.0.1: resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} dependencies: - '@types/unist': 3.0.0 + '@types/unist': 3.0.2 unist-util-is: 6.0.0 dev: false /unist-util-visit@3.1.0: resolution: {integrity: sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==} dependencies: - '@types/unist': 2.0.7 + '@types/unist': 2.0.10 unist-util-is: 5.2.1 unist-util-visit-parents: 4.1.1 dev: false @@ -2755,7 +2785,7 @@ packages: /unist-util-visit@4.1.2: resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} dependencies: - '@types/unist': 2.0.7 + '@types/unist': 2.0.10 unist-util-is: 5.2.1 unist-util-visit-parents: 5.1.3 dev: false @@ -2763,13 +2793,13 @@ packages: /unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} dependencies: - '@types/unist': 3.0.0 + '@types/unist': 3.0.2 unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 dev: false - /uuid@9.0.0: - resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} + /uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true dev: false @@ -2784,24 +2814,17 @@ packages: sade: 1.8.1 dev: false - /vfile-location@4.1.0: - resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} - dependencies: - '@types/unist': 2.0.7 - vfile: 5.3.7 - dev: false - /vfile-location@5.0.2: resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} dependencies: - '@types/unist': 3.0.0 + '@types/unist': 3.0.2 vfile: 6.0.1 dev: false /vfile-matter@3.0.1: resolution: {integrity: sha512-CAAIDwnh6ZdtrqAuxdElUqQRQDQgbbIrYtDYI8gCjXS1qQ+1XdLoK8FIZWxJwn0/I+BkSSZpar3SOgjemQz4fg==} dependencies: - '@types/js-yaml': 4.0.5 + '@types/js-yaml': 4.0.9 is-buffer: 2.0.5 js-yaml: 4.1.0 dev: false @@ -2809,21 +2832,21 @@ packages: /vfile-message@3.1.4: resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} dependencies: - '@types/unist': 2.0.7 + '@types/unist': 2.0.10 unist-util-stringify-position: 3.0.3 dev: false /vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} dependencies: - '@types/unist': 3.0.0 + '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 dev: false /vfile@5.3.7: resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} dependencies: - '@types/unist': 2.0.7 + '@types/unist': 2.0.10 is-buffer: 2.0.5 unist-util-stringify-position: 3.0.3 vfile-message: 3.1.4 @@ -2832,7 +2855,7 @@ packages: /vfile@6.0.1: resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} dependencies: - '@types/unist': 3.0.0 + '@types/unist': 3.0.2 unist-util-stringify-position: 4.0.0 vfile-message: 4.0.2 dev: false @@ -2857,8 +2880,8 @@ packages: resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} dev: false - /web-worker@1.2.0: - resolution: {integrity: sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA==} + /web-worker@1.3.0: + resolution: {integrity: sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA==} dev: false /which@1.3.1: @@ -2877,12 +2900,8 @@ packages: engines: {node: '>=10'} dev: false - /zod@3.21.4: - resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} - dev: false - - /zod@3.22.2: - resolution: {integrity: sha512-wvWkphh5WQsJbVk1tbx1l1Ly4yg+XecD+Mq280uBGt9wa5BKSWf4Mhp6GmrkPixhMxmabYY7RbzlwVP32pbGCg==} + /zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} dev: false /zwitch@2.0.4: diff --git a/style.css b/style.css index df6f447..aa0d54d 100644 --- a/style.css +++ b/style.css @@ -1,3 +1,12 @@ a { text-decoration: none !important; -} \ No newline at end of file +} + +ul.nx-list-disc li ul { + margin-top: 0 !important; + list-style-type: circle; +} + +ul.nx-list-disc li li ul { + list-style-type: square; +}