diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 42a8e0d605..13e40354b6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -45,7 +45,7 @@ For example: > Something that requires warning here ``` -![Alert options](images/alerts.png) +![Alert options](images/alerts.webp) ### MDX Components @@ -64,7 +64,7 @@ Available options for `icon`: ###### Example -![Collapsible MDX Component with the list icon](images/mdx-collapsible.png) +![Collapsible MDX Component with the list icon](images/mdx-collapsible.webp) ```markdown @@ -78,7 +78,7 @@ Buttons are simply... clickable buttons. They take `href` and `color` as argumen ###### Example -![Button MDX Component](images/mdx-button.png) +![Button MDX Component](images/mdx-button.webp) ```markdown click the button! @@ -90,7 +90,7 @@ Cards let you display links in a card format. They accept two arguments, `title` ###### Example -![Card MDX Component](images/mdx-card.png) +![Card MDX Component](images/mdx-card.webp) ```markdown diff --git a/docs/activities/building-an-activity.mdx b/docs/activities/building-an-activity.mdx index a61175bfcd..2eca7c3720 100644 --- a/docs/activities/building-an-activity.mdx +++ b/docs/activities/building-an-activity.mdx @@ -16,7 +16,7 @@ It assumes an understanding of [JavaScript](https://developer.mozilla.org/en-US/ -![Building Your First Activity Tutorial](activities/tutorial-hero.png) +![Building Your First Activity Tutorial](activities/tutorial-hero.webp) @@ -142,7 +142,7 @@ You can learn more about the OAuth flow and redirect URIs in the [OAuth2 documen Click on **OAuth2** on the sidebar in your app's settings. Under **Redirects**, enter `https://127.0.0.1` as a placeholder value then click **Save Changes**. -![Redirect URI in Activity Settings](activities/oauth2-redirect.png) +![Redirect URI in Activity Settings](activities/oauth2-redirect.webp) ### Fetch Your OAuth2 Credentials @@ -297,7 +297,7 @@ Because Activities are in a sandbox enviornment and go through the Discord proxy Back in your app's settings, click on the **URL Mappings** page under **Activities** on the left-hand sidebar. Enter the URL you generated from `cloudflared` in the previous step. -![Configuring your URL Mapping](activities/url-mapping-tutorial.png) +![Configuring your URL Mapping](activities/url-mapping-tutorial.webp) | PREFIX | TARGET | |--------|-----------------------------------------| @@ -311,7 +311,7 @@ Next, we'll need to enable Activities for your app. On the left hand sidebar und Find the first checkbox, labeled `Enable Activities`. Turn it on 🎉 -![Enabling Activities in Settings](activities/enable-activities.png) +![Enabling Activities in Settings](activities/enable-activities.webp) #### Default Entry Point Command @@ -328,7 +328,7 @@ Navigate to your Discord test server and, in any voice and or text channel, open Clicking on your app will launch your locally running app from inside Discord! -![Running your activity](activities/start-activity.png) +![Running your activity](activities/start-activity.webp) > info > **Customizing your Activity**
If you'd like to set images for your Activity, you can learn how to do that [here](#DOCS_ACTIVITIES_DEVELOPMENT_GUIDES/setting-up-activity-metadata). @@ -529,7 +529,7 @@ document.querySelector('#app').innerHTML = ` Now if we relaunch our app, we'll be prompted to authorize with Discord using the `identify`, `guilds`, and `applications.commands` scopes. -![Prompt to authorize Activity](activities/tutorial-auth.png) +![Prompt to authorize Activity](activities/tutorial-auth.webp) > warn > **Safe storage of tokens**
@@ -592,7 +592,7 @@ setupDiscordSdk().then(() => { If you close and rejoin the Activity, you should now see the name of the current channel. -![Discord Activities](activities/tutorial-channel-name.png) +![Discord Activities](activities/tutorial-channel-name.webp) @@ -665,7 +665,7 @@ setupDiscordSdk().then(() => { If we relaunch our Activity, we will see the current server's avatar render in our Activity. -![Discord Activities](activities/tutorial-hero.png) +![Discord Activities](activities/tutorial-hero.webp) diff --git a/docs/activities/design-patterns.mdx b/docs/activities/design-patterns.mdx index 304c1c0312..ba6a211d8a 100644 --- a/docs/activities/design-patterns.mdx +++ b/docs/activities/design-patterns.mdx @@ -49,7 +49,7 @@ When in an Activity with others, make the actions and presence of the others vis - If a user has customized their server nickname or avatar, use their server nickname or avatar in game. - Show when a user is speaking in the voice call, or whether they're active or inactive. -![Speech bubbles in Bobble League](activities/bobble-bash.png) +![Speech bubbles in Bobble League](activities/bobble-bash.webp) ### Respect user privacy @@ -67,7 +67,7 @@ Make your app fast, easy to join, and maximize fun to launch a crowd favorite. - Surprise and delight is about caring about the small details of how a person experiences your work. - Put the right emotion in when they least expect it to deliver the magic. -![Bobble League](activities/bobble-league.png) +![Bobble League](activities/bobble-league.webp) ### Keep load times as low as possible - This allows for easier drop-in drop-out behavior for the large portion of mobile users on Discord. @@ -80,7 +80,7 @@ Make your app fast, easy to join, and maximize fun to launch a crowd favorite. - Activities are frictionless to join and easy to discover, so you can expect that users will join mid-experience. Give those users something to do, even if it's just letting them spectate until they can join without being disruptive. In the same vein, users can leave without notice or become afk (away from keyboard). Handle these cases gracefully. - Create a case for users who have joined a call but have not yet started playing or engaging. Allow these users to "spectate" other users who are playing. This can also be helpful for Activities that have an ideal number in mind for play. -![Support drop-in, drop-out behavior in your Activity](activities/eights.png) +![Support drop-in, drop-out behavior in your Activity](activities/eights.webp) ### Make your app as available as possible @@ -105,7 +105,7 @@ Discord is a social platform where users talk to each other. Sharing and invites - Share photos or GIFs that capture moments of fun and memorable, or something to brag about. Don't make things shareable just to feature the activity. - Sharing a high score alone may not be very engaging, but sharing a really good move made in a game, or a collaborative drawing that creates a memory is a conversation starter and may make others want to join in on the fun. -![Shared Moment from Chess in the Park](activities/chess-victory.png) +![Shared Moment from Chess in the Park](activities/chess-victory.webp) #### Activities in Text Channels - The Activity user interface, copy and user flows should not rely on people in voice to explain, organize, clarify, or instruct about how the activity works. diff --git a/docs/activities/development-guides.mdx b/docs/activities/development-guides.mdx index da4eab64dd..9d96dc4882 100644 --- a/docs/activities/development-guides.mdx +++ b/docs/activities/development-guides.mdx @@ -164,7 +164,7 @@ https://funky-jogging-bunny.trycloudflare.com In the Discord Developer Portal, update the Application URL mapping for `/` url to `funky-jogging-bunny.trycloudflare.com` to match your network tunnel address and save your changes. -![Configuring your URL Mapping](activities/url-mapping-tutorial.png) +![Configuring your URL Mapping](activities/url-mapping-tutorial.webp) > warn > If you do not own the URL that you are using to host the application (i.e. ngrok's free tier), someone else could claim that domain and host a malicious site in its place. Please be aware of these risks, and if you have to use a domain you do not own, be sure to reset your URL mapping when you are done using the tunnel. @@ -218,7 +218,7 @@ Because your application is "sandboxed", it will be unable to make network reque To add or modify your application's URL mappings, click on `Activities -> URL Mappings` and set the prefix and target values for each mapping as needed. -![Configuring your URL Mapping](activities/url-mapping-tutorial.png) +![Configuring your URL Mapping](activities/url-mapping-tutorial.webp) #### Prefix/Target formatting rules @@ -233,7 +233,7 @@ To add or modify your application's URL mappings, click on `Activities -> URL Ma | ✅ DO | ❌ DON'T | |------------------------------------------------------|------------------------------------------------------------| | Requests mapped correctly | Requests to /foo/bar will incorrectly be sent to `foo.com` | -| ![url-mapping-do.png](activities/url-mapping-do.png) | ![url-mapping-dont.png](activities/url-mapping-dont.png) | +| ![url-mapping-do.png](activities/url-mapping-do.webp) | ![url-mapping-dont.png](activities/url-mapping-dont.png) | #### Exceptions @@ -338,7 +338,7 @@ discordSdk.commands.openExternalLink({ #### User Experience -![external-link-modal](activities/external-link-modal.png) +![external-link-modal](activities/external-link-modal.webp) Users will see a modal inside the Discord app notifying them whether or not they want to proceed. By clicking **_Trust this Domain_**, users will not see a modal for that specific domain again. @@ -373,7 +373,7 @@ try { User Experience -![Invite Dialog UI](activities/invite-dialog.png) +![Invite Dialog UI](activities/invite-dialog.webp) Users will see a modal inside the Discord app allowing them to send an invite to a channel, friend, or copy an invite link to share manually. @@ -426,7 +426,7 @@ await discordSdk.commands.openShareMomentDialog({mediaUrl}); User Experience -![share-moment-dialog](activities/share-moment-dialog-example.png) +![share-moment-dialog](activities/share-moment-dialog-example.webp) --- @@ -494,7 +494,7 @@ console.log(`Hardware Acceleration is ${enabled === true ? 'enabled' : 'disabled #### User Experience -![encourage-hardware-acceleration-modal](activities/encourage-hardware-acceleration-modal.png) +![encourage-hardware-acceleration-modal](activities/encourage-hardware-acceleration-modal.webp) --- @@ -508,7 +508,7 @@ By default, your Activity will be launchable on web/desktop. To enable or disabl - Select `Activities` -> `Settings` in the left-side of the developer portal, or visit `https://discord.com/developers//embedded/settings` - From check the appropriate checkboxes in the developer portal, and save your changes -![supported-platforms](activities/supported-platforms.png) +![supported-platforms](activities/supported-platforms.webp) --- @@ -613,7 +613,7 @@ discordSdk.commands.setOrientationLockState({ It's also possible to configure an application with a default orientation lock state via the Developer Portal. Using this method, the Discord app will apply the orientation lock when launching the application before the SDK has been initialized. This can create a smoother application launch flow where the application starts in the correct orientation rather than switching to the correct orientation after some delay after the application requests an orientation lock via the SDK. The Developer Portal supports setting a different default orientation lock states for phones versus tablets. -![default-orientation-lock-state](activities/default_orientation_lock_state.png) +![default-orientation-lock-state](activities/default_orientation_lock_state.webp) #### Subscribing to Screen Orientation Updates @@ -764,7 +764,7 @@ Rest assured: other activities will not be able to make requests with your activ When a user clicks "Join Application", they expect to enter the same application that their friends are participating in. Whether the application is a shared drawing canvas, board game, collaborative playlist, or first-person shooter; the two users should have access to the same shared data. In this documentation, we refer to this shared data as an **application instance**. -![join-application](activities/join-application.png) +![join-application](activities/join-application.webp) The Embedded App SDK allows your app to talk bidirectionally with the Discord Client. The `instanceId` is necessary for your application, as well as Discord, to understand which unique instance of an application it is talking to. @@ -999,7 +999,7 @@ curl https://discord.com/api/applications/1215413995645968394/activity-instances With this API, the activity's backend can verify that a client is in fact in an instance of that activity before allowing the client to participate in any meaningful gameplay. How an activity implements "session verification" is left to the developer's discretion. The solution can be as granular as gating specific features or as binary as not returning the activity HTML except for valid sessions. In the below flow diagram, we show how the server can deliver the activity website, only for valid users in a valid activity instance: -![application-test-mode-prod](activities/activity-instance-validation.jpg) +![application-test-mode-prod](activities/activity-instance-validation.webp) --- diff --git a/docs/activities/overview.mdx b/docs/activities/overview.mdx index ff7b956c94..c5aaae3719 100644 --- a/docs/activities/overview.mdx +++ b/docs/activities/overview.mdx @@ -4,7 +4,7 @@ sidebar_label: Overview # Overview of Activities -![Building Discord Activities](activities/activities-hero.png) +![Building Discord Activities](activities/activities-hero.webp) **Activities** are multiplayer games and social experiences that can be launched in Discord. Activities can integrate with Discord features like user identity, voice and chat, profile data like Rich Presence, and native monetization. diff --git a/docs/change-log/2022-11-17-upcoming-application-command-permission-changes.md b/docs/change-log/2022-11-17-upcoming-application-command-permission-changes.md index 1213ddb54d..9b7e755126 100644 --- a/docs/change-log/2022-11-17-upcoming-application-command-permission-changes.md +++ b/docs/change-log/2022-11-17-upcoming-application-command-permission-changes.md @@ -70,7 +70,7 @@ If a command-level configuration does not exist for the given context, the syste Below is a simplified flowchart that illustrates how permissions will be applied by the Discord client after the new changes take effect. -![Flowchart with an overview of the new permissions configurations logic](new-permissions-flowchart.svg) +![Flowchart with an overview of the new permissions configurations logic](new-permissions-flowchart.webp) #### 2. `APPLICATION_COMMAND_PERMISSIONS_V2` Guild Feature diff --git a/docs/developer-tools/game-sdk.mdx b/docs/developer-tools/game-sdk.mdx index f754b0bbe3..318dd65834 100644 --- a/docs/developer-tools/game-sdk.mdx +++ b/docs/developer-tools/game-sdk.mdx @@ -232,11 +232,11 @@ You're ready to go! Check out the rest of the documentation for more info on how In your project folder, you'll want to make something like a "discord-files" folder, for organization. In that folder, copy all the `.h` and `.cpp` files from the zip. You want to include all the header and source files respectively in your project -![Correct Files](cpp-files-sdk.png) +![Correct Files](cpp-files-sdk.webp) In your project settings, you'll want to include the relevant library (e.g. `discord_game_sdk.dll.lib`) as an additional dependency. -![Linked Library](lib-linked-sdk.png) +![Linked Library](lib-linked-sdk.webp) - From there, you should be able to `#include "discord-files/discord.h"`, or whatever the path to that header file is, and have access to the code. @@ -1274,7 +1274,7 @@ Opens the overlay widget for voice settings for the currently connected applicat -![Screenshot of the Voice Settings modal for an application](game-overlay-sdk-voice-settings.png) +![Screenshot of the Voice Settings modal for an application](game-overlay-sdk-voice-settings.webp) Returns a `Discord.Result` via callback. diff --git a/docs/discord-social-sdk/design-guidelines/branding-guidelines.mdx b/docs/discord-social-sdk/design-guidelines/branding-guidelines.mdx index 7d27bb00ec..40c98bb17c 100644 --- a/docs/discord-social-sdk/design-guidelines/branding-guidelines.mdx +++ b/docs/discord-social-sdk/design-guidelines/branding-guidelines.mdx @@ -12,7 +12,7 @@ Download the Discord word-mark assets [discord.com/branding](https://discord.com Please do not edit, change, distort, recolor, or reconfigure the Discord logo. -![Discord Logo](social-sdk/design-guidelines/Brand-02.png) +![Discord Logo](social-sdk/design-guidelines/Brand-02.webp) ## Buttons @@ -26,7 +26,7 @@ The Flexible buttons are intended to be restyled to match the game's aesthetic ( These pre-styled buttons leverage colors vetted by our Design Systems team to pass contrast ratios across different backgrounds. -![Brand Buttons](social-sdk/design-guidelines/Brand-03.png) +![Brand Buttons](social-sdk/design-guidelines/Brand-03.webp) ## Spacing @@ -34,7 +34,7 @@ Ensure that there is adequate spacing between button text and the Discord logo a When using the Flexible button styling, ensure that your typeface's baseline and x-height are aligned to the Discord logo. -![Brand Spacing](social-sdk/design-guidelines/Brand-04.png) +![Brand Spacing](social-sdk/design-guidelines/Brand-04.webp) ## Resources diff --git a/docs/discord-social-sdk/design-guidelines/connection-points.mdx b/docs/discord-social-sdk/design-guidelines/connection-points.mdx index 5064e1634c..f62d0c5ed8 100644 --- a/docs/discord-social-sdk/design-guidelines/connection-points.mdx +++ b/docs/discord-social-sdk/design-guidelines/connection-points.mdx @@ -16,7 +16,7 @@ Discord's sign-in button is presented as the **primary option** to log-in for th Please use the [**Blurple Button**](#DOCS_DISCORD_SOCIAL_SDK_DESIGN_GUIDELINES_BRANDING_GUIDELINES/buttons) button styling for the sign-in connection point. -![Signing In](social-sdk/design-guidelines/ConnectionPoints-03.png) +![Signing In](social-sdk/design-guidelines/ConnectionPoints-03.webp) ## Friends list @@ -26,7 +26,7 @@ Select your preferred _button-styling_ for the friends list connection point (se After the player connects their account, the connection point is no longer visible. -![Friends List](social-sdk/design-guidelines/ConnectionPoints-04.png) +![Friends List](social-sdk/design-guidelines/ConnectionPoints-04.webp) ## Content Guidelines @@ -34,7 +34,7 @@ Please use the strings shown here within the relevant contexts. These connection point strings should be consistent across all games that use the Discord Social SDK to help the user build recognition, trust, and understanding when taking this action. -![Content Guidelines](social-sdk/design-guidelines/ConnectionPoints-05.png) +![Content Guidelines](social-sdk/design-guidelines/ConnectionPoints-05.webp) --- diff --git a/docs/discord-social-sdk/design-guidelines/consoles.mdx b/docs/discord-social-sdk/design-guidelines/consoles.mdx index 106295b0c9..7cbf77777a 100644 --- a/docs/discord-social-sdk/design-guidelines/consoles.mdx +++ b/docs/discord-social-sdk/design-guidelines/consoles.mdx @@ -14,7 +14,7 @@ Players expect a consistent Discord social experience across devices—whether o Console players **will need a secondary device** to experience the full benefits of the Discord Social SDK. -![Connect on console](social-sdk/design-guidelines/Consoles-02.jpg) +![Connect on console](social-sdk/design-guidelines/Consoles-02.webp) ## Connect to Discord on console @@ -24,25 +24,25 @@ Users will need to use a mobile device or computer in order to avoid the clunky A player without an existing Discord account can create one easily on the web. -![Connect on console](social-sdk/design-guidelines/Consoles-03.jpg) +![Connect on console](social-sdk/design-guidelines/Consoles-03.webp) Users can skip the device code screen by scanning the QR code with their mobile camera. They will be prompted to authorize the game. If the Discord app is not detected upon scanning, users are prompted to sign in and connect via the web browser. If a player does not wish to use the QR scan, they will need to go to discord.com/activate to enter the 8-digit code. -![connecting with your phone](social-sdk/design-guidelines/Consoles-04.jpg) +![connecting with your phone](social-sdk/design-guidelines/Consoles-04.webp) ## Chatting on console Game chat will be available for games who support the feature on consoles. However, unsupported rich media from Discord (i.e. attachments, polls, voice messages, etc.) should not include a clickable link icon. Similar to the auth flow, we do not want to encourage players to visit Discord in the console web browser—they should use secondary devices to view this content. -![chat on console](social-sdk/design-guidelines/Consoles-05.jpg) +![chat on console](social-sdk/design-guidelines/Consoles-05.webp) ## Friends list on console Please leverage the same [friends list guidelines](#DOCS_DISCORD_SOCIAL_SDK_DESIGN_GUIDELINES_UNIFIED_FRIENDS_LIST) previously documented in the playbook. There are no notable differences in the friends list on console in comparison to other devices. However, consoles do not support hover interactions so there needs to be console-friendly way for players to access secondary information (such as alternate identities) about friends in the list. -![chat on console](social-sdk/design-guidelines/Consoles-06.jpg) +![chat on console](social-sdk/design-guidelines/Consoles-06.webp) --- diff --git a/docs/discord-social-sdk/design-guidelines/direct-messages.mdx b/docs/discord-social-sdk/design-guidelines/direct-messages.mdx index 7a010ead70..e90012c272 100644 --- a/docs/discord-social-sdk/design-guidelines/direct-messages.mdx +++ b/docs/discord-social-sdk/design-guidelines/direct-messages.mdx @@ -19,14 +19,14 @@ If the user is **online elsewhere** and is not in the game client, their usernam Style the Discord logo to match a player's username color. The logo should feel tied to a user's identity, not the message content. -![Message styling](social-sdk/design-guidelines/DMs-03.png) +![Message styling](social-sdk/design-guidelines/DMs-03.webp) ## Unsupported rich media Regardless of whether a user has signed into Discord, unsupported rich media content should be paired with an **external link icon**. When content isn't clickable, don't show the icon. -![Unsupported rich media](social-sdk/design-guidelines/DMs-04.png) +![Unsupported rich media](social-sdk/design-guidelines/DMs-04.webp) --- diff --git a/docs/discord-social-sdk/design-guidelines/game-friends.mdx b/docs/discord-social-sdk/design-guidelines/game-friends.mdx index a382c3238c..73ab031d68 100644 --- a/docs/discord-social-sdk/design-guidelines/game-friends.mdx +++ b/docs/discord-social-sdk/design-guidelines/game-friends.mdx @@ -15,7 +15,7 @@ We've heard from players that they want more of a distinction between connection Users want more controls over how in-game relationships extend beyond the game client with communication, presence, and identity. -![User needs](social-sdk/design-guidelines/GameFriends-02.png) +![User needs](social-sdk/design-guidelines/GameFriends-02.webp) ## Game Friends — A new tier @@ -23,7 +23,7 @@ Discord is introducing a new tier of friendship called **Game Friends**. Game Friends are a way to create an in-game relationship with another player that provides all of the in-game benefits, but limits how the relationship extends outside the game. -![Game Friends](social-sdk/design-guidelines/GameFriends-03.png) +![Game Friends](social-sdk/design-guidelines/GameFriends-03.webp) ## Game vs Discord Friends @@ -35,13 +35,13 @@ A Game Friend **can reach Discord-connected friends outside the game** by DMing A Game Friend **cannot see your rich presence** beyond the game your friendship originated in. The exception is if both friends have their Discord accounts connected and are in a shared server. -![Game vs Discord Friends](social-sdk/design-guidelines/GameFriends-04.png) +![Game vs Discord Friends](social-sdk/design-guidelines/GameFriends-04.webp) ## Equally-weighted When adding a new friend, **present two options to players with "Game Friends" listed first**, since it's the more localized/limited friend-tier. Please ensure that neither type of friend is pre-selected in the UI — present them equally to the user (ordering aside for above reasons). -![Equally-weighted friend options](social-sdk/design-guidelines/GameFriends-05.png) +![Equally-weighted friend options](social-sdk/design-guidelines/GameFriends-05.webp) ## Adding friends @@ -49,31 +49,31 @@ If the user is not yet a friend, show both options of adding as either a Game or If a user is already your Game Friend, show the action to also add them on Discord. -![Adding friends](social-sdk/design-guidelines/GameFriends-06.png) +![Adding friends](social-sdk/design-guidelines/GameFriends-06.webp) ## Removing friends When removing a Game Friend or Discord Friend, show players the standard "Remove Friend" action. The SDK will remove the friend across whatever friendships are applicable. -![Removing friends](social-sdk/design-guidelines/GameFriends-07.png) +![Removing friends](social-sdk/design-guidelines/GameFriends-07.webp) ## Style guidelines When removing a Game Friend or Discord Friend, show players the standard "Remove Friend" action. The SDK will remove the friend across whatever friendships are applicable. -![Removing friends](social-sdk/design-guidelines/GameFriends-08.png) +![Removing friends](social-sdk/design-guidelines/GameFriends-08.webp) ## UX, not UI The visual styling of the "Add Friend" menu-items is not intended to be prescriptive. So long as both options are equally-weighted, please use whichever UI fits your game's needs. -![UX, not UI](social-sdk/design-guidelines/GameFriends-09.png) +![UX, not UI](social-sdk/design-guidelines/GameFriends-09.webp) ## Setting on Discord This mock showcases how the corresponding DM looks within Discord's UI. -![Removing friends](social-sdk/design-guidelines/GameFriends-10.png) +![Removing friends](social-sdk/design-guidelines/GameFriends-10.webp) --- diff --git a/docs/discord-social-sdk/design-guidelines/linked-channels.mdx b/docs/discord-social-sdk/design-guidelines/linked-channels.mdx index 93c5f18262..bcbc1223be 100644 --- a/docs/discord-social-sdk/design-guidelines/linked-channels.mdx +++ b/docs/discord-social-sdk/design-guidelines/linked-channels.mdx @@ -30,7 +30,7 @@ The official feature-name that will be reflected across the Discord client is "L Please use the string guidance from above: "Link \{groupChat\} to Discord." For interface, use whichever UI treatment that fits your game's needs. -![Linked channel style guidelines](social-sdk/design-guidelines/LinkedChannels-04.png) +![Linked channel style guidelines](social-sdk/design-guidelines/LinkedChannels-04.webp) ## Selecting a channel @@ -44,7 +44,7 @@ Please include the following in the selection UI: - List of **servers** and their nested **text-channels** with respective iconography (ie, private channel has a lock) - **Search bar** for channel-names -![Selecting a channel](social-sdk/design-guidelines/LinkedChannels-05.png) +![Selecting a channel](social-sdk/design-guidelines/LinkedChannels-05.webp) ## Setup warning @@ -52,7 +52,7 @@ Players can link channels with **limited access** on Discord. Doing so will allo Show a **warning** when a user is about to link to a channel with limited access. We strongly recommend you use the copy shown to the right image. -![Setup warning](social-sdk/design-guidelines/LinkedChannels-06.png) +![Setup warning](social-sdk/design-guidelines/LinkedChannels-06.webp) ## Success state & Entrypoint @@ -62,7 +62,7 @@ Separately, create a **persistent entrypoint** somewhere in the game UI. This pe [You can download the official "Linked Channels" channel-icon in our GitHub repository.](https://github.com/discord/discord-api-docs/blob/main/resources/discord-social-sdk) -![Success state & Entrypoint](social-sdk/design-guidelines/LinkedChannels-07.png) +![Success state & Entrypoint](social-sdk/design-guidelines/LinkedChannels-07.webp) ## Removing Channel Link diff --git a/docs/discord-social-sdk/design-guidelines/principles.mdx b/docs/discord-social-sdk/design-guidelines/principles.mdx index 6ac69c8e8f..a29b9188c5 100644 --- a/docs/discord-social-sdk/design-guidelines/principles.mdx +++ b/docs/discord-social-sdk/design-guidelines/principles.mdx @@ -13,31 +13,31 @@ sidebar_label: Principles This integration aims to bring value to the player's gaming experience. Branded connection points should highlight said value-add based on the context. -![Add Value for the Player](social-sdk/design-guidelines/Principle-03.png) +![Add Value for the Player](social-sdk/design-guidelines/Principle-03.webp) ## 2. Foster trust with Discord's brand Lean into Discord's visual-styling to establish trust through brand recognition. The more players that connect, the more robust the social graph is for the game. -![Foster trust with Discord's brand](social-sdk/design-guidelines/Principle-04.png) +![Foster trust with Discord's brand](social-sdk/design-guidelines/Principle-04.webp) ## 3. Promote Understanding through consistency Use consistent branding and user-flows across games to build expected behavior. We care about the UX, not the UI. -![Promote Understanding through consistency](social-sdk/design-guidelines/Principle-05.png) +![Promote Understanding through consistency](social-sdk/design-guidelines/Principle-05.webp) ## 4. Prioritize the player's immersion Our focus is on preserving the player's immersion in the game. There are no requirements to replicate Discord's UI. The visual-design should feel as seamlessly integrated into the game as our SDKs. -![Prioritize the player's immersion](social-sdk/design-guidelines/Principle-06.png) +![Prioritize the player's immersion](social-sdk/design-guidelines/Principle-06.webp) ## 5. Uphold data privacy, transparency, and control Each platform is in control and responsible for the data on their respective platforms. Players are informed of where their data shows up. -![Uphold data privacy, transparency, and control](social-sdk/design-guidelines/Principle-07.png) +![Uphold data privacy, transparency, and control](social-sdk/design-guidelines/Principle-07.webp) --- diff --git a/docs/discord-social-sdk/design-guidelines/provisional-accounts.mdx b/docs/discord-social-sdk/design-guidelines/provisional-accounts.mdx index 35539c04ab..b5414b5925 100644 --- a/docs/discord-social-sdk/design-guidelines/provisional-accounts.mdx +++ b/docs/discord-social-sdk/design-guidelines/provisional-accounts.mdx @@ -12,7 +12,7 @@ Not all users are going to link their Discord account to their game. This create The Discord Social SDK has built provisional accounts as a way for game-devs to create a lightweight, **limited Discord account** for unlinked users, so you can use the same APIs regardless of whether a user has connected their Discord account or not. -![Badge when online elsewhere](social-sdk/design-guidelines/Prov-02.png) +![Badge when online elsewhere](social-sdk/design-guidelines/Prov-02.webp) ## What is a provisional account? @@ -20,7 +20,7 @@ To players, a provisional account is simply a **standard account** that has yet The complexity around provisional accounts that game-developers have to handle are invisible to players in the game. -![What is a provisional account?](social-sdk/design-guidelines/Prov-03.png) +![What is a provisional account?](social-sdk/design-guidelines/Prov-03.webp) ## How provisional accounts look within the game @@ -28,7 +28,7 @@ Provisional accounts **won't have the Discord badge** by their username in the f Only players who've connected their Discord accounts and have provisional account friends from other games using the Discord Social SDK will see this state. -![How provisional accounts look within the game](social-sdk/design-guidelines/Prov-04.png) +![How provisional accounts look within the game](social-sdk/design-guidelines/Prov-04.webp) ## How provisional accounts look within Discord @@ -36,7 +36,7 @@ Provisional accounts will leverage **branded avatars** and **text-hints** on Dis Because provisional accounts have limited capabilities, for example, you cannot start a voice or video call with them, it's important to visually distinguish them from Discord users. -![How provisional accounts look within Discord](social-sdk/design-guidelines/Prov-05.png) +![How provisional accounts look within Discord](social-sdk/design-guidelines/Prov-05.webp) --- diff --git a/docs/discord-social-sdk/design-guidelines/signing-in.mdx b/docs/discord-social-sdk/design-guidelines/signing-in.mdx index cdf3cee5e0..7391f27ae0 100644 --- a/docs/discord-social-sdk/design-guidelines/signing-in.mdx +++ b/docs/discord-social-sdk/design-guidelines/signing-in.mdx @@ -17,7 +17,7 @@ The Discord Social SDK will support the user-journeys for those who already **ha A player can also proceed **without** connecting their Discord and continue onwards to playing their game. -![Overall Flow](social-sdk/design-guidelines/SigningIn-02.png) +![Overall Flow](social-sdk/design-guidelines/SigningIn-02.webp) ### Connecting your Discord account via Discord client (gif) @@ -31,7 +31,7 @@ A player can also proceed **without** connecting their Discord and continue onwa Discord's [Overlay](https://support.discord.com/hc/en-us/articles/217659737-Game-Overlay-101) feature can be used to enable authorization without ever leaving the game. This is available for games who support the feature. -![Overlay Authorization](social-sdk/design-guidelines/SigningIn-05.png) +![Overlay Authorization](social-sdk/design-guidelines/SigningIn-05.webp) ## Before the user connects @@ -45,7 +45,7 @@ This modal should include some of the key value props that the Discord Social SD - Show when player interacts with the friends list for the first time - Show in the authorization flow once a player taps the Discord connection point -![Before the user connects](social-sdk/design-guidelines/SigningIn-06.png) +![Before the user connects](social-sdk/design-guidelines/SigningIn-06.webp) ## After the user connects @@ -59,7 +59,7 @@ Include the following points sequentially in the game' s writing-style. Remove a - You can chat with your friends here and on Discord - It might take some time for your game friends to show up in your Discord -![After the user connects](social-sdk/design-guidelines/SigningIn-07.png) +![After the user connects](social-sdk/design-guidelines/SigningIn-07.webp) ## Error State @@ -69,7 +69,7 @@ Please include these key points sequentially in the game's writing-style: - We were unable to connect your Discord account - A call-to-action that redirects back to Discord with the initial authorization modal -![Error State](social-sdk/design-guidelines/SigningIn-08.png) +![Error State](social-sdk/design-guidelines/SigningIn-08.webp) --- diff --git a/docs/discord-social-sdk/design-guidelines/status-rich-presence.mdx b/docs/discord-social-sdk/design-guidelines/status-rich-presence.mdx index a1ff557cd6..da3c36a46e 100644 --- a/docs/discord-social-sdk/design-guidelines/status-rich-presence.mdx +++ b/docs/discord-social-sdk/design-guidelines/status-rich-presence.mdx @@ -16,11 +16,11 @@ By following this guide, you will learn how to: ## Core statuses, plus game-specific -![Core statuses, plus game-specific](social-sdk/design-guidelines/StatusPresence-02.png) +![Core statuses, plus game-specific](social-sdk/design-guidelines/StatusPresence-02.webp) ## Status matrix -![Status matrix](social-sdk/design-guidelines/StatusPresence-03.png) +![Status matrix](social-sdk/design-guidelines/StatusPresence-03.webp) ## Side-by-side @@ -28,7 +28,7 @@ Any of the **core statuses** (online, idle, DND, offline) will always be the sam You can customize the status icon, but custom icons will only render within the game. -![Side-by-side](social-sdk/design-guidelines/StatusPresence-04.png) +![Side-by-side](social-sdk/design-guidelines/StatusPresence-04.webp) ## Core style guidelines @@ -38,7 +38,7 @@ In other words, as long as the status colors read as yellow/green/red, and the s Avatars are not required. -![Core style guidelines](social-sdk/design-guidelines/StatusPresence-05.png) +![Core style guidelines](social-sdk/design-guidelines/StatusPresence-05.webp) ## Rich Presence @@ -46,7 +46,7 @@ The game developer should set rich presence — this will show in both the Disco Please refer to [**Setting Rich Presence**](#DOCS_DISCORD_SOCIAL_SDK_DEVELOPMENT_GUIDES_SETTING_RICH_PRESENCE) for more information on Rich Presence, such as other types of traits that can be included. -![Rich Presence](social-sdk/design-guidelines/StatusPresence-06.png) +![Rich Presence](social-sdk/design-guidelines/StatusPresence-06.webp) --- diff --git a/docs/discord-social-sdk/design-guidelines/unified-friends-list.mdx b/docs/discord-social-sdk/design-guidelines/unified-friends-list.mdx index af3aab3532..126207e5e3 100644 --- a/docs/discord-social-sdk/design-guidelines/unified-friends-list.mdx +++ b/docs/discord-social-sdk/design-guidelines/unified-friends-list.mdx @@ -25,7 +25,7 @@ The **Online — GameTitle** section shows friends who are online in the same ga The **Online — Elsewhere** section shows friends who are online but not in the same game. However, they can be messaged or invited to play the game. -![Sectioning Friends List](social-sdk/design-guidelines/UFL-02.png) +![Sectioning Friends List](social-sdk/design-guidelines/UFL-02.webp) ## Discord = Communication @@ -33,7 +33,7 @@ Show the Discord badge next to a player's name when they are **online elsewhere* The Discord logo represents **universal communication**. It aims to convey to users: “As a player, I know I can message or invite this friend to play a game anywhere Discord is present.” This means via phone, computer, and even console. -![Discord logo represents universal communication](social-sdk/design-guidelines/UFL-03.png) +![Discord logo represents universal communication](social-sdk/design-guidelines/UFL-03.webp) ## Identities @@ -43,7 +43,7 @@ If the friend does not own the game, use their **Discord Display Name**. If the friend does not own the game nor have a linked Discord account, fall back to their **Provisional identity**. -![Displaying different relationships](social-sdk/design-guidelines/UFL-04.png) +![Displaying different relationships](social-sdk/design-guidelines/UFL-04.webp) ## Examples of friends lists @@ -51,7 +51,7 @@ A player's **console ID** is effectively their **game ID**, as consoles require The examples to the right show how the hierarchy translates to consoles. -![Examples of friends lists](social-sdk/design-guidelines/UFL-05.png) +![Examples of friends lists](social-sdk/design-guidelines/UFL-05.webp) ## How did we land here? @@ -65,7 +65,7 @@ It's also **scalable** and **inclusive** of provisional accounts who do not have When referring to a player's Discord Identity, please use their **Discord Display Name**, and not their username. -![Discord display names](social-sdk/design-guidelines/UFL-07.png) +![Discord display names](social-sdk/design-guidelines/UFL-07.webp) ## Scaling to Multiple Platforms @@ -75,7 +75,7 @@ Prioritize player needs by elevating available players to the top of the friends Avoid friend-lists organized by company. This hierarchy dilutes the value-prop of putting online players first, in favor of platform delineation. -![Scaling to Multiple Platforms](social-sdk/design-guidelines/UFL-08.png) +![Scaling to Multiple Platforms](social-sdk/design-guidelines/UFL-08.webp) --- diff --git a/docs/discord-social-sdk/development-guides/account-linking-on-consoles.mdx b/docs/discord-social-sdk/development-guides/account-linking-on-consoles.mdx index aa40416d2c..c02193a394 100644 --- a/docs/discord-social-sdk/development-guides/account-linking-on-consoles.mdx +++ b/docs/discord-social-sdk/development-guides/account-linking-on-consoles.mdx @@ -49,7 +49,7 @@ Console users cannot authenticate via a web browser. Instead, they follow these The SDK can manage this process automatically or allow manual token handling. -![Authorization screen from using OpenAuthorizeDeviceScreen and GetTokenFromDevice](social-sdk/development-guides/authorize_device.png) +![Authorization screen from using OpenAuthorizeDeviceScreen and GetTokenFromDevice](social-sdk/development-guides/authorize_device.webp) --- @@ -142,7 +142,7 @@ client->OpenAuthorizeDeviceScreen(user_code); > info > You can also display the `verification_uri_complete` or `verification_uri` with `user_code` in your game's interface to allow the user to enter the code manually. -![Authorization screen from using OpenAuthorizeDeviceScreen and GetTokenFromDevice](social-sdk/development-guides/authorize_device.png) +![Authorization screen from using OpenAuthorizeDeviceScreen and GetTokenFromDevice](social-sdk/development-guides/authorize_device.webp) Once the user approves the authorization request from a web browser or their mobile device, the `device_code` from Step 1 is ready to be exchanged for an access token. diff --git a/docs/discord-social-sdk/development-guides/setting-rich-presence.mdx b/docs/discord-social-sdk/development-guides/setting-rich-presence.mdx index ed2cf9279a..825b7567aa 100644 --- a/docs/discord-social-sdk/development-guides/setting-rich-presence.mdx +++ b/docs/discord-social-sdk/development-guides/setting-rich-presence.mdx @@ -68,7 +68,7 @@ You can control how lines 2 and 3 are rendered in Discord, here's the breakdown: This diagram visually shows the field mapping: -![Graphical representation of the legend for rich presence details](rp-legend.png) +![Graphical representation of the legend for rich presence details](rp-legend.webp) > info > For tips on designing Rich Presence, take a look at the [Rich Presence best practices guide](#DOCS_RICH_PRESENCE_BEST_PRACTICES). @@ -79,7 +79,7 @@ This diagram visually shows the field mapping: The Rich Presence invite image appears when invites are sent for a 3rd party game or app using the Discord Social SDK. After uploading an invite image for your app, you can see a preview of it to the right (under "IRL Invite Image Example"). -![Rich Presence invite image in app settings](rich-presence-invite-image.png) +![Rich Presence invite image in app settings](rich-presence-invite-image.webp) --- @@ -89,7 +89,7 @@ While integrating Rich Presence, you'll likely want to upload custom art assets To add custom assets for Rich Presence, navigate to your app's settings and click Rich Presence on the left-hand sidebar. On the Art Assets page, you can upload two different types of assets. -![Rich Presence invite image in app settings](rich-presence-invite-image.png) +![Rich Presence invite image in app settings](rich-presence-invite-image.webp) Up to 300 custom assets can be added to your app for later use when setting Rich Presence for a Discord user. These assets can be anything that help orient others to what a user is doing inside of your Activity or 3rd party game. @@ -102,7 +102,7 @@ When uploading Rich Presence assets, **the asset keys will automatically be chan Once you've uploaded these assets, you can use the asset key to reference them in your code when [Setting Assets in Rich Presence](#DOCS_DISCORD_SOCIAL_SDK_DEVELOPMENT_GUIDES_SETTING_RICH_PRESENCE/setting-assets). -![Rich Presence assets in app settings](rich-presence-asset-images.png) +![Rich Presence assets in app settings](rich-presence-asset-images.webp) --- diff --git a/docs/discord-social-sdk/getting-started/partials/dylib-mac-error.mdx b/docs/discord-social-sdk/getting-started/partials/dylib-mac-error.mdx index 270a398c9b..82dd1feaff 100644 --- a/docs/discord-social-sdk/getting-started/partials/dylib-mac-error.mdx +++ b/docs/discord-social-sdk/getting-started/partials/dylib-mac-error.mdx @@ -1,14 +1,14 @@ On Mac you may get the error "libdiscord_partner_sdk.dylib" Not Opened because Apple couldn't verify it. If this happens press **Done** on the popup. -![Error](social-sdk/getting-started/partials/error.png) +![Error](social-sdk/getting-started/partials/error.webp) You'll need to open your **System Settings > Privacy & Security** and scroll down to the **Security** section. It will tell you "libdiscord_partner_sdk.dylib" was blocked to protect your Mac. Press **Open Anyway** and try running again. -![Settings](social-sdk/getting-started/partials/settings-security.png) +![Settings](social-sdk/getting-started/partials/settings-security.webp) Now when you get the pop up you'll have the option to select **Open Anyway** and it will be able to use it successfully. -![Open](social-sdk/getting-started/partials/open-anyway.png) +![Open](social-sdk/getting-started/partials/open-anyway.webp) \ No newline at end of file diff --git a/docs/discord-social-sdk/overview.mdx b/docs/discord-social-sdk/overview.mdx index 1891959048..b1eceac1a1 100644 --- a/docs/discord-social-sdk/overview.mdx +++ b/docs/discord-social-sdk/overview.mdx @@ -5,7 +5,7 @@ sidebar_label: Overview # Discord Social SDK -![Discord Social SDK](social-sdk/overview/social_sdk_header.png) +![Discord Social SDK](social-sdk/overview/social_sdk_header.webp) The Discord Social SDK allows you to integrate social features directly into your game. Build engaging, social experiences where players can connect, communicate, and play together, all while staying immersed in your game. diff --git a/docs/discovery/best-practices.md b/docs/discovery/best-practices.md index 4efa177e87..bfffa61fdb 100644 --- a/docs/discovery/best-practices.md +++ b/docs/discovery/best-practices.md @@ -24,7 +24,7 @@ There are a few places where you can define different descriptions of your app w On the **General Information** tab, there is a general **Description** field (max of 400 characters) that appears within your bot user's profile. When a new user clicks on your app within Discord, they'll see this description. -![App description on the General Information tab](bp-productpage-app-description.png) +![App description on the General Information tab](bp-productpage-app-description.webp) #### App Summary @@ -32,11 +32,11 @@ On the **App Directory** tab, the **Summary** field is a short description (max When writing your app's Summary, think about how to grab the user's attention and quickly convey the value of your app. Consider the following description: -![Poorly-written app Summary on the App Directory tab](bp-productpage-summary-bad.png) +![Poorly-written app Summary on the App Directory tab](bp-productpage-summary-bad.webp) While this could be true, it doesn’t really tell folks how the app makes servers better or more fun. The best descriptions start with an attention grabbing sentence that describes a problem a user might want to solve: -![Well-written app Summary on the App Directory tab](bp-productpage-summary-good.png) +![Well-written app Summary on the App Directory tab](bp-productpage-summary-good.webp) #### App Expanded Description @@ -68,7 +68,7 @@ After adding some images, make a quick screen recording to demonstrate your app Think of up to five words that describe your app and add them as tags (see image below for an example). Consider what categories your app would fit under or keywords users would type into the search bar when looking for apps to add to their servers. -![App tags which help categorize apps and make them more searchable](bp-productpage-tags.png) +![App tags which help categorize apps and make them more searchable](bp-productpage-tags.webp) ## Support Your Users diff --git a/docs/discovery/overview.mdx b/docs/discovery/overview.mdx index ecea146509..6fd6e32a85 100644 --- a/docs/discovery/overview.mdx +++ b/docs/discovery/overview.mdx @@ -17,7 +17,7 @@ The App Directory is a central hub where users can discover new apps. They can s - **Search**: Users can search for your app by name and install it. - **App Directory Product Page**: Share information about your app, including descriptions, images, videos, and links. -![Your Discord App Profile](discovery-app-directory-product-page.png) +![Your Discord App Profile](discovery-app-directory-product-page.webp) ### App Launcher @@ -26,7 +26,7 @@ The App Launcher lets users discover new apps through collections and search fro - **Search**: Your app will be available to search and install. - **Collections**: Includes Recent Apps, Installed Apps, Currated Apps, Partner Apps, and Promoted Apps. -![App Launcher in Discord](discovery-app-launcher.png) +![App Launcher in Discord](discovery-app-launcher.webp) #### App Launcher Collections can include: - **Recent Apps**: Apps you've recently used or installed will appear at the top of the App Launcher @@ -51,12 +51,12 @@ Once your app is discoverable, there are several ways users may find it through Create shareable links to your app's profile page, store page, or specific items. Share these links in Discord, emails, or on your website. -![A shared embed link in Discord for the Sandscape app](discovery-sharing-links.png) +![A shared embed link in Discord for the Sandscape app](discovery-sharing-links.webp) ### Rich Presence Use [Rich Presence](#DOCS_RICH_PRESENCE_OVERVIEW) to show what users are doing in your app, driving more users to discover it. -![Examples of Rich Presence data on Discord user profiles](rich-presence-examples.png) +![Examples of Rich Presence data on Discord user profiles](rich-presence-examples.webp) --- diff --git a/docs/interactions/application-commands.mdx b/docs/interactions/application-commands.mdx index 9baf3102b0..13cfee20c1 100644 --- a/docs/interactions/application-commands.mdx +++ b/docs/interactions/application-commands.mdx @@ -2,7 +2,7 @@ Application commands are native ways to interact with apps in the Discord client. There are 3 types of commands accessible in different interfaces: the chat input, a message's context menu (top-right menu or right-clicking in a message), and a user's context menu (right-clicking on a user). -![Client interfaces showing the different types of application commands](command-types.png) +![Client interfaces showing the different types of application commands](command-types.webp) ## Application Command Object @@ -610,7 +610,7 @@ We'll start by defining the top-level information for `/permissions`: } ``` -![A command with no arguments. It says /permissions](command.png) +![A command with no arguments. It says /permissions](command.webp) Now we have a command named `permissions`. We want this command to be able to affect users and roles. Rather than making two separate commands, we can use subcommand groups. We want to use subcommand groups here because we are grouping commands on a similar resource: `user` or `role`. @@ -680,7 +680,7 @@ Now that we've effectively made `user` and `role` "folders", we want to be able } ``` -![A command with grouped subcommands. It says /permissions user get](command-with-groups-subcommands.png) +![A command with grouped subcommands. It says /permissions user get](command-with-groups-subcommands.webp) Now, we need some arguments! If we chose `user`, we need to be able to pick a user; if we chose `role`, we need to be able to pick a role. We also want to be able to pick between guild-level permissions and channel-specific permissions. For that, we can use optional arguments: @@ -785,7 +785,7 @@ Now, we need some arguments! If we chose `user`, we need to be able to pick a us And, done! The JSON looks a bit complicated, but what we've ended up with is a single command that can be scoped to multiple actions, and then further scoped to a particular resource, and then even _further_ scope with optional arguments. Here's what it looks like all put together. -![A command with grouped subcommands and parameters. It says /permissions user get with arguments for a user and a channel.](command-with-groups-subcommands-parameters.png) +![A command with grouped subcommands and parameters. It says /permissions user get with arguments for a user and a channel.](command-with-groups-subcommands-parameters.webp) ## User Commands @@ -806,7 +806,7 @@ User commands are application commands that appear on the context menu (right cl } ``` -![An example user command. The context menu has an Apps section open to a High Five command](user-command.png) +![An example user command. The context menu has an Apps section open to a High Five command](user-command.webp) When someone uses a user command, your application will receive an interaction: @@ -897,7 +897,7 @@ Message commands are application commands that appear on the context menu (right } ``` -![An example message command. The context menu has an Apps section open to a Bookmark command](message-command.png) +![An example message command. The context menu has an Apps section open to a Bookmark command](message-command.webp) When someone uses a message command, your application will receive an interaction: @@ -980,7 +980,7 @@ When someone uses a message command, your application will receive an interactio An Entry Point command serves as the primary way for users to open an app's [Activity](#DOCS_ACTIVITIES_OVERVIEW) from the [App Launcher](https://support.discord.com/hc/articles/21334461140375-Using-Apps-on-Discord#h_01HRQSA6C8TRHS722P1H3HW1TV). For the Entry Point command to be visible to users, an app must have [Activities](#DOCS_ACTIVITIES_OVERVIEW) enabled. -![Entry Point command in App Launcher](command-entry-point.png) +![Entry Point command in App Launcher](command-entry-point.webp) ###### Example Entry Point Command diff --git a/docs/interactions/message-components.md b/docs/interactions/message-components.md index f0c7c78644..2ed95cbe75 100644 --- a/docs/interactions/message-components.md +++ b/docs/interactions/message-components.md @@ -118,7 +118,7 @@ Buttons come in a variety of styles to convey different types of actions. These | Link | 5 | grey, navigates to a URL | `url` | | Premium | 6 | blurple | `sku_id` | -![An image showing the different button styles](button-styles.png) +![An image showing the different button styles](button-styles.webp) When a user clicks on a button, your app will receive an [interaction](#DOCS_INTERACTIONS_RECEIVING_AND_RESPONDING/interaction-object) including the message the button was on: @@ -138,11 +138,11 @@ When a user clicks on a button, your app will receive an [interaction](#DOCS_INT Use different button styles to create a hierarchy. Use only one `Primary` button per group. -![Example showing one primary button per button group](multiple-buttons-example-1.png) +![Example showing one primary button per button group](multiple-buttons-example-1.webp) If there are multiple buttons of equal significance, use the `Secondary` button style for all buttons -![Example showing multiple buttons in a group with equal significance](multiple-buttons-example-2.png) +![Example showing multiple buttons in a group with equal significance](multiple-buttons-example-2.webp) ###### Premium Buttons @@ -154,7 +154,7 @@ Premium buttons will automatically have: - SKU price - 34 character max for this button. Longer titles will be truncated -![A premium button](premium-button.png) +![A premium button](premium-button.webp) ### Component Interaction Object @@ -237,7 +237,7 @@ Premium buttons will automatically have: Select menus are interactive components that allow users to select one or more options from a dropdown list in messages. On desktop, clicking on a select menu opens a dropdown-style UI; on mobile, tapping a select menu opens up a half-sheet with the options. -![A role select component on desktop](desktop-role-select-menu.png) +![A role select component on desktop](desktop-role-select-menu.webp) Select menus support single-select and multi-select behavior, meaning you can prompt a user to choose just one item from a list, or multiple. When a user finishes making their choice(s) by clicking out of the dropdown or closing the half-sheet, your app will receive an [interaction](#DOCS_INTERACTIONS_RECEIVING_AND_RESPONDING/interaction-object-interaction-structure). @@ -507,7 +507,7 @@ Text inputs are an interactive component that render in modals. They can be used When defining a text input component, you can set attributes to customize the behavior and appearance of it. However, not all attributes will be returned in the [text input interaction payload](#DOCS_INTERACTIONS_MESSAGE_COMPONENTS/text-input-object-text-input-interaction). -![A text input in a modal on desktop client](modal-desktop.png) +![A text input in a modal on desktop client](modal-desktop.webp) ###### Text Input Example diff --git a/docs/interactions/overview.mdx b/docs/interactions/overview.mdx index 8c3394a609..66c95b71cf 100644 --- a/docs/interactions/overview.mdx +++ b/docs/interactions/overview.mdx @@ -18,7 +18,7 @@ There are different types of interactions in your app's toolbelt that can pick a **[Application commands](#DOCS_INTERACTIONS_APPLICATION_COMMANDS)** provide users a native way to invoke an app in Discord. They often map to an app's core features or functionality. -![Command launcher in the Desktop client](overview-command-desktop.png) +![Command launcher in the Desktop client](overview-command-desktop.webp) When an app creates a command it can choose the command's type, which determines where it appears in the Discord client and the metadata the app will receive when the command is invoked. There are three types for application commands: @@ -33,7 +33,7 @@ Details about creating commands and handling command interactions are in the [Ap **[Message components](#DOCS_INTERACTIONS_MESSAGE_COMPONENTS)** are interactive elements that can be included in the content of a message that your app sends in Discord. -![Button message components in a message](overview-components.png) +![Button message components in a message](overview-components.webp) The main interactive components that apps can send in messages include: @@ -47,7 +47,7 @@ A list of all message components and details on sending and receiving component **[Modals](#DOCS_INTERACTIONS_RECEIVING_AND_RESPONDING/interaction-response-object-modal)** are single-user pop-up interfaces that allow apps to collect form-like data. Modals can only be opened in response to a user invoking one of your app's commands or message components. -![Modals in the Discord client](overview-modals.png) +![Modals in the Discord client](overview-modals.webp) The only interactive component that modals can contain are [text inputs](#DOCS_INTERACTIONS_MESSAGE_COMPONENTS/text-inputs), which allow users to fill out single-or-multi line form inputs. diff --git a/docs/monetization/managing-skus.mdx b/docs/monetization/managing-skus.mdx index aab128c3df..61cea85468 100644 --- a/docs/monetization/managing-skus.mdx +++ b/docs/monetization/managing-skus.mdx @@ -25,7 +25,7 @@ You can create multiple subscription tiers to offer different benefits at differ To support upgrading and downgrading between subscription tiers, see our guide on [Implementing App Subscriptions](#DOCS_MONETIZATION_IMPLEMENTING_APP_SUBSCRIPTIONS/supporting-upgrades-and-downgrades). -![Supporting multiple subscription tiers](multisub.png) +![Supporting multiple subscription tiers](multisub.webp) ### SKU Limitations @@ -54,7 +54,7 @@ Your list of benefits will displayed on your app's Store page, the App Directory - A name, max 80 characters - A description, max 160 characters -![Example of SKU benefits](sku-benefits.png) +![Example of SKU benefits](sku-benefits.webp) ### Pricing Your SKUs @@ -70,7 +70,7 @@ To set an icon using a standard Unicode emoji, enter the emoji in the `Unicode E > MacOS: `control + command + space bar` > Windows: `Windows + .` -![Set a unicode emoji](sku-unicode.png) +![Set a unicode emoji](sku-unicode.webp) @@ -82,7 +82,7 @@ To use a custom emoji, set a value for both fields: > info > You can find the ID of the emoji in the Discord app by escaping the emoji in a message with a backslash character `\`. For example, `\:uwu:` will render with the name and ID of the emoji. -![Set a custom emoji](sku-custom.png) +![Set a custom emoji](sku-custom.webp) --- @@ -167,13 +167,13 @@ Users can access an app's Store page from the Bot User's profile in a server. Th > Only subscriptions and items that have been published to the Store will be visible to users on the Store page. #### Accessing your Store page from a Bot User's Profile -![Accessing the store as a user](botuser-profile.png) +![Accessing the store as a user](botuser-profile.webp) #### Subscriptions in Your Store page -![Subscriptions in your Store View](multisub.png) +![Subscriptions in your Store View](multisub.webp) #### Items in Your Store page -![Items in your Store View](premium-items.png) +![Items in your Store View](premium-items.webp) --- @@ -186,7 +186,7 @@ You can link directly to a specific SKU using our Application Directory Store UR - When used in chat, it will render as a rich embed that allows users to launch a modal to view either the SKU details or checkout flow - When used as a direct URL in a browser, it will take the user to your product in the Application Directory on web -![Embed for direct link to SKU](sku_embed.png) +![Embed for direct link to SKU](sku_embed.webp) --- @@ -199,7 +199,7 @@ You can link directly to your Store page using our Application Directory Store U - When used in chat, it will render as a rich embed that allows users to launch a modal to your Store page - When used as a direct URL in a browser, it will take the user to your Store page in the Application Directory on web -![Embed for direct link to Store](store_embed.png) +![Embed for direct link to Store](store_embed.webp) --- @@ -226,4 +226,4 @@ return new JsonResponse({ }); ``` -![A premium button](premium-button.png) \ No newline at end of file +![A premium button](premium-button.webp) \ No newline at end of file diff --git a/docs/monetization/overview.mdx b/docs/monetization/overview.mdx index ed3f536c8f..968c471093 100644 --- a/docs/monetization/overview.mdx +++ b/docs/monetization/overview.mdx @@ -4,7 +4,7 @@ sidebar_label: Overview # Monetizing Your Discord App -![Monetizing Your Discord App](monetization-overview.png) +![Monetizing Your Discord App](monetization-overview.webp) ### Offer native payment and checkout in your app using our Monetization APIs. diff --git a/docs/quick-start/getting-started.mdx b/docs/quick-start/getting-started.mdx index b8c144318e..84d5f9da91 100644 --- a/docs/quick-start/getting-started.mdx +++ b/docs/quick-start/getting-started.mdx @@ -166,7 +166,7 @@ On the **Installation** page in the **Default Install Settings** section: - For **User Install**, add the `applications.commands` scope - For **Guild Install**, add the `applications.commands` scope and `bot` scope. When you select `bot`, a new **Permissions** menu will appear to select the bot user's permissions. Select any permissions that you may want for your app—for now, I'll just select `Send Messages`. -![Default Install Settings](getting-started-default-install.png) +![Default Install Settings](getting-started-default-install.webp) See a list of all [OAuth2 scopes](#DOCS_TOPICS_OAUTH2/shared-resources-oauth2-scopes), or read more on [permissions](#DOCS_TOPICS_PERMISSIONS) in the documentation. @@ -271,7 +271,7 @@ We'll use **Forwarding** URL as the publicly-accessible URL where Discord will s Go to your [app's settings](https://discord.com/developers/applications) and on the **General Information** page under **Interaction Endpoint URL**, paste your new ngrok forwarding URL and append `/interactions`. -![Interactions Endpoint URL](getting-started-interactions-endpoint.png) +![Interactions Endpoint URL](getting-started-interactions-endpoint.webp) Click **Save Changes** and ensure your endpoint is successfully verified. diff --git a/docs/quick-start/overview-of-apps.mdx b/docs/quick-start/overview-of-apps.mdx index 2b686bc4ea..4ce13e7583 100644 --- a/docs/quick-start/overview-of-apps.mdx +++ b/docs/quick-start/overview-of-apps.mdx @@ -4,7 +4,7 @@ sidebar_label: Overview of Apps # Overview of Discord Apps -![Overview of Apps](overview-of-apps-banner.png) +![Overview of Apps](overview-of-apps-banner.webp) Discord apps customize, extend, and enhance Discord for millions of users. Whether you're a developer interested in building an Activity, customizing servers, or integrating a game, apps are the container to bring your idea to life. diff --git a/docs/resources/poll.md b/docs/resources/poll.md index df4128b94d..08ba8eef0c 100644 --- a/docs/resources/poll.md +++ b/docs/resources/poll.md @@ -6,7 +6,7 @@ sidebar_label: Poll A poll is... well... a poll! It holds information about a poll! -![Example message containing a poll](example-poll.png) +![Example message containing a poll](example-poll.webp) ### Poll Object diff --git a/docs/rich-presence/best-practices.md b/docs/rich-presence/best-practices.md index 5ea0975f21..81877bec94 100644 --- a/docs/rich-presence/best-practices.md +++ b/docs/rich-presence/best-practices.md @@ -26,7 +26,7 @@ The data in your players’ profiles is the first thing that others on Discord w ###### Examples -![Example of a good rich presence string that is concise and easy to read compared to a bad string that is too long to fit on one line](rp-short-strings.png) +![Example of a good rich presence string that is concise and easy to read compared to a bad string that is too long to fit on one line](rp-short-strings.webp) ### Make it Actionable! @@ -36,7 +36,7 @@ The data in your players’ profiles is the first thing that others on Discord w ###### Examples -![Examples of good rich presence strings that show a game mode of "Ranked: Control Point" and that the user is "In Queue (2 of 3)" compared to a bad string that reads "Rank 9999"](rp-actionable.png) +![Examples of good rich presence strings that show a game mode of "Ranked: Control Point" and that the user is "In Queue (2 of 3)" compared to a bad string that reads "Rank 9999"](rp-actionable.webp) ### Use ALL of the fields (where applicable)! @@ -46,7 +46,7 @@ The data in your players’ profiles is the first thing that others on Discord w ###### Examples -![Example of a good rich presence string that takes advantage of storing less important information in tooltips compared to a bad string that is hard to read at a glance](rp-all-fields.png) +![Example of a good rich presence string that takes advantage of storing less important information in tooltips compared to a bad string that is hard to read at a glance](rp-all-fields.webp) ### Have interesting, expressive art! @@ -57,7 +57,7 @@ The data in your players’ profiles is the first thing that others on Discord w ###### Examples -![Example of a good rich presence icon that is clear and detailed compared to a bad icon that is too dark to see clearly](rp-good-art.png) +![Example of a good rich presence icon that is clear and detailed compared to a bad icon that is too dark to see clearly](rp-good-art.webp) ## Launch Checklist diff --git a/docs/rich-presence/overview.mdx b/docs/rich-presence/overview.mdx index a19f0a1da7..e9cd4b0202 100644 --- a/docs/rich-presence/overview.mdx +++ b/docs/rich-presence/overview.mdx @@ -4,7 +4,7 @@ sidebar_label: Overview # Overview of Rich Presence -![Examples of Rich Presence data on Discord user profiles](rich-presence-examples.png) +![Examples of Rich Presence data on Discord user profiles](rich-presence-examples.webp) Rich Presence lets you display actionable data in a Discord user's profile about what they're up to in your game or app. The data you choose to display is up to you—whether it's a user's score, the duration they've been playing your game, what they're listening to on your platform, or something else. @@ -63,7 +63,7 @@ The Rich Presence invite image appears when [invites](#DOCS_DEVELOPER_TOOLS_GAME > info > The invite image can be ignored if you're building using the [Embedded App SDK](#DOCS_RICH_PRESENCE_OVERVIEW/embedded-app-sdk). Invites sent using the Embedded App SDK's[`openInviteDialog()`](#DOCS_DEVELOPER_TOOLS_EMBEDDED_APP_SDK/openinvitedialog) use the Activity's cover art. -![Rich Presence invite image in app settings](rich-presence-invite-image.png) +![Rich Presence invite image in app settings](rich-presence-invite-image.webp) ### Assets @@ -76,7 +76,7 @@ If you need more than 300 custom assets or want to use images stored somewhere e When uploading Rich Presence assets, **the asset keys will automatically be changed to lowercase**. You can see this reflected in your app's settings after saving a newly-uploaded asset, and should keep it in mind when referencing any asset keys in your code. -![Rich Presence assets in app settings](rich-presence-asset-images.png) +![Rich Presence assets in app settings](rich-presence-asset-images.webp) ### Using the Visualizer diff --git a/docs/rich-presence/using-with-the-discord-social-sdk.mdx b/docs/rich-presence/using-with-the-discord-social-sdk.mdx index dc0a59162a..668d72f955 100644 --- a/docs/rich-presence/using-with-the-discord-social-sdk.mdx +++ b/docs/rich-presence/using-with-the-discord-social-sdk.mdx @@ -15,7 +15,7 @@ When developing a game, the [Discord Social SDK](#DOCS_DISCORD_SOCIAL_SDK_OVERVI Before we dig in, it's helpful to understand what Rich Presence data you can set when updating a user's presence data. Let's just take a look at what we're working with: -![Graphical representation of the legend for rich presence details](rp-legend.png) +![Graphical representation of the legend for rich presence details](rp-legend.webp) > info > For tips on designing Rich Presence, take a look at the [Rich Presence best practices guide](#DOCS_RICH_PRESENCE_BEST_PRACTICES). @@ -26,4 +26,4 @@ Check out our [Setting Rich Presence](#DOCS_DISCORD_SOCIAL_SDK_DEVELOPMENT_GUIDE - [Design Guidelines: Status & Rich Presence](#DOCS_DISCORD_SOCIAL_SDK_DESIGN_GUIDELINES_STATUS_RICH_PRESENCE) -![Rich Presence](social-sdk/design-guidelines/StatusPresence-06.png) +![Rich Presence](social-sdk/design-guidelines/StatusPresence-06.webp) diff --git a/docs/rich-presence/using-with-the-embedded-app-sdk.mdx b/docs/rich-presence/using-with-the-embedded-app-sdk.mdx index 1c222d1ef2..15067f84fd 100644 --- a/docs/rich-presence/using-with-the-embedded-app-sdk.mdx +++ b/docs/rich-presence/using-with-the-embedded-app-sdk.mdx @@ -19,7 +19,7 @@ The rest of the guide assumes you've already developed an [app](#DOCS_QUICK_STAR By default, when a user is connected to your Activity, the app's icon will appear on their profile. If the user viewing the profile has the ability to join, an "Ask to Join" button will be displayed as well. -![Example of default Rich Presence data for an Activity](default-presence-activities.png) +![Example of default Rich Presence data for an Activity](default-presence-activities.webp) While this is okay, it's pretty limited and doesn't provide much context about what a user is actually *doing* inside of the Activity. In the following sections, we'll take a look at what richer and more actionable presence can look like. @@ -27,7 +27,7 @@ While this is okay, it's pretty limited and doesn't provide much context about w Now let's see what custom presence data can look like when a user joins your Activity. The [types for these fields](#DOCS_RICH_PRESENCE_USING_WITH_THE_EMBEDDED_APP_SDK/setactivity-fields) and [examples](#DOCS_RICH_PRESENCE_USING_WITH_THE_EMBEDDED_APP_SDK/setactivity-example) are in the sections below, but for now let's just get an idea of what we're working with: -![Image of where Rich Presence data appears in Discord profiles for Activities](annotated-presence-data-activities.png) +![Image of where Rich Presence data appears in Discord profiles for Activities](annotated-presence-data-activities.webp) A few small things to note about the above image: 1. `large_image` and `small_image` are both in the `assets` object, which you can see below in the [table below](#DOCS_RICH_PRESENCE_USING_WITH_THE_EMBEDDED_APP_SDK/activity-partial-object). They're labeled with the object's keys to make it more clear how they appear in a Discord profile. @@ -96,7 +96,7 @@ Below is a table with many of the available fields for the activity partial. Som Now let's take a look at more of a real example. Take a look at the Rich Presence data below that is for an Activity: -![Example of a fake game's Rich Presence data](activities-presence-example.png) +![Example of a fake game's Rich Presence data](activities-presence-example.webp) To create this sort of Rich Presence, here is what the `setActivity()` code would look like: diff --git a/docs/rich-presence/using-with-the-game-sdk.mdx b/docs/rich-presence/using-with-the-game-sdk.mdx index f5c403693e..989e135ed4 100644 --- a/docs/rich-presence/using-with-the-game-sdk.mdx +++ b/docs/rich-presence/using-with-the-game-sdk.mdx @@ -18,7 +18,7 @@ Before we dig in, make sure you've gone through the guide on [Getting Started wi Before we dig in, it's helpful to understand what Rich Presence data you can set when updating a user's presence data. We'll explain the specific fields below, but for now let's just take a look at what we're working with: -![Graphical representation of the legend for rich presence details](rp-legend.png) +![Graphical representation of the legend for rich presence details](rp-legend.webp) | location | field name | notes | @@ -88,7 +88,7 @@ Now let's take a look at a code example for updating presence data. Our code sample in this section is based on the data from the example from before: -![Example of presence data with buttons](game-sdk-presence-example.png) +![Example of presence data with buttons](game-sdk-presence-example.webp) The **Ask to Join** button will be covered more in the following sections, but if you don't want it included, you can remove the `Party` and `Secret` fields. diff --git a/docs/topics/certified-devices.md b/docs/topics/certified-devices.md index 49c661a1b2..1441cd693a 100644 --- a/docs/topics/certified-devices.md +++ b/docs/topics/certified-devices.md @@ -12,7 +12,7 @@ I'm glad you asked! Yup, that's it. You give us the real-time info about any connected devices, and we'll handle the rest to make sure that anyone using your device will have an awesome experience. Your device will also have a `CERTIFIED` badge in Discord's audio settings, and really, who doesn't love badges? -![An example of how a certified device may be shown for an example audio input and output device](certified-device.png) +![An example of how a certified device may be shown for an example audio input and output device](certified-device.webp) ## Connecting diff --git a/docs/topics/teams.md b/docs/topics/teams.md index 48b34641d1..11ad008179 100644 --- a/docs/topics/teams.md +++ b/docs/topics/teams.md @@ -6,7 +6,7 @@ Teams are groups of developers (or other Discord users) who want to collaborate To create or be a member on a team, you must [enable 2FA for your Discord account](https://support.discord.com/hc/en-us/articles/219576828-Setting-up-Two-Factor-Authentication). After you have 2FA enabled, create a team by navigating to the [Teams page](https://discord.com/developers/teams) then clicking the "New Team" button. -![Screenshot of the Teams page](team-page.png) +![Screenshot of the Teams page](team-page.webp) Once you create a team, you'll land on the **Team Information** page where you can fill out details and start inviting other Discord users to join your team. Since users added to a team have access to any apps that team owns, use caution when adding new team members. @@ -21,7 +21,7 @@ Once your team is set up, you can create or transfer apps that will be owned by To create a new app that belongs to a team, select the team from the **Team** dropdown in the app creation modal. If you want to keep the app under your own account's ownership, choose `Personal`: -![Screenshot of the create application modal with a Team selected](create-team-owned-app.png) +![Screenshot of the create application modal with a Team selected](create-team-owned-app.webp) ### Transferring an App @@ -30,7 +30,7 @@ To transfer an existing app to a team, navigate to the [Application](https://dis > danger > Once an app has been transferred to a team, it _cannot_ be transferred back. -![Screenshot of where to find the button to transfer an Application to a team](transfer-app-to-team.png) +![Screenshot of where to find the button to transfer an Application to a team](transfer-app-to-team.webp) ## Team Member Roles diff --git a/docs/tutorials/configuring-app-metadata-for-linked-roles.md b/docs/tutorials/configuring-app-metadata-for-linked-roles.md index 3534f0dd5a..979d843158 100644 --- a/docs/tutorials/configuring-app-metadata-for-linked-roles.md +++ b/docs/tutorials/configuring-app-metadata-for-linked-roles.md @@ -57,7 +57,7 @@ To start, [remix (or clone) the Glitch project 🎏](https://glitch.com/edit/#!/ When you remix the project, you'll see a new Glitch project with a unique name similar to this: -![Glitch Remix](linked-roles-glitch.png) +![Glitch Remix](linked-roles-glitch.webp) #### Project structure @@ -88,11 +88,11 @@ First, copy your bot user’s token from earlier and paste it in the `DISCORD_TO Next, navigate to your app settings in the developer portal, and navigate to OAuth2 -> General. Copy the Client ID and Client Secret for your application, and paste the values as `DISCORD_CLIENT_ID` and `DISCORD_CLIENT_SECRET` in your `.env`. -![Configure OAuth2](linked-roles-oauth-config.png) +![Configure OAuth2](linked-roles-oauth-config.webp) Now, we need to set the Redirect URL that will be used for our OAuth2 flow. Go back to Glitch, and click the `Share` button for your project. Copy the public live URL for your app: -![Glitch Share](linked-roles-glitch-share-url.png) +![Glitch Share](linked-roles-glitch-share-url.webp) Go back to the OAuth2 -> General tab in the Discord developer portal, and add a new redirect for your app using the Glitch URL and the `/discord-oauth-callback` route. Copy this URL, then paste it as `DISCORD_REDIRECT_URI` in your `.env`. @@ -101,7 +101,7 @@ Go to the General Information tab in the developer portal, and scroll down to th > info > For the Glitch project used in the screenshots, the verification URL would be `https://adjoining-crawling-yamamomo.glitch.me/linked-role` -![Verify endpoint](linked-roles-verify-endpoint.png) +![Verify endpoint](linked-roles-verify-endpoint.webp) Finally, to generate a unique cookie secret, go back to Glitch, and click on the `Terminal` tab. Run the following commands: @@ -132,7 +132,7 @@ Go back to Glitch, click the **terminal** tab, and run the following command: $ node src/register.js ``` -![Register Metadata Schema](linked-roles-register.png) +![Register Metadata Schema](linked-roles-register.webp) ## Trying it out @@ -144,7 +144,7 @@ To try out the app, we'll create a linked role in a server where you have admin Give the role a name, save it, then click on `Links`. Click the `Add requirement` button, and you should see your bot in the list of available Apps. Click on it, and you will see a setup screen where you can configure specific criteria for your role. -![Verification Setup](linked-roles-verification-setup.png) +![Verification Setup](linked-roles-verification-setup.webp) ### Acquiring the role @@ -153,15 +153,15 @@ To acquire your newly created role, click the server name in the upper left corn > info > When you connect your account, one of the scopes requested in the OAuth flow is `role_connections.write`, which is required for an app to update a user's role connection information. -![Connect accounts](linked-roles-connect-account.png) +![Connect accounts](linked-roles-connect-account.webp) Click on the linked role criteria. This should lead to the Discord OAuth2 consent screen. Click `Authorize`, and then return to Discord. -![Consent Dialog](linked-roles-consent-dialog.png) +![Consent Dialog](linked-roles-consent-dialog.webp) After returning to Discord, you should see your account granted the linked role. -![Connected](linked-roles-connected.png) +![Connected](linked-roles-connected.webp) Finally, create a new private channel, and add the new linked role. diff --git a/docs/tutorials/developing-a-user-installable-app.mdx b/docs/tutorials/developing-a-user-installable-app.mdx index d299ba0a3d..500f12eeb6 100644 --- a/docs/tutorials/developing-a-user-installable-app.mdx +++ b/docs/tutorials/developing-a-user-installable-app.mdx @@ -114,7 +114,7 @@ Under the **Default Install Settings** section: After you've selected the scopes and permissions for your app, click **Save Changes**. -![Installation settings in App Settings](user-install-settings.png) +![Installation settings in App Settings](user-install-settings.webp) ### Installing your app @@ -345,7 +345,7 @@ Message component interactions can be triggered by any user the component is vis Consider we added a new `/game` command supported in the `USER_INSTALL` installation context that a user could trigger to send a message to whatever guild or group DM they're in to ask others if they're interested in joining a game match: -![Sample game command response](user-install-game-message.png) +![Sample game command response](user-install-game-message.webp) When someone clicks on the button, our app would care about two users when handling the interaction: 1. User B, who clicked the "Join" button so our app can track who is interested in joining the match diff --git a/docs/tutorials/hosting-on-cloudflare-workers.md b/docs/tutorials/hosting-on-cloudflare-workers.md index c68cb9a08e..a3d1009628 100644 --- a/docs/tutorials/hosting-on-cloudflare-workers.md +++ b/docs/tutorials/hosting-on-cloudflare-workers.md @@ -30,7 +30,7 @@ To start, we'll create the app through the [Discord Developer Dashboard](https:/ - Click `New Application`, and choose a name - Copy your **Public Key** and **Application ID**, and put them somewhere locally (we'll need these later) -![IDs found in app settings](cloudflare-general-overview.png) +![IDs found in app settings](cloudflare-general-overview.webp) - Now click on the **Bot** tab on the left sidebar. - Grab the `token` for your bot, and store it somewhere safe (I like to put these tokens in a password manager like [1password](https://1password.com/) or [lastpass](https://www.lastpass.com/)). @@ -45,7 +45,7 @@ Now we'll configure the bot with [permissions](#DOCS_TOPICS_PERMISSIONS) require - Click on the `OAuth2` tab, and choose the `URL Generator`. Click the `bot` and `applications.commands` scopes. - Check the boxes next to `Send Messages` and `Use Slash Commands`, then copy the `Generated URL`. -![Configuring bot permissions in app settings](cloudflare-url-generator.png) +![Configuring bot permissions in app settings](cloudflare-url-generator.webp) - Paste the URL into the browser and follow the OAuth flow, selecting the server where you'd like to develop and test your bot. @@ -211,13 +211,13 @@ When a user types a slash command, Discord will send an HTTP request to a public $ npm run ngrok ``` -![ngrok forwarding address](cloudflare-ngrok.png) +![ngrok forwarding address](cloudflare-ngrok.webp) This is going to bounce requests off of an external endpoint, and forward them to your machine. Copy the HTTPS link provided by the tool. It should look something like `https://8098-24-22-245-250.ngrok.io`. Now head back to the Discord Developer Dashboard, and update the `Interactions Endpoint URL` for your app: -![Interactions Endpoint URL](cloudflare-interactions-endpoint.png) +![Interactions Endpoint URL](cloudflare-interactions-endpoint.webp) This is the process we'll use for local testing and development. When you've published your app to Cloudflare, you will **want to update this field to use your Cloudflare Worker URL.** diff --git a/docs/tutorials/upgrading-to-application-commands.md b/docs/tutorials/upgrading-to-application-commands.md index 36beb10e11..9b66a1387b 100644 --- a/docs/tutorials/upgrading-to-application-commands.md +++ b/docs/tutorials/upgrading-to-application-commands.md @@ -8,7 +8,7 @@ As [message content has become a privileged intent](https://support-dev.discord. This guide is intended to provide developers with apps currently using message content with a resource to walk through implementing and designing commands. Throughout the guide, the terms "application commands" and "commands" are used interchangeably. -![Client interfaces showing the different types of application commands](command-types.png) +![Client interfaces showing the different types of application commands](command-types.webp) > info > If you are developing an app for the first time, the [commands documentation](#DOCS_INTERACTIONS_APPLICATION_COMMANDS) may be a more helpful resource for you. @@ -61,7 +61,7 @@ While most apps won’t need to register more than a handful of commands, apps c Command options is an optional field (`options`) that can be defined when creating commands. When used, options will display for the user to fill out during invocation. You can also provide dynamic option suggestions using the `autocomplete` field. Read more about options [in the documentation](#DOCS_INTERACTIONS_APPLICATION_COMMANDS/application-command-object-application-command-option-structure). -![Slash command using options](slash-command-options.png) +![Slash command using options](slash-command-options.webp) ### Using Subcommands to Group Actions @@ -152,7 +152,7 @@ However, before adding your URL to your app settings, your endpoint must be set After your URL is set up to handle signature verification and `PING` requests, you can add your Interaction Endpoint URL by navigating to your app settings from the [developer portal](https://discord.com/developers/applications). On the **General Information** page, you’ll see a field for your **Interactions Endpoint URL**. -![Interactions endpoint URL in app settings](interactions-url.png) +![Interactions endpoint URL in app settings](interactions-url.webp) After you paste your URL and click **Save Changes**, Discord will attempt to verify your endpoint. @@ -265,7 +265,7 @@ For a `/search` command that searches an external service, an app could respond Ephemeral messages can also contain message components, so when relevant, there could be a button to share the information in the ephemeral message to a channel. -![Example of ephemeral message to show search results](examples-ephemeral-message.png) +![Example of ephemeral message to show search results](examples-ephemeral-message.webp) ## Onboarding Users @@ -286,7 +286,7 @@ You can also inform users about changes within the servers your app is installed The following is an example of an app update that may be sent to communicate the new way to access commands. Depending on the different features your app adopts (like options, subcommands, permissions, etc.), an update message or changelog entry will look very different. -![Example message updating users about a new feature](examples-update-message.png) +![Example message updating users about a new feature](examples-update-message.webp) ### Making Help Available diff --git a/images/API_center.gif b/images/API_center.gif deleted file mode 100644 index c22e319897..0000000000 Binary files a/images/API_center.gif and /dev/null differ diff --git a/images/activities-presence-example.png b/images/activities-presence-example.png deleted file mode 100644 index a88c5cf2ad..0000000000 Binary files a/images/activities-presence-example.png and /dev/null differ diff --git a/images/activities-presence-example.webp b/images/activities-presence-example.webp new file mode 100644 index 0000000000..6ce643e009 Binary files /dev/null and b/images/activities-presence-example.webp differ diff --git a/images/activities/activities-hero.png b/images/activities/activities-hero.png deleted file mode 100644 index 9329eab77d..0000000000 Binary files a/images/activities/activities-hero.png and /dev/null differ diff --git a/images/activities/activities-hero.webp b/images/activities/activities-hero.webp new file mode 100644 index 0000000000..393694b1d7 Binary files /dev/null and b/images/activities/activities-hero.webp differ diff --git a/images/activities/activity-instance-validation.jpg b/images/activities/activity-instance-validation.jpg deleted file mode 100644 index 60c5f9edad..0000000000 Binary files a/images/activities/activity-instance-validation.jpg and /dev/null differ diff --git a/images/activities/activity-instance-validation.webp b/images/activities/activity-instance-validation.webp new file mode 100644 index 0000000000..afbb957259 Binary files /dev/null and b/images/activities/activity-instance-validation.webp differ diff --git a/images/activities/application-test-mode-prod.gif b/images/activities/application-test-mode-prod.gif index d765a258cb..1bd87ce4f0 100644 Binary files a/images/activities/application-test-mode-prod.gif and b/images/activities/application-test-mode-prod.gif differ diff --git a/images/activities/bobble-bash.png b/images/activities/bobble-bash.png deleted file mode 100644 index 3d0b67e526..0000000000 Binary files a/images/activities/bobble-bash.png and /dev/null differ diff --git a/images/activities/bobble-bash.webp b/images/activities/bobble-bash.webp new file mode 100644 index 0000000000..f0429a929e Binary files /dev/null and b/images/activities/bobble-bash.webp differ diff --git a/images/activities/bobble-league.png b/images/activities/bobble-league.png deleted file mode 100644 index a23a1ada86..0000000000 Binary files a/images/activities/bobble-league.png and /dev/null differ diff --git a/images/activities/bobble-league.webp b/images/activities/bobble-league.webp new file mode 100644 index 0000000000..698fe89c88 Binary files /dev/null and b/images/activities/bobble-league.webp differ diff --git a/images/activities/chess-victory.png b/images/activities/chess-victory.png deleted file mode 100644 index 989999a8e8..0000000000 Binary files a/images/activities/chess-victory.png and /dev/null differ diff --git a/images/activities/chess-victory.webp b/images/activities/chess-victory.webp new file mode 100644 index 0000000000..c8f4186d5d Binary files /dev/null and b/images/activities/chess-victory.webp differ diff --git a/images/activities/debug-logs-filtering.gif b/images/activities/debug-logs-filtering.gif index 534bf60154..e0506c5591 100644 Binary files a/images/activities/debug-logs-filtering.gif and b/images/activities/debug-logs-filtering.gif differ diff --git a/images/activities/default_orientation_lock_state.png b/images/activities/default_orientation_lock_state.png deleted file mode 100644 index da92fe9d89..0000000000 Binary files a/images/activities/default_orientation_lock_state.png and /dev/null differ diff --git a/images/activities/default_orientation_lock_state.webp b/images/activities/default_orientation_lock_state.webp new file mode 100644 index 0000000000..6b8ab32e1a Binary files /dev/null and b/images/activities/default_orientation_lock_state.webp differ diff --git a/images/activities/developer-mode.gif b/images/activities/developer-mode.gif deleted file mode 100644 index e60333424f..0000000000 Binary files a/images/activities/developer-mode.gif and /dev/null differ diff --git a/images/activities/discord-activities.png b/images/activities/discord-activities.png deleted file mode 100644 index 1a5a12b561..0000000000 Binary files a/images/activities/discord-activities.png and /dev/null differ diff --git a/images/activities/eights.png b/images/activities/eights.png deleted file mode 100644 index 07bfb3525d..0000000000 Binary files a/images/activities/eights.png and /dev/null differ diff --git a/images/activities/eights.webp b/images/activities/eights.webp new file mode 100644 index 0000000000..e4bb77f247 Binary files /dev/null and b/images/activities/eights.webp differ diff --git a/images/activities/enable-activities.png b/images/activities/enable-activities.png deleted file mode 100644 index abef57bd2a..0000000000 Binary files a/images/activities/enable-activities.png and /dev/null differ diff --git a/images/activities/enable-activities.webp b/images/activities/enable-activities.webp new file mode 100644 index 0000000000..4b047bd4a4 Binary files /dev/null and b/images/activities/enable-activities.webp differ diff --git a/images/activities/encourage-hardware-acceleration-modal.png b/images/activities/encourage-hardware-acceleration-modal.png deleted file mode 100644 index a0dec6b4c5..0000000000 Binary files a/images/activities/encourage-hardware-acceleration-modal.png and /dev/null differ diff --git a/images/activities/encourage-hardware-acceleration-modal.webp b/images/activities/encourage-hardware-acceleration-modal.webp new file mode 100644 index 0000000000..2950ae0e0b Binary files /dev/null and b/images/activities/encourage-hardware-acceleration-modal.webp differ diff --git a/images/activities/external-link-modal.png b/images/activities/external-link-modal.png deleted file mode 100644 index df3a4e38e0..0000000000 Binary files a/images/activities/external-link-modal.png and /dev/null differ diff --git a/images/activities/external-link-modal.webp b/images/activities/external-link-modal.webp new file mode 100644 index 0000000000..1a968d2f04 Binary files /dev/null and b/images/activities/external-link-modal.webp differ diff --git a/images/activities/invite-dialog.png b/images/activities/invite-dialog.png deleted file mode 100644 index 2d6cd6888c..0000000000 Binary files a/images/activities/invite-dialog.png and /dev/null differ diff --git a/images/activities/invite-dialog.webp b/images/activities/invite-dialog.webp new file mode 100644 index 0000000000..9b2e6c524d Binary files /dev/null and b/images/activities/invite-dialog.webp differ diff --git a/images/activities/join-application.png b/images/activities/join-application.png deleted file mode 100644 index b6ef7fca77..0000000000 Binary files a/images/activities/join-application.png and /dev/null differ diff --git a/images/activities/join-application.webp b/images/activities/join-application.webp new file mode 100644 index 0000000000..bbd53205ef Binary files /dev/null and b/images/activities/join-application.webp differ diff --git a/images/activities/new-app.png b/images/activities/new-app.png deleted file mode 100644 index 9f3c1f5212..0000000000 Binary files a/images/activities/new-app.png and /dev/null differ diff --git a/images/activities/oauth2-details.png b/images/activities/oauth2-details.png deleted file mode 100644 index dda8689f1b..0000000000 Binary files a/images/activities/oauth2-details.png and /dev/null differ diff --git a/images/activities/oauth2-redirect.png b/images/activities/oauth2-redirect.png deleted file mode 100644 index 8fe6e7694e..0000000000 Binary files a/images/activities/oauth2-redirect.png and /dev/null differ diff --git a/images/activities/oauth2-redirect.webp b/images/activities/oauth2-redirect.webp new file mode 100644 index 0000000000..ba5bf620f2 Binary files /dev/null and b/images/activities/oauth2-redirect.webp differ diff --git a/images/activities/share-moment-dialog-example.png b/images/activities/share-moment-dialog-example.png deleted file mode 100644 index 4f695d9e89..0000000000 Binary files a/images/activities/share-moment-dialog-example.png and /dev/null differ diff --git a/images/activities/share-moment-dialog-example.webp b/images/activities/share-moment-dialog-example.webp new file mode 100644 index 0000000000..9ef281af59 Binary files /dev/null and b/images/activities/share-moment-dialog-example.webp differ diff --git a/images/activities/start-activity.png b/images/activities/start-activity.png deleted file mode 100644 index cb2634f363..0000000000 Binary files a/images/activities/start-activity.png and /dev/null differ diff --git a/images/activities/start-activity.webp b/images/activities/start-activity.webp new file mode 100644 index 0000000000..f56416f78a Binary files /dev/null and b/images/activities/start-activity.webp differ diff --git a/images/activities/supported-platforms.png b/images/activities/supported-platforms.png deleted file mode 100644 index 90d969cbed..0000000000 Binary files a/images/activities/supported-platforms.png and /dev/null differ diff --git a/images/activities/supported-platforms.webp b/images/activities/supported-platforms.webp new file mode 100644 index 0000000000..aa7542bb55 Binary files /dev/null and b/images/activities/supported-platforms.webp differ diff --git a/images/activities/tutorial-auth.png b/images/activities/tutorial-auth.png deleted file mode 100644 index ac542063ae..0000000000 Binary files a/images/activities/tutorial-auth.png and /dev/null differ diff --git a/images/activities/tutorial-auth.webp b/images/activities/tutorial-auth.webp new file mode 100644 index 0000000000..f1c56bf8a4 Binary files /dev/null and b/images/activities/tutorial-auth.webp differ diff --git a/images/activities/tutorial-channel-name.png b/images/activities/tutorial-channel-name.png deleted file mode 100644 index c85c9644ec..0000000000 Binary files a/images/activities/tutorial-channel-name.png and /dev/null differ diff --git a/images/activities/tutorial-channel-name.webp b/images/activities/tutorial-channel-name.webp new file mode 100644 index 0000000000..2fdf149d17 Binary files /dev/null and b/images/activities/tutorial-channel-name.webp differ diff --git a/images/activities/tutorial-hero.png b/images/activities/tutorial-hero.png deleted file mode 100644 index d9281681d0..0000000000 Binary files a/images/activities/tutorial-hero.png and /dev/null differ diff --git a/images/activities/tutorial-hero.webp b/images/activities/tutorial-hero.webp new file mode 100644 index 0000000000..ec2ed37b2f Binary files /dev/null and b/images/activities/tutorial-hero.webp differ diff --git a/images/activities/tutorial-launched.png b/images/activities/tutorial-launched.png deleted file mode 100644 index b7a16bd430..0000000000 Binary files a/images/activities/tutorial-launched.png and /dev/null differ diff --git a/images/activities/url-mapping-do.png b/images/activities/url-mapping-do.png deleted file mode 100644 index 3511e2743f..0000000000 Binary files a/images/activities/url-mapping-do.png and /dev/null differ diff --git a/images/activities/url-mapping-dont.png b/images/activities/url-mapping-dont.png deleted file mode 100644 index a7a3de4a01..0000000000 Binary files a/images/activities/url-mapping-dont.png and /dev/null differ diff --git a/images/activities/url-mapping-dont.webp b/images/activities/url-mapping-dont.webp new file mode 100644 index 0000000000..8627fae6c2 Binary files /dev/null and b/images/activities/url-mapping-dont.webp differ diff --git a/images/activities/url-mapping-tutorial.png b/images/activities/url-mapping-tutorial.png deleted file mode 100644 index 997d9a8f5d..0000000000 Binary files a/images/activities/url-mapping-tutorial.png and /dev/null differ diff --git a/images/activities/url-mapping-tutorial.webp b/images/activities/url-mapping-tutorial.webp new file mode 100644 index 0000000000..90d58baebb Binary files /dev/null and b/images/activities/url-mapping-tutorial.webp differ diff --git a/images/alerts.png b/images/alerts.png deleted file mode 100644 index 95aef2aeef..0000000000 Binary files a/images/alerts.png and /dev/null differ diff --git a/images/alerts.webp b/images/alerts.webp new file mode 100644 index 0000000000..6ce458f473 Binary files /dev/null and b/images/alerts.webp differ diff --git a/images/annotated-presence-data-activities.png b/images/annotated-presence-data-activities.png deleted file mode 100644 index 52f9bbb320..0000000000 Binary files a/images/annotated-presence-data-activities.png and /dev/null differ diff --git a/images/annotated-presence-data-activities.webp b/images/annotated-presence-data-activities.webp new file mode 100644 index 0000000000..1dcbb42893 Binary files /dev/null and b/images/annotated-presence-data-activities.webp differ diff --git a/images/app-add-bot.png b/images/app-add-bot.png deleted file mode 100644 index 6e5fc0bd34..0000000000 Binary files a/images/app-add-bot.png and /dev/null differ diff --git a/images/app-create-modal.png b/images/app-create-modal.png deleted file mode 100644 index 081015c09b..0000000000 Binary files a/images/app-create-modal.png and /dev/null differ diff --git a/images/ask-to-join.gif b/images/ask-to-join.gif deleted file mode 100644 index 1b717a197b..0000000000 Binary files a/images/ask-to-join.gif and /dev/null differ diff --git a/images/available-published.png b/images/available-published.png deleted file mode 100644 index 659fe6791c..0000000000 Binary files a/images/available-published.png and /dev/null differ diff --git a/images/botuser-profile.png b/images/botuser-profile.png deleted file mode 100644 index 016359e432..0000000000 Binary files a/images/botuser-profile.png and /dev/null differ diff --git a/images/botuser-profile.webp b/images/botuser-profile.webp new file mode 100644 index 0000000000..f6ad046140 Binary files /dev/null and b/images/botuser-profile.webp differ diff --git a/images/bp-productpage-app-description.png b/images/bp-productpage-app-description.png deleted file mode 100644 index c5f4902de1..0000000000 Binary files a/images/bp-productpage-app-description.png and /dev/null differ diff --git a/images/bp-productpage-app-description.webp b/images/bp-productpage-app-description.webp new file mode 100644 index 0000000000..8983dd864a Binary files /dev/null and b/images/bp-productpage-app-description.webp differ diff --git a/images/bp-productpage-summary-bad.png b/images/bp-productpage-summary-bad.png deleted file mode 100644 index fa5615a947..0000000000 Binary files a/images/bp-productpage-summary-bad.png and /dev/null differ diff --git a/images/bp-productpage-summary-bad.webp b/images/bp-productpage-summary-bad.webp new file mode 100644 index 0000000000..c3ef27ae79 Binary files /dev/null and b/images/bp-productpage-summary-bad.webp differ diff --git a/images/bp-productpage-summary-good.png b/images/bp-productpage-summary-good.png deleted file mode 100644 index ef23e5a8c6..0000000000 Binary files a/images/bp-productpage-summary-good.png and /dev/null differ diff --git a/images/bp-productpage-summary-good.webp b/images/bp-productpage-summary-good.webp new file mode 100644 index 0000000000..52ecbd3967 Binary files /dev/null and b/images/bp-productpage-summary-good.webp differ diff --git a/images/bp-productpage-tags.png b/images/bp-productpage-tags.png deleted file mode 100644 index 0598e3cffd..0000000000 Binary files a/images/bp-productpage-tags.png and /dev/null differ diff --git a/images/bp-productpage-tags.webp b/images/bp-productpage-tags.webp new file mode 100644 index 0000000000..c7532f7002 Binary files /dev/null and b/images/bp-productpage-tags.webp differ diff --git a/images/button-styles.png b/images/button-styles.png deleted file mode 100644 index f89e6e82ab..0000000000 Binary files a/images/button-styles.png and /dev/null differ diff --git a/images/button-styles.webp b/images/button-styles.webp new file mode 100644 index 0000000000..1b096c52b4 Binary files /dev/null and b/images/button-styles.webp differ diff --git a/images/certified-device.png b/images/certified-device.png deleted file mode 100644 index b3eb266027..0000000000 Binary files a/images/certified-device.png and /dev/null differ diff --git a/images/certified-device.webp b/images/certified-device.webp new file mode 100644 index 0000000000..6b552f2c14 Binary files /dev/null and b/images/certified-device.webp differ diff --git a/images/cloudflare-general-overview.png b/images/cloudflare-general-overview.png deleted file mode 100644 index eff35d6423..0000000000 Binary files a/images/cloudflare-general-overview.png and /dev/null differ diff --git a/images/cloudflare-general-overview.webp b/images/cloudflare-general-overview.webp new file mode 100644 index 0000000000..7e3fc515a1 Binary files /dev/null and b/images/cloudflare-general-overview.webp differ diff --git a/images/cloudflare-interactions-endpoint.png b/images/cloudflare-interactions-endpoint.png deleted file mode 100644 index 6d8017b517..0000000000 Binary files a/images/cloudflare-interactions-endpoint.png and /dev/null differ diff --git a/images/cloudflare-interactions-endpoint.webp b/images/cloudflare-interactions-endpoint.webp new file mode 100644 index 0000000000..872fefcd53 Binary files /dev/null and b/images/cloudflare-interactions-endpoint.webp differ diff --git a/images/cloudflare-ngrok.png b/images/cloudflare-ngrok.png deleted file mode 100644 index b64d99b137..0000000000 Binary files a/images/cloudflare-ngrok.png and /dev/null differ diff --git a/images/cloudflare-ngrok.webp b/images/cloudflare-ngrok.webp new file mode 100644 index 0000000000..c560d3c8ff Binary files /dev/null and b/images/cloudflare-ngrok.webp differ diff --git a/images/cloudflare-tutorial-demo.gif b/images/cloudflare-tutorial-demo.gif index e61bbd314d..16bf71acee 100644 Binary files a/images/cloudflare-tutorial-demo.gif and b/images/cloudflare-tutorial-demo.gif differ diff --git a/images/cloudflare-url-generator.png b/images/cloudflare-url-generator.png deleted file mode 100644 index 8e4bc8920f..0000000000 Binary files a/images/cloudflare-url-generator.png and /dev/null differ diff --git a/images/cloudflare-url-generator.webp b/images/cloudflare-url-generator.webp new file mode 100644 index 0000000000..05cb763e7b Binary files /dev/null and b/images/cloudflare-url-generator.webp differ diff --git a/images/command-entry-point.png b/images/command-entry-point.png deleted file mode 100644 index eb359e0560..0000000000 Binary files a/images/command-entry-point.png and /dev/null differ diff --git a/images/command-entry-point.webp b/images/command-entry-point.webp new file mode 100644 index 0000000000..0e762d933b Binary files /dev/null and b/images/command-entry-point.webp differ diff --git a/images/command-types.png b/images/command-types.png deleted file mode 100644 index f9e005b348..0000000000 Binary files a/images/command-types.png and /dev/null differ diff --git a/images/command-types.webp b/images/command-types.webp new file mode 100644 index 0000000000..049ca154e2 Binary files /dev/null and b/images/command-types.webp differ diff --git a/images/command-with-groups-subcommands-parameters.png b/images/command-with-groups-subcommands-parameters.png deleted file mode 100644 index 9c35a81e3d..0000000000 Binary files a/images/command-with-groups-subcommands-parameters.png and /dev/null differ diff --git a/images/command-with-groups-subcommands-parameters.webp b/images/command-with-groups-subcommands-parameters.webp new file mode 100644 index 0000000000..65699df99d Binary files /dev/null and b/images/command-with-groups-subcommands-parameters.webp differ diff --git a/images/command-with-groups-subcommands.png b/images/command-with-groups-subcommands.png deleted file mode 100644 index af77d45b2b..0000000000 Binary files a/images/command-with-groups-subcommands.png and /dev/null differ diff --git a/images/command-with-groups-subcommands.webp b/images/command-with-groups-subcommands.webp new file mode 100644 index 0000000000..b9fc0bdd78 Binary files /dev/null and b/images/command-with-groups-subcommands.webp differ diff --git a/images/command.png b/images/command.png deleted file mode 100644 index cc0c23e7c6..0000000000 Binary files a/images/command.png and /dev/null differ diff --git a/images/command.webp b/images/command.webp new file mode 100644 index 0000000000..a0ea60f96b Binary files /dev/null and b/images/command.webp differ diff --git a/images/cpp-files-sdk.png b/images/cpp-files-sdk.png deleted file mode 100644 index e2826574fd..0000000000 Binary files a/images/cpp-files-sdk.png and /dev/null differ diff --git a/images/cpp-files-sdk.webp b/images/cpp-files-sdk.webp new file mode 100644 index 0000000000..caccc80804 Binary files /dev/null and b/images/cpp-files-sdk.webp differ diff --git a/images/create-store-channel.png b/images/create-store-channel.png deleted file mode 100644 index d52fe6d56f..0000000000 Binary files a/images/create-store-channel.png and /dev/null differ diff --git a/images/create-team-owned-app.png b/images/create-team-owned-app.png deleted file mode 100644 index 722c4e18ee..0000000000 Binary files a/images/create-team-owned-app.png and /dev/null differ diff --git a/images/create-team-owned-app.webp b/images/create-team-owned-app.webp new file mode 100644 index 0000000000..ce44d42c45 Binary files /dev/null and b/images/create-team-owned-app.webp differ diff --git a/images/default-presence-activities.png b/images/default-presence-activities.png deleted file mode 100644 index 1fdbdb07da..0000000000 Binary files a/images/default-presence-activities.png and /dev/null differ diff --git a/images/default-presence-activities.webp b/images/default-presence-activities.webp new file mode 100644 index 0000000000..822420f020 Binary files /dev/null and b/images/default-presence-activities.webp differ diff --git a/images/deferred-example.png b/images/deferred-example.png deleted file mode 100644 index 99daf305b4..0000000000 Binary files a/images/deferred-example.png and /dev/null differ diff --git a/images/desktop-role-select-menu.png b/images/desktop-role-select-menu.png deleted file mode 100644 index 888324c85f..0000000000 Binary files a/images/desktop-role-select-menu.png and /dev/null differ diff --git a/images/desktop-role-select-menu.webp b/images/desktop-role-select-menu.webp new file mode 100644 index 0000000000..f88113f42c Binary files /dev/null and b/images/desktop-role-select-menu.webp differ diff --git a/images/desktop-select.png b/images/desktop-select.png deleted file mode 100644 index f18dc06fdb..0000000000 Binary files a/images/desktop-select.png and /dev/null differ diff --git a/images/discovery-app-directory-product-page.png b/images/discovery-app-directory-product-page.png deleted file mode 100644 index b780113b8e..0000000000 Binary files a/images/discovery-app-directory-product-page.png and /dev/null differ diff --git a/images/discovery-app-directory-product-page.webp b/images/discovery-app-directory-product-page.webp new file mode 100644 index 0000000000..f90180e8e0 Binary files /dev/null and b/images/discovery-app-directory-product-page.webp differ diff --git a/images/discovery-app-launcher.png b/images/discovery-app-launcher.png deleted file mode 100644 index 2f5427edfb..0000000000 Binary files a/images/discovery-app-launcher.png and /dev/null differ diff --git a/images/discovery-app-launcher.webp b/images/discovery-app-launcher.webp new file mode 100644 index 0000000000..1ba0126798 Binary files /dev/null and b/images/discovery-app-launcher.webp differ diff --git a/images/discovery-sharing-links.png b/images/discovery-sharing-links.png deleted file mode 100644 index 226d8cf100..0000000000 Binary files a/images/discovery-sharing-links.png and /dev/null differ diff --git a/images/discovery-sharing-links.webp b/images/discovery-sharing-links.webp new file mode 100644 index 0000000000..023e744753 Binary files /dev/null and b/images/discovery-sharing-links.webp differ diff --git a/images/docs-header.svg b/images/docs-header.svg deleted file mode 100644 index 6f9c4c6534..0000000000 --- a/images/docs-header.svg +++ /dev/null @@ -1,778 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/example-poll.png b/images/example-poll.png deleted file mode 100644 index 2c934fae52..0000000000 Binary files a/images/example-poll.png and /dev/null differ diff --git a/images/example-poll.webp b/images/example-poll.webp new file mode 100644 index 0000000000..4988d691ea Binary files /dev/null and b/images/example-poll.webp differ diff --git a/images/examples-ephemeral-message.png b/images/examples-ephemeral-message.png deleted file mode 100644 index 533742366f..0000000000 Binary files a/images/examples-ephemeral-message.png and /dev/null differ diff --git a/images/examples-ephemeral-message.webp b/images/examples-ephemeral-message.webp new file mode 100644 index 0000000000..38e28bbcc6 Binary files /dev/null and b/images/examples-ephemeral-message.webp differ diff --git a/images/examples-message-reactive.png b/images/examples-message-reactive.png deleted file mode 100644 index ebedccf797..0000000000 Binary files a/images/examples-message-reactive.png and /dev/null differ diff --git a/images/examples-update-message.png b/images/examples-update-message.png deleted file mode 100644 index 2cef949333..0000000000 Binary files a/images/examples-update-message.png and /dev/null differ diff --git a/images/examples-update-message.webp b/images/examples-update-message.webp new file mode 100644 index 0000000000..2833e90100 Binary files /dev/null and b/images/examples-update-message.webp differ diff --git a/images/game-overlay-sdk-voice-settings.png b/images/game-overlay-sdk-voice-settings.png deleted file mode 100644 index 169f732beb..0000000000 Binary files a/images/game-overlay-sdk-voice-settings.png and /dev/null differ diff --git a/images/game-overlay-sdk-voice-settings.webp b/images/game-overlay-sdk-voice-settings.webp new file mode 100644 index 0000000000..a60cd60399 Binary files /dev/null and b/images/game-overlay-sdk-voice-settings.webp differ diff --git a/images/game-overlay-sdk-voice-widget.png b/images/game-overlay-sdk-voice-widget.png deleted file mode 100644 index 53c4d4a27d..0000000000 Binary files a/images/game-overlay-sdk-voice-widget.png and /dev/null differ diff --git a/images/game-sdk-presence-example.png b/images/game-sdk-presence-example.png deleted file mode 100644 index 8d4c19144f..0000000000 Binary files a/images/game-sdk-presence-example.png and /dev/null differ diff --git a/images/game-sdk-presence-example.webp b/images/game-sdk-presence-example.webp new file mode 100644 index 0000000000..a2f16ab6df Binary files /dev/null and b/images/game-sdk-presence-example.webp differ diff --git a/images/gateway-lifecycle.svg b/images/gateway-lifecycle.svg index 34cedcf2b8..102a75997b 100644 --- a/images/gateway-lifecycle.svg +++ b/images/gateway-lifecycle.svg @@ -1,463 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/images/getting-started-default-install.png b/images/getting-started-default-install.png deleted file mode 100644 index a4315a2178..0000000000 Binary files a/images/getting-started-default-install.png and /dev/null differ diff --git a/images/getting-started-default-install.webp b/images/getting-started-default-install.webp new file mode 100644 index 0000000000..a990b3bd90 Binary files /dev/null and b/images/getting-started-default-install.webp differ diff --git a/images/getting-started-interactions-endpoint.png b/images/getting-started-interactions-endpoint.png deleted file mode 100644 index 0bc512d9ca..0000000000 Binary files a/images/getting-started-interactions-endpoint.png and /dev/null differ diff --git a/images/getting-started-interactions-endpoint.webp b/images/getting-started-interactions-endpoint.webp new file mode 100644 index 0000000000..ca8a9b2dcf Binary files /dev/null and b/images/getting-started-interactions-endpoint.webp differ diff --git a/images/gift-code-creation.png b/images/gift-code-creation.png deleted file mode 100644 index 72cace895a..0000000000 Binary files a/images/gift-code-creation.png and /dev/null differ diff --git a/images/glitch-project.png b/images/glitch-project.png deleted file mode 100644 index 6fe56ba1a6..0000000000 Binary files a/images/glitch-project.png and /dev/null differ diff --git a/images/heroku-baking.gif b/images/heroku-baking.gif deleted file mode 100644 index 73c7852e78..0000000000 Binary files a/images/heroku-baking.gif and /dev/null differ diff --git a/images/heroku-buildpack.png b/images/heroku-buildpack.png deleted file mode 100644 index 8e0b322924..0000000000 Binary files a/images/heroku-buildpack.png and /dev/null differ diff --git a/images/heroku-configVars.png b/images/heroku-configVars.png deleted file mode 100644 index ac265add0b..0000000000 Binary files a/images/heroku-configVars.png and /dev/null differ diff --git a/images/heroku-connectGH.png b/images/heroku-connectGH.png deleted file mode 100644 index e623b04e31..0000000000 Binary files a/images/heroku-connectGH.png and /dev/null differ diff --git a/images/heroku-deploy.png b/images/heroku-deploy.png deleted file mode 100644 index 04a210f2b9..0000000000 Binary files a/images/heroku-deploy.png and /dev/null differ diff --git a/images/heroku-dynos.png b/images/heroku-dynos.png deleted file mode 100644 index c94918170a..0000000000 Binary files a/images/heroku-dynos.png and /dev/null differ diff --git a/images/heroku-login.png b/images/heroku-login.png deleted file mode 100644 index 30e41f381c..0000000000 Binary files a/images/heroku-login.png and /dev/null differ diff --git a/images/heroku-logs.png b/images/heroku-logs.png deleted file mode 100644 index a73f32e3ee..0000000000 Binary files a/images/heroku-logs.png and /dev/null differ diff --git a/images/heroku-procfile.png b/images/heroku-procfile.png deleted file mode 100644 index 19c28e09c0..0000000000 Binary files a/images/heroku-procfile.png and /dev/null differ diff --git a/images/heroku-token.png b/images/heroku-token.png deleted file mode 100644 index c768547b08..0000000000 Binary files a/images/heroku-token.png and /dev/null differ diff --git a/images/interactions-url.png b/images/interactions-url.png deleted file mode 100644 index 5272bbbe84..0000000000 Binary files a/images/interactions-url.png and /dev/null differ diff --git a/images/interactions-url.webp b/images/interactions-url.webp new file mode 100644 index 0000000000..0e9322e291 Binary files /dev/null and b/images/interactions-url.webp differ diff --git a/images/lib-linked-sdk.png b/images/lib-linked-sdk.png deleted file mode 100644 index baa0cce836..0000000000 Binary files a/images/lib-linked-sdk.png and /dev/null differ diff --git a/images/lib-linked-sdk.webp b/images/lib-linked-sdk.webp new file mode 100644 index 0000000000..05e5c11ff7 Binary files /dev/null and b/images/lib-linked-sdk.webp differ diff --git a/images/linked-roles-connect-account.png b/images/linked-roles-connect-account.png deleted file mode 100644 index 6f30a20644..0000000000 Binary files a/images/linked-roles-connect-account.png and /dev/null differ diff --git a/images/linked-roles-connect-account.webp b/images/linked-roles-connect-account.webp new file mode 100644 index 0000000000..ba406f995d Binary files /dev/null and b/images/linked-roles-connect-account.webp differ diff --git a/images/linked-roles-connected.png b/images/linked-roles-connected.png deleted file mode 100644 index e0abee8d48..0000000000 Binary files a/images/linked-roles-connected.png and /dev/null differ diff --git a/images/linked-roles-connected.webp b/images/linked-roles-connected.webp new file mode 100644 index 0000000000..bb31486db6 Binary files /dev/null and b/images/linked-roles-connected.webp differ diff --git a/images/linked-roles-consent-dialog.png b/images/linked-roles-consent-dialog.png deleted file mode 100644 index 329163ec3e..0000000000 Binary files a/images/linked-roles-consent-dialog.png and /dev/null differ diff --git a/images/linked-roles-consent-dialog.webp b/images/linked-roles-consent-dialog.webp new file mode 100644 index 0000000000..295fc58714 Binary files /dev/null and b/images/linked-roles-consent-dialog.webp differ diff --git a/images/linked-roles-glitch-share-url.png b/images/linked-roles-glitch-share-url.png deleted file mode 100644 index e1ea49ba65..0000000000 Binary files a/images/linked-roles-glitch-share-url.png and /dev/null differ diff --git a/images/linked-roles-glitch-share-url.webp b/images/linked-roles-glitch-share-url.webp new file mode 100644 index 0000000000..132e0d617e Binary files /dev/null and b/images/linked-roles-glitch-share-url.webp differ diff --git a/images/linked-roles-glitch.png b/images/linked-roles-glitch.png deleted file mode 100644 index 88109b74d9..0000000000 Binary files a/images/linked-roles-glitch.png and /dev/null differ diff --git a/images/linked-roles-glitch.webp b/images/linked-roles-glitch.webp new file mode 100644 index 0000000000..daaac9d1c4 Binary files /dev/null and b/images/linked-roles-glitch.webp differ diff --git a/images/linked-roles-oauth-config.png b/images/linked-roles-oauth-config.png deleted file mode 100644 index fb66f047f1..0000000000 Binary files a/images/linked-roles-oauth-config.png and /dev/null differ diff --git a/images/linked-roles-oauth-config.webp b/images/linked-roles-oauth-config.webp new file mode 100644 index 0000000000..bdd46a13a6 Binary files /dev/null and b/images/linked-roles-oauth-config.webp differ diff --git a/images/linked-roles-register.png b/images/linked-roles-register.png deleted file mode 100644 index dfe6035886..0000000000 Binary files a/images/linked-roles-register.png and /dev/null differ diff --git a/images/linked-roles-register.webp b/images/linked-roles-register.webp new file mode 100644 index 0000000000..385745a735 Binary files /dev/null and b/images/linked-roles-register.webp differ diff --git a/images/linked-roles-verification-setup.png b/images/linked-roles-verification-setup.png deleted file mode 100644 index b0b29c4e5b..0000000000 Binary files a/images/linked-roles-verification-setup.png and /dev/null differ diff --git a/images/linked-roles-verification-setup.webp b/images/linked-roles-verification-setup.webp new file mode 100644 index 0000000000..c8a09555ee Binary files /dev/null and b/images/linked-roles-verification-setup.webp differ diff --git a/images/linked-roles-verify-endpoint.png b/images/linked-roles-verify-endpoint.png deleted file mode 100644 index 32f2f1775f..0000000000 Binary files a/images/linked-roles-verify-endpoint.png and /dev/null differ diff --git a/images/linked-roles-verify-endpoint.webp b/images/linked-roles-verify-endpoint.webp new file mode 100644 index 0000000000..c3be3272d9 Binary files /dev/null and b/images/linked-roles-verify-endpoint.webp differ diff --git a/images/mdx-button.png b/images/mdx-button.png deleted file mode 100644 index d0d3d9761c..0000000000 Binary files a/images/mdx-button.png and /dev/null differ diff --git a/images/mdx-button.webp b/images/mdx-button.webp new file mode 100644 index 0000000000..acbbe37c67 Binary files /dev/null and b/images/mdx-button.webp differ diff --git a/images/mdx-card.png b/images/mdx-card.png deleted file mode 100644 index ef094a3083..0000000000 Binary files a/images/mdx-card.png and /dev/null differ diff --git a/images/mdx-card.webp b/images/mdx-card.webp new file mode 100644 index 0000000000..7a2d85264f Binary files /dev/null and b/images/mdx-card.webp differ diff --git a/images/mdx-collapsible.png b/images/mdx-collapsible.png deleted file mode 100644 index be52e95c0c..0000000000 Binary files a/images/mdx-collapsible.png and /dev/null differ diff --git a/images/mdx-collapsible.webp b/images/mdx-collapsible.webp new file mode 100644 index 0000000000..ae73ef337f Binary files /dev/null and b/images/mdx-collapsible.webp differ diff --git a/images/message-command.png b/images/message-command.png deleted file mode 100644 index 096834662f..0000000000 Binary files a/images/message-command.png and /dev/null differ diff --git a/images/message-command.webp b/images/message-command.webp new file mode 100644 index 0000000000..5ec6caa9b6 Binary files /dev/null and b/images/message-command.webp differ diff --git a/images/mobile-select.png b/images/mobile-select.png deleted file mode 100644 index 860e211c04..0000000000 Binary files a/images/mobile-select.png and /dev/null differ diff --git a/images/modal-desktop.png b/images/modal-desktop.png deleted file mode 100644 index 0f94dabdf4..0000000000 Binary files a/images/modal-desktop.png and /dev/null differ diff --git a/images/modal-desktop.webp b/images/modal-desktop.webp new file mode 100644 index 0000000000..d213fe31f1 Binary files /dev/null and b/images/modal-desktop.webp differ diff --git a/images/monetization-eligibility.png b/images/monetization-eligibility.png deleted file mode 100644 index 500524d9c4..0000000000 Binary files a/images/monetization-eligibility.png and /dev/null differ diff --git a/images/monetization-interaction-response.png b/images/monetization-interaction-response.png deleted file mode 100644 index 93d1b3a9cf..0000000000 Binary files a/images/monetization-interaction-response.png and /dev/null differ diff --git a/images/monetization-overview.png b/images/monetization-overview.png deleted file mode 100644 index dc450ec99a..0000000000 Binary files a/images/monetization-overview.png and /dev/null differ diff --git a/images/monetization-overview.webp b/images/monetization-overview.webp new file mode 100644 index 0000000000..e326fadfd5 Binary files /dev/null and b/images/monetization-overview.webp differ diff --git a/images/monetization.png b/images/monetization.png deleted file mode 100644 index e5a0034eda..0000000000 Binary files a/images/monetization.png and /dev/null differ diff --git a/images/multiple-buttons-example-1.png b/images/multiple-buttons-example-1.png deleted file mode 100644 index fe8acdd25f..0000000000 Binary files a/images/multiple-buttons-example-1.png and /dev/null differ diff --git a/images/multiple-buttons-example-1.webp b/images/multiple-buttons-example-1.webp new file mode 100644 index 0000000000..29c4a6fbb9 Binary files /dev/null and b/images/multiple-buttons-example-1.webp differ diff --git a/images/multiple-buttons-example-2.png b/images/multiple-buttons-example-2.png deleted file mode 100644 index f646978dc0..0000000000 Binary files a/images/multiple-buttons-example-2.png and /dev/null differ diff --git a/images/multiple-buttons-example-2.webp b/images/multiple-buttons-example-2.webp new file mode 100644 index 0000000000..32907e8cb0 Binary files /dev/null and b/images/multiple-buttons-example-2.webp differ diff --git a/images/multisub.png b/images/multisub.png deleted file mode 100644 index 22349c2b4d..0000000000 Binary files a/images/multisub.png and /dev/null differ diff --git a/images/multisub.webp b/images/multisub.webp new file mode 100644 index 0000000000..3005a879ec Binary files /dev/null and b/images/multisub.webp differ diff --git a/images/new-permissions-flowchart.svg b/images/new-permissions-flowchart.svg deleted file mode 100644 index d946b97dd3..0000000000 --- a/images/new-permissions-flowchart.svg +++ /dev/null @@ -1,299 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/images/new-permissions-flowchart.webp b/images/new-permissions-flowchart.webp new file mode 100644 index 0000000000..2a962520c7 Binary files /dev/null and b/images/new-permissions-flowchart.webp differ diff --git a/images/overview-command-desktop.png b/images/overview-command-desktop.png deleted file mode 100644 index bcfef6e056..0000000000 Binary files a/images/overview-command-desktop.png and /dev/null differ diff --git a/images/overview-command-desktop.webp b/images/overview-command-desktop.webp new file mode 100644 index 0000000000..376c9ca870 Binary files /dev/null and b/images/overview-command-desktop.webp differ diff --git a/images/overview-components.png b/images/overview-components.png deleted file mode 100644 index ec24dd43df..0000000000 Binary files a/images/overview-components.png and /dev/null differ diff --git a/images/overview-components.webp b/images/overview-components.webp new file mode 100644 index 0000000000..1521be8355 Binary files /dev/null and b/images/overview-components.webp differ diff --git a/images/overview-modals.png b/images/overview-modals.png deleted file mode 100644 index 8f4bed5c57..0000000000 Binary files a/images/overview-modals.png and /dev/null differ diff --git a/images/overview-modals.webp b/images/overview-modals.webp new file mode 100644 index 0000000000..9a6c242056 Binary files /dev/null and b/images/overview-modals.webp differ diff --git a/images/overview-of-apps-banner.png b/images/overview-of-apps-banner.png deleted file mode 100644 index 08d4a7cb16..0000000000 Binary files a/images/overview-of-apps-banner.png and /dev/null differ diff --git a/images/overview-of-apps-banner.webp b/images/overview-of-apps-banner.webp new file mode 100644 index 0000000000..a212c8827f Binary files /dev/null and b/images/overview-of-apps-banner.webp differ diff --git a/images/premium-button.png b/images/premium-button.png deleted file mode 100644 index 8f566c20b2..0000000000 Binary files a/images/premium-button.png and /dev/null differ diff --git a/images/premium-button.webp b/images/premium-button.webp new file mode 100644 index 0000000000..f4ec1c4307 Binary files /dev/null and b/images/premium-button.webp differ diff --git a/images/premium-example.png b/images/premium-example.png deleted file mode 100644 index 92eb99ddfb..0000000000 Binary files a/images/premium-example.png and /dev/null differ diff --git a/images/premium-items.png b/images/premium-items.png deleted file mode 100644 index 1f813936af..0000000000 Binary files a/images/premium-items.png and /dev/null differ diff --git a/images/premium-items.webp b/images/premium-items.webp new file mode 100644 index 0000000000..80a7da4295 Binary files /dev/null and b/images/premium-items.webp differ diff --git a/images/premium-subscriptions.png b/images/premium-subscriptions.png deleted file mode 100644 index 362891c5e5..0000000000 Binary files a/images/premium-subscriptions.png and /dev/null differ diff --git a/images/previous-new-server-background.png b/images/previous-new-server-background.png deleted file mode 100644 index f35ebe93da..0000000000 Binary files a/images/previous-new-server-background.png and /dev/null differ diff --git a/images/rich-presence-asset-images.png b/images/rich-presence-asset-images.png deleted file mode 100644 index f859558940..0000000000 Binary files a/images/rich-presence-asset-images.png and /dev/null differ diff --git a/images/rich-presence-asset-images.webp b/images/rich-presence-asset-images.webp new file mode 100644 index 0000000000..bc0f86da8c Binary files /dev/null and b/images/rich-presence-asset-images.webp differ diff --git a/images/rich-presence-examples.png b/images/rich-presence-examples.png deleted file mode 100644 index d834cb7c87..0000000000 Binary files a/images/rich-presence-examples.png and /dev/null differ diff --git a/images/rich-presence-examples.webp b/images/rich-presence-examples.webp new file mode 100644 index 0000000000..5335d54f20 Binary files /dev/null and b/images/rich-presence-examples.webp differ diff --git a/images/rich-presence-invite-image.png b/images/rich-presence-invite-image.png deleted file mode 100644 index 03e18f46c8..0000000000 Binary files a/images/rich-presence-invite-image.png and /dev/null differ diff --git a/images/rich-presence-invite-image.webp b/images/rich-presence-invite-image.webp new file mode 100644 index 0000000000..c44c39aa39 Binary files /dev/null and b/images/rich-presence-invite-image.webp differ diff --git a/images/rp-actionable.png b/images/rp-actionable.png deleted file mode 100644 index bc19ffdb6b..0000000000 Binary files a/images/rp-actionable.png and /dev/null differ diff --git a/images/rp-actionable.webp b/images/rp-actionable.webp new file mode 100644 index 0000000000..90115fe485 Binary files /dev/null and b/images/rp-actionable.webp differ diff --git a/images/rp-all-fields.png b/images/rp-all-fields.png deleted file mode 100644 index 9778ef895a..0000000000 Binary files a/images/rp-all-fields.png and /dev/null differ diff --git a/images/rp-all-fields.webp b/images/rp-all-fields.webp new file mode 100644 index 0000000000..5adc2a0a98 Binary files /dev/null and b/images/rp-all-fields.webp differ diff --git a/images/rp-good-art.png b/images/rp-good-art.png deleted file mode 100644 index 20b38a03b4..0000000000 Binary files a/images/rp-good-art.png and /dev/null differ diff --git a/images/rp-good-art.webp b/images/rp-good-art.webp new file mode 100644 index 0000000000..9837de2a89 Binary files /dev/null and b/images/rp-good-art.webp differ diff --git a/images/rp-legend.png b/images/rp-legend.png deleted file mode 100644 index b0416341f0..0000000000 Binary files a/images/rp-legend.png and /dev/null differ diff --git a/images/rp-legend.webp b/images/rp-legend.webp new file mode 100644 index 0000000000..d5c671b304 Binary files /dev/null and b/images/rp-legend.webp differ diff --git a/images/rp-profile-example-1.png b/images/rp-profile-example-1.png deleted file mode 100644 index a91fc4ed51..0000000000 Binary files a/images/rp-profile-example-1.png and /dev/null differ diff --git a/images/rp-profile-example-2.png b/images/rp-profile-example-2.png deleted file mode 100644 index 8e4948ebb8..0000000000 Binary files a/images/rp-profile-example-2.png and /dev/null differ diff --git a/images/rp-short-strings.png b/images/rp-short-strings.png deleted file mode 100644 index 9ad0faa532..0000000000 Binary files a/images/rp-short-strings.png and /dev/null differ diff --git a/images/rp-short-strings.webp b/images/rp-short-strings.webp new file mode 100644 index 0000000000..3a1c6a8842 Binary files /dev/null and b/images/rp-short-strings.webp differ diff --git a/images/server-banner-example.png b/images/server-banner-example.png deleted file mode 100644 index b8b10a458a..0000000000 Binary files a/images/server-banner-example.png and /dev/null differ diff --git a/images/server-banner-margin-top.png b/images/server-banner-margin-top.png deleted file mode 100644 index 1ab9fca92e..0000000000 Binary files a/images/server-banner-margin-top.png and /dev/null differ diff --git a/images/sku-benefits.png b/images/sku-benefits.png deleted file mode 100644 index d3dc2d1af6..0000000000 Binary files a/images/sku-benefits.png and /dev/null differ diff --git a/images/sku-benefits.webp b/images/sku-benefits.webp new file mode 100644 index 0000000000..16b98ed8e5 Binary files /dev/null and b/images/sku-benefits.webp differ diff --git a/images/sku-configure.png b/images/sku-configure.png deleted file mode 100644 index e1088fb8c4..0000000000 Binary files a/images/sku-configure.png and /dev/null differ diff --git a/images/sku-custom.png b/images/sku-custom.png deleted file mode 100644 index b097389504..0000000000 Binary files a/images/sku-custom.png and /dev/null differ diff --git a/images/sku-custom.webp b/images/sku-custom.webp new file mode 100644 index 0000000000..274dc16286 Binary files /dev/null and b/images/sku-custom.webp differ diff --git a/images/sku-customization.png b/images/sku-customization.png deleted file mode 100644 index ef35607787..0000000000 Binary files a/images/sku-customization.png and /dev/null differ diff --git a/images/sku-management.png b/images/sku-management.png deleted file mode 100644 index 6aa92fc53e..0000000000 Binary files a/images/sku-management.png and /dev/null differ diff --git a/images/sku-publish.png b/images/sku-publish.png deleted file mode 100644 index 5d80dcd92e..0000000000 Binary files a/images/sku-publish.png and /dev/null differ diff --git a/images/sku-unicode.png b/images/sku-unicode.png deleted file mode 100644 index 41dedab409..0000000000 Binary files a/images/sku-unicode.png and /dev/null differ diff --git a/images/sku-unicode.webp b/images/sku-unicode.webp new file mode 100644 index 0000000000..db0bce6684 Binary files /dev/null and b/images/sku-unicode.webp differ diff --git a/images/sku_embed.png b/images/sku_embed.png deleted file mode 100644 index 1e9c198bc0..0000000000 Binary files a/images/sku_embed.png and /dev/null differ diff --git a/images/sku_embed.webp b/images/sku_embed.webp new file mode 100644 index 0000000000..f7c77de75a Binary files /dev/null and b/images/sku_embed.webp differ diff --git a/images/slash-command-options.png b/images/slash-command-options.png deleted file mode 100644 index d374d3229d..0000000000 Binary files a/images/slash-command-options.png and /dev/null differ diff --git a/images/slash-command-options.webp b/images/slash-command-options.webp new file mode 100644 index 0000000000..e392721a50 Binary files /dev/null and b/images/slash-command-options.webp differ diff --git a/images/snowflake.png b/images/snowflake.png deleted file mode 100644 index 3b23756f9c..0000000000 Binary files a/images/snowflake.png and /dev/null differ diff --git a/images/snowflake_original_size.png b/images/snowflake_original_size.png deleted file mode 100644 index fa39ff6156..0000000000 Binary files a/images/snowflake_original_size.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Brand-02.png b/images/social-sdk/design-guidelines/Brand-02.png deleted file mode 100644 index 02269ef229..0000000000 Binary files a/images/social-sdk/design-guidelines/Brand-02.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Brand-02.webp b/images/social-sdk/design-guidelines/Brand-02.webp new file mode 100644 index 0000000000..00e5e232f4 Binary files /dev/null and b/images/social-sdk/design-guidelines/Brand-02.webp differ diff --git a/images/social-sdk/design-guidelines/Brand-03.png b/images/social-sdk/design-guidelines/Brand-03.png deleted file mode 100644 index 42d0962df9..0000000000 Binary files a/images/social-sdk/design-guidelines/Brand-03.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Brand-03.webp b/images/social-sdk/design-guidelines/Brand-03.webp new file mode 100644 index 0000000000..b2959d2f8f Binary files /dev/null and b/images/social-sdk/design-guidelines/Brand-03.webp differ diff --git a/images/social-sdk/design-guidelines/Brand-04.png b/images/social-sdk/design-guidelines/Brand-04.png deleted file mode 100644 index 2fd7ab4caf..0000000000 Binary files a/images/social-sdk/design-guidelines/Brand-04.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Brand-04.webp b/images/social-sdk/design-guidelines/Brand-04.webp new file mode 100644 index 0000000000..4e0be1353c Binary files /dev/null and b/images/social-sdk/design-guidelines/Brand-04.webp differ diff --git a/images/social-sdk/design-guidelines/ConnectionPoints-02.png b/images/social-sdk/design-guidelines/ConnectionPoints-02.png deleted file mode 100644 index f33ce3fac1..0000000000 Binary files a/images/social-sdk/design-guidelines/ConnectionPoints-02.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/ConnectionPoints-03.png b/images/social-sdk/design-guidelines/ConnectionPoints-03.png deleted file mode 100644 index 85559c65fa..0000000000 Binary files a/images/social-sdk/design-guidelines/ConnectionPoints-03.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/ConnectionPoints-03.webp b/images/social-sdk/design-guidelines/ConnectionPoints-03.webp new file mode 100644 index 0000000000..db6e494ad2 Binary files /dev/null and b/images/social-sdk/design-guidelines/ConnectionPoints-03.webp differ diff --git a/images/social-sdk/design-guidelines/ConnectionPoints-04.png b/images/social-sdk/design-guidelines/ConnectionPoints-04.png deleted file mode 100644 index 89ce604340..0000000000 Binary files a/images/social-sdk/design-guidelines/ConnectionPoints-04.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/ConnectionPoints-04.webp b/images/social-sdk/design-guidelines/ConnectionPoints-04.webp new file mode 100644 index 0000000000..a8c90941a4 Binary files /dev/null and b/images/social-sdk/design-guidelines/ConnectionPoints-04.webp differ diff --git a/images/social-sdk/design-guidelines/ConnectionPoints-05.png b/images/social-sdk/design-guidelines/ConnectionPoints-05.png deleted file mode 100644 index 8c48aea151..0000000000 Binary files a/images/social-sdk/design-guidelines/ConnectionPoints-05.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/ConnectionPoints-05.webp b/images/social-sdk/design-guidelines/ConnectionPoints-05.webp new file mode 100644 index 0000000000..8f8fc11d4c Binary files /dev/null and b/images/social-sdk/design-guidelines/ConnectionPoints-05.webp differ diff --git a/images/social-sdk/design-guidelines/Consoles-01.jpg b/images/social-sdk/design-guidelines/Consoles-01.jpg deleted file mode 100644 index fdea7b4a67..0000000000 Binary files a/images/social-sdk/design-guidelines/Consoles-01.jpg and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Consoles-02.jpg b/images/social-sdk/design-guidelines/Consoles-02.jpg deleted file mode 100644 index 166b861220..0000000000 Binary files a/images/social-sdk/design-guidelines/Consoles-02.jpg and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Consoles-02.webp b/images/social-sdk/design-guidelines/Consoles-02.webp new file mode 100644 index 0000000000..8b1364b1e5 Binary files /dev/null and b/images/social-sdk/design-guidelines/Consoles-02.webp differ diff --git a/images/social-sdk/design-guidelines/Consoles-03.jpg b/images/social-sdk/design-guidelines/Consoles-03.jpg deleted file mode 100644 index 99ade45742..0000000000 Binary files a/images/social-sdk/design-guidelines/Consoles-03.jpg and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Consoles-03.webp b/images/social-sdk/design-guidelines/Consoles-03.webp new file mode 100644 index 0000000000..5f2c112133 Binary files /dev/null and b/images/social-sdk/design-guidelines/Consoles-03.webp differ diff --git a/images/social-sdk/design-guidelines/Consoles-04.jpg b/images/social-sdk/design-guidelines/Consoles-04.jpg deleted file mode 100644 index 0a4f506d1d..0000000000 Binary files a/images/social-sdk/design-guidelines/Consoles-04.jpg and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Consoles-04.webp b/images/social-sdk/design-guidelines/Consoles-04.webp new file mode 100644 index 0000000000..274cb3a430 Binary files /dev/null and b/images/social-sdk/design-guidelines/Consoles-04.webp differ diff --git a/images/social-sdk/design-guidelines/Consoles-05.jpg b/images/social-sdk/design-guidelines/Consoles-05.jpg deleted file mode 100644 index c654bd977b..0000000000 Binary files a/images/social-sdk/design-guidelines/Consoles-05.jpg and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Consoles-05.webp b/images/social-sdk/design-guidelines/Consoles-05.webp new file mode 100644 index 0000000000..51784455d0 Binary files /dev/null and b/images/social-sdk/design-guidelines/Consoles-05.webp differ diff --git a/images/social-sdk/design-guidelines/Consoles-06.jpg b/images/social-sdk/design-guidelines/Consoles-06.jpg deleted file mode 100644 index c889e587a5..0000000000 Binary files a/images/social-sdk/design-guidelines/Consoles-06.jpg and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Consoles-06.webp b/images/social-sdk/design-guidelines/Consoles-06.webp new file mode 100644 index 0000000000..90498c076e Binary files /dev/null and b/images/social-sdk/design-guidelines/Consoles-06.webp differ diff --git a/images/social-sdk/design-guidelines/DMs-02.png b/images/social-sdk/design-guidelines/DMs-02.png deleted file mode 100644 index 1f098307a4..0000000000 Binary files a/images/social-sdk/design-guidelines/DMs-02.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/DMs-03.png b/images/social-sdk/design-guidelines/DMs-03.png deleted file mode 100644 index ca7f6cb186..0000000000 Binary files a/images/social-sdk/design-guidelines/DMs-03.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/DMs-03.webp b/images/social-sdk/design-guidelines/DMs-03.webp new file mode 100644 index 0000000000..2d2b10bd49 Binary files /dev/null and b/images/social-sdk/design-guidelines/DMs-03.webp differ diff --git a/images/social-sdk/design-guidelines/DMs-04.png b/images/social-sdk/design-guidelines/DMs-04.png deleted file mode 100644 index 8e68feba8b..0000000000 Binary files a/images/social-sdk/design-guidelines/DMs-04.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/DMs-04.webp b/images/social-sdk/design-guidelines/DMs-04.webp new file mode 100644 index 0000000000..74ff42ba27 Binary files /dev/null and b/images/social-sdk/design-guidelines/DMs-04.webp differ diff --git a/images/social-sdk/design-guidelines/GameFriends-01.png b/images/social-sdk/design-guidelines/GameFriends-01.png deleted file mode 100644 index e89a537769..0000000000 Binary files a/images/social-sdk/design-guidelines/GameFriends-01.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/GameFriends-02.png b/images/social-sdk/design-guidelines/GameFriends-02.png deleted file mode 100644 index d3907aa73d..0000000000 Binary files a/images/social-sdk/design-guidelines/GameFriends-02.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/GameFriends-02.webp b/images/social-sdk/design-guidelines/GameFriends-02.webp new file mode 100644 index 0000000000..7dcfa2ec15 Binary files /dev/null and b/images/social-sdk/design-guidelines/GameFriends-02.webp differ diff --git a/images/social-sdk/design-guidelines/GameFriends-03.png b/images/social-sdk/design-guidelines/GameFriends-03.png deleted file mode 100644 index af7e74e2e4..0000000000 Binary files a/images/social-sdk/design-guidelines/GameFriends-03.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/GameFriends-03.webp b/images/social-sdk/design-guidelines/GameFriends-03.webp new file mode 100644 index 0000000000..080fdaade7 Binary files /dev/null and b/images/social-sdk/design-guidelines/GameFriends-03.webp differ diff --git a/images/social-sdk/design-guidelines/GameFriends-04.png b/images/social-sdk/design-guidelines/GameFriends-04.png deleted file mode 100644 index 85ab375edf..0000000000 Binary files a/images/social-sdk/design-guidelines/GameFriends-04.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/GameFriends-04.webp b/images/social-sdk/design-guidelines/GameFriends-04.webp new file mode 100644 index 0000000000..e079a48ac5 Binary files /dev/null and b/images/social-sdk/design-guidelines/GameFriends-04.webp differ diff --git a/images/social-sdk/design-guidelines/GameFriends-05.png b/images/social-sdk/design-guidelines/GameFriends-05.png deleted file mode 100644 index e5ee72d173..0000000000 Binary files a/images/social-sdk/design-guidelines/GameFriends-05.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/GameFriends-05.webp b/images/social-sdk/design-guidelines/GameFriends-05.webp new file mode 100644 index 0000000000..f23123d9b4 Binary files /dev/null and b/images/social-sdk/design-guidelines/GameFriends-05.webp differ diff --git a/images/social-sdk/design-guidelines/GameFriends-06.png b/images/social-sdk/design-guidelines/GameFriends-06.png deleted file mode 100644 index 00e4e9440a..0000000000 Binary files a/images/social-sdk/design-guidelines/GameFriends-06.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/GameFriends-06.webp b/images/social-sdk/design-guidelines/GameFriends-06.webp new file mode 100644 index 0000000000..a02a01eaaf Binary files /dev/null and b/images/social-sdk/design-guidelines/GameFriends-06.webp differ diff --git a/images/social-sdk/design-guidelines/GameFriends-07.png b/images/social-sdk/design-guidelines/GameFriends-07.png deleted file mode 100644 index 58451b3238..0000000000 Binary files a/images/social-sdk/design-guidelines/GameFriends-07.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/GameFriends-07.webp b/images/social-sdk/design-guidelines/GameFriends-07.webp new file mode 100644 index 0000000000..aac7c6a4cf Binary files /dev/null and b/images/social-sdk/design-guidelines/GameFriends-07.webp differ diff --git a/images/social-sdk/design-guidelines/GameFriends-08.png b/images/social-sdk/design-guidelines/GameFriends-08.png deleted file mode 100644 index 39de2c5e20..0000000000 Binary files a/images/social-sdk/design-guidelines/GameFriends-08.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/GameFriends-08.webp b/images/social-sdk/design-guidelines/GameFriends-08.webp new file mode 100644 index 0000000000..a6bc4fce98 Binary files /dev/null and b/images/social-sdk/design-guidelines/GameFriends-08.webp differ diff --git a/images/social-sdk/design-guidelines/GameFriends-09.png b/images/social-sdk/design-guidelines/GameFriends-09.png deleted file mode 100644 index a940fd7bcd..0000000000 Binary files a/images/social-sdk/design-guidelines/GameFriends-09.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/GameFriends-09.webp b/images/social-sdk/design-guidelines/GameFriends-09.webp new file mode 100644 index 0000000000..02bb12899d Binary files /dev/null and b/images/social-sdk/design-guidelines/GameFriends-09.webp differ diff --git a/images/social-sdk/design-guidelines/GameFriends-10.png b/images/social-sdk/design-guidelines/GameFriends-10.png deleted file mode 100644 index e60a475212..0000000000 Binary files a/images/social-sdk/design-guidelines/GameFriends-10.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/GameFriends-10.webp b/images/social-sdk/design-guidelines/GameFriends-10.webp new file mode 100644 index 0000000000..b66d5b02f7 Binary files /dev/null and b/images/social-sdk/design-guidelines/GameFriends-10.webp differ diff --git a/images/social-sdk/design-guidelines/LinkedChannels-04.png b/images/social-sdk/design-guidelines/LinkedChannels-04.png deleted file mode 100644 index d89701b672..0000000000 Binary files a/images/social-sdk/design-guidelines/LinkedChannels-04.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/LinkedChannels-04.webp b/images/social-sdk/design-guidelines/LinkedChannels-04.webp new file mode 100644 index 0000000000..8e1e1fb032 Binary files /dev/null and b/images/social-sdk/design-guidelines/LinkedChannels-04.webp differ diff --git a/images/social-sdk/design-guidelines/LinkedChannels-05.png b/images/social-sdk/design-guidelines/LinkedChannels-05.png deleted file mode 100644 index d95e9a4e58..0000000000 Binary files a/images/social-sdk/design-guidelines/LinkedChannels-05.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/LinkedChannels-05.webp b/images/social-sdk/design-guidelines/LinkedChannels-05.webp new file mode 100644 index 0000000000..3dfda5bd11 Binary files /dev/null and b/images/social-sdk/design-guidelines/LinkedChannels-05.webp differ diff --git a/images/social-sdk/design-guidelines/LinkedChannels-06.png b/images/social-sdk/design-guidelines/LinkedChannels-06.png deleted file mode 100644 index 0c8286ed5d..0000000000 Binary files a/images/social-sdk/design-guidelines/LinkedChannels-06.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/LinkedChannels-06.webp b/images/social-sdk/design-guidelines/LinkedChannels-06.webp new file mode 100644 index 0000000000..7e0e99d575 Binary files /dev/null and b/images/social-sdk/design-guidelines/LinkedChannels-06.webp differ diff --git a/images/social-sdk/design-guidelines/LinkedChannels-07.png b/images/social-sdk/design-guidelines/LinkedChannels-07.png deleted file mode 100644 index 8ad42cf506..0000000000 Binary files a/images/social-sdk/design-guidelines/LinkedChannels-07.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/LinkedChannels-07.webp b/images/social-sdk/design-guidelines/LinkedChannels-07.webp new file mode 100644 index 0000000000..c6005bd184 Binary files /dev/null and b/images/social-sdk/design-guidelines/LinkedChannels-07.webp differ diff --git a/images/social-sdk/design-guidelines/Principle-02.png b/images/social-sdk/design-guidelines/Principle-02.png deleted file mode 100644 index 71ef86af82..0000000000 Binary files a/images/social-sdk/design-guidelines/Principle-02.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Principle-03.png b/images/social-sdk/design-guidelines/Principle-03.png deleted file mode 100644 index 97a9a81619..0000000000 Binary files a/images/social-sdk/design-guidelines/Principle-03.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Principle-03.webp b/images/social-sdk/design-guidelines/Principle-03.webp new file mode 100644 index 0000000000..5d23850361 Binary files /dev/null and b/images/social-sdk/design-guidelines/Principle-03.webp differ diff --git a/images/social-sdk/design-guidelines/Principle-04.png b/images/social-sdk/design-guidelines/Principle-04.png deleted file mode 100644 index 8e45d44831..0000000000 Binary files a/images/social-sdk/design-guidelines/Principle-04.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Principle-04.webp b/images/social-sdk/design-guidelines/Principle-04.webp new file mode 100644 index 0000000000..b19ed2f652 Binary files /dev/null and b/images/social-sdk/design-guidelines/Principle-04.webp differ diff --git a/images/social-sdk/design-guidelines/Principle-05.png b/images/social-sdk/design-guidelines/Principle-05.png deleted file mode 100644 index 006333f543..0000000000 Binary files a/images/social-sdk/design-guidelines/Principle-05.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Principle-05.webp b/images/social-sdk/design-guidelines/Principle-05.webp new file mode 100644 index 0000000000..09b84efcb8 Binary files /dev/null and b/images/social-sdk/design-guidelines/Principle-05.webp differ diff --git a/images/social-sdk/design-guidelines/Principle-06.png b/images/social-sdk/design-guidelines/Principle-06.png deleted file mode 100644 index 808d10ac0c..0000000000 Binary files a/images/social-sdk/design-guidelines/Principle-06.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Principle-06.webp b/images/social-sdk/design-guidelines/Principle-06.webp new file mode 100644 index 0000000000..ccdc45f56f Binary files /dev/null and b/images/social-sdk/design-guidelines/Principle-06.webp differ diff --git a/images/social-sdk/design-guidelines/Principle-07.png b/images/social-sdk/design-guidelines/Principle-07.png deleted file mode 100644 index 66c7b30071..0000000000 Binary files a/images/social-sdk/design-guidelines/Principle-07.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Principle-07.webp b/images/social-sdk/design-guidelines/Principle-07.webp new file mode 100644 index 0000000000..5e43b9d3ec Binary files /dev/null and b/images/social-sdk/design-guidelines/Principle-07.webp differ diff --git a/images/social-sdk/design-guidelines/Prov-02.png b/images/social-sdk/design-guidelines/Prov-02.png deleted file mode 100644 index 8ad43b5062..0000000000 Binary files a/images/social-sdk/design-guidelines/Prov-02.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Prov-02.webp b/images/social-sdk/design-guidelines/Prov-02.webp new file mode 100644 index 0000000000..153256e937 Binary files /dev/null and b/images/social-sdk/design-guidelines/Prov-02.webp differ diff --git a/images/social-sdk/design-guidelines/Prov-03.png b/images/social-sdk/design-guidelines/Prov-03.png deleted file mode 100644 index 7b7a2e3d0b..0000000000 Binary files a/images/social-sdk/design-guidelines/Prov-03.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Prov-03.webp b/images/social-sdk/design-guidelines/Prov-03.webp new file mode 100644 index 0000000000..6e6ed986e5 Binary files /dev/null and b/images/social-sdk/design-guidelines/Prov-03.webp differ diff --git a/images/social-sdk/design-guidelines/Prov-04.png b/images/social-sdk/design-guidelines/Prov-04.png deleted file mode 100644 index a8b14e2926..0000000000 Binary files a/images/social-sdk/design-guidelines/Prov-04.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Prov-04.webp b/images/social-sdk/design-guidelines/Prov-04.webp new file mode 100644 index 0000000000..b8f63d1943 Binary files /dev/null and b/images/social-sdk/design-guidelines/Prov-04.webp differ diff --git a/images/social-sdk/design-guidelines/Prov-05.png b/images/social-sdk/design-guidelines/Prov-05.png deleted file mode 100644 index f3dfc0d39e..0000000000 Binary files a/images/social-sdk/design-guidelines/Prov-05.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/Prov-05.webp b/images/social-sdk/design-guidelines/Prov-05.webp new file mode 100644 index 0000000000..7ef079743a Binary files /dev/null and b/images/social-sdk/design-guidelines/Prov-05.webp differ diff --git a/images/social-sdk/design-guidelines/SigningIn-02.png b/images/social-sdk/design-guidelines/SigningIn-02.png deleted file mode 100644 index b0881d1805..0000000000 Binary files a/images/social-sdk/design-guidelines/SigningIn-02.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/SigningIn-02.webp b/images/social-sdk/design-guidelines/SigningIn-02.webp new file mode 100644 index 0000000000..2241899fad Binary files /dev/null and b/images/social-sdk/design-guidelines/SigningIn-02.webp differ diff --git a/images/social-sdk/design-guidelines/SigningIn-03.png b/images/social-sdk/design-guidelines/SigningIn-03.png deleted file mode 100644 index 0ca40bc1c1..0000000000 Binary files a/images/social-sdk/design-guidelines/SigningIn-03.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/SigningIn-04.png b/images/social-sdk/design-guidelines/SigningIn-04.png deleted file mode 100644 index 3808f3d78b..0000000000 Binary files a/images/social-sdk/design-guidelines/SigningIn-04.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/SigningIn-05.png b/images/social-sdk/design-guidelines/SigningIn-05.png deleted file mode 100644 index 7f3d91d858..0000000000 Binary files a/images/social-sdk/design-guidelines/SigningIn-05.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/SigningIn-05.webp b/images/social-sdk/design-guidelines/SigningIn-05.webp new file mode 100644 index 0000000000..713a6b81e1 Binary files /dev/null and b/images/social-sdk/design-guidelines/SigningIn-05.webp differ diff --git a/images/social-sdk/design-guidelines/SigningIn-06.png b/images/social-sdk/design-guidelines/SigningIn-06.png deleted file mode 100644 index 3cc5d3a4e6..0000000000 Binary files a/images/social-sdk/design-guidelines/SigningIn-06.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/SigningIn-06.webp b/images/social-sdk/design-guidelines/SigningIn-06.webp new file mode 100644 index 0000000000..d3a515d254 Binary files /dev/null and b/images/social-sdk/design-guidelines/SigningIn-06.webp differ diff --git a/images/social-sdk/design-guidelines/SigningIn-07.png b/images/social-sdk/design-guidelines/SigningIn-07.png deleted file mode 100644 index 5cb7a1af90..0000000000 Binary files a/images/social-sdk/design-guidelines/SigningIn-07.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/SigningIn-07.webp b/images/social-sdk/design-guidelines/SigningIn-07.webp new file mode 100644 index 0000000000..025fdb2739 Binary files /dev/null and b/images/social-sdk/design-guidelines/SigningIn-07.webp differ diff --git a/images/social-sdk/design-guidelines/SigningIn-08.png b/images/social-sdk/design-guidelines/SigningIn-08.png deleted file mode 100644 index 10e0d65fd3..0000000000 Binary files a/images/social-sdk/design-guidelines/SigningIn-08.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/SigningIn-08.webp b/images/social-sdk/design-guidelines/SigningIn-08.webp new file mode 100644 index 0000000000..026cf61b7f Binary files /dev/null and b/images/social-sdk/design-guidelines/SigningIn-08.webp differ diff --git a/images/social-sdk/design-guidelines/StatusPresence-02.png b/images/social-sdk/design-guidelines/StatusPresence-02.png deleted file mode 100644 index c8be99b2d4..0000000000 Binary files a/images/social-sdk/design-guidelines/StatusPresence-02.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/StatusPresence-02.webp b/images/social-sdk/design-guidelines/StatusPresence-02.webp new file mode 100644 index 0000000000..463668a19b Binary files /dev/null and b/images/social-sdk/design-guidelines/StatusPresence-02.webp differ diff --git a/images/social-sdk/design-guidelines/StatusPresence-03.png b/images/social-sdk/design-guidelines/StatusPresence-03.png deleted file mode 100644 index eb3f55239c..0000000000 Binary files a/images/social-sdk/design-guidelines/StatusPresence-03.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/StatusPresence-03.webp b/images/social-sdk/design-guidelines/StatusPresence-03.webp new file mode 100644 index 0000000000..49b78fcb5b Binary files /dev/null and b/images/social-sdk/design-guidelines/StatusPresence-03.webp differ diff --git a/images/social-sdk/design-guidelines/StatusPresence-04.png b/images/social-sdk/design-guidelines/StatusPresence-04.png deleted file mode 100644 index 6a9933426b..0000000000 Binary files a/images/social-sdk/design-guidelines/StatusPresence-04.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/StatusPresence-04.webp b/images/social-sdk/design-guidelines/StatusPresence-04.webp new file mode 100644 index 0000000000..dff2ae7ab3 Binary files /dev/null and b/images/social-sdk/design-guidelines/StatusPresence-04.webp differ diff --git a/images/social-sdk/design-guidelines/StatusPresence-05.png b/images/social-sdk/design-guidelines/StatusPresence-05.png deleted file mode 100644 index 89669c4ffe..0000000000 Binary files a/images/social-sdk/design-guidelines/StatusPresence-05.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/StatusPresence-05.webp b/images/social-sdk/design-guidelines/StatusPresence-05.webp new file mode 100644 index 0000000000..712ca93deb Binary files /dev/null and b/images/social-sdk/design-guidelines/StatusPresence-05.webp differ diff --git a/images/social-sdk/design-guidelines/StatusPresence-06.png b/images/social-sdk/design-guidelines/StatusPresence-06.png deleted file mode 100644 index dae7578002..0000000000 Binary files a/images/social-sdk/design-guidelines/StatusPresence-06.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/StatusPresence-06.webp b/images/social-sdk/design-guidelines/StatusPresence-06.webp new file mode 100644 index 0000000000..32c6904f0d Binary files /dev/null and b/images/social-sdk/design-guidelines/StatusPresence-06.webp differ diff --git a/images/social-sdk/design-guidelines/UFL-02.png b/images/social-sdk/design-guidelines/UFL-02.png deleted file mode 100644 index 62c8ed066c..0000000000 Binary files a/images/social-sdk/design-guidelines/UFL-02.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/UFL-02.webp b/images/social-sdk/design-guidelines/UFL-02.webp new file mode 100644 index 0000000000..59dae1cfd9 Binary files /dev/null and b/images/social-sdk/design-guidelines/UFL-02.webp differ diff --git a/images/social-sdk/design-guidelines/UFL-03.png b/images/social-sdk/design-guidelines/UFL-03.png deleted file mode 100644 index 5adca8c896..0000000000 Binary files a/images/social-sdk/design-guidelines/UFL-03.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/UFL-03.webp b/images/social-sdk/design-guidelines/UFL-03.webp new file mode 100644 index 0000000000..0c8cc15e5a Binary files /dev/null and b/images/social-sdk/design-guidelines/UFL-03.webp differ diff --git a/images/social-sdk/design-guidelines/UFL-04.png b/images/social-sdk/design-guidelines/UFL-04.png deleted file mode 100644 index 7a6234ff15..0000000000 Binary files a/images/social-sdk/design-guidelines/UFL-04.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/UFL-04.webp b/images/social-sdk/design-guidelines/UFL-04.webp new file mode 100644 index 0000000000..7554e0aa87 Binary files /dev/null and b/images/social-sdk/design-guidelines/UFL-04.webp differ diff --git a/images/social-sdk/design-guidelines/UFL-05.png b/images/social-sdk/design-guidelines/UFL-05.png deleted file mode 100644 index b617a2e258..0000000000 Binary files a/images/social-sdk/design-guidelines/UFL-05.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/UFL-05.webp b/images/social-sdk/design-guidelines/UFL-05.webp new file mode 100644 index 0000000000..9ff3fae4fa Binary files /dev/null and b/images/social-sdk/design-guidelines/UFL-05.webp differ diff --git a/images/social-sdk/design-guidelines/UFL-06.png b/images/social-sdk/design-guidelines/UFL-06.png deleted file mode 100644 index 6d8d5f1c4f..0000000000 Binary files a/images/social-sdk/design-guidelines/UFL-06.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/UFL-07.png b/images/social-sdk/design-guidelines/UFL-07.png deleted file mode 100644 index 28916851d6..0000000000 Binary files a/images/social-sdk/design-guidelines/UFL-07.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/UFL-07.webp b/images/social-sdk/design-guidelines/UFL-07.webp new file mode 100644 index 0000000000..631517b138 Binary files /dev/null and b/images/social-sdk/design-guidelines/UFL-07.webp differ diff --git a/images/social-sdk/design-guidelines/UFL-08.png b/images/social-sdk/design-guidelines/UFL-08.png deleted file mode 100644 index 2712e1d2fe..0000000000 Binary files a/images/social-sdk/design-guidelines/UFL-08.png and /dev/null differ diff --git a/images/social-sdk/design-guidelines/UFL-08.webp b/images/social-sdk/design-guidelines/UFL-08.webp new file mode 100644 index 0000000000..8fd97bb9c2 Binary files /dev/null and b/images/social-sdk/design-guidelines/UFL-08.webp differ diff --git a/images/social-sdk/design-guidelines/animated/LinkedChannel-Unlink.gif b/images/social-sdk/design-guidelines/animated/LinkedChannel-Unlink.gif deleted file mode 100644 index 09edd3c30f..0000000000 Binary files a/images/social-sdk/design-guidelines/animated/LinkedChannel-Unlink.gif and /dev/null differ diff --git a/images/social-sdk/development-guides/authorize_device.png b/images/social-sdk/development-guides/authorize_device.png deleted file mode 100644 index 7db81bacd9..0000000000 Binary files a/images/social-sdk/development-guides/authorize_device.png and /dev/null differ diff --git a/images/social-sdk/development-guides/authorize_device.webp b/images/social-sdk/development-guides/authorize_device.webp new file mode 100644 index 0000000000..30edfb1025 Binary files /dev/null and b/images/social-sdk/development-guides/authorize_device.webp differ diff --git a/images/social-sdk/getting-started/partials/error.png b/images/social-sdk/getting-started/partials/error.png deleted file mode 100644 index 30a54a671b..0000000000 Binary files a/images/social-sdk/getting-started/partials/error.png and /dev/null differ diff --git a/images/social-sdk/getting-started/partials/error.webp b/images/social-sdk/getting-started/partials/error.webp new file mode 100644 index 0000000000..607c5c6ed4 Binary files /dev/null and b/images/social-sdk/getting-started/partials/error.webp differ diff --git a/images/social-sdk/getting-started/partials/open-anyway.png b/images/social-sdk/getting-started/partials/open-anyway.png deleted file mode 100644 index a76fb99d60..0000000000 Binary files a/images/social-sdk/getting-started/partials/open-anyway.png and /dev/null differ diff --git a/images/social-sdk/getting-started/partials/open-anyway.webp b/images/social-sdk/getting-started/partials/open-anyway.webp new file mode 100644 index 0000000000..91b4d68c05 Binary files /dev/null and b/images/social-sdk/getting-started/partials/open-anyway.webp differ diff --git a/images/social-sdk/getting-started/partials/settings-security.png b/images/social-sdk/getting-started/partials/settings-security.png deleted file mode 100644 index b053189f04..0000000000 Binary files a/images/social-sdk/getting-started/partials/settings-security.png and /dev/null differ diff --git a/images/social-sdk/getting-started/partials/settings-security.webp b/images/social-sdk/getting-started/partials/settings-security.webp new file mode 100644 index 0000000000..653effa512 Binary files /dev/null and b/images/social-sdk/getting-started/partials/settings-security.webp differ diff --git a/images/social-sdk/overview/social_sdk_header.png b/images/social-sdk/overview/social_sdk_header.png deleted file mode 100644 index e163a5e477..0000000000 Binary files a/images/social-sdk/overview/social_sdk_header.png and /dev/null differ diff --git a/images/social-sdk/overview/social_sdk_header.webp b/images/social-sdk/overview/social_sdk_header.webp new file mode 100644 index 0000000000..720c28881b Binary files /dev/null and b/images/social-sdk/overview/social_sdk_header.webp differ diff --git a/images/spectate.gif b/images/spectate.gif deleted file mode 100644 index 2fad544025..0000000000 Binary files a/images/spectate.gif and /dev/null differ diff --git a/images/store_embed.png b/images/store_embed.png deleted file mode 100644 index 315d14511a..0000000000 Binary files a/images/store_embed.png and /dev/null differ diff --git a/images/store_embed.webp b/images/store_embed.webp new file mode 100644 index 0000000000..fe0d9a814a Binary files /dev/null and b/images/store_embed.webp differ diff --git a/images/team-page.png b/images/team-page.png deleted file mode 100644 index 4b6a6092ed..0000000000 Binary files a/images/team-page.png and /dev/null differ diff --git a/images/team-page.webp b/images/team-page.webp new file mode 100644 index 0000000000..d16bb42df8 Binary files /dev/null and b/images/team-page.webp differ diff --git a/images/transfer-app-to-team.png b/images/transfer-app-to-team.png deleted file mode 100644 index 1c2420a3d0..0000000000 Binary files a/images/transfer-app-to-team.png and /dev/null differ diff --git a/images/transfer-app-to-team.webp b/images/transfer-app-to-team.webp new file mode 100644 index 0000000000..080e4dc766 Binary files /dev/null and b/images/transfer-app-to-team.webp differ diff --git a/images/url-generator.png b/images/url-generator.png deleted file mode 100644 index 31cd4c3c5f..0000000000 Binary files a/images/url-generator.png and /dev/null differ diff --git a/images/user-command.png b/images/user-command.png deleted file mode 100644 index ef669dd32a..0000000000 Binary files a/images/user-command.png and /dev/null differ diff --git a/images/user-command.webp b/images/user-command.webp new file mode 100644 index 0000000000..5b9070b40d Binary files /dev/null and b/images/user-command.webp differ diff --git a/images/user-install-game-message.png b/images/user-install-game-message.png deleted file mode 100644 index 448e6781c7..0000000000 Binary files a/images/user-install-game-message.png and /dev/null differ diff --git a/images/user-install-game-message.webp b/images/user-install-game-message.webp new file mode 100644 index 0000000000..ed02116ba0 Binary files /dev/null and b/images/user-install-game-message.webp differ diff --git a/images/user-install-settings.png b/images/user-install-settings.png deleted file mode 100644 index 11ae4169dd..0000000000 Binary files a/images/user-install-settings.png and /dev/null differ diff --git a/images/user-install-settings.webp b/images/user-install-settings.webp new file mode 100644 index 0000000000..e4e3a3b21a Binary files /dev/null and b/images/user-install-settings.webp differ diff --git a/package.json b/package.json index 248ec90c47..f350f20250 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "eslint-plugin-prettier": "^5.1.3", "execa": "^9.5.2", "js-yaml": "^4.1.0", + "magic-string": "^0.30.17", "markdown-table-formatter": "^1.6.0", "mdast-util-from-markdown": "^2.0.1", "mdast-util-to-markdown": "^2.1.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000000..f9b9bba962 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,2865 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@actions/core': + specifier: ^1.10.1 + version: 1.11.1 + '@eslint/js': + specifier: ^9.2.0 + version: 9.23.0 + '@mdx-js/mdx': + specifier: ^3.0.1 + version: 3.1.0(acorn@8.14.1) + '@mdx-js/react': + specifier: ^3.0.1 + version: 3.1.0(@types/react@19.1.0)(react@19.1.0) + '@types/js-yaml': + specifier: ^4.0.9 + version: 4.0.9 + '@types/node': + specifier: ^20.12.12 + version: 20.17.30 + chalk: + specifier: ^5.3.0 + version: 5.4.1 + eslint: + specifier: ^9.2.0 + version: 9.23.0 + eslint-config-prettier: + specifier: ^9.1.0 + version: 9.1.0(eslint@9.23.0) + eslint-plugin-prettier: + specifier: ^5.1.3 + version: 5.2.6(eslint-config-prettier@9.1.0(eslint@9.23.0))(eslint@9.23.0)(prettier@3.5.3) + execa: + specifier: ^9.5.2 + version: 9.5.2 + js-yaml: + specifier: ^4.1.0 + version: 4.1.0 + magic-string: + specifier: ^0.30.17 + version: 0.30.17 + markdown-table-formatter: + specifier: ^1.6.0 + version: 1.6.1 + mdast-util-from-markdown: + specifier: ^2.0.1 + version: 2.0.2 + mdast-util-to-markdown: + specifier: ^2.1.0 + version: 2.1.2 + prettier: + specifier: ^3.2.5 + version: 3.5.3 + remark: + specifier: ^15.0.1 + version: 15.0.1 + tsx: + specifier: ^4.10.2 + version: 4.19.3 + typescript: + specifier: ^5.4.5 + version: 5.8.2 + typescript-eslint: + specifier: ^8.0.0-alpha.12 + version: 8.29.0(eslint@9.23.0)(typescript@5.8.2) + +packages: + + '@actions/core@1.11.1': + resolution: {integrity: sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==} + + '@actions/exec@1.1.1': + resolution: {integrity: sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==} + + '@actions/http-client@2.2.3': + resolution: {integrity: sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==} + + '@actions/io@1.1.3': + resolution: {integrity: sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q==} + + '@esbuild/aix-ppc64@0.25.2': + resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.25.2': + resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.25.2': + resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.25.2': + resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.25.2': + resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.2': + resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.25.2': + resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.2': + resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.25.2': + resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.25.2': + resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.25.2': + resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.25.2': + resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.25.2': + resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.25.2': + resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.2': + resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.25.2': + resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.25.2': + resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.2': + resolution: {integrity: sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.2': + resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.2': + resolution: {integrity: sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.2': + resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.25.2': + resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.25.2': + resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.25.2': + resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.25.2': + resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.5.1': + resolution: {integrity: sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.19.2': + resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/config-helpers@0.2.1': + resolution: {integrity: sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.12.0': + resolution: {integrity: sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.13.0': + resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.3.1': + resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.23.0': + resolution: {integrity: sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.6': + resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.8': + resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@fastify/busboy@2.1.1': + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.2': + resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} + engines: {node: '>=18.18'} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@mdx-js/mdx@3.1.0': + resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} + + '@mdx-js/react@3.1.0': + resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==} + peerDependencies: + '@types/react': '>=16' + react: '>=16' + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pkgr/core@0.2.0': + resolution: {integrity: sha512-vsJDAkYR6qCPu+ioGScGiMYR7LvZYIXh/dlQeviqoTWNCVfKTLYD/LkNWH4Mxsv2a5vpIRc77FN5DnmK1eBggQ==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + + '@sec-ant/readable-stream@0.4.1': + resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} + + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + + '@types/estree@1.0.7': + resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + + '@types/js-yaml@4.0.9': + resolution: {integrity: sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/node@20.17.30': + resolution: {integrity: sha512-7zf4YyHA+jvBNfVrk2Gtvs6x7E8V+YDW05bNfG2XkWDJfYRXrTiP/DsB2zSYTaHX0bGIujTBQdMVAhb+j7mwpg==} + + '@types/react@19.1.0': + resolution: {integrity: sha512-UaicktuQI+9UKyA4njtDOGBD/67t8YEBt2xdfqu8+gP9hqPUPsiXlNPcpS2gVdjmis5GKPG3fCxbQLVgxsQZ8w==} + + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@typescript-eslint/eslint-plugin@8.29.0': + resolution: {integrity: sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/parser@8.29.0': + resolution: {integrity: sha512-8C0+jlNJOwQso2GapCVWWfW/rzaq7Lbme+vGUFKE31djwNncIpgXD7Cd4weEsDdkoZDjH0lwwr3QDQFuyrMg9g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/scope-manager@8.29.0': + resolution: {integrity: sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@8.29.0': + resolution: {integrity: sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/types@8.29.0': + resolution: {integrity: sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.29.0': + resolution: {integrity: sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/utils@8.29.0': + resolution: {integrity: sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/visitor-keys@8.29.0': + resolution: {integrity: sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + hasBin: true + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + + collapse-white-space@2.1.0: + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decode-named-character-reference@1.1.0: + resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + + esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + + esbuild@0.25.2: + resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} + engines: {node: '>=18'} + hasBin: true + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-config-prettier@9.1.0: + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-plugin-prettier@5.2.6: + resolution: {integrity: sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + + eslint-scope@8.3.0: + resolution: {integrity: sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.23.0: + resolution: {integrity: sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-util-attach-comments@3.0.0: + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + + estree-util-build-jsx@3.0.1: + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + + estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + + estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + + estree-util-to-js@2.0.0: + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + + estree-util-visit@2.0.0: + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + + estree-walker@3.0.3: + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + execa@9.5.2: + resolution: {integrity: sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==} + engines: {node: ^18.19.0 || >=20.5.0} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-diff@1.3.0: + resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + figures@6.1.0: + resolution: {integrity: sha512-d+l3qxjSesT4V7v2fh+QnmFnUWv9lSpjarhShNTgBOfA0ttejbQUAlHLitbjkoRiDulW0OPoQPYIGhIC8ohejg==} + engines: {node: '>=18'} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-package-json@1.2.0: + resolution: {integrity: sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw==} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + get-stream@9.0.1: + resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} + engines: {node: '>=18'} + + get-tsconfig@4.10.0: + resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + hast-util-to-estree@3.1.3: + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + + hast-util-to-jsx-runtime@2.3.6: + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + human-signals@8.0.1: + resolution: {integrity: sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ==} + engines: {node: '>=18.18.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + + is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + + is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + + is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-stream@4.0.1: + resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} + engines: {node: '>=18'} + + is-unicode-supported@2.1.0: + resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} + engines: {node: '>=18'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + markdown-extensions@2.0.0: + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} + + markdown-table-formatter@1.6.1: + resolution: {integrity: sha512-57+Y+usUvGJyaisZugMUl455eFBA04HEnov5RkKiirEfiTR99UW0eGoy40W/qOinp9IzIu/0+3Bd6CnKuHnHXw==} + engines: {node: '>=18.0.0'} + hasBin: true + + markdown-table-prettify@3.6.0: + resolution: {integrity: sha512-xZg+sL5yWyPz75GwNHtCOLe85CPnssoTLqpGc19xSr6CirGu4xRW2f8wj1f7c8Kx1IItXo3hUIqlUX4qAOwAdg==} + engines: {vscode: ^1.59.0} + hasBin: true + + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + + mdast-util-mdx-jsx@3.2.0: + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + + mdast-util-mdx@3.0.0: + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + + mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-extension-mdx-expression@3.0.1: + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + + micromark-extension-mdx-jsx@3.0.2: + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + + micromark-extension-mdx-md@2.0.0: + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + + micromark-extension-mdxjs-esm@3.0.0: + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + + micromark-extension-mdxjs@3.0.0: + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-mdx-expression@2.0.3: + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-events-to-acorn@2.0.3: + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + npm-run-path@6.0.0: + resolution: {integrity: sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==} + engines: {node: '>=18'} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} + engines: {node: '>=18'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier-linter-helpers@1.0.0: + resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + engines: {node: '>=6.0.0'} + + prettier@3.5.3: + resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + engines: {node: '>=14'} + hasBin: true + + pretty-ms@9.2.0: + resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} + engines: {node: '>=18'} + + property-information@7.0.0: + resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + react@19.1.0: + resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} + engines: {node: '>=0.10.0'} + + recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + + recma-jsx@1.0.0: + resolution: {integrity: sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==} + + recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + + recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + + rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + + remark-mdx@3.1.0: + resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + remark@15.0.1: + resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + engines: {node: '>=10'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-final-newline@4.0.0: + resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} + engines: {node: '>=18'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + style-to-js@1.1.16: + resolution: {integrity: sha512-/Q6ld50hKYPH3d/r6nr117TZkHR0w0kGGIVfpG9N6D8NymRPM9RqCUv4pRpJ62E5DqOYx2AFpbZMyCPnjQCnOw==} + + style-to-object@1.0.8: + resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + synckit@0.11.2: + resolution: {integrity: sha512-1IUffI8zZ8qUMB3NUJIjk0RpLroG/8NkQDAWH1NbB2iJ0/5pn3M8rxfNzMz4GH9OnYaGYn31LEDSXJp/qIlxgA==} + engines: {node: ^14.18.0 || >=16.0.0} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + ts-api-utils@2.1.0: + resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsx@4.19.3: + resolution: {integrity: sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==} + engines: {node: '>=18.0.0'} + hasBin: true + + tunnel@0.0.6: + resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} + engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + typescript-eslint@8.29.0: + resolution: {integrity: sha512-ep9rVd9B4kQsZ7ZnWCVxUE/xDLUUUsRzE0poAeNu+4CkFErLfuvPt/qtm2EpnSyfvsR0S6QzDFSrPCFBwf64fg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + typescript@5.8.2: + resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + undici@5.29.0: + resolution: {integrity: sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==} + engines: {node: '>=14.0'} + + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-position-from-estree@2.0.0: + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} + engines: {node: '>=18'} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@actions/core@1.11.1': + dependencies: + '@actions/exec': 1.1.1 + '@actions/http-client': 2.2.3 + + '@actions/exec@1.1.1': + dependencies: + '@actions/io': 1.1.3 + + '@actions/http-client@2.2.3': + dependencies: + tunnel: 0.0.6 + undici: 5.29.0 + + '@actions/io@1.1.3': {} + + '@esbuild/aix-ppc64@0.25.2': + optional: true + + '@esbuild/android-arm64@0.25.2': + optional: true + + '@esbuild/android-arm@0.25.2': + optional: true + + '@esbuild/android-x64@0.25.2': + optional: true + + '@esbuild/darwin-arm64@0.25.2': + optional: true + + '@esbuild/darwin-x64@0.25.2': + optional: true + + '@esbuild/freebsd-arm64@0.25.2': + optional: true + + '@esbuild/freebsd-x64@0.25.2': + optional: true + + '@esbuild/linux-arm64@0.25.2': + optional: true + + '@esbuild/linux-arm@0.25.2': + optional: true + + '@esbuild/linux-ia32@0.25.2': + optional: true + + '@esbuild/linux-loong64@0.25.2': + optional: true + + '@esbuild/linux-mips64el@0.25.2': + optional: true + + '@esbuild/linux-ppc64@0.25.2': + optional: true + + '@esbuild/linux-riscv64@0.25.2': + optional: true + + '@esbuild/linux-s390x@0.25.2': + optional: true + + '@esbuild/linux-x64@0.25.2': + optional: true + + '@esbuild/netbsd-arm64@0.25.2': + optional: true + + '@esbuild/netbsd-x64@0.25.2': + optional: true + + '@esbuild/openbsd-arm64@0.25.2': + optional: true + + '@esbuild/openbsd-x64@0.25.2': + optional: true + + '@esbuild/sunos-x64@0.25.2': + optional: true + + '@esbuild/win32-arm64@0.25.2': + optional: true + + '@esbuild/win32-ia32@0.25.2': + optional: true + + '@esbuild/win32-x64@0.25.2': + optional: true + + '@eslint-community/eslint-utils@4.5.1(eslint@9.23.0)': + dependencies: + eslint: 9.23.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/config-array@0.19.2': + dependencies: + '@eslint/object-schema': 2.1.6 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/config-helpers@0.2.1': {} + + '@eslint/core@0.12.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/core@0.13.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.3.1': + dependencies: + ajv: 6.12.6 + debug: 4.4.0 + espree: 10.3.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.23.0': {} + + '@eslint/object-schema@2.1.6': {} + + '@eslint/plugin-kit@0.2.8': + dependencies: + '@eslint/core': 0.13.0 + levn: 0.4.1 + + '@fastify/busboy@2.1.1': {} + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.2': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@mdx-js/mdx@3.1.0(acorn@8.14.1)': + dependencies: + '@types/estree': 1.0.7 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.6 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.0(acorn@8.14.1) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + source-map: 0.7.4 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - acorn + - supports-color + + '@mdx-js/react@3.1.0(@types/react@19.1.0)(react@19.1.0)': + dependencies: + '@types/mdx': 2.0.13 + '@types/react': 19.1.0 + react: 19.1.0 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.2.0': {} + + '@sec-ant/readable-stream@0.4.1': {} + + '@sindresorhus/merge-streams@4.0.0': {} + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 2.1.0 + + '@types/estree-jsx@1.0.5': + dependencies: + '@types/estree': 1.0.7 + + '@types/estree@1.0.7': {} + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/js-yaml@4.0.9': {} + + '@types/json-schema@7.0.15': {} + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdx@2.0.13': {} + + '@types/ms@2.1.0': {} + + '@types/node@20.17.30': + dependencies: + undici-types: 6.19.8 + + '@types/react@19.1.0': + dependencies: + csstype: 3.1.3 + + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} + + '@typescript-eslint/eslint-plugin@8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0)(typescript@5.8.2))(eslint@9.23.0)(typescript@5.8.2)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.29.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.29.0 + '@typescript-eslint/type-utils': 8.29.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.29.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.29.0 + eslint: 9.23.0 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.29.0(eslint@9.23.0)(typescript@5.8.2)': + dependencies: + '@typescript-eslint/scope-manager': 8.29.0 + '@typescript-eslint/types': 8.29.0 + '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.29.0 + debug: 4.4.0 + eslint: 9.23.0 + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@8.29.0': + dependencies: + '@typescript-eslint/types': 8.29.0 + '@typescript-eslint/visitor-keys': 8.29.0 + + '@typescript-eslint/type-utils@8.29.0(eslint@9.23.0)(typescript@5.8.2)': + dependencies: + '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.8.2) + '@typescript-eslint/utils': 8.29.0(eslint@9.23.0)(typescript@5.8.2) + debug: 4.4.0 + eslint: 9.23.0 + ts-api-utils: 2.1.0(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@8.29.0': {} + + '@typescript-eslint/typescript-estree@8.29.0(typescript@5.8.2)': + dependencies: + '@typescript-eslint/types': 8.29.0 + '@typescript-eslint/visitor-keys': 8.29.0 + debug: 4.4.0 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.1 + ts-api-utils: 2.1.0(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.29.0(eslint@9.23.0)(typescript@5.8.2)': + dependencies: + '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0) + '@typescript-eslint/scope-manager': 8.29.0 + '@typescript-eslint/types': 8.29.0 + '@typescript-eslint/typescript-estree': 8.29.0(typescript@5.8.2) + eslint: 9.23.0 + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@8.29.0': + dependencies: + '@typescript-eslint/types': 8.29.0 + eslint-visitor-keys: 4.2.0 + + '@ungap/structured-clone@1.3.0': {} + + acorn-jsx@5.3.2(acorn@8.14.1): + dependencies: + acorn: 8.14.1 + + acorn@8.14.1: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + argparse@2.0.1: {} + + astring@1.9.0: {} + + bail@2.0.2: {} + + balanced-match@1.0.2: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + callsites@3.1.0: {} + + ccount@2.0.1: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.4.1: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} + + collapse-white-space@2.1.0: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + comma-separated-tokens@2.0.3: {} + + concat-map@0.0.1: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + csstype@3.1.3: {} + + debug@4.4.0: + dependencies: + ms: 2.1.3 + + decode-named-character-reference@1.1.0: + dependencies: + character-entities: 2.0.2 + + deep-is@0.1.4: {} + + dequal@2.0.3: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + eastasianwidth@0.2.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + esast-util-from-estree@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + unist-util-position-from-estree: 2.0.0 + + esast-util-from-js@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + acorn: 8.14.1 + esast-util-from-estree: 2.0.0 + vfile-message: 4.0.2 + + esbuild@0.25.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.2 + '@esbuild/android-arm': 0.25.2 + '@esbuild/android-arm64': 0.25.2 + '@esbuild/android-x64': 0.25.2 + '@esbuild/darwin-arm64': 0.25.2 + '@esbuild/darwin-x64': 0.25.2 + '@esbuild/freebsd-arm64': 0.25.2 + '@esbuild/freebsd-x64': 0.25.2 + '@esbuild/linux-arm': 0.25.2 + '@esbuild/linux-arm64': 0.25.2 + '@esbuild/linux-ia32': 0.25.2 + '@esbuild/linux-loong64': 0.25.2 + '@esbuild/linux-mips64el': 0.25.2 + '@esbuild/linux-ppc64': 0.25.2 + '@esbuild/linux-riscv64': 0.25.2 + '@esbuild/linux-s390x': 0.25.2 + '@esbuild/linux-x64': 0.25.2 + '@esbuild/netbsd-arm64': 0.25.2 + '@esbuild/netbsd-x64': 0.25.2 + '@esbuild/openbsd-arm64': 0.25.2 + '@esbuild/openbsd-x64': 0.25.2 + '@esbuild/sunos-x64': 0.25.2 + '@esbuild/win32-arm64': 0.25.2 + '@esbuild/win32-ia32': 0.25.2 + '@esbuild/win32-x64': 0.25.2 + + escape-string-regexp@4.0.0: {} + + eslint-config-prettier@9.1.0(eslint@9.23.0): + dependencies: + eslint: 9.23.0 + + eslint-plugin-prettier@5.2.6(eslint-config-prettier@9.1.0(eslint@9.23.0))(eslint@9.23.0)(prettier@3.5.3): + dependencies: + eslint: 9.23.0 + prettier: 3.5.3 + prettier-linter-helpers: 1.0.0 + synckit: 0.11.2 + optionalDependencies: + eslint-config-prettier: 9.1.0(eslint@9.23.0) + + eslint-scope@8.3.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.0: {} + + eslint@9.23.0: + dependencies: + '@eslint-community/eslint-utils': 4.5.1(eslint@9.23.0) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.2 + '@eslint/config-helpers': 0.2.1 + '@eslint/core': 0.12.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.23.0 + '@eslint/plugin-kit': 0.2.8 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.2 + '@types/estree': 1.0.7 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + escape-string-regexp: 4.0.0 + eslint-scope: 8.3.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + espree@10.3.0: + dependencies: + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) + eslint-visitor-keys: 4.2.0 + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-util-attach-comments@3.0.0: + dependencies: + '@types/estree': 1.0.7 + + estree-util-build-jsx@3.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + + estree-util-is-identifier-name@3.0.0: {} + + estree-util-scope@1.0.0: + dependencies: + '@types/estree': 1.0.7 + devlop: 1.1.0 + + estree-util-to-js@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.4 + + estree-util-visit@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.7 + + esutils@2.0.3: {} + + execa@9.5.2: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + cross-spawn: 7.0.6 + figures: 6.1.0 + get-stream: 9.0.1 + human-signals: 8.0.1 + is-plain-obj: 4.1.0 + is-stream: 4.0.1 + npm-run-path: 6.0.0 + pretty-ms: 9.2.0 + signal-exit: 4.1.0 + strip-final-newline: 4.0.0 + yoctocolors: 2.1.1 + + extend@3.0.2: {} + + fast-deep-equal@3.1.3: {} + + fast-diff@1.3.0: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + figures@6.1.0: + dependencies: + is-unicode-supported: 2.1.0 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-package-json@1.2.0: {} + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + + flatted@3.3.3: {} + + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fsevents@2.3.3: + optional: true + + get-stream@9.0.1: + dependencies: + '@sec-ant/readable-stream': 0.4.1 + is-stream: 4.0.1 + + get-tsconfig@4.10.0: + dependencies: + resolve-pkg-maps: 1.0.0 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + globals@14.0.0: {} + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + has-flag@4.0.0: {} + + hast-util-to-estree@3.1.3: + dependencies: + '@types/estree': 1.0.7 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.0.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.16 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + + hast-util-to-jsx-runtime@2.3.6: + dependencies: + '@types/estree': 1.0.7 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 7.0.0 + space-separated-tokens: 2.0.2 + style-to-js: 1.1.16 + unist-util-position: 5.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + human-signals@8.0.1: {} + + ignore@5.3.2: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + inline-style-parser@0.2.4: {} + + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + + is-decimal@2.0.1: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hexadecimal@2.0.1: {} + + is-number@7.0.0: {} + + is-plain-obj@4.1.0: {} + + is-stream@4.0.1: {} + + is-unicode-supported@2.1.0: {} + + isexe@2.0.0: {} + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.merge@4.6.2: {} + + longest-streak@3.1.0: {} + + lru-cache@10.4.3: {} + + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + markdown-extensions@2.0.0: {} + + markdown-table-formatter@1.6.1: + dependencies: + debug: 4.4.0 + find-package-json: 1.2.0 + fs-extra: 11.3.0 + glob: 10.4.5 + markdown-table-prettify: 3.6.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + markdown-table-prettify@3.6.0: {} + + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.1.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-expression@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-jsx@3.2.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + parse-entities: 4.0.2 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdxjs-esm@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + merge2@1.4.1: {} + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.1.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-expression@3.0.1: + dependencies: + '@types/estree': 1.0.7 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-extension-mdx-jsx@3.0.2: + dependencies: + '@types/estree': 1.0.7 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.2 + + micromark-extension-mdx-md@2.0.0: + dependencies: + micromark-util-types: 2.0.2 + + micromark-extension-mdxjs-esm@3.0.0: + dependencies: + '@types/estree': 1.0.7 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) + micromark-extension-mdx-expression: 3.0.1 + micromark-extension-mdx-jsx: 3.0.2 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-mdx-expression@2.0.3: + dependencies: + '@types/estree': 1.0.7 + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.3 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-events-to-acorn@2.0.3: + dependencies: + '@types/estree': 1.0.7 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + vfile-message: 4.0.2 + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.0 + decode-named-character-reference: 1.1.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minipass@7.1.2: {} + + ms@2.1.3: {} + + natural-compare@1.4.0: {} + + npm-run-path@6.0.0: + dependencies: + path-key: 4.0.0 + unicorn-magic: 0.3.0 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + package-json-from-dist@1.0.1: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-entities@4.0.2: + dependencies: + '@types/unist': 2.0.11 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.1.0 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + + parse-ms@4.0.0: {} + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + picomatch@2.3.1: {} + + prelude-ls@1.2.1: {} + + prettier-linter-helpers@1.0.0: + dependencies: + fast-diff: 1.3.0 + + prettier@3.5.3: {} + + pretty-ms@9.2.0: + dependencies: + parse-ms: 4.0.0 + + property-information@7.0.0: {} + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + react@19.1.0: {} + + recma-build-jsx@1.0.0: + dependencies: + '@types/estree': 1.0.7 + estree-util-build-jsx: 3.0.1 + vfile: 6.0.3 + + recma-jsx@1.0.0(acorn@8.14.1): + dependencies: + acorn-jsx: 5.3.2(acorn@8.14.1) + estree-util-to-js: 2.0.0 + recma-parse: 1.0.0 + recma-stringify: 1.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - acorn + + recma-parse@1.0.0: + dependencies: + '@types/estree': 1.0.7 + esast-util-from-js: 2.0.1 + unified: 11.0.5 + vfile: 6.0.3 + + recma-stringify@1.0.0: + dependencies: + '@types/estree': 1.0.7 + estree-util-to-js: 2.0.0 + unified: 11.0.5 + vfile: 6.0.3 + + rehype-recma@1.0.0: + dependencies: + '@types/estree': 1.0.7 + '@types/hast': 3.0.4 + hast-util-to-estree: 3.1.3 + transitivePeerDependencies: + - supports-color + + remark-mdx@3.1.0: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.2: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + + remark@15.0.1: + dependencies: + '@types/mdast': 4.0.4 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + resolve-from@4.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + reusify@1.1.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + semver@7.7.1: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + signal-exit@4.1.0: {} + + source-map@0.7.4: {} + + space-separated-tokens@2.0.2: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-final-newline@4.0.0: {} + + strip-json-comments@3.1.1: {} + + style-to-js@1.1.16: + dependencies: + style-to-object: 1.0.8 + + style-to-object@1.0.8: + dependencies: + inline-style-parser: 0.2.4 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + synckit@0.11.2: + dependencies: + '@pkgr/core': 0.2.0 + tslib: 2.8.1 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + trim-lines@3.0.1: {} + + trough@2.2.0: {} + + ts-api-utils@2.1.0(typescript@5.8.2): + dependencies: + typescript: 5.8.2 + + tslib@2.8.1: {} + + tsx@4.19.3: + dependencies: + esbuild: 0.25.2 + get-tsconfig: 4.10.0 + optionalDependencies: + fsevents: 2.3.3 + + tunnel@0.0.6: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + typescript-eslint@8.29.0(eslint@9.23.0)(typescript@5.8.2): + dependencies: + '@typescript-eslint/eslint-plugin': 8.29.0(@typescript-eslint/parser@8.29.0(eslint@9.23.0)(typescript@5.8.2))(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.29.0(eslint@9.23.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.29.0(eslint@9.23.0)(typescript@5.8.2) + eslint: 9.23.0 + typescript: 5.8.2 + transitivePeerDependencies: + - supports-color + + typescript@5.8.2: {} + + undici-types@6.19.8: {} + + undici@5.29.0: + dependencies: + '@fastify/busboy': 2.1.1 + + unicorn-magic@0.3.0: {} + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position-from-estree@2.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + universalify@2.0.1: {} + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + yocto-queue@0.1.0: {} + + yoctocolors@2.1.1: {} + + zwitch@2.0.4: {} diff --git a/resources/discord-social-sdk/linked-channel-icon.svg b/resources/discord-social-sdk/linked-channel-icon.svg deleted file mode 100644 index a448872a45..0000000000 --- a/resources/discord-social-sdk/linked-channel-icon.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/tools/shrink-images.ts b/tools/shrink-images.ts new file mode 100644 index 0000000000..98c11a4a34 --- /dev/null +++ b/tools/shrink-images.ts @@ -0,0 +1,73 @@ +// @ts-check + +import { execSync } from "child_process"; +import fs from "fs"; +import MagicString from "magic-string"; +import path from "path"; + +const allFiles = execSync("git ls-files", { encoding: "utf-8" }).toString().split("\n"); + +const docExts = ["md", "mdx"]; +const docs = allFiles.filter((file: string) => docExts.some((ext) => file.endsWith(`.${ext}`))); + +const badImageExts = ["png", "jpeg", "jpg", "gif", "svg"]; +const badImages = allFiles.filter((file: string) => badImageExts.some((ext) => file.endsWith(`.${ext}`))); + +type ImageReference = [filePath: string, imagePath: string, lineNumber: number]; + +const imageLookupMap: Record = {}; +const docContents: Record = {}; +const promises = docs.map(async (doc) => { + const contents = await fs.promises.readFile(doc, { encoding: "utf-8" }); + docContents[doc] = contents; + + const lines = contents.split("\n"); + for (let i = 0; i < lines.length; i++) { + const line = lines[i]; + const imageMatch = line.match(/!\[.*\]\((.*)\)/); + if (imageMatch) { + const imagePath = imageMatch[1]; + imageLookupMap[imagePath] ??= []; + imageLookupMap[imagePath].push([doc, imagePath, i + 1]); + } + } +}); +await Promise.all(promises); + +for (const image of badImages) { + const imageReferences = imageLookupMap[image]; + const alternateImageReferences = imageLookupMap[image.replace("images/", "")]; + + if (imageReferences && alternateImageReferences) { + throw new Error("Ambiguous image references"); + } + + const references = imageReferences ?? alternateImageReferences ?? []; + + if (references.length === 0) { + // console.log(`Remove ${image}`); + // fs.rmSync(image); + continue; + } + + console.log(image, references.length); + const webpPath = image.replace(/.(png|jpeg|jpg|gif|svg)$/, ".webp"); + console.log(`magick ${image} -quality 80 ${webpPath}`); + for (const [doc, imagePath, lineNumber] of references) { + // console.log(` ${doc}:${lineNumber} - ${imagePath}`); + + const lines = docContents[doc].split("\n"); + const s = new MagicString(lines[lineNumber - 1]); + const ext = path.extname(imagePath); + s.replace(ext, ".webp"); + if (ext === ".jpg" || ext === ".jpeg") { + console.error(`Rewrote ${doc}:${lineNumber} - ${imagePath}`); + lines[lineNumber - 1] = s.toString(); + docContents[doc] = lines.join("\n"); + } + } +} + +for (const doc of docs) { + await fs.promises.writeFile(doc, docContents[doc]); +}