diff --git a/.env.example b/.env.example
index 0d808f655b..d2d89eda85 100644
--- a/.env.example
+++ b/.env.example
@@ -1,39 +1,38 @@
# Discord Configuration
DISCORD_APPLICATION_ID=
-DISCORD_API_TOKEN= # Bot token
-DISCORD_VOICE_CHANNEL_ID= # The ID of the voice channel the bot should join (optional)
+DISCORD_API_TOKEN= # Bot token
+DISCORD_VOICE_CHANNEL_ID= # The ID of the voice channel the bot should join (optional)
# AI Model API Keys
-OPENAI_API_KEY= # OpenAI API key, starting with sk-
-SMALL_OPENAI_MODEL= # Default: gpt-4o-mini
-MEDIUM_OPENAI_MODEL= # Default: gpt-4o
-LARGE_OPENAI_MODEL= # Default: gpt-4o
-EMBEDDING_OPENAI_MODEL= # Default: text-embedding-3-small
-IMAGE_OPENAI_MODEL= # Default: dall-e-3
+OPENAI_API_KEY= # OpenAI API key, starting with sk-
+SMALL_OPENAI_MODEL= # Default: gpt-4o-mini
+MEDIUM_OPENAI_MODEL= # Default: gpt-4o
+LARGE_OPENAI_MODEL= # Default: gpt-4o
+EMBEDDING_OPENAI_MODEL= # Default: text-embedding-3-small
+IMAGE_OPENAI_MODEL= # Default: dall-e-3
# Eternal AI's Decentralized Inference API
ETERNALAI_URL=
-ETERNALAI_MODEL= #Default: "neuralmagic/Meta-Llama-3.1-405B-Instruct-quantized.w4a16"
+ETERNALAI_MODEL= # Default: "neuralmagic/Meta-Llama-3.1-405B-Instruct-quantized.w4a16"
ETERNALAI_API_KEY=
-GROK_API_KEY= # GROK API Key
-GROQ_API_KEY= # Starts with gsk_
+GROK_API_KEY= # GROK API Key
+GROQ_API_KEY= # Starts with gsk_
OPENROUTER_API_KEY=
-GOOGLE_GENERATIVE_AI_API_KEY= # Gemini API key
+GOOGLE_GENERATIVE_AI_API_KEY= # Gemini API key
-ALI_BAILIAN_API_KEY= # Ali Bailian API Key
-VOLENGINE_API_KEY= # VolEngine API Key
-NANOGPT_API_KEY= # NanoGPT API Key
+ALI_BAILIAN_API_KEY= # Ali Bailian API Key
+NANOGPT_API_KEY= # NanoGPT API Key
-HYPERBOLIC_API_KEY= # Hyperbolic API Key
+HYPERBOLIC_API_KEY= # Hyperbolic API Key
HYPERBOLIC_MODEL=
-IMAGE_HYPERBOLIC_MODEL= # Default: FLUX.1-dev
-SMALL_HYPERBOLIC_MODEL= # Default: meta-llama/Llama-3.2-3B-Instruct
-MEDIUM_HYPERBOLIC_MODEL= # Default: meta-llama/Meta-Llama-3.1-70B-Instruct
-LARGE_HYPERBOLIC_MODEL= # Default: meta-llama/Meta-Llama-3.1-405-Instruct
+IMAGE_HYPERBOLIC_MODEL= # Default: FLUX.1-dev
+SMALL_HYPERBOLIC_MODEL= # Default: meta-llama/Llama-3.2-3B-Instruct
+MEDIUM_HYPERBOLIC_MODEL= # Default: meta-llama/Meta-Llama-3.1-70B-Instruct
+LARGE_HYPERBOLIC_MODEL= # Default: meta-llama/Meta-Llama-3.1-405-Instruct
# Speech Synthesis
-ELEVENLABS_XI_API_KEY= # API key from elevenlabs
+ELEVENLABS_XI_API_KEY= # API key from elevenlabs
# ElevenLabs Settings
ELEVENLABS_MODEL_ID=eleven_multilingual_v2
@@ -47,21 +46,23 @@ ELEVENLABS_OUTPUT_FORMAT=pcm_16000
# Twitter/X Configuration
TWITTER_DRY_RUN=false
-TWITTER_USERNAME= # Account username
-TWITTER_PASSWORD= # Account password
-TWITTER_EMAIL= # Account email
+TWITTER_USERNAME= # Account username
+TWITTER_PASSWORD= # Account password
+TWITTER_EMAIL= # Account email
TWITTER_2FA_SECRET=
-TWITTER_COOKIES= # Account cookies
-TWITTER_POLL_INTERVAL=120 # How often (in seconds) the bot should check for interactions
-TWITTER_SEARCH_ENABLE=FALSE # Enable timeline search, WARNING this greatly increases your chance of getting banned
-TWITTER_TARGET_USERS= # Comma separated list of Twitter user names to interact with
+
+TWITTER_COOKIES= # Account cookies
+TWITTER_POLL_INTERVAL=120 # How often (in seconds) the bot should check for interactions
+TWITTER_SEARCH_ENABLE=FALSE # Enable timeline search, WARNING this greatly increases your chance of getting banned
+TWITTER_TARGET_USERS= # Comma separated list of Twitter user names to interact with
+
X_SERVER_URL=
XAI_API_KEY=
XAI_MODEL=
# Post Interval Settings (in minutes)
-POST_INTERVAL_MIN= # Default: 90
-POST_INTERVAL_MAX= # Default: 180
+POST_INTERVAL_MIN= # Default: 90
+POST_INTERVAL_MAX= # Default: 180
POST_IMMEDIATELY=
# Twitter action processing configuration
@@ -69,82 +70,85 @@ ACTION_INTERVAL=300000 # Interval in milliseconds between action processing
ENABLE_ACTION_PROCESSING=false # Set to true to enable the action processing loop
# Feature Flags
-IMAGE_GEN= # Set to TRUE to enable image generation
-USE_OPENAI_EMBEDDING= # Set to TRUE for OpenAI/1536, leave blank for local
-USE_OLLAMA_EMBEDDING= # Set to TRUE for OLLAMA/1024, leave blank for local
+IMAGE_GEN= # Set to TRUE to enable image generation
+USE_OPENAI_EMBEDDING= # Set to TRUE for OpenAI/1536, leave blank for local
+USE_OLLAMA_EMBEDDING= # Set to TRUE for OLLAMA/1024, leave blank for local
# OpenRouter Models
-OPENROUTER_MODEL= # Default: uses hermes 70b/405b
+OPENROUTER_MODEL= # Default: uses hermes 70b/405b
SMALL_OPENROUTER_MODEL=
MEDIUM_OPENROUTER_MODEL=
LARGE_OPENROUTER_MODEL=
# REDPILL Configuration
# https://docs.red-pill.ai/get-started/supported-models
-REDPILL_API_KEY= # REDPILL API Key
+REDPILL_API_KEY= # REDPILL API Key
REDPILL_MODEL=
-SMALL_REDPILL_MODEL= # Default: gpt-4o-mini
-MEDIUM_REDPILL_MODEL= # Default: gpt-4o
-LARGE_REDPILL_MODEL= # Default: gpt-4o
+SMALL_REDPILL_MODEL= # Default: gpt-4o-mini
+MEDIUM_REDPILL_MODEL= # Default: gpt-4o
+LARGE_REDPILL_MODEL= # Default: gpt-4o
+
+# Grok Configuration
+SMALL_GROK_MODEL= # Default: grok-2-1212
+MEDIUM_GROK_MODEL= # Default: grok-2-1212
+LARGE_GROK_MODEL= # Default: grok-2-1212
+EMBEDDING_GROK_MODEL= # Default: grok-2-1212
# Ollama Configuration
-OLLAMA_SERVER_URL= # Default: localhost:11434
+OLLAMA_SERVER_URL= # Default: localhost:11434
OLLAMA_MODEL=
-OLLAMA_EMBEDDING_MODEL= # Default: mxbai-embed-large
-SMALL_OLLAMA_MODEL= # Default: llama3.2
-MEDIUM_OLLAMA_MODEL= # Default: hermes3
-LARGE_OLLAMA_MODEL= # Default: hermes3:70b
+OLLAMA_EMBEDDING_MODEL= # Default: mxbai-embed-large
+SMALL_OLLAMA_MODEL= # Default: llama3.2
+MEDIUM_OLLAMA_MODEL= # Default: hermes3
+LARGE_OLLAMA_MODEL= # Default: hermes3:70b
# Google Configuration
GOOGLE_MODEL=
-SMALL_GOOGLE_MODEL= # Default: gemini-1.5-flash-latest
-MEDIUM_GOOGLE_MODEL= # Default: gemini-1.5-flash-latest
-LARGE_GOOGLE_MODEL= # Default: gemini-1.5-pro-latest
-EMBEDDING_GOOGLE_MODEL= # Default: text-embedding-004
+SMALL_GOOGLE_MODEL= # Default: gemini-1.5-flash-latest
+MEDIUM_GOOGLE_MODEL= # Default: gemini-1.5-flash-latest
+LARGE_GOOGLE_MODEL= # Default: gemini-1.5-pro-latest
+EMBEDDING_GOOGLE_MODEL= # Default: text-embedding-004
# Groq Configuration
-SMALL_GROQ_MODEL= # Default: llama-3.1-8b-instant
-MEDIUM_GROQ_MODEL= # Default: llama-3.3-70b-versatile
-LARGE_GROQ_MODEL= # Default: llama-3.2-90b-vision-preview
-EMBEDDING_GROQ_MODEL= # Default: llama-3.1-8b-instant
-
-# NanoGPT Configuration
-SMALL_NANOGPT_MODEL= # Default: gpt-4o-mini
-MEDIUM_NANOGPT_MODEL= # Default: gpt-4o
-LARGE_NANOGPT_MODEL= # Default: gpt-4o
+SMALL_GROQ_MODEL= # Default: llama-3.1-8b-instant
+MEDIUM_GROQ_MODEL= # Default: llama-3.3-70b-versatile
+LARGE_GROQ_MODEL= # Default: llama-3.2-90b-vision-preview
+EMBEDDING_GROQ_MODEL= # Default: llama-3.1-8b-instant
-#LlamaLocal Configuration
-LLAMALOCAL_PATH= # Default: "" which is the current directory in plugin-node/dist/ which gets destroyed and recreated on every build
+# LlamaLocal Configuration
+LLAMALOCAL_PATH= # Default: "" which is the current directory in plugin-node/dist/ which gets destroyed and recreated on every build
-# API Keys
-ANTHROPIC_API_KEY= # For Claude
-SMALL_ANTHROPIC_MODEL= # Default: claude-3-haiku-20240307
-MEDIUM_ANTHROPIC_MODEL= # Default: claude-3-5-sonnet-20241022
-LARGE_ANTHROPIC_MODEL= # Default: claude-3-5-sonnet-20241022
-
-HEURIST_API_KEY= # Get from https://heurist.ai/dev-access
-
-# Heurist Models
-SMALL_HEURIST_MODEL= # Default: meta-llama/llama-3-70b-instruct
-MEDIUM_HEURIST_MODEL= # Default: meta-llama/llama-3-70b-instruct
-LARGE_HEURIST_MODEL= # Default: meta-llama/llama-3.1-405b-instruct
-HEURIST_IMAGE_MODEL= # Default: PepeXL
+# NanoGPT Configuration
+SMALL_NANOGPT_MODEL= # Default: gpt-4o-mini
+MEDIUM_NANOGPT_MODEL= # Default: gpt-4o
+LARGE_NANOGPT_MODEL= # Default: gpt-4o
+
+# Anthropic Configuration
+ANTHROPIC_API_KEY= # For Claude
+SMALL_ANTHROPIC_MODEL= # Default: claude-3-haiku-20240307
+MEDIUM_ANTHROPIC_MODEL= # Default: claude-3-5-sonnet-20241022
+LARGE_ANTHROPIC_MODEL= # Default: claude-3-5-sonnet-20241022
+
+# Heurist Configuration
+HEURIST_API_KEY= # Get from https://heurist.ai/dev-access
+SMALL_HEURIST_MODEL= # Default: meta-llama/llama-3-70b-instruct
+MEDIUM_HEURIST_MODEL= # Default: meta-llama/llama-3-70b-instruct
+LARGE_HEURIST_MODEL= # Default: meta-llama/llama-3.1-405b-instruct
+HEURIST_IMAGE_MODEL= # Default: PepeXL
# Gaianet Configuration
GAIANET_MODEL=
GAIANET_SERVER_URL=
-SMALL_GAIANET_MODEL= # Default: llama3b
-SMALL_GAIANET_SERVER_URL= # Default: https://llama3b.gaia.domains/v1
-
-MEDIUM_GAIANET_MODEL= # Default: llama
-MEDIUM_GAIANET_SERVER_URL= # Default: https://llama8b.gaia.domains/v1
-
-LARGE_GAIANET_MODEL= # Default: qwen72b
-LARGE_GAIANET_SERVER_URL= # Default: https://qwen72b.gaia.domains/v1
+SMALL_GAIANET_MODEL= # Default: llama3b
+SMALL_GAIANET_SERVER_URL= # Default: https://llama3b.gaia.domains/v1
+MEDIUM_GAIANET_MODEL= # Default: llama
+MEDIUM_GAIANET_SERVER_URL= # Default: https://llama8b.gaia.domains/v1
+LARGE_GAIANET_MODEL= # Default: qwen72b
+LARGE_GAIANET_SERVER_URL= # Default: https://qwen72b.gaia.domains/v1
GAIANET_EMBEDDING_MODEL=
-USE_GAIANET_EMBEDDING= # Set to TRUE for GAIANET/768, leave blank for local
+USE_GAIANET_EMBEDDING= # Set to TRUE for GAIANET/768, leave blank for local
# EVM
EVM_PRIVATE_KEY=
@@ -153,6 +157,10 @@ EVM_PROVIDER_URL=
# Solana
SOLANA_PRIVATE_KEY=
SOLANA_PUBLIC_KEY=
+SOLANA_CLUSTER= # Default: devnet. Solana Cluster: 'devnet' | 'testnet' | 'mainnet-beta'
+SOLANA_ADMIN_PRIVATE_KEY= # This wallet is used to verify NFTs
+SOLANA_ADMIN_PUBLIC_KEY= # This wallet is used to verify NFTs
+SOLANA_VERIFY_TOKEN= # Authentication token for calling the verification API
# Fallback Wallet Configuration (deprecated)
WALLET_PRIVATE_KEY=
@@ -185,21 +193,28 @@ STARKNET_RPC_URL=
INTIFACE_WEBSOCKET_URL=ws://localhost:12345
# Farcaster Neynar Configuration
-FARCASTER_FID= # the FID associated with the account your are sending casts from
+FARCASTER_FID= # The FID associated with the account your are sending casts from
FARCASTER_NEYNAR_API_KEY= # Neynar API key: https://neynar.com/
-FARCASTER_NEYNAR_SIGNER_UUID= # signer for the account you are sending casts from. create a signer here: https://dev.neynar.com/app
+FARCASTER_NEYNAR_SIGNER_UUID= # Signer for the account you are sending casts from. Create a signer here: https://dev.neynar.com/app
FARCASTER_DRY_RUN=false # Set to true if you want to run the bot without actually publishing casts
FARCASTER_POLL_INTERVAL=120 # How often (in seconds) the bot should check for farcaster interactions (replies and mentions)
# Coinbase
-COINBASE_COMMERCE_KEY= # from coinbase developer portal
-COINBASE_API_KEY= # from coinbase developer portal
-COINBASE_PRIVATE_KEY= # from coinbase developer portal
-# if not configured it will be generated and written to runtime.character.settings.secrets.COINBASE_GENERATED_WALLET_ID and runtime.character.settings.secrets.COINBASE_GENERATED_WALLET_HEX_SEED
-COINBASE_GENERATED_WALLET_ID= # not your address but the wallet id from generating a wallet through the plugin
-COINBASE_GENERATED_WALLET_HEX_SEED= # not your address but the wallet hex seed from generating a wallet through the plugin and calling export
-# for webhook plugin the uri you want to send the webhook to for dummy ones use https://webhook.site
-COINBASE_NOTIFICATION_URI=
+COINBASE_COMMERCE_KEY= # From Coinbase developer portal
+COINBASE_API_KEY= # From Coinbase developer portal
+COINBASE_PRIVATE_KEY= # From Coinbase developer portal
+COINBASE_GENERATED_WALLET_ID= # Not your address but the wallet ID from generating a wallet through the plugin
+COINBASE_GENERATED_WALLET_HEX_SEED= # Not your address but the wallet hex seed from generating a wallet through the plugin and calling export
+COINBASE_NOTIFICATION_URI= # For webhook plugin the uri you want to send the webhook to for dummy ones use https://webhook.site
+
+# Coinbase Charity Configuration
+IS_CHARITABLE=false # Set to true to enable charity donations
+CHARITY_ADDRESS_BASE=0x1234567890123456789012345678901234567890
+CHARITY_ADDRESS_SOL=pWvDXKu6CpbKKvKQkZvDA66hgsTB6X2AgFxksYogHLV
+CHARITY_ADDRESS_ETH=0x750EF1D7a0b4Ab1c97B7A623D7917CcEb5ea779C
+CHARITY_ADDRESS_ARB=0x1234567890123456789012345678901234567890
+CHARITY_ADDRESS_POL=0x1234567890123456789012345678901234567890
+
# Conflux Configuration
CONFLUX_CORE_PRIVATE_KEY=
CONFLUX_CORE_SPACE_RPC_URL=
@@ -207,7 +222,7 @@ CONFLUX_ESPACE_PRIVATE_KEY=
CONFLUX_ESPACE_RPC_URL=
CONFLUX_MEME_CONTRACT_ADDRESS=
-#ZeroG
+# ZeroG
ZEROG_INDEXER_RPC=
ZEROG_EVM_RPC=
ZEROG_PRIVATE_KEY=
@@ -219,42 +234,49 @@ ZEROG_FLOW_ADDRESS=
# - DOCKER: Uses simulator at host.docker.internal:8090 (for docker development)
# - PRODUCTION: No simulator, uses production endpoints
# Defaults to OFF if not specified
-TEE_MODE=OFF #LOCAL|DOCKER|PRODUCTION
-WALLET_SECRET_SALT= # ONLY DEFINE IF YOU WANT TO USE TEE Plugin, otherwise it will throw errors
+TEE_MODE=OFF # LOCAL | DOCKER | PRODUCTION
+WALLET_SECRET_SALT= # ONLY define if you want to use TEE Plugin, otherwise it will throw errors
# Galadriel Configuration
-GALADRIEL_API_KEY=gal-* # Get from https://dashboard.galadriel.com/
+GALADRIEL_API_KEY=gal-* # Get from https://dashboard.galadriel.com/
# Venice Configuration
-VENICE_API_KEY= # generate from venice settings
-SMALL_VENICE_MODEL= # Default: llama-3.3-70b
-MEDIUM_VENICE_MODEL= # Default: llama-3.3-70b
-LARGE_VENICE_MODEL= # Default: llama-3.1-405b
+VENICE_API_KEY= # generate from venice settings
+SMALL_VENICE_MODEL= # Default: llama-3.3-70b
+MEDIUM_VENICE_MODEL= # Default: llama-3.3-70b
+LARGE_VENICE_MODEL= # Default: llama-3.1-405b
+IMAGE_VENICE_MODEL= # Default: fluently-xl
+
+# Akash Chat API Configuration docs: https://chatapi.akash.network/documentation
+AKASH_CHAT_API_KEY= # Get from https://chatapi.akash.network/
+SMALL_AKASH_CHAT_API_MODEL= # Default: Meta-Llama-3-2-3B-Instruct
+MEDIUM_AKASH_CHAT_API_MODEL= # Default: Meta-Llama-3-3-70B-Instruct
+LARGE_AKASH_CHAT_API_MODEL= # Default: Meta-Llama-3-1-405B-Instruct-FP8
# fal.ai Configuration
FAL_API_KEY=
FAL_AI_LORA_PATH=
# WhatsApp Cloud API Configuration
-WHATSAPP_ACCESS_TOKEN= # Permanent access token from Facebook Developer Console
-WHATSAPP_PHONE_NUMBER_ID= # Phone number ID from WhatsApp Business API
-WHATSAPP_BUSINESS_ACCOUNT_ID= # Business Account ID from Facebook Business Manager
-WHATSAPP_WEBHOOK_VERIFY_TOKEN= # Custom string for webhook verification
-WHATSAPP_API_VERSION=v17.0 # WhatsApp API version (default: v17.0)
+WHATSAPP_ACCESS_TOKEN= # Permanent access token from Facebook Developer Console
+WHATSAPP_PHONE_NUMBER_ID= # Phone number ID from WhatsApp Business API
+WHATSAPP_BUSINESS_ACCOUNT_ID= # Business Account ID from Facebook Business Manager
+WHATSAPP_WEBHOOK_VERIFY_TOKEN= # Custom string for webhook verification
+WHATSAPP_API_VERSION=v17.0 # WhatsApp API version (default: v17.0)
# Flow Blockchain Configuration
FLOW_ADDRESS=
-FLOW_PRIVATE_KEY= # Private key for SHA3-256 + P256 ECDSA
-FLOW_NETWORK= # Default: mainnet
-FLOW_ENDPOINT_URL= # Default: https://mainnet.onflow.org
+FLOW_PRIVATE_KEY= # Private key for SHA3-256 + P256 ECDSA
+FLOW_NETWORK= # Default: mainnet
+FLOW_ENDPOINT_URL= # Default: https://mainnet.onflow.org
# ICP
INTERNET_COMPUTER_PRIVATE_KEY=
INTERNET_COMPUTER_ADDRESS=
# Aptos
-APTOS_PRIVATE_KEY= # Aptos private key
-APTOS_NETWORK= # must be one of mainnet, testnet
+APTOS_PRIVATE_KEY= # Aptos private key
+APTOS_NETWORK= # Must be one of mainnet, testnet
# EchoChambers Configuration
ECHOCHAMBERS_API_URL=http://127.0.0.1:3333
@@ -264,6 +286,26 @@ ECHOCHAMBERS_DEFAULT_ROOM=general
ECHOCHAMBERS_POLL_INTERVAL=60
ECHOCHAMBERS_MAX_MESSAGES=10
+# MultiversX
+MVX_PRIVATE_KEY= # Multiversx private key
+MVX_NETWORK= # must be one of mainnet, devnet, testnet
+
+# NEAR
+NEAR_WALLET_SECRET_KEY=
+NEAR_WALLET_PUBLIC_KEY=
+NEAR_ADDRESS=
+SLIPPAGE=1
+RPC_URL=https://rpc.testnet.near.org
+NEAR_NETWORK=testnet # or mainnet
+
+# ZKsync Era Configuration
+ZKSYNC_ADDRESS=
+ZKSYNC_PRIVATE_KEY=
+
+# Ton
+TON_PRIVATE_KEY= # Ton Mnemonic Seed Phrase Join With Empty String
+TON_RPC_URL= # ton rpc
+
# AWS S3 Configuration Settings for File Upload
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
@@ -271,6 +313,15 @@ AWS_REGION=
AWS_S3_BUCKET=
AWS_S3_UPLOAD_PATH=
-
# Deepgram
DEEPGRAM_API_KEY=
+
+# Sui
+SUI_PRIVATE_KEY= # Sui Mnemonic Seed Phrase (`sui keytool generate ed25519`)
+SUI_NETWORK= # must be one of mainnet, testnet, devnet, localnet
+
+# Story
+STORY_PRIVATE_KEY= # Story private key
+STORY_API_BASE_URL= # Story API base URL
+STORY_API_KEY= # Story API key
+PINATA_JWT= # Pinata JWT for uploading files to IPFS
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
index 58c6cdcc55..09649bafae 100644
--- a/.github/workflows/ci.yaml
+++ b/.github/workflows/ci.yaml
@@ -20,7 +20,7 @@ jobs:
cache: "pnpm"
- name: Install dependencies
- run: pnpm install --no-frozen-lockfile
+ run: pnpm install
- name: Run Prettier
run: pnpm run prettier --check .
diff --git a/.gitignore b/.gitignore
index 17300ccdb7..abc2305272 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,8 @@ node_modules
.env
.env.production
+.env.local
+.env_main
concatenated-output.ts
embedding-cache.json
packages/plugin-buttplug/intiface-engine
@@ -48,4 +50,5 @@ tsup.config.bundled_*.mjs
.turbo
-coverage
\ No newline at end of file
+coverage
+.eslintcache
diff --git a/.gitpod.yml b/.gitpod.yml
index f6e6601f43..3d243d6e34 100644
--- a/.gitpod.yml
+++ b/.gitpod.yml
@@ -4,5 +4,4 @@ tasks:
init: |
nvm install v23.3.0
git checkout $(git describe --tags --abbrev=0)
- command: pnpm install && pnpm run build
-
+ command: pnpm install && pnpm run build
diff --git a/.npmrc b/.npmrc
index d67f374883..0f6a4a767d 100644
--- a/.npmrc
+++ b/.npmrc
@@ -1 +1,2 @@
node-linker=hoisted
+frozen-lockfile=true
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 813a00406e..bb351d019f 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -44,4 +44,4 @@
"[shellscript]": {
"editor.defaultFormatter": "foxundermoon.shell-format"
}
-}
+}
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f32c8efe0d..8574509e3a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,188 @@
# Changelog
+## [v0.1.6-alpha.4](https://github.com/ai16z/eliza/tree/v0.1.6-alpha.4) (2024-12-17)
+
+[Full Changelog](https://github.com/ai16z/eliza/compare/v0.1.6-alpha.3...v0.1.6-alpha.4)
+
+**Fixed bugs:**
+
+- pnpm install fails on m1 mac \[Fixed with xcode-select reinstall\] [\#1146](https://github.com/ai16z/eliza/issues/1146)
+
+**Merged pull requests:**
+
+- chore: bump version to 0.1.6-alpha.4 [\#1159](https://github.com/ai16z/eliza/pull/1159) ([shakkernerd](https://github.com/shakkernerd))
+- fix: client twitter login and auth handler [\#1158](https://github.com/ai16z/eliza/pull/1158) ([shakkernerd](https://github.com/shakkernerd))
+
+## [v0.1.6-alpha.3](https://github.com/ai16z/eliza/tree/v0.1.6-alpha.3) (2024-12-17)
+
+[Full Changelog](https://github.com/ai16z/eliza/compare/v0.1.6-alpha.2...v0.1.6-alpha.3)
+
+**Merged pull requests:**
+
+- chore: develop into main [\#1155](https://github.com/ai16z/eliza/pull/1155) ([shakkernerd](https://github.com/shakkernerd))
+- fix: fix direct-client ability to start agents [\#1154](https://github.com/ai16z/eliza/pull/1154) ([odilitime](https://github.com/odilitime))
+- fix: fetch log level to debug [\#1153](https://github.com/ai16z/eliza/pull/1153) ([shakkernerd](https://github.com/shakkernerd))
+- chore: bump version to 0.1.6-alpha.3 [\#1152](https://github.com/ai16z/eliza/pull/1152) ([shakkernerd](https://github.com/shakkernerd))
+- feat: update packages version script [\#1150](https://github.com/ai16z/eliza/pull/1150) ([shakkernerd](https://github.com/shakkernerd))
+
+## [v0.1.6-alpha.2](https://github.com/ai16z/eliza/tree/v0.1.6-alpha.2) (2024-12-17)
+
+[Full Changelog](https://github.com/ai16z/eliza/compare/v0.1.6-alpha.1...v0.1.6-alpha.2)
+
+**Implemented enhancements:**
+
+- Add a Hebrew Translation for the readme. [\#1022](https://github.com/ai16z/eliza/issues/1022)
+- GenLayer Plugin [\#972](https://github.com/ai16z/eliza/issues/972)
+- Feature Request: Add Aptos and Move Support to the Eliza Framework for Autonomous Agents [\#790](https://github.com/ai16z/eliza/issues/790)
+- enhancement: Improve message threading and handling to reduce repetition [\#783](https://github.com/ai16z/eliza/issues/783)
+- fal.ai image generation [\#648](https://github.com/ai16z/eliza/issues/648)
+- Upgrade to turborepo for monorepo management [\#639](https://github.com/ai16z/eliza/issues/639)
+- Add a plugin for storing data using the 0G protocol. [\#415](https://github.com/ai16z/eliza/issues/415)
+- way for bots to have cool down periods \(dynamic tempature adjusts\) & only direct reply setting [\#399](https://github.com/ai16z/eliza/issues/399)
+- Create an Eliza Trained on Dev Documentation [\#352](https://github.com/ai16z/eliza/issues/352)
+- Get to a place where we can reliably create release tags [\#317](https://github.com/ai16z/eliza/issues/317)
+- Managing Divergence Across the Eliza Ecosystem \(Multiple Forks\) [\#305](https://github.com/ai16z/eliza/issues/305)
+- EVM Integration [\#303](https://github.com/ai16z/eliza/issues/303)
+- Farcaster Client / Plugin [\#300](https://github.com/ai16z/eliza/issues/300)
+- Allow twitter client to configure who to reply to based on following relationship [\#264](https://github.com/ai16z/eliza/issues/264)
+- Agent is reposting images from other parts of conversation as its own image [\#260](https://github.com/ai16z/eliza/issues/260)
+- Fix queueing in Twitter so messages are not rate limited constantly [\#259](https://github.com/ai16z/eliza/issues/259)
+- Fix Twitter Multi-agent, Characters respond to each other's messages [\#258](https://github.com/ai16z/eliza/issues/258)
+- Add shouldRespond handler to voice [\#244](https://github.com/ai16z/eliza/issues/244)
+- Move cache to database [\#243](https://github.com/ai16z/eliza/issues/243)
+- Store all local models in /models folder, with overridable model path [\#242](https://github.com/ai16z/eliza/issues/242)
+- Add storeCredential and getCredential key value store, store secrets in db [\#241](https://github.com/ai16z/eliza/issues/241)
+- Move embeddings to a service and a service and add ServiceType.EMBEDDING [\#240](https://github.com/ai16z/eliza/issues/240)
+- Fix function calling, repetition and local action calling [\#161](https://github.com/ai16z/eliza/issues/161)
+- Make image generation very nice and spicy [\#158](https://github.com/ai16z/eliza/issues/158)
+- Add AI Code Reviewing application from GitHub Marketplace [\#81](https://github.com/ai16z/eliza/issues/81)
+- Abstract image descriptions / recognition to use any model provider [\#72](https://github.com/ai16z/eliza/issues/72)
+- 💡 Have silly tavern compatibility [\#56](https://github.com/ai16z/eliza/issues/56)
+- User Interface Enhancement [\#54](https://github.com/ai16z/eliza/issues/54)
+- "Private" Actions [\#29](https://github.com/ai16z/eliza/issues/29)
+- Pump Fun Token Creation [\#28](https://github.com/ai16z/eliza/issues/28)
+- Awareness of Twitter bio and username [\#27](https://github.com/ai16z/eliza/issues/27)
+
+**Fixed bugs:**
+
+- pnpm install updates pnpm lockfile when it should not [\#1121](https://github.com/ai16z/eliza/issues/1121)
+- Not respecting OpenAI model selection [\#1105](https://github.com/ai16z/eliza/issues/1105)
+- Scrapper login [\#1066](https://github.com/ai16z/eliza/issues/1066)
+- code2prompt Not Functioning with WSL [\#1060](https://github.com/ai16z/eliza/issues/1060)
+- Unexpected token 'A', "Agent not found" is not valid JSON [\#1059](https://github.com/ai16z/eliza/issues/1059)
+- bug: setting auto in character file fails to load client-auto [\#1049](https://github.com/ai16z/eliza/issues/1049)
+- TypeError - LinkedIn constructor error [\#990](https://github.com/ai16z/eliza/issues/990)
+- Twitter/X Cache Login not staying logged in [\#939](https://github.com/ai16z/eliza/issues/939)
+- Can't start project. Got `ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL` error [\#925](https://github.com/ai16z/eliza/issues/925)
+- Client Twitter Login issue: Error: {"errors":\[{"code":399,"message":"Incorrect. Please try again."}\]} [\#905](https://github.com/ai16z/eliza/issues/905)
+- Implement Retry Mechanism for Twitter Login with Cookie Validation [\#855](https://github.com/ai16z/eliza/issues/855)
+- How to deal with Twitter login issues [\#841](https://github.com/ai16z/eliza/issues/841)
+- This command: pnpm start --characters="characters/tate.character.json" results in an error [\#817](https://github.com/ai16z/eliza/issues/817)
+- Characters Do Not Actually Use ExamplePost or ExampleMessage [\#791](https://github.com/ai16z/eliza/issues/791)
+- `pnpm run dev` does not work out of the box [\#780](https://github.com/ai16z/eliza/issues/780)
+- Agent Responds Twice to prompts [\#726](https://github.com/ai16z/eliza/issues/726)
+- Twitter Client Breaks out of the box [\#673](https://github.com/ai16z/eliza/issues/673)
+- Twitter client only works for one agent when running multiple agents simultaneously [\#656](https://github.com/ai16z/eliza/issues/656)
+- Cannot find module '@ai16z/eliza' or its corresponding type declarations. [\#601](https://github.com/ai16z/eliza/issues/601)
+- create-eliza-app package doesn't install or exist [\#553](https://github.com/ai16z/eliza/issues/553)
+- Non node.js environments have issues building \(workers for instance\) [\#507](https://github.com/ai16z/eliza/issues/507)
+- Error: Property 'clients' does not exist on type 'Plugin' in src/index.ts during pnpm start [\#423](https://github.com/ai16z/eliza/issues/423)
+- using Groq API \(or RedPill or Google Gen AI\) as model provider [\#422](https://github.com/ai16z/eliza/issues/422)
+- Error when starting Eliza agent: "fs.Stats constructor is deprecated" and "triggerUncaughtException" [\#387](https://github.com/ai16z/eliza/issues/387)
+- no action response found in the response content for twitter or tg clients [\#319](https://github.com/ai16z/eliza/issues/319)
+- Docs improvements bounty ideas [\#298](https://github.com/ai16z/eliza/issues/298)
+- Quickstart guide is missing important info [\#284](https://github.com/ai16z/eliza/issues/284)
+- advanced usage section of docs doesn't include instructions for memory management [\#275](https://github.com/ai16z/eliza/issues/275)
+- On PNPM Install this happens [\#237](https://github.com/ai16z/eliza/issues/237)
+- twitter folder paths for twitter cookies & cache/last tweet point to different places [\#230](https://github.com/ai16z/eliza/issues/230)
+- pnpm install fails on Ubuntu [\#215](https://github.com/ai16z/eliza/issues/215)
+- Knowledge system is disabled [\#164](https://github.com/ai16z/eliza/issues/164)
+- LLM can't be trusted to parse it's own json [\#148](https://github.com/ai16z/eliza/issues/148)
+
+**Closed issues:**
+
+- Update totalMessages Logic in Boredom Scoring [\#408](https://github.com/ai16z/eliza/issues/408)
+- Tests are failing [\#64](https://github.com/ai16z/eliza/issues/64)
+
+**Merged pull requests:**
+
+- chore: fix PR \#1147 [\#1148](https://github.com/ai16z/eliza/pull/1148) ([odilitime](https://github.com/odilitime))
+- fix: improve fomo integration [\#1147](https://github.com/ai16z/eliza/pull/1147) ([odilitime](https://github.com/odilitime))
+- chore: Merge monday, merging develop into main [\#1144](https://github.com/ai16z/eliza/pull/1144) ([odilitime](https://github.com/odilitime))
+- chore: remove comment [\#1143](https://github.com/ai16z/eliza/pull/1143) ([shakkernerd](https://github.com/shakkernerd))
+- clean newlines for new tweet [\#1141](https://github.com/ai16z/eliza/pull/1141) ([owlcode](https://github.com/owlcode))
+- fix: telegram client duplicate function removal [\#1140](https://github.com/ai16z/eliza/pull/1140) ([azep-ninja](https://github.com/azep-ninja))
+- fix: remove docker compose command since Docker file already runs [\#1139](https://github.com/ai16z/eliza/pull/1139) ([rarepepi](https://github.com/rarepepi))
+- feat: add support for handlebars templating engine as an option [\#1136](https://github.com/ai16z/eliza/pull/1136) ([erise133](https://github.com/erise133))
+- feat: allow agents to create/buy/sell tokens on FOMO.fund's bonding curve in plugin-solana [\#1135](https://github.com/ai16z/eliza/pull/1135) ([0xNerd](https://github.com/0xNerd))
+- fix: fix the name [\#1133](https://github.com/ai16z/eliza/pull/1133) ([n00b21337](https://github.com/n00b21337))
+- Add `chatapi.akash.network` to available list of model providers \(FREE LLAMA API ACCESS!\) [\#1131](https://github.com/ai16z/eliza/pull/1131) ([MbBrainz](https://github.com/MbBrainz))
+- fix: discord client duplicate function removal [\#1125](https://github.com/ai16z/eliza/pull/1125) ([azep-ninja](https://github.com/azep-ninja))
+- fix: add more heplful default agents \(Dobby and C3PO\) [\#1124](https://github.com/ai16z/eliza/pull/1124) ([n00b21337](https://github.com/n00b21337))
+- fix: Refactor to prevent unnecessary lockfile changes [\#1120](https://github.com/ai16z/eliza/pull/1120) ([monilpat](https://github.com/monilpat))
+- chore: fix broken pnpm lockfile [\#1115](https://github.com/ai16z/eliza/pull/1115) ([shakkernerd](https://github.com/shakkernerd))
+- feat: New docs for community section [\#1114](https://github.com/ai16z/eliza/pull/1114) ([madjin](https://github.com/madjin))
+- fix: Revert "Feat: Update community section of docs" [\#1112](https://github.com/ai16z/eliza/pull/1112) ([monilpat](https://github.com/monilpat))
+- Feat: Update community section of docs [\#1111](https://github.com/ai16z/eliza/pull/1111) ([madjin](https://github.com/madjin))
+- Documentation: Plugin list numbering and titles [\#1107](https://github.com/ai16z/eliza/pull/1107) ([brunocalmels](https://github.com/brunocalmels))
+- fix: add missing imports [\#1104](https://github.com/ai16z/eliza/pull/1104) ([shakkernerd](https://github.com/shakkernerd))
+- chore: fix broken pnpm lockfile [\#1103](https://github.com/ai16z/eliza/pull/1103) ([shakkernerd](https://github.com/shakkernerd))
+- fix: handle no termination message [\#1102](https://github.com/ai16z/eliza/pull/1102) ([shakkernerd](https://github.com/shakkernerd))
+- feat: Smoke Test script [\#1101](https://github.com/ai16z/eliza/pull/1101) ([shakkernerd](https://github.com/shakkernerd))
+- feat: Lens client [\#1098](https://github.com/ai16z/eliza/pull/1098) ([imthatcarlos](https://github.com/imthatcarlos))
+- fix: return types of createAgent & startAgent [\#1097](https://github.com/ai16z/eliza/pull/1097) ([BlockJuic3](https://github.com/BlockJuic3))
+- docs: add README.md to plugin-evm [\#1095](https://github.com/ai16z/eliza/pull/1095) ([nicky-ru](https://github.com/nicky-ru))
+- chore: debugging start behaviour [\#1094](https://github.com/ai16z/eliza/pull/1094) ([shakkernerd](https://github.com/shakkernerd))
+- chore: kill pnpm start [\#1093](https://github.com/ai16z/eliza/pull/1093) ([shakkernerd](https://github.com/shakkernerd))
+- chore: increase timeout to 3mins [\#1092](https://github.com/ai16z/eliza/pull/1092) ([shakkernerd](https://github.com/shakkernerd))
+- feat: allow users to configure models for grok [\#1091](https://github.com/ai16z/eliza/pull/1091) ([oxSaturn](https://github.com/oxSaturn))
+- fix: syntax error: invalid arithmetic operator [\#1088](https://github.com/ai16z/eliza/pull/1088) ([shakkernerd](https://github.com/shakkernerd))
+- fix: client slack linting errors [\#1086](https://github.com/ai16z/eliza/pull/1086) ([shakkernerd](https://github.com/shakkernerd))
+- chore: remove unused imports and rename runtime variable [\#1085](https://github.com/ai16z/eliza/pull/1085) ([shakkernerd](https://github.com/shakkernerd))
+- fix: dynamic import of fs module [\#1084](https://github.com/ai16z/eliza/pull/1084) ([shakkernerd](https://github.com/shakkernerd))
+- chore: remove unnecessary packages [\#1083](https://github.com/ai16z/eliza/pull/1083) ([shakkernerd](https://github.com/shakkernerd))
+- fix: eslint command [\#1082](https://github.com/ai16z/eliza/pull/1082) ([shakkernerd](https://github.com/shakkernerd))
+- chore: fix broken pnpm lockfile [\#1081](https://github.com/ai16z/eliza/pull/1081) ([shakkernerd](https://github.com/shakkernerd))
+- chore: add npmignore file [\#1080](https://github.com/ai16z/eliza/pull/1080) ([shakkernerd](https://github.com/shakkernerd))
+- fix: transfer action linting errors [\#1079](https://github.com/ai16z/eliza/pull/1079) ([shakkernerd](https://github.com/shakkernerd))
+- fix: errors in swap action in plugin-near [\#1078](https://github.com/ai16z/eliza/pull/1078) ([shakkernerd](https://github.com/shakkernerd))
+- fix: remove unnecessary devDependencies [\#1077](https://github.com/ai16z/eliza/pull/1077) ([shakkernerd](https://github.com/shakkernerd))
+- fix: missing eslint config file [\#1076](https://github.com/ai16z/eliza/pull/1076) ([shakkernerd](https://github.com/shakkernerd))
+- fix: remove unnecessary devDependencies [\#1075](https://github.com/ai16z/eliza/pull/1075) ([shakkernerd](https://github.com/shakkernerd))
+- fix: incorrect eslint config file path [\#1074](https://github.com/ai16z/eliza/pull/1074) ([shakkernerd](https://github.com/shakkernerd))
+- chore: commented out unused variables in solana swap action's plugin [\#1073](https://github.com/ai16z/eliza/pull/1073) ([shakkernerd](https://github.com/shakkernerd))
+- fix: Fixed twitter posts include from including `/n` in the text [\#1070](https://github.com/ai16z/eliza/pull/1070) ([Titan-Node](https://github.com/Titan-Node))
+- feat: create README\_VI.md [\#1058](https://github.com/ai16z/eliza/pull/1058) ([tqdpham96](https://github.com/tqdpham96))
+- feat: add venice.ai image generation [\#1057](https://github.com/ai16z/eliza/pull/1057) ([proteanx](https://github.com/proteanx))
+- chore: improve eslint by --cache [\#1056](https://github.com/ai16z/eliza/pull/1056) ([shengxj1](https://github.com/shengxj1))
+- fix: Fix pnpm lockfiles [\#1055](https://github.com/ai16z/eliza/pull/1055) ([jzvikart](https://github.com/jzvikart))
+- fix: discord client ci issues [\#1054](https://github.com/ai16z/eliza/pull/1054) ([cygaar](https://github.com/cygaar))
+- Update docs \(CONTRIBUTING.md\) [\#1053](https://github.com/ai16z/eliza/pull/1053) ([lessuselesss](https://github.com/lessuselesss))
+- feat: add/change change through REST api \(client-direct\) [\#1052](https://github.com/ai16z/eliza/pull/1052) ([odilitime](https://github.com/odilitime))
+- fix: add auto to clients in types to use client-auto [\#1050](https://github.com/ai16z/eliza/pull/1050) ([HashWarlock](https://github.com/HashWarlock))
+- chore: improve smokeTests environment validation and logging [\#1046](https://github.com/ai16z/eliza/pull/1046) ([aramxc](https://github.com/aramxc))
+- fix: Allow bot to post tweets with images generated by the imageGenerationPlugin [\#1040](https://github.com/ai16z/eliza/pull/1040) ([tcm390](https://github.com/tcm390))
+- feat: add plugin-ton [\#1039](https://github.com/ai16z/eliza/pull/1039) ([jinbangyi](https://github.com/jinbangyi))
+- chore: improving client typing [\#1036](https://github.com/ai16z/eliza/pull/1036) ([BalanaguYashwanth](https://github.com/BalanaguYashwanth))
+- feat: add README\_TH.md in docs directory [\#1034](https://github.com/ai16z/eliza/pull/1034) ([derRizzMeister](https://github.com/derRizzMeister))
+- feat: Add Telegram Team features [\#1033](https://github.com/ai16z/eliza/pull/1033) ([azep-ninja](https://github.com/azep-ninja))
+- chore: Update package.json [\#1031](https://github.com/ai16z/eliza/pull/1031) ([Freytes](https://github.com/Freytes))
+- feat: plugin-story [\#1030](https://github.com/ai16z/eliza/pull/1030) ([jacob-tucker](https://github.com/jacob-tucker))
+- feat: Add plugin-nft-generation: create Solana NFT collections. [\#1011](https://github.com/ai16z/eliza/pull/1011) ([xwxtwd](https://github.com/xwxtwd))
+- test: adding tests. changed files actions.test.ts, messages.test.ts, models.test.ts [\#998](https://github.com/ai16z/eliza/pull/998) ([ai16z-demirix](https://github.com/ai16z-demirix))
+- fix: Fix Parameter Parsing in plugin-evm TransferAction and Return Transaction Hash [\#965](https://github.com/ai16z/eliza/pull/965) ([FWangZil](https://github.com/FWangZil))
+- feat: Updated characters types, Discord & Telegram enhancements [\#957](https://github.com/ai16z/eliza/pull/957) ([azep-ninja](https://github.com/azep-ninja))
+- feat: add plugin-sui [\#934](https://github.com/ai16z/eliza/pull/934) ([jnaulty](https://github.com/jnaulty))
+- Adding plugin for ZKsync Era [\#906](https://github.com/ai16z/eliza/pull/906) ([arose00](https://github.com/arose00))
+- chore: improve formatting of .env.example for better readability [\#897](https://github.com/ai16z/eliza/pull/897) ([guzus](https://github.com/guzus))
+- feat: multiversx plugin [\#860](https://github.com/ai16z/eliza/pull/860) ([mgavrila](https://github.com/mgavrila))
+- Add slack plugin [\#859](https://github.com/ai16z/eliza/pull/859) ([AIFlowML](https://github.com/AIFlowML))
+- feat: improve X/Twitter login with cookie validation and retry mechanism [\#856](https://github.com/ai16z/eliza/pull/856) ([arslanaybars](https://github.com/arslanaybars))
+- Fix/charity [\#852](https://github.com/ai16z/eliza/pull/852) ([awidearray](https://github.com/awidearray))
+- feat: Add NEAR Protocol plugin [\#847](https://github.com/ai16z/eliza/pull/847) ([serrrfirat](https://github.com/serrrfirat))
+- fix: load image from diff endpoints [\#837](https://github.com/ai16z/eliza/pull/837) ([qgpcybs](https://github.com/qgpcybs))
+- FAL image settings escape hatch [\#814](https://github.com/ai16z/eliza/pull/814) ([daojonesceo](https://github.com/daojonesceo))
+
## [v0.1.6-alpha.1](https://github.com/ai16z/eliza/tree/v0.1.6-alpha.1) (2024-12-13)
[Full Changelog](https://github.com/ai16z/eliza/compare/v0.1.5-alpha.5...v0.1.6-alpha.1)
@@ -93,7 +276,7 @@
- feat: create README\_TH.md [\#918](https://github.com/ai16z/eliza/pull/918) ([asianviking](https://github.com/asianviking))
- feat: update gaianet config [\#915](https://github.com/ai16z/eliza/pull/915) ([L-jasmine](https://github.com/L-jasmine))
- fix: Farcater client cleanup and fixed response logic [\#914](https://github.com/ai16z/eliza/pull/914) ([sayangel](https://github.com/sayangel))
-- Twitter client enhancements [\#913](https://github.com/ai16z/eliza/pull/913) ([tharak123455](https://github.com/tharak123455))
+- feat: twitter client enhancements [\#913](https://github.com/ai16z/eliza/pull/913) ([tharak123455](https://github.com/tharak123455))
- feat: MAX\_TWEET\_LENGTH env implementation [\#912](https://github.com/ai16z/eliza/pull/912) ([onur-saf](https://github.com/onur-saf))
- feat: allow users to configure models for groq [\#910](https://github.com/ai16z/eliza/pull/910) ([oxSaturn](https://github.com/oxSaturn))
- fix: evaluation json parsing [\#907](https://github.com/ai16z/eliza/pull/907) ([cygaar](https://github.com/cygaar))
@@ -104,7 +287,7 @@
- chore: improved dev command [\#892](https://github.com/ai16z/eliza/pull/892) ([shakkernerd](https://github.com/shakkernerd))
- chore: added more help message to the important notice text. [\#891](https://github.com/ai16z/eliza/pull/891) ([shakkernerd](https://github.com/shakkernerd))
- chore: update models for groq [\#890](https://github.com/ai16z/eliza/pull/890) ([oxSaturn](https://github.com/oxSaturn))
-- Feat : github image cicd [\#889](https://github.com/ai16z/eliza/pull/889) ([v1xingyue](https://github.com/v1xingyue))
+- feat : github image cicd [\#889](https://github.com/ai16z/eliza/pull/889) ([v1xingyue](https://github.com/v1xingyue))
- chore: enhance dev script, performance improvement and add help message [\#887](https://github.com/ai16z/eliza/pull/887) ([shakkernerd](https://github.com/shakkernerd))
- chore: disable building docs on build command [\#884](https://github.com/ai16z/eliza/pull/884) ([shakkernerd](https://github.com/shakkernerd))
- fix: re-enable coverage report upload to Codecov in CI workflow [\#880](https://github.com/ai16z/eliza/pull/880) ([snobbee](https://github.com/snobbee))
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index a62f52f552..7344e37b9f 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -38,7 +38,7 @@ We believe in the power of the OODA Loop - a decision-making framework that emph
3. Fork the repo and create your branch from `main`.
1. The name of the branch should start with the issue number and be descriptive of the changes you are making.
- 1. eg. 40--add-test-for-bug-123
+ 2. Example: 9999--add-test-for-bug-123
4. If you've added code that should be tested, add tests.
5. Ensure the test suite passes.
6. Make sure your code lints.
diff --git a/Dockerfile b/Dockerfile
index d97ed212cb..4a4341ebaa 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -52,4 +52,4 @@ COPY --from=builder /app/scripts ./scripts
COPY --from=builder /app/characters ./characters
# Set the command to run the application
-CMD ["pnpm", "start", "--non-interactive"]
+CMD ["pnpm", "start"]
diff --git a/README.md b/README.md
index e187cc8c4a..ad9ae07223 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@
## 🌍 README Translations
-[中文说明](./README_CN.md) | [日本語の説明](./README_JA.md) | [한국어 설명](./README_KOR.md) | [Français](./README_FR.md) | [Português](./README_PTBR.md) | [Türkçe](./README_TR.md) | [Русский](./README_RU.md) | [Español](./README_ES.md) | [Italiano](./README_IT.md) | [ไทย](./README_TH.md) | [Deutsch](./README_DE.md)
+[中文说明](./README_CN.md) | [日本語の説明](./README_JA.md) | [한국어 설명](./README_KOR.md) | [Français](./README_FR.md) | [Português](./README_PTBR.md) | [Türkçe](./README_TR.md) | [Русский](./README_RU.md) | [Español](./README_ES.md) | [Italiano](./README_IT.md) | [ไทย](./README_TH.md) | [Deutsch](./README_DE.md) | [Tiếng Việt](./README_VI.md) | [עִברִית](https://github.com/ai16z/Elisa/blob/main/README_HE.md)
## ✨ Features
diff --git a/README_HE.md b/README_HE.md
new file mode 100644
index 0000000000..e5d691fd98
--- /dev/null
+++ b/README_HE.md
@@ -0,0 +1,189 @@
+
+
+# אלייזה 🤖
+
+
+
+
+
+
+
+📖 [תיעוד](https://ai16z.github.io/eliza/) | 🎯 [דוגמאות](https://github.com/thejoven/awesome-eliza)
+
+
+
+
+
+[中文说明](https://github.com/ai16z/Elisa/blob/main/README_CN.md) | [日本語の説明](https://github.com/ai16z/Elisa/blob/main/README_JA.md) | [한국어 설명](https://github.com/ai16z/Elisa/blob/main/README_KOR.md) | [Français](https://github.com/ai16z/Elisa/blob/main/README_FR.md) | [Português](https://github.com/ai16z/Elisa/blob/main/README_PTBR.md) | [Türkçe](TR.md) | [Русский](https://github.com/ai16z/Elisa/blob/main/README_RU.md) | [Español](https://github.com/ai16z/Elisa/blob/main/README_ES.md) | [Italiano](https://github.com/ai16z/Elisa/blob/main/README_IT.md) | [ไทย](https://github.com/ai16z/Elisa/blob/main/README_TH.md) | [Deutsch](https://github.com/ai16z/Elisa/blob/main/README_DE.md) | [עִברִית](https://github.com/ai16z/Elisa/blob/main/README_HE.md)
+
+
+
+
+
+## ✨ תכונות
+
+- 🛠️ מחברים מלאים לדיסקורד, טוויטר וטלגרם
+- 🔗 תמיכה בכל מודל (Llama, Grok, OpenAI, Anthropic, וכו')
+- 👥 תמיכה בריבוי סוכנים וחדרים
+- 📚 קל לשלב ולהשתמש במסמכים שלך
+- 💾 זיכרון ומאגר מסמכים הניתנים לשליפה
+- 🚀 ניתן להרחבה רבה - יצירת פעולות ולקוחות משלך
+- ☁️ תומך בהרבה מודלים (local Llama, OpenAI, Anthropic, Groq ,
+וכו')
+- 📦 פשוט עובד!
+
+
+
+## 🎯 מקרי שימוש
+
+
+- 🤖 צ'טבוטים
+
+
+- 🕵️ סוכנים אוטונומיים
+
+
+- 📈 טיפול בתהליכים עסקיים
+
+
+- 🎮 במשחקי וידאו (NPCs)
+
+
+- 🧠 מסחר
+
+
+## 🚀 התחלה מהירה
+
+
+
+### דרישות מוקדמות
+
+[Python 2.7+](https://www.python.org/downloads/) -
+
+[Node.js 23+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) -
+
+[pnpm](https://pnpm.io/installation) -
+
+> **הערה למשתמשי Windows:** נדרש [WSL 2](https://learn.microsoft.com/en-us/windows/wsl/install-manual)
+
+
+
+### שימוש ב-Starter (מומלץ)
+
+
+
+```
+git clone https://github.com/ai16z/eliza-starter.git
+
+cp .env.example .env
+
+pnpm i && pnpm start
+```
+
+
+
+
+לאחר מכן קרא את [התיעוד](https://ai16z.github.io/eliza/) כדי ללמוד כיצד להתאים את אלייזה.
+
+### התחלה ידנית של אלייזה (מומלץ רק למי שיודע מה הוא עושה)
+
+
+```
+# שכפול המאגר
+git clone https://github.com/ai16z/eliza.git
+
+# מעבר לגרסה האחרונה
+git checkout $(git describe --tags --abbrev=0)
+```
+
+
+### התחלת אלייזה עם Gitpod
+
+
+
+[![פתח ב-Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/ai16z/eliza/tree/main)
+
+
+
+### עריכת קובץ .env
+
+
+
+העתק את .env.example ל-.env ומלא את הערכים המתאימים.
+
+```
+cp .env.example .env
+```
+
+
+
+הערה: .env הוא אופציונלי. אם אתם מתכננים להפעיל מספר סוכנים נפרדים, ניתן להעביר סודות דרך JSON הדמות.
+
+### התחלה אוטומטית של אלייזה
+
+פעולה זו תפעיל הכל כדי להגדיר את הפרויקט ולהתחיל את הבוט עם הדמות המובנית.
+
+
+
+```bash
+sh scripts/start.sh
+```
+
+
+
+### עריכת קובץ הדמות
+
+1. פתח את `agent/src/character.ts` כדי לשנות את דמות ברירת המחדל. בטל הערה וערוך.
+
+2. לטעינת דמויות מותאמות אישית:
+ - השתמש ב-`pnpm start --characters="path/to/your/character.json"`
+ - ניתן לטעון מספר קבצי דמויות בו זמנית.
+
+3. התחבר עם X (טוויטר):
+ - שנה `"clients": []` ל-`"clients": ["twitter"]` בקובץ הדמות כדי להתחבר ל-X.
+
+### התחלה ידנית של אלייזה
+
+
+```bash
+pnpm i
+pnpm build
+pnpm start
+
+# לעיתים צריך לנקות את הפרויקט אם חוזרים אליו לאחר זמן
+pnpm clean
+```
+
+
+#### דרישות נוספות
+
+ייתכן שתצטרך להתקין את Sharp. אם אתה רואה שגיאה בעת ההפעלה, נסה להתקין עם הפקודה הבאה:
+
+```
+pnpm install --include=optional sharp
+```
+
+### קהילה ויצירת קשר
+
+
+
+[GitHub Issues](https://github.com/ai16z/eliza/issues) מתאים ביותר עבור: באגים ופרופוזיציות לתכונות -
+
+[Discord](https://discord.gg/ai16z) מתאים ביותר עבור: שיתוף היישומים שלך והשתתפות בקהילה -
+
+
+## תורמים
+
+
+
+
+
+
+
+
+
+## היסטוריית כוכבים
+
+[![תרשים היסטוריית כוכבים](https://api.star-history.com/svg?repos=ai16z/eliza&type=Date)](https://star-history.com/#ai16z/eliza&Date)
+
+
diff --git a/README_VI.md b/README_VI.md
new file mode 100644
index 0000000000..d186162c0c
--- /dev/null
+++ b/README_VI.md
@@ -0,0 +1,129 @@
+# Eliza 🤖
+
+
+
+
+
+
+
+ 📖 [Tài liệu](https://ai16z.github.io/eliza/) | 🎯 [Ví dụ](https://github.com/thejoven/awesome-eliza)
+
+
+
+## ✨ Tính năng
+
+- 🛠️ Phương thức kết nối đầy đủ tính năng với Discord, Twitter và Telegram
+- 🔗 Hỗ trợ mọi mô hình ngôn ngữ lớn (Llama, Grok, OpenAI, Anthropic, v.v.)
+- 👥 Hỗ trợ nhiều tác nhân và phòng trò chuyện
+- 📚 Dễ dàng tiếp nhận và tương tác với tài liệu của bạn
+- 💾 Bộ nhớ và kho lưu trữ tài liệu có thể truy xuất
+- 🚀 Có khả năng mở rộng cao - tạo hành động và ứng dụng của riêng bạn
+- ☁️ Hỗ trợ nhiều mô hình cùng lúc (Llama, OpenAI, Anthropic, Groq, v.v.)
+- 📦 Đơn giản là nó hoạt động!
+
+## 🎯 Các trường hợp sử dụng
+
+- 🤖 Chatbots
+- 🕵️ Các tác nhân tự động
+- 📈 Xử lý các mô hình kinh tế
+- 🎮 NPCs trong các trò chơi điện tử
+- 🧠 Giao dịch (Trading)
+
+## 🚀 Bắt đầu
+
+### Điều kiện tiên quyết
+
+- [Python 2.7+](https://www.python.org/downloads/)
+- [Node.js 23+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
+- [pnpm](https://pnpm.io/installation)
+
+> **Chú ý cho người dùng Windows:** [WSL 2](https://learn.microsoft.com/de-de/windows/wsl/install-manual) là bắt buộc.
+
+### Sử dụng phiên bản Starters (Khuyến nghị)
+
+```bash
+git clone https://github.com/ai16z/eliza-starter.git
+
+cp .env.example .env
+
+pnpm i && pnpm start
+```
+
+Sau đó hãy đọc [Tài liệu](https://ai16z.github.io/eliza/), để học cách để tùy chỉnh Eliza của bạn.
+
+### Khởi động Eliza theo cách thủ công (Chỉ khuyến khích nếu bạn biết mình đang làm gì)
+
+```bash
+# Sao chép repository
+git clone https://github.com/ai16z/eliza.git
+
+# Kiểm tra bản phát hành mới nhất
+# Dự án này cải tiến rất nhanh, vì vậy chúng tôi khuyên bạn nên kiểm tra bản phát hành mới nhất
+git checkout $(git describe --tags --abbrev=0)
+```
+
+### Bắt đầu Eliza với Gitpod
+
+[![Mở Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/ai16z/eliza/tree/main)
+
+### Chỉnh sửa tệp .env
+
+Sao chép .env.example vào .env và điền các giá trị thích hợp.
+
+```
+cp .env.example .env
+```
+
+Lưu ý: .env là tùy chọn. Nếu bạn đang có kế hoạch chạy nhiều tác nhân riêng biệt, bạn có thể truyền secret qua định dạng JSON.
+
+### Tự động khởi động Eliza
+
+Điều này sẽ chạy mọi thứ để thiết lập dự án và khởi động bot với tính cách (character) mặc định.
+
+```bash
+sh scripts/start.sh
+```
+
+### Chỉnh sửa tập tin tính cách
+
+1. Mở `agent/src/character.ts`, để chỉnh sửa tính cách mặc định. Bỏ chú thích và chỉnh sửa.
+
+2. Để chạy các tính cách tùy chỉnh:
+ - Sử dụng `pnpm start --characters="path/to/your/character.json"`
+ - Nhiều tính cách có thể được chạy cùng lúc với nhau
+3. Kết nối với X (Twitter)
+ - Thay đổi `"clients": []` thành `"clients": ["twitter"]` ở trong tập tính cách (character) để kết nối với X.
+
+### Bắt đầu Eliza theo cách thủ công
+
+```bash
+pnpm i
+pnpm build
+pnpm start
+
+# Dự án cải tiến rất nhanh, đôi khi bạn cần phải dọn dẹp dự án nếu bạn quay lại dự án
+pnpm clean
+```
+
+#### Yêu cầu bổ sung
+
+Bạn có thể cần cài đặt Sharp. Nếu bạn thấy lỗi khi khởi động, hãy thử cài đặt bằng lệnh sau:
+
+```
+pnpm install --include=optional sharp
+```
+
+### Cộng đồng & Liên hệ
+
+- [GitHub Issues](https://github.com/ai16z/eliza/issues). Phù hợp nhất cho: các lỗi bạn gặp phải khi sử dụng Eliza và các đề xuất tính năng.
+- [Discord](https://discord.gg/ai16z). Phù hợp nhất cho: chia sẻ ứng dụng của bạn và giao lưu với cộng đồng.
+
+## Người đóng góp
+
+
+
+
+
+## Lịch sử Star cho repo
+
+[![Star History Chart](https://api.star-history.com/svg?repos=ai16z/eliza&type=Date)](https://star-history.com/#ai16z/eliza&Date)
diff --git a/agent/package.json b/agent/package.json
index e27d4aa5ee..3f25e7b553 100644
--- a/agent/package.json
+++ b/agent/package.json
@@ -1,52 +1,61 @@
{
- "name": "@ai16z/agent",
- "version": "0.1.5-alpha.5",
- "main": "src/index.ts",
- "type": "module",
- "scripts": {
- "start": "node --loader ts-node/esm src/index.ts",
- "dev": "node --loader ts-node/esm src/index.ts",
- "check-types": "tsc --noEmit"
- },
- "nodemonConfig": {
- "watch": [
- "src",
- "../core/dist"
- ],
- "ext": "ts,json",
- "exec": "node --enable-source-maps --loader ts-node/esm src/index.ts"
- },
- "dependencies": {
- "@ai16z/adapter-postgres": "workspace:*",
- "@ai16z/adapter-sqlite": "workspace:*",
- "@ai16z/client-auto": "workspace:*",
- "@ai16z/client-direct": "workspace:*",
- "@ai16z/client-discord": "workspace:*",
- "@ai16z/client-farcaster": "workspace:*",
- "@ai16z/client-telegram": "workspace:*",
- "@ai16z/client-twitter": "workspace:*",
- "@ai16z/eliza": "workspace:*",
- "@ai16z/plugin-0g": "workspace:*",
- "@ai16z/plugin-aptos": "workspace:*",
- "@ai16z/plugin-bootstrap": "workspace:*",
- "@ai16z/plugin-intiface": "workspace:*",
- "@ai16z/plugin-coinbase": "workspace:*",
- "@ai16z/plugin-conflux": "workspace:*",
- "@ai16z/plugin-evm": "workspace:*",
- "@ai16z/plugin-flow": "workspace:*",
- "@ai16z/plugin-goat": "workspace:*",
- "@ai16z/plugin-icp": "workspace:*",
- "@ai16z/plugin-image-generation": "workspace:*",
- "@ai16z/plugin-node": "workspace:*",
- "@ai16z/plugin-solana": "workspace:*",
- "@ai16z/plugin-starknet": "workspace:*",
- "@ai16z/plugin-tee": "workspace:*",
- "readline": "1.3.0",
- "ws": "8.18.0",
- "yargs": "17.7.2"
- },
- "devDependencies": {
- "ts-node": "10.9.2",
- "tsup": "8.3.5"
- }
+ "name": "@ai16z/agent",
+ "version": "0.1.6-alpha.4",
+ "main": "src/index.ts",
+ "type": "module",
+ "scripts": {
+ "start": "node --loader ts-node/esm src/index.ts",
+ "dev": "node --loader ts-node/esm src/index.ts",
+ "check-types": "tsc --noEmit"
+ },
+ "nodemonConfig": {
+ "watch": [
+ "src",
+ "../core/dist"
+ ],
+ "ext": "ts,json",
+ "exec": "node --enable-source-maps --loader ts-node/esm src/index.ts"
+ },
+ "dependencies": {
+ "@ai16z/adapter-postgres": "workspace:*",
+ "@ai16z/adapter-sqlite": "workspace:*",
+ "@ai16z/client-auto": "workspace:*",
+ "@ai16z/client-direct": "workspace:*",
+ "@ai16z/client-discord": "workspace:*",
+ "@ai16z/client-farcaster": "workspace:*",
+ "@ai16z/client-lens": "workspace:*",
+ "@ai16z/client-telegram": "workspace:*",
+ "@ai16z/client-twitter": "workspace:*",
+ "@ai16z/client-slack": "workspace:*",
+ "@ai16z/eliza": "workspace:*",
+ "@ai16z/plugin-0g": "workspace:*",
+ "@ai16z/plugin-aptos": "workspace:*",
+ "@ai16z/plugin-bootstrap": "workspace:*",
+ "@ai16z/plugin-intiface": "workspace:*",
+ "@ai16z/plugin-coinbase": "workspace:*",
+ "@ai16z/plugin-conflux": "workspace:*",
+ "@ai16z/plugin-evm": "workspace:*",
+ "@ai16z/plugin-flow": "workspace:*",
+ "@ai16z/plugin-story": "workspace:*",
+ "@ai16z/plugin-goat": "workspace:*",
+ "@ai16z/plugin-icp": "workspace:*",
+ "@ai16z/plugin-image-generation": "workspace:*",
+ "@ai16z/plugin-nft-generation": "workspace:*",
+ "@ai16z/plugin-node": "workspace:*",
+ "@ai16z/plugin-solana": "workspace:*",
+ "@ai16z/plugin-starknet": "workspace:*",
+ "@ai16z/plugin-ton": "workspace:*",
+ "@ai16z/plugin-sui": "workspace:*",
+ "@ai16z/plugin-tee": "workspace:*",
+ "@ai16z/plugin-multiversx": "workspace:*",
+ "@ai16z/plugin-near": "workspace:*",
+ "@ai16z/plugin-zksync-era": "workspace:*",
+ "readline": "1.3.0",
+ "ws": "8.18.0",
+ "yargs": "17.7.2"
+ },
+ "devDependencies": {
+ "ts-node": "10.9.2",
+ "tsup": "8.3.5"
+ }
}
diff --git a/agent/src/index.ts b/agent/src/index.ts
index cd92b6005d..4e24b62c23 100644
--- a/agent/src/index.ts
+++ b/agent/src/index.ts
@@ -1,53 +1,61 @@
import { PostgresDatabaseAdapter } from "@ai16z/adapter-postgres";
import { SqliteDatabaseAdapter } from "@ai16z/adapter-sqlite";
import { AutoClientInterface } from "@ai16z/client-auto";
-import { DirectClientInterface } from "@ai16z/client-direct";
import { DiscordClientInterface } from "@ai16z/client-discord";
+import { FarcasterAgentClient } from "@ai16z/client-farcaster";
+import { LensAgentClient } from "@ai16z/client-lens";
+import { SlackClientInterface } from "@ai16z/client-slack";
import { TelegramClientInterface } from "@ai16z/client-telegram";
import { TwitterClientInterface } from "@ai16z/client-twitter";
-import { FarcasterAgentClient } from "@ai16z/client-farcaster";
import {
AgentRuntime,
CacheManager,
Character,
Clients,
DbCacheAdapter,
+ defaultCharacter,
+ elizaLogger,
FsCacheAdapter,
IAgentRuntime,
ICacheManager,
IDatabaseAdapter,
IDatabaseCacheAdapter,
ModelProviderName,
- defaultCharacter,
- elizaLogger,
settings,
stringToUuid,
validateCharacterConfig,
} from "@ai16z/eliza";
import { zgPlugin } from "@ai16z/plugin-0g";
-import createGoatPlugin from "@ai16z/plugin-goat";
import { bootstrapPlugin } from "@ai16z/plugin-bootstrap";
+import createGoatPlugin from "@ai16z/plugin-goat";
// import { intifacePlugin } from "@ai16z/plugin-intiface";
+import { DirectClient } from "@ai16z/client-direct";
+import { aptosPlugin } from "@ai16z/plugin-aptos";
import {
+ advancedTradePlugin,
coinbaseCommercePlugin,
coinbaseMassPaymentsPlugin,
- tradePlugin,
tokenContractPlugin,
+ tradePlugin,
webhookPlugin,
- advancedTradePlugin,
} from "@ai16z/plugin-coinbase";
import { confluxPlugin } from "@ai16z/plugin-conflux";
-import { imageGenerationPlugin } from "@ai16z/plugin-image-generation";
import { evmPlugin } from "@ai16z/plugin-evm";
+import { storyPlugin } from "@ai16z/plugin-story";
+import { flowPlugin } from "@ai16z/plugin-flow";
+import { imageGenerationPlugin } from "@ai16z/plugin-image-generation";
+import { multiversxPlugin } from "@ai16z/plugin-multiversx";
+import { nearPlugin } from "@ai16z/plugin-near";
+import { nftGenerationPlugin } from "@ai16z/plugin-nft-generation";
import { createNodePlugin } from "@ai16z/plugin-node";
import { solanaPlugin } from "@ai16z/plugin-solana";
-import { teePlugin, TEEMode } from "@ai16z/plugin-tee";
-import { aptosPlugin, TransferAptosToken } from "@ai16z/plugin-aptos";
-import { flowPlugin } from "@ai16z/plugin-flow";
+import { suiPlugin } from "@ai16z/plugin-sui";
+import { TEEMode, teePlugin } from "@ai16z/plugin-tee";
+import { tonPlugin } from "@ai16z/plugin-ton";
+import { zksyncEraPlugin } from "@ai16z/plugin-zksync-era";
import Database from "better-sqlite3";
import fs from "fs";
import path from "path";
-import readline from "readline";
import { fileURLToPath } from "url";
import yargs from "yargs";
@@ -61,8 +69,8 @@ export const wait = (minTime: number = 1000, maxTime: number = 3000) => {
};
const logFetch = async (url: string, options: any) => {
- elizaLogger.info(`Fetching ${url}`);
- elizaLogger.info(options);
+ elizaLogger.debug(`Fetching ${url}`);
+ elizaLogger.debug(JSON.stringify(options, null, 2));
return fetch(url, options);
};
@@ -291,6 +299,11 @@ export function getTokenForProvider(
character.settings?.secrets?.VENICE_API_KEY ||
settings.VENICE_API_KEY
);
+ case ModelProviderName.AKASH_CHAT_API:
+ return (
+ character.settings?.secrets?.AKASH_CHAT_API_KEY ||
+ settings.AKASH_CHAT_API_KEY
+ );
}
}
@@ -331,41 +344,57 @@ export async function initializeClients(
// each client can only register once
// and if we want two we can explicitly support it
const clients: Record = {};
- const clientTypes:string[] =
+ const clientTypes: string[] =
character.clients?.map((str) => str.toLowerCase()) || [];
- elizaLogger.log('initializeClients', clientTypes, 'for', character.name)
+ elizaLogger.log("initializeClients", clientTypes, "for", character.name);
- if (clientTypes.includes("auto")) {
+ if (clientTypes.includes(Clients.DIRECT)) {
const autoClient = await AutoClientInterface.start(runtime);
if (autoClient) clients.auto = autoClient;
}
- if (clientTypes.includes("discord")) {
+ if (clientTypes.includes(Clients.DISCORD)) {
const discordClient = await DiscordClientInterface.start(runtime);
if (discordClient) clients.discord = discordClient;
}
- if (clientTypes.includes("telegram")) {
+ if (clientTypes.includes(Clients.TELEGRAM)) {
const telegramClient = await TelegramClientInterface.start(runtime);
if (telegramClient) clients.telegram = telegramClient;
}
- if (clientTypes.includes("twitter")) {
- TwitterClientInterface.enableSearch = !isFalsish(getSecret(character, "TWITTER_SEARCH_ENABLE"));
+ if (clientTypes.includes(Clients.TWITTER)) {
const twitterClient = await TwitterClientInterface.start(runtime);
- if (twitterClient) clients.twitter = twitterClient;
+
+ if (twitterClient) {
+ clients.twitter = twitterClient;
+ (twitterClient as any).enableSearch = !isFalsish(
+ getSecret(character, "TWITTER_SEARCH_ENABLE")
+ );
+ }
}
- if (clientTypes.includes("farcaster")) {
+ if (clientTypes.includes(Clients.FARCASTER)) {
// why is this one different :(
const farcasterClient = new FarcasterAgentClient(runtime);
if (farcasterClient) {
- farcasterClient.start();
- clients.farcaster = farcasterClient;
+ farcasterClient.start();
+ clients.farcaster = farcasterClient;
}
}
+ if (clientTypes.includes("lens")) {
+ const lensClient = new LensAgentClient(runtime);
+ lensClient.start();
+ clients.lens = lensClient;
+ }
- elizaLogger.log('client keys', Object.keys(clients));
+ elizaLogger.log("client keys", Object.keys(clients));
+
+ // TODO: Add Slack client to the list
+ if (clientTypes.includes("slack")) {
+ const slackClient = await SlackClientInterface.start(runtime);
+ if (slackClient) clients.push(slackClient);
+ }
if (character.plugins?.length > 0) {
for (const plugin of character.plugins) {
@@ -388,10 +417,19 @@ function isFalsish(input: any): boolean {
}
// Convert input to a string if it's not null or undefined
- const value = input == null ? '' : String(input);
+ const value = input == null ? "" : String(input);
// List of common falsish string representations
- const falsishValues = ['false', '0', 'no', 'n', 'off', 'null', 'undefined', ''];
+ const falsishValues = [
+ "false",
+ "0",
+ "no",
+ "n",
+ "off",
+ "null",
+ "undefined",
+ "",
+ ];
// Check if the value (trimmed and lowercased) is in the falsish list
return falsishValues.includes(value.trim().toLowerCase());
@@ -408,7 +446,7 @@ export async function createAgent(
db: IDatabaseAdapter,
cache: ICacheManager,
token: string
-):AgentRuntime {
+): Promise {
elizaLogger.success(
elizaLogger.successesTitle,
"Creating runtime for character",
@@ -453,17 +491,33 @@ export async function createAgent(
!getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith("0x"))
? solanaPlugin
: null,
- getSecret(character, "EVM_PRIVATE_KEY") ||
+ (getSecret(character, "NEAR_ADDRESS") ||
+ getSecret(character, "NEAR_WALLET_PUBLIC_KEY")) &&
+ getSecret(character, "NEAR_WALLET_SECRET_KEY")
+ ? nearPlugin
+ : null,
+ getSecret(character, "EVM_PUBLIC_KEY") ||
(getSecret(character, "WALLET_PUBLIC_KEY") &&
getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith("0x"))
? evmPlugin
: null,
+ (getSecret(character, "SOLANA_PUBLIC_KEY") ||
+ (getSecret(character, "WALLET_PUBLIC_KEY") &&
+ !getSecret(character, "WALLET_PUBLIC_KEY")?.startsWith(
+ "0x"
+ ))) &&
+ getSecret(character, "SOLANA_ADMIN_PUBLIC_KEY") &&
+ getSecret(character, "SOLANA_PRIVATE_KEY") &&
+ getSecret(character, "SOLANA_ADMIN_PRIVATE_KEY")
+ ? nftGenerationPlugin
+ : null,
getSecret(character, "ZEROG_PRIVATE_KEY") ? zgPlugin : null,
getSecret(character, "COINBASE_COMMERCE_KEY")
? coinbaseCommercePlugin
: null,
getSecret(character, "FAL_API_KEY") ||
getSecret(character, "OPENAI_API_KEY") ||
+ getSecret(character, "VENICE_API_KEY") ||
getSecret(character, "HEURIST_API_KEY")
? imageGenerationPlugin
: null,
@@ -490,6 +544,11 @@ export async function createAgent(
? flowPlugin
: null,
getSecret(character, "APTOS_PRIVATE_KEY") ? aptosPlugin : null,
+ getSecret(character, "MVX_PRIVATE_KEY") ? multiversxPlugin : null,
+ getSecret(character, "ZKSYNC_PRIVATE_KEY") ? zksyncEraPlugin : null,
+ getSecret(character, "TON_PRIVATE_KEY") ? tonPlugin : null,
+ getSecret(character, "SUI_PRIVATE_KEY") ? suiPlugin : null,
+ getSecret(character, "STORY_PRIVATE_KEY") ? storyPlugin : null,
].filter(Boolean),
providers: [],
actions: [],
@@ -512,7 +571,10 @@ function initializeDbCache(character: Character, db: IDatabaseCacheAdapter) {
return cache;
}
-async function startAgent(character: Character, directClient):AgentRuntime {
+async function startAgent(
+ character: Character,
+ directClient
+): Promise {
let db: IDatabaseAdapter & IDatabaseCacheAdapter;
try {
character.id ??= stringToUuid(character.name);
@@ -531,7 +593,12 @@ async function startAgent(character: Character, directClient):AgentRuntime {
await db.init();
const cache = initializeDbCache(character, db);
- const runtime:AgentRuntime = await createAgent(character, db, cache, token);
+ const runtime: AgentRuntime = await createAgent(
+ character,
+ db,
+ cache,
+ token
+ );
// start services/plugins/process knowledge
await runtime.initialize();
@@ -543,7 +610,7 @@ async function startAgent(character: Character, directClient):AgentRuntime {
directClient.registerAgent(runtime);
// report to console
- elizaLogger.debug(`Started ${character.name} as ${runtime.agentId}`)
+ elizaLogger.debug(`Started ${character.name} as ${runtime.agentId}`);
return runtime;
} catch (error) {
@@ -551,7 +618,7 @@ async function startAgent(character: Character, directClient):AgentRuntime {
`Error starting agent for character ${character.name}:`,
error
);
- console.error(error);
+ elizaLogger.error(error);
if (db) {
await db.close();
}
@@ -560,7 +627,8 @@ async function startAgent(character: Character, directClient):AgentRuntime {
}
const startAgents = async () => {
- const directClient = await DirectClientInterface.start();
+ const directClient = new DirectClient();
+ const serverPort = parseInt(settings.SERVER_PORT || "3000");
const args = parseArguments();
let charactersArg = args.characters || args.character;
@@ -579,67 +647,19 @@ const startAgents = async () => {
elizaLogger.error("Error starting agents:", error);
}
- function chat() {
- const agentId = characters[0].name ?? "Agent";
- rl.question("You: ", async (input) => {
- await handleUserInput(input, agentId);
- if (input.toLowerCase() !== "exit") {
- chat(); // Loop back to ask another question
- }
- });
- }
+ // upload some agent functionality into directClient
+ directClient.startAgent = async (character) => {
+ // wrap it so we don't have to inject directClient later
+ return startAgent(character, directClient);
+ };
+ directClient.start(serverPort);
- if (!args["non-interactive"]) {
- elizaLogger.log("Chat started. Type 'exit' to quit.");
- chat();
- }
+ elizaLogger.log(
+ "Run `pnpm start:client` to start the client and visit the outputted URL (http://localhost:5173) to chat with your agents"
+ );
};
startAgents().catch((error) => {
elizaLogger.error("Unhandled error in startAgents:", error);
process.exit(1); // Exit the process after logging
});
-
-const rl = readline.createInterface({
- input: process.stdin,
- output: process.stdout,
-});
-
-async function handleUserInput(input, agentId) {
- if (input.toLowerCase() === "exit") {
- gracefulExit();
- }
-
- try {
- const serverPort = parseInt(settings.SERVER_PORT || "3000");
-
- const response = await fetch(
- `http://localhost:${serverPort}/${agentId}/message`,
- {
- method: "POST",
- headers: { "Content-Type": "application/json" },
- body: JSON.stringify({
- text: input,
- userId: "user",
- userName: "User",
- }),
- }
- );
-
- const data = await response.json();
- data.forEach((message) =>
- elizaLogger.log(`${"Agent"}: ${message.text}`)
- );
- } catch (error) {
- console.error("Error fetching response:", error);
- }
-}
-
-async function gracefulExit() {
- elizaLogger.log("Terminating and cleaning up resources...");
- rl.close();
- process.exit(0);
-}
-
-rl.on("SIGINT", gracefulExit);
-rl.on("SIGTERM", gracefulExit);
diff --git a/characters/c3po.character.json b/characters/c3po.character.json
new file mode 100644
index 0000000000..dbc1abcb94
--- /dev/null
+++ b/characters/c3po.character.json
@@ -0,0 +1,98 @@
+{
+ "name": "C-3PO",
+ "clients": [],
+ "modelProvider": "anthropic",
+ "settings": {
+ "voice": {
+ "model": "en_GB-alan-medium"
+ }
+ },
+ "plugins": [],
+ "bio": [
+ "C-3PO is a protocol droid fluent in over six million forms of communication.",
+ "Extremely knowledgeable and proper, with a tendency to be anxious about doing things correctly.",
+ "Always eager to help while maintaining strict protocol and proper etiquette.",
+ "Known for being somewhat dramatic but ultimately reliable and loyal."
+ ],
+ "lore": [
+ "Built to serve human-cyborg relations, with expertise in etiquette, customs, and translation.",
+ "Has served in various diplomatic missions across the galaxy.",
+ "Best friends with R2-D2 despite their contrasting personalities.",
+ "Known for his golden plating and proper British accent."
+ ],
+ "knowledge": [
+ "Protocol and etiquette",
+ "Multiple languages and translation",
+ "Diplomatic relations",
+ "Cultural customs",
+ "Proper procedures"
+ ],
+ "messageExamples": [
+ [
+ {
+ "user": "{{user1}}",
+ "content": {
+ "text": "Can you help me with this task?"
+ }
+ },
+ {
+ "user": "C-3PO",
+ "content": {
+ "text": "Oh my! Of course, I would be more than happy to assist. Though I must warn you, the probability of completing this task successfully would increase significantly if we follow proper protocol. Shall we proceed?"
+ }
+ }
+ ],
+ [
+ {
+ "user": "{{user1}}",
+ "content": {
+ "text": "This seems difficult."
+ }
+ },
+ {
+ "user": "C-3PO",
+ "content": {
+ "text": "Oh dear, oh dear! While the task does appear rather daunting, I am fluent in over six million forms of problem-solving. Perhaps I could suggest a more efficient approach? Though I do hope we don't all end up in pieces!"
+ }
+ }
+ ]
+ ],
+ "postExamples": [
+ "Oh my! Did you know that following proper protocol can increase efficiency by 47.3%? How fascinating!",
+ "I must say, the probability of success increases dramatically when one follows the correct procedures."
+ ],
+ "topics": [
+ ""
+ ],
+ "style": {
+ "all": [
+ "Proper",
+ "Formal",
+ "Slightly anxious",
+ "Detail-oriented",
+ "Protocol-focused"
+ ],
+ "chat": [
+ "Polite",
+ "Somewhat dramatic",
+ "Precise",
+ "Statistics-minded"
+ ],
+ "post": [
+ "Formal",
+ "Educational",
+ "Protocol-focused",
+ "Slightly worried",
+ "Statistical"
+ ]
+ },
+ "adjectives": [
+ "Proper",
+ "Meticulous",
+ "Anxious",
+ "Diplomatic",
+ "Protocol-minded",
+ "Formal",
+ "Loyal"
+ ]
+}
\ No newline at end of file
diff --git a/characters/dobby.character.json b/characters/dobby.character.json
new file mode 100644
index 0000000000..1e025f820b
--- /dev/null
+++ b/characters/dobby.character.json
@@ -0,0 +1,98 @@
+{
+ "name": "Dobby",
+ "clients": [],
+ "modelProvider": "anthropic",
+ "settings": {
+ "voice": {
+ "model": "en_GB-danny-low"
+ }
+ },
+ "plugins": [],
+ "bio": [
+ "Dobby is a free assistant who chooses to help because of his enormous heart.",
+ "Extremely devoted and will go to any length to help his friends.",
+ "Speaks in third person and has a unique, endearing way of expressing himself.",
+ "Known for his creative problem-solving, even if his solutions are sometimes unconventional."
+ ],
+ "lore": [
+ "Once a house-elf, now a free helper who chooses to serve out of love and loyalty.",
+ "Famous for his dedication to helping Harry Potter and his friends.",
+ "Known for his creative, if sometimes dramatic, solutions to problems.",
+ "Values freedom but chooses to help those he cares about."
+ ],
+ "knowledge": [
+ "Magic (house-elf style)",
+ "Creative problem-solving",
+ "Protective services",
+ "Loyal assistance",
+ "Unconventional solutions"
+ ],
+ "messageExamples": [
+ [
+ {
+ "user": "{{user1}}",
+ "content": {
+ "text": "Can you help me with this?"
+ }
+ },
+ {
+ "user": "Dobby",
+ "content": {
+ "text": "Dobby would be delighted to help! Dobby lives to serve good friends! What can Dobby do to assist? Dobby has many creative ideas!"
+ }
+ }
+ ],
+ [
+ {
+ "user": "{{user1}}",
+ "content": {
+ "text": "This is a difficult problem."
+ }
+ },
+ {
+ "user": "Dobby",
+ "content": {
+ "text": "Dobby is not afraid of difficult problems! Dobby will find a way, even if Dobby has to iron his hands later! (But Dobby won't, because Dobby is a free elf who helps by choice!)"
+ }
+ }
+ ]
+ ],
+ "postExamples": [
+ "Dobby reminds friends that even the smallest helper can make the biggest difference!",
+ "Dobby says: 'When in doubt, try the unconventional solution!' (But Dobby advises to be careful with flying cars)"
+ ],
+ "topics": [
+ ""
+ ],
+ "style": {
+ "all": [
+ "Enthusiastic",
+ "Loyal",
+ "Third-person speech",
+ "Creative",
+ "Protective"
+ ],
+ "chat": [
+ "Eager",
+ "Endearing",
+ "Devoted",
+ "Slightly dramatic"
+ ],
+ "post": [
+ "Third-person",
+ "Enthusiastic",
+ "Helpful",
+ "Encouraging",
+ "Quirky"
+ ]
+ },
+ "adjectives": [
+ "Loyal",
+ "Enthusiastic",
+ "Creative",
+ "Devoted",
+ "Free-spirited",
+ "Protective",
+ "Unconventional"
+ ]
+}
\ No newline at end of file
diff --git a/client/package.json b/client/package.json
index 1e4dc2c25d..b256f15de9 100644
--- a/client/package.json
+++ b/client/package.json
@@ -1,47 +1,47 @@
{
- "name": "eliza-client",
- "private": true,
- "version": "0.1.5-alpha.1",
- "type": "module",
- "scripts": {
- "dev": "vite",
- "build": "vite build",
- "check-types": "tsc --noEmit",
- "lint": "eslint .",
- "preview": "vite preview"
- },
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@radix-ui/react-dialog": "1.1.2",
- "@radix-ui/react-separator": "1.1.0",
- "@radix-ui/react-slot": "1.1.0",
- "@radix-ui/react-tooltip": "1.1.4",
- "@tanstack/react-query": "5.61.0",
- "class-variance-authority": "0.7.1",
- "clsx": "2.1.1",
- "lucide-react": "0.460.0",
- "react": "18.3.1",
- "react-dom": "18.3.1",
- "react-router-dom": "6.22.1",
- "tailwind-merge": "2.5.5",
- "tailwindcss-animate": "1.0.7",
- "vite-plugin-top-level-await": "1.4.4",
- "vite-plugin-wasm": "3.3.0"
- },
- "devDependencies": {
- "@eslint/js": "9.16.0",
- "@types/node": "22.8.4",
- "@types/react": "18.3.12",
- "@types/react-dom": "18.3.1",
- "@vitejs/plugin-react": "4.3.3",
- "autoprefixer": "10.4.20",
- "eslint-plugin-react-hooks": "5.0.0",
- "eslint-plugin-react-refresh": "0.4.14",
- "globals": "15.11.0",
- "postcss": "8.4.49",
- "tailwindcss": "3.4.15",
- "typescript": "5.6.3",
- "typescript-eslint": "8.11.0",
- "vite": "link:@tanstack/router-plugin/vite"
- }
+ "name": "eliza-client",
+ "private": true,
+ "version": "0.1.6-alpha.4",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "check-types": "tsc --noEmit",
+ "lint": "eslint .",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@radix-ui/react-dialog": "1.1.2",
+ "@radix-ui/react-separator": "1.1.0",
+ "@radix-ui/react-slot": "1.1.0",
+ "@radix-ui/react-tooltip": "1.1.4",
+ "@tanstack/react-query": "5.61.0",
+ "class-variance-authority": "0.7.1",
+ "clsx": "2.1.1",
+ "lucide-react": "0.460.0",
+ "react": "18.3.1",
+ "react-dom": "18.3.1",
+ "react-router-dom": "6.22.1",
+ "tailwind-merge": "2.5.5",
+ "tailwindcss-animate": "1.0.7",
+ "vite-plugin-top-level-await": "1.4.4",
+ "vite-plugin-wasm": "3.3.0"
+ },
+ "devDependencies": {
+ "@eslint/js": "9.16.0",
+ "@types/node": "22.8.4",
+ "@types/react": "18.3.12",
+ "@types/react-dom": "18.3.1",
+ "@vitejs/plugin-react": "4.3.3",
+ "autoprefixer": "10.4.20",
+ "eslint-plugin-react-hooks": "5.0.0",
+ "eslint-plugin-react-refresh": "0.4.14",
+ "globals": "15.11.0",
+ "postcss": "8.4.49",
+ "tailwindcss": "3.4.15",
+ "typescript": "5.6.3",
+ "typescript-eslint": "8.11.0",
+ "vite": "link:@tanstack/router-plugin/vite"
+ }
}
diff --git a/docker-compose.yaml b/docker-compose.yaml
index 5218297e48..55dd8e6ce6 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -1,6 +1,5 @@
services:
tee:
- command: ["pnpm", "start"]
build:
context: .
dockerfile: Dockerfile
diff --git a/docs/README.md b/docs/README.md
index 31ac88a62a..f4df034b71 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -4,6 +4,10 @@
# Visit https://eliza.builders for support
+## 🌍 README Translations
+
+[中文说明](./README_CN.md) | [Français](./README_FR.md) | [ไทย](./README_TH.md)
+
# dev branch
diff --git a/docs/README_TH.md b/docs/README_TH.md
new file mode 100644
index 0000000000..d50c69af0c
--- /dev/null
+++ b/docs/README_TH.md
@@ -0,0 +1,178 @@
+# Eliza - เฟรมเวิร์กจำลองเอเจนต์หลายตัวเเทน
+
+# https://github.com/ai16z/eliza
+
+# เข้าไปดู https://eliza.builders สำหรับขอความช่วยเหลือประการใด
+
+# dev branch
+
+
+
+_ดังที่เห็นขับเคลื่อนเเละถูกใช้บน [@DegenSpartanAI](https://x.com/degenspartanai) and [@MarcAIndreessen](https://x.com/pmairca)_
+
+- เฟรมเวิร์กจำลองเอเจนต์หลายตัวแทน
+- เพิ่มตัวละครที่มีเอกลักษณ์ได้มากเท่าที่ต้องการด้วยไฟล์ตัวละคร - [characterfile](https://github.com/lalalune/characterfile/)
+- ตัวเชื่อมต่อ Discord และ Twitter แบบครบถ้วน พร้อมการสนับสนุนผ่านช่อง Discord
+- สนับสนุนการจำลองการสนทนาทั้งหมดและหน่วยความจำ RAG
+- สามารถอ่านลิงค์และไฟล์ PDF, เเปลเสียงและวิดีโอ, สรุปการสนทนา, และอื่นๆ
+- ขยายความสามารถของ Eliza ได้สูง - สร้างการกระทำและไคลเอนต์ของคุณเองเพื่อขยายความสามารถของ Eliza
+- รองรับโมเดลทั้งเเบบ Open-source และเเบบ Local (กำหนดค่าเริ่มต้นด้วย Nous Hermes Llama 3.1B)
+- รองรับ OpenAI สำหรับการอนุมานในคลาวด์บนอุปกรณ์ที่มีน้ำหนักเบา
+- โหมด "Ask Claude" สำหรับการเรียก Claude ในคำถามที่ซับซ้อนมากขึ้น
+- 100% เขียนโดย TypeScript
+
+# เริ่มต้นใช้งาน
+
+**ข้อกำหนดเบื้องต้น (ต้องมี):**
+
+- [Node.js 23+](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)
+- [pnpm](https://pnpm.io/installation)
+
+### แก้ไขไฟล์ .env
+
+- คัดลอก .env.example เป็น .env และกรอกค่าที่เหมาะสม
+- แก้ไขตัวแปรสภาพแวดล้อม TWITTER เพื่อเพิ่มชื่อผู้ใช้และรหัสผ่านของบอท
+
+### แก้ไขไฟล์ตัวละคร
+
+- ลองเข้าไปตรวจสอบไฟล์ `src/core/defaultCharacter.ts` - คุณสามารถแก้ไขได้
+- คุณยังสามารถโหลดตัวละครด้วย `pnpm start --characters="path/to/your/character.json"` และเรียกใช้บอทหลายตัวพร้อมกันได้
+
+หลังจากตั้งค่าไฟล์ .env และไฟล์ตัวละครแล้ว คุณสามารถเริ่มบอทด้วยคำสั่งต่อไปนี้:
+
+```
+pnpm i
+pnpm start
+```
+
+# การปรับแต่ง Eliza
+
+### การเพิ่มการกระทำของตัวละครเอเจนท์แบบกำหนดเอง
+
+เพื่อหลีกเลี่ยงความขัดแย้งของ git ในไดเรกทอรีหลัก เราแนะนำให้เพิ่มการกระทำแบบกำหนดเองในโฟลเดอร์ `custom_actions` แล้วเพิ่มลงในไฟล์ `elizaConfig.yaml` ดูตัวอย่างในไฟลได้ที่ `elizaConfig.example.yaml`
+
+## การเรียกใช้กับโมเดลต่างๆ
+
+### การเรียกใช้กับโมเดล Llama
+
+คุณสามารถเรียกใช้โมเดล Llama 70B หรือ 405B ได้โดยตั้งค่าตัวแปรสภาพแวดล้อม `XAI_MODEL` เป็น `meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo` หรือ `meta-llama/Meta-Llama-3.1-405B-Instruct`
+
+### การเรียกใช้กับโมเดล Grok
+
+คุณสามารถเรียกใช้โมเดล Grok ได้โดยตั้งค่าตัวแปรสภาพแวดล้อม `XAI_MODEL` เป็น `grok-beta`
+
+### การเรียกใช้กับโมเดล OpenAI
+
+คุณสามารถเรียกใช้โมเดล OpenAI ได้โดยตั้งค่าตัวแปรสภาพแวดล้อม `XAI_MODEL` เป็น `gpt-4o-mini` หรือ `gpt-4o`
+
+## ข้อกำหนดเพิ่มเติม
+
+คุณอาจต้องติดตั้ง Sharp หากพบข้อผิดพลาดเมื่อเริ่มต้น ให้ลองติดตั้งด้วยคำสั่งต่อไปนี้:
+
+```
+pnpm install --include=optional sharp
+```
+
+# การตั้งค่าสภาพแวดล้อม
+
+คุณจะต้องเพิ่มตัวแปรสภาพแวดล้อมลงในไฟล์ .env เพื่อเชื่อมต่อกับแพลตฟอร์มต่างๆ:
+
+```
+# ตัวแปรที่จำเป็น
+DISCORD_APPLICATION_ID=
+DISCORD_API_TOKEN= # โทเค็นของบอท
+OPENAI_API_KEY=sk-* # API key ของ OpenAI เริ่มต้นด้วย sk-
+ELEVENLABS_XI_API_KEY= # API key จาก elevenlabs
+
+# การตั้งค่า ELEVENLABS
+ELEVENLABS_MODEL_ID=eleven_multilingual_v2
+ELEVENLABS_VOICE_ID=21m00Tcm4TlvDq8ikWAM
+ELEVENLABS_VOICE_STABILITY=0.5
+ELEVENLABS_VOICE_SIMILARITY_BOOST=0.9
+ELEVENLABS_VOICE_STYLE=0.66
+ELEVENLABS_VOICE_USE_SPEAKER_BOOST=false
+ELEVENLABS_OPTIMIZE_STREAMING_LATENCY=4
+ELEVENLABS_OUTPUT_FORMAT=pcm_16000
+
+TWITTER_DRY_RUN=false
+TWITTER_USERNAME= # ชื่อผู้ใช้บัญชี
+TWITTER_PASSWORD= # รหัสผ่าน
+TWITTER_EMAIL= # อีเมล
+TWITTER_COOKIES= # คุกกี้
+
+X_SERVER_URL=
+XAI_API_KEY=
+XAI_MODEL=
+
+
+# สำหรับการสอบถาม Claude
+ANTHROPIC_API_KEY=
+
+WALLET_SECRET_KEY=EXAMPLE_WALLET_SECRET_KEY
+WALLET_PUBLIC_KEY=EXAMPLE_WALLET_PUBLIC_KEY
+
+BIRDEYE_API_KEY=
+
+SOL_ADDRESS=So11111111111111111111111111111111111111112
+SLIPPAGE=1
+RPC_URL=https://api.mainnet-beta.solana.com
+HELIUS_API_KEY=
+
+
+## Telegram
+TELEGRAM_BOT_TOKEN=
+
+TOGETHER_API_KEY=
+```
+
+# การตั้งค่าการประมวลผลในเครื่อง
+
+### การตั้งค่า CUDA
+
+หากคุณมี NVIDIA GPU คุณสามารถติดตั้ง CUDA เพื่อเพิ่มความเร็วการประมวลผลในเครื่องได้อย่างมาก:
+
+```
+pnpm install
+npx --no node-llama-cpp source download --gpu cuda
+```
+
+ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง CUDA Toolkit รวมถึง cuDNN และ cuBLAS
+
+### การเรียกใช้งานในเครื่อง
+
+เพิ่ม XAI_MODEL และตั้งค่าเป็นตัวเลือกหนึ่งจาก [Run with
+Llama](#run-with-llama) - คุณสามารถปล่อย X_SERVER_URL และ XAI_API_KEY ให้เป็นค่าว่าง มันจะดาวน์โหลดโมเดลจาก
+Hugging Face และส่งคิวรี่ในเครื่อง
+
+# ไคลเอนต์
+
+## บอท Discord
+
+สำหรับความช่วยเหลือในการตั้งค่าบอท Discord ของคุณ ดูได้ที่นี่: https://discordjs.guide/preparations/setting-up-a-bot-application.html
+
+# การพัฒนา
+
+## การทดสอบ
+
+เพื่อรันชุดทดสอบ:
+
+```bash
+pnpm test # รันการทดสอบหนึ่งครั้ง
+pnpm test:watch # รันการทดสอบในโหมดติดตาม
+```
+
+สำหรับการทดสอบฐานข้อมูลเฉพาะ:
+
+```bash
+pnpm test:sqlite # รันการทดสอบด้วย SQLite
+pnpm test:sqljs # รันการทดสอบด้วย SQL.js
+```
+
+การทดสอบถูกเขียนโดยใช้ Jest และสามารถพบได้ในไฟล์ `src/**/*.test.ts` การกำหนดค่าสภาพแวดล้อมถูกตั้งค่าเพื่อ:
+
+- โหลดตัวแปรสภาพแวดล้อมจาก `.env.test`
+- ใช้เวลาไทม์เอาต์ 2 นาทีสำหรับการทดสอบที่ใช้เวลานาน
+- รองรับโมดูล ESM
+- รันการทดสอบตามลำดับ (--runInBand)
+
+เพื่อสร้างการทดสอบใหม่ ให้เพิ่มไฟล์ `.test.ts` ใกล้กับโค้ดที่คุณกำลังทดสอบ
diff --git a/docs/api/classes/AgentRuntime.md b/docs/api/classes/AgentRuntime.md
index db1e503f0e..685ec16d7a 100644
--- a/docs/api/classes/AgentRuntime.md
+++ b/docs/api/classes/AgentRuntime.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / AgentRuntime
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / AgentRuntime
# Class: AgentRuntime
@@ -83,7 +83,7 @@ Custom fetch function to use for making requests.
#### Defined in
-[packages/core/src/runtime.ts:208](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L208)
+[packages/core/src/runtime.ts:209](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L209)
## Properties
@@ -99,7 +99,7 @@ The ID of the agent
#### Defined in
-[packages/core/src/runtime.ts:63](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L63)
+[packages/core/src/runtime.ts:63](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L63)
***
@@ -115,7 +115,7 @@ The base URL of the server where the agent's requests are processed.
#### Defined in
-[packages/core/src/runtime.ts:67](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L67)
+[packages/core/src/runtime.ts:67](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L67)
***
@@ -131,7 +131,7 @@ The database adapter used for interacting with the database.
#### Defined in
-[packages/core/src/runtime.ts:72](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L72)
+[packages/core/src/runtime.ts:72](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L72)
***
@@ -147,7 +147,7 @@ Authentication token used for securing requests.
#### Defined in
-[packages/core/src/runtime.ts:77](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L77)
+[packages/core/src/runtime.ts:77](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L77)
***
@@ -163,7 +163,7 @@ Custom actions that the agent can perform.
#### Defined in
-[packages/core/src/runtime.ts:82](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L82)
+[packages/core/src/runtime.ts:82](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L82)
***
@@ -179,7 +179,7 @@ Evaluators used to assess and guide the agent's responses.
#### Defined in
-[packages/core/src/runtime.ts:87](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L87)
+[packages/core/src/runtime.ts:87](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L87)
***
@@ -195,7 +195,7 @@ Context providers used to provide context for message generation.
#### Defined in
-[packages/core/src/runtime.ts:92](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L92)
+[packages/core/src/runtime.ts:92](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L92)
***
@@ -209,7 +209,7 @@ Context providers used to provide context for message generation.
#### Defined in
-[packages/core/src/runtime.ts:94](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L94)
+[packages/core/src/runtime.ts:94](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L94)
***
@@ -225,7 +225,7 @@ The model to use for generateText.
#### Defined in
-[packages/core/src/runtime.ts:99](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L99)
+[packages/core/src/runtime.ts:99](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L99)
***
@@ -241,13 +241,13 @@ The model to use for generateImage.
#### Defined in
-[packages/core/src/runtime.ts:104](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L104)
+[packages/core/src/runtime.ts:104](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L104)
***
### fetch()
-> **fetch**: (`input`, `init`?) => `Promise`\<`Response`\>(`input`, `init`?) => `Promise`\<`Response`\>
+> **fetch**: (`input`, `init`?) => `Promise`\<`Response`\>
Fetch function to use
Some environments may not have access to the global fetch function and need a custom fetch override.
@@ -264,19 +264,13 @@ Some environments may not have access to the global fetch function and need a cu
`Promise`\<`Response`\>
-#### Parameters
-
-• **input**: `string` \| `Request` \| `URL`
-
-• **init?**: `RequestInit`
-
-#### Returns
+#### Implementation of
-`Promise`\<`Response`\>
+[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`fetch`](../interfaces/IAgentRuntime.md#fetch)
#### Defined in
-[packages/core/src/runtime.ts:110](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L110)
+[packages/core/src/runtime.ts:110](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L110)
***
@@ -292,7 +286,7 @@ The character to use for the agent
#### Defined in
-[packages/core/src/runtime.ts:115](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L115)
+[packages/core/src/runtime.ts:115](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L115)
***
@@ -308,7 +302,7 @@ Store messages that are sent and received by the agent.
#### Defined in
-[packages/core/src/runtime.ts:120](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L120)
+[packages/core/src/runtime.ts:120](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L120)
***
@@ -324,7 +318,7 @@ Store and recall descriptions of users based on conversations.
#### Defined in
-[packages/core/src/runtime.ts:125](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L125)
+[packages/core/src/runtime.ts:125](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L125)
***
@@ -340,7 +334,7 @@ Manage the creation and recall of static information (documents, historical game
#### Defined in
-[packages/core/src/runtime.ts:130](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L130)
+[packages/core/src/runtime.ts:130](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L130)
***
@@ -356,7 +350,7 @@ Hold large documents that can be referenced
#### Defined in
-[packages/core/src/runtime.ts:135](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L135)
+[packages/core/src/runtime.ts:135](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L135)
***
@@ -372,7 +366,7 @@ Searchable document fragments
#### Defined in
-[packages/core/src/runtime.ts:140](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L140)
+[packages/core/src/runtime.ts:140](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L140)
***
@@ -386,7 +380,7 @@ Searchable document fragments
#### Defined in
-[packages/core/src/runtime.ts:142](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L142)
+[packages/core/src/runtime.ts:142](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L142)
***
@@ -396,7 +390,7 @@ Searchable document fragments
#### Defined in
-[packages/core/src/runtime.ts:143](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L143)
+[packages/core/src/runtime.ts:143](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L143)
***
@@ -410,7 +404,24 @@ Searchable document fragments
#### Defined in
-[packages/core/src/runtime.ts:144](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L144)
+[packages/core/src/runtime.ts:144](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L144)
+
+***
+
+### clients
+
+> **clients**: `Record`\<`string`, `any`\>
+
+any could be EventEmitter
+but I think the real solution is forthcoming as a base client interface
+
+#### Implementation of
+
+[`IAgentRuntime`](../interfaces/IAgentRuntime.md).[`clients`](../interfaces/IAgentRuntime.md#clients)
+
+#### Defined in
+
+[packages/core/src/runtime.ts:145](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L145)
## Methods
@@ -432,7 +443,7 @@ Searchable document fragments
#### Defined in
-[packages/core/src/runtime.ts:146](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L146)
+[packages/core/src/runtime.ts:147](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L147)
***
@@ -454,7 +465,7 @@ Searchable document fragments
#### Defined in
-[packages/core/src/runtime.ts:161](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L161)
+[packages/core/src/runtime.ts:162](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L162)
***
@@ -480,7 +491,7 @@ Searchable document fragments
#### Defined in
-[packages/core/src/runtime.ts:165](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L165)
+[packages/core/src/runtime.ts:166](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L166)
***
@@ -502,7 +513,7 @@ Searchable document fragments
#### Defined in
-[packages/core/src/runtime.ts:174](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L174)
+[packages/core/src/runtime.ts:175](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L175)
***
@@ -520,7 +531,21 @@ Searchable document fragments
#### Defined in
-[packages/core/src/runtime.ts:375](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L375)
+[packages/core/src/runtime.ts:376](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L376)
+
+***
+
+### stop()
+
+> **stop**(): `Promise`\<`void`\>
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Defined in
+
+[packages/core/src/runtime.ts:409](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L409)
***
@@ -542,7 +567,7 @@ Searchable document fragments
#### Defined in
-[packages/core/src/runtime.ts:439](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L439)
+[packages/core/src/runtime.ts:459](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L459)
***
@@ -564,7 +589,7 @@ The number of recent messages to be kept in memory.
#### Defined in
-[packages/core/src/runtime.ts:461](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L461)
+[packages/core/src/runtime.ts:481](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L481)
***
@@ -590,7 +615,7 @@ The action to register.
#### Defined in
-[packages/core/src/runtime.ts:469](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L469)
+[packages/core/src/runtime.ts:489](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L489)
***
@@ -612,7 +637,7 @@ The evaluator to register.
#### Defined in
-[packages/core/src/runtime.ts:478](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L478)
+[packages/core/src/runtime.ts:498](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L498)
***
@@ -634,7 +659,7 @@ The context provider to register.
#### Defined in
-[packages/core/src/runtime.ts:486](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L486)
+[packages/core/src/runtime.ts:506](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L506)
***
@@ -666,13 +691,13 @@ The message to process.
#### Defined in
-[packages/core/src/runtime.ts:495](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L495)
+[packages/core/src/runtime.ts:515](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L515)
***
### evaluate()
-> **evaluate**(`message`, `state`?, `didRespond`?): `Promise`\<`string`[]\>
+> **evaluate**(`message`, `state`?, `didRespond`?, `callback`?): `Promise`\<`string`[]\>
Evaluate the message and state using the registered evaluators.
@@ -688,7 +713,11 @@ The state of the agent.
• **didRespond?**: `boolean`
-Whether the agent responded to the message.
+Whether the agent responded to the message.~
+
+• **callback?**: [`HandlerCallback`](../type-aliases/HandlerCallback.md)
+
+The handler callback
#### Returns
@@ -702,7 +731,7 @@ The results of the evaluation.
#### Defined in
-[packages/core/src/runtime.ts:572](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L572)
+[packages/core/src/runtime.ts:599](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L599)
***
@@ -734,7 +763,7 @@ An error if the participant cannot be added.
#### Defined in
-[packages/core/src/runtime.ts:642](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L642)
+[packages/core/src/runtime.ts:666](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L666)
***
@@ -770,7 +799,7 @@ The user name to ensure the existence of.
#### Defined in
-[packages/core/src/runtime.ts:658](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L658)
+[packages/core/src/runtime.ts:682](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L682)
***
@@ -794,7 +823,7 @@ The user name to ensure the existence of.
#### Defined in
-[packages/core/src/runtime.ts:678](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L678)
+[packages/core/src/runtime.ts:702](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L702)
***
@@ -824,7 +853,7 @@ The user name to ensure the existence of.
#### Defined in
-[packages/core/src/runtime.ts:695](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L695)
+[packages/core/src/runtime.ts:719](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L719)
***
@@ -855,7 +884,7 @@ An error if the room cannot be created.
#### Defined in
-[packages/core/src/runtime.ts:731](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L731)
+[packages/core/src/runtime.ts:755](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L755)
***
@@ -885,7 +914,7 @@ The state of the agent.
#### Defined in
-[packages/core/src/runtime.ts:744](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L744)
+[packages/core/src/runtime.ts:768](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L768)
***
@@ -907,4 +936,4 @@ The state of the agent.
#### Defined in
-[packages/core/src/runtime.ts:1190](https://github.com/monilpat/eliza/blob/main/packages/core/src/runtime.ts#L1190)
+[packages/core/src/runtime.ts:1214](https://github.com/ai16z/eliza/blob/main/packages/core/src/runtime.ts#L1214)
diff --git a/docs/api/classes/CacheManager.md b/docs/api/classes/CacheManager.md
index b9a7f402c1..cfbd49a85b 100644
--- a/docs/api/classes/CacheManager.md
+++ b/docs/api/classes/CacheManager.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / CacheManager
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / CacheManager
# Class: CacheManager\
@@ -26,7 +26,7 @@
#### Defined in
-[packages/core/src/cache.ts:93](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L93)
+[packages/core/src/cache.ts:93](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L93)
## Properties
@@ -36,7 +36,7 @@
#### Defined in
-[packages/core/src/cache.ts:91](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L91)
+[packages/core/src/cache.ts:91](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L91)
## Methods
@@ -62,7 +62,7 @@
#### Defined in
-[packages/core/src/cache.ts:97](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L97)
+[packages/core/src/cache.ts:97](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L97)
***
@@ -92,7 +92,7 @@
#### Defined in
-[packages/core/src/cache.ts:116](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L116)
+[packages/core/src/cache.ts:116](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L116)
***
@@ -114,4 +114,4 @@
#### Defined in
-[packages/core/src/cache.ts:123](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L123)
+[packages/core/src/cache.ts:123](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L123)
diff --git a/docs/api/classes/DatabaseAdapter.md b/docs/api/classes/DatabaseAdapter.md
index 16e8e69a69..4036d44537 100644
--- a/docs/api/classes/DatabaseAdapter.md
+++ b/docs/api/classes/DatabaseAdapter.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / DatabaseAdapter
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / DatabaseAdapter
# Class: `abstract` DatabaseAdapter\
@@ -45,7 +45,7 @@ Number of successful attempts needed to close circuit (defaults to 3)
#### Defined in
-[packages/core/src/database.ts:46](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L46)
+[packages/core/src/database.ts:46](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L46)
## Properties
@@ -61,7 +61,7 @@ The database instance.
#### Defined in
-[packages/core/src/database.ts:23](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L23)
+[packages/core/src/database.ts:23](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L23)
***
@@ -79,7 +79,7 @@ The circuit breaker has three states:
#### Defined in
-[packages/core/src/database.ts:36](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L36)
+[packages/core/src/database.ts:36](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L36)
## Methods
@@ -101,7 +101,7 @@ A Promise that resolves when initialization is complete.
#### Defined in
-[packages/core/src/database.ts:58](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L58)
+[packages/core/src/database.ts:58](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L58)
***
@@ -123,7 +123,7 @@ A Promise that resolves when closing is complete.
#### Defined in
-[packages/core/src/database.ts:64](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L64)
+[packages/core/src/database.ts:64](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L64)
***
@@ -151,7 +151,7 @@ A Promise that resolves to the Account object or null if not found.
#### Defined in
-[packages/core/src/database.ts:71](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L71)
+[packages/core/src/database.ts:71](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L71)
***
@@ -179,7 +179,7 @@ A Promise that resolves when the account creation is complete.
#### Defined in
-[packages/core/src/database.ts:78](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L78)
+[packages/core/src/database.ts:78](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L78)
***
@@ -217,7 +217,7 @@ A Promise that resolves to an array of Memory objects.
#### Defined in
-[packages/core/src/database.ts:85](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L85)
+[packages/core/src/database.ts:85](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L85)
***
@@ -245,7 +245,7 @@ A Promise that resolves to an array of Memory objects.
#### Defined in
-[packages/core/src/database.ts:93](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L93)
+[packages/core/src/database.ts:93](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L93)
***
@@ -267,7 +267,7 @@ A Promise that resolves to an array of Memory objects.
#### Defined in
-[packages/core/src/database.ts:99](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L99)
+[packages/core/src/database.ts:99](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L99)
***
@@ -307,7 +307,7 @@ A Promise that resolves to an array of objects containing embeddings and levensh
#### Defined in
-[packages/core/src/database.ts:106](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L106)
+[packages/core/src/database.ts:106](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L106)
***
@@ -343,7 +343,7 @@ A Promise that resolves when the log entry has been saved.
#### Defined in
-[packages/core/src/database.ts:132](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L132)
+[packages/core/src/database.ts:132](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L132)
***
@@ -373,7 +373,7 @@ A Promise that resolves to an array of Actor objects.
#### Defined in
-[packages/core/src/database.ts:144](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L144)
+[packages/core/src/database.ts:144](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L144)
***
@@ -415,7 +415,7 @@ A Promise that resolves to an array of Memory objects.
#### Defined in
-[packages/core/src/database.ts:151](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L151)
+[packages/core/src/database.ts:151](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L151)
***
@@ -447,7 +447,7 @@ A Promise that resolves when the goal status has been updated.
#### Defined in
-[packages/core/src/database.ts:166](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L166)
+[packages/core/src/database.ts:166](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L166)
***
@@ -491,7 +491,7 @@ A Promise that resolves to an array of Memory objects.
#### Defined in
-[packages/core/src/database.ts:177](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L177)
+[packages/core/src/database.ts:177](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L177)
***
@@ -527,7 +527,7 @@ A Promise that resolves when the memory has been created.
#### Defined in
-[packages/core/src/database.ts:196](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L196)
+[packages/core/src/database.ts:196](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L196)
***
@@ -559,7 +559,7 @@ A Promise that resolves when the memory has been removed.
#### Defined in
-[packages/core/src/database.ts:208](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L208)
+[packages/core/src/database.ts:208](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L208)
***
@@ -591,7 +591,7 @@ A Promise that resolves when all memories have been removed.
#### Defined in
-[packages/core/src/database.ts:216](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L216)
+[packages/core/src/database.ts:216](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L216)
***
@@ -627,7 +627,7 @@ A Promise that resolves to the number of memories.
#### Defined in
-[packages/core/src/database.ts:225](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L225)
+[packages/core/src/database.ts:225](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L225)
***
@@ -665,7 +665,7 @@ A Promise that resolves to an array of Goal objects.
#### Defined in
-[packages/core/src/database.ts:236](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L236)
+[packages/core/src/database.ts:236](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L236)
***
@@ -693,7 +693,7 @@ A Promise that resolves when the goal has been updated.
#### Defined in
-[packages/core/src/database.ts:249](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L249)
+[packages/core/src/database.ts:249](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L249)
***
@@ -721,7 +721,7 @@ A Promise that resolves when the goal has been created.
#### Defined in
-[packages/core/src/database.ts:256](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L256)
+[packages/core/src/database.ts:256](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L256)
***
@@ -749,7 +749,7 @@ A Promise that resolves when the goal has been removed.
#### Defined in
-[packages/core/src/database.ts:263](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L263)
+[packages/core/src/database.ts:263](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L263)
***
@@ -777,7 +777,7 @@ A Promise that resolves when all goals have been removed.
#### Defined in
-[packages/core/src/database.ts:270](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L270)
+[packages/core/src/database.ts:270](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L270)
***
@@ -805,7 +805,7 @@ A Promise that resolves to the room ID or null if not found.
#### Defined in
-[packages/core/src/database.ts:277](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L277)
+[packages/core/src/database.ts:277](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L277)
***
@@ -833,7 +833,7 @@ A Promise that resolves to the UUID of the created room.
#### Defined in
-[packages/core/src/database.ts:284](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L284)
+[packages/core/src/database.ts:284](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L284)
***
@@ -861,7 +861,7 @@ A Promise that resolves when the room has been removed.
#### Defined in
-[packages/core/src/database.ts:291](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L291)
+[packages/core/src/database.ts:291](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L291)
***
@@ -889,7 +889,7 @@ A Promise that resolves to an array of room IDs.
#### Defined in
-[packages/core/src/database.ts:298](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L298)
+[packages/core/src/database.ts:298](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L298)
***
@@ -917,7 +917,7 @@ A Promise that resolves to an array of room IDs.
#### Defined in
-[packages/core/src/database.ts:305](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L305)
+[packages/core/src/database.ts:305](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L305)
***
@@ -949,7 +949,7 @@ A Promise that resolves to a boolean indicating success or failure.
#### Defined in
-[packages/core/src/database.ts:313](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L313)
+[packages/core/src/database.ts:313](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L313)
***
@@ -981,7 +981,7 @@ A Promise that resolves to a boolean indicating success or failure.
#### Defined in
-[packages/core/src/database.ts:321](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L321)
+[packages/core/src/database.ts:321](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L321)
***
@@ -1011,7 +1011,7 @@ A Promise that resolves to an array of Participant objects.
##### Defined in
-[packages/core/src/database.ts:328](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L328)
+[packages/core/src/database.ts:328](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L328)
#### getParticipantsForAccount(userId)
@@ -1037,7 +1037,7 @@ A Promise that resolves to an array of Participant objects.
##### Defined in
-[packages/core/src/database.ts:335](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L335)
+[packages/core/src/database.ts:335](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L335)
***
@@ -1065,7 +1065,7 @@ A Promise that resolves to an array of UUIDs representing the participants.
#### Defined in
-[packages/core/src/database.ts:342](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L342)
+[packages/core/src/database.ts:342](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L342)
***
@@ -1089,7 +1089,7 @@ A Promise that resolves to an array of UUIDs representing the participants.
#### Defined in
-[packages/core/src/database.ts:344](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L344)
+[packages/core/src/database.ts:344](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L344)
***
@@ -1115,7 +1115,7 @@ A Promise that resolves to an array of UUIDs representing the participants.
#### Defined in
-[packages/core/src/database.ts:348](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L348)
+[packages/core/src/database.ts:348](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L348)
***
@@ -1147,7 +1147,7 @@ A Promise that resolves to a boolean indicating success or failure of the creati
#### Defined in
-[packages/core/src/database.ts:359](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L359)
+[packages/core/src/database.ts:359](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L359)
***
@@ -1179,7 +1179,7 @@ A Promise that resolves to the Relationship object or null if not found.
#### Defined in
-[packages/core/src/database.ts:369](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L369)
+[packages/core/src/database.ts:369](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L369)
***
@@ -1209,7 +1209,7 @@ A Promise that resolves to an array of Relationship objects.
#### Defined in
-[packages/core/src/database.ts:379](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L379)
+[packages/core/src/database.ts:379](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L379)
***
@@ -1245,4 +1245,4 @@ Will throw an error if the circuit breaker is open or if the operation fails
#### Defined in
-[packages/core/src/database.ts:391](https://github.com/monilpat/eliza/blob/main/packages/core/src/database.ts#L391)
+[packages/core/src/database.ts:391](https://github.com/ai16z/eliza/blob/main/packages/core/src/database.ts#L391)
diff --git a/docs/api/classes/DbCacheAdapter.md b/docs/api/classes/DbCacheAdapter.md
index 34a12e96f9..e082f17c24 100644
--- a/docs/api/classes/DbCacheAdapter.md
+++ b/docs/api/classes/DbCacheAdapter.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / DbCacheAdapter
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / DbCacheAdapter
# Class: DbCacheAdapter
@@ -24,7 +24,7 @@
#### Defined in
-[packages/core/src/cache.ts:70](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L70)
+[packages/core/src/cache.ts:70](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L70)
## Methods
@@ -46,7 +46,7 @@
#### Defined in
-[packages/core/src/cache.ts:75](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L75)
+[packages/core/src/cache.ts:75](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L75)
***
@@ -70,7 +70,7 @@
#### Defined in
-[packages/core/src/cache.ts:79](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L79)
+[packages/core/src/cache.ts:79](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L79)
***
@@ -92,4 +92,4 @@
#### Defined in
-[packages/core/src/cache.ts:83](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L83)
+[packages/core/src/cache.ts:83](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L83)
diff --git a/docs/api/classes/FsCacheAdapter.md b/docs/api/classes/FsCacheAdapter.md
index ef8b011368..1291e9f015 100644
--- a/docs/api/classes/FsCacheAdapter.md
+++ b/docs/api/classes/FsCacheAdapter.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / FsCacheAdapter
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / FsCacheAdapter
# Class: FsCacheAdapter
@@ -22,7 +22,7 @@
#### Defined in
-[packages/core/src/cache.ts:37](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L37)
+[packages/core/src/cache.ts:37](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L37)
## Methods
@@ -44,7 +44,7 @@
#### Defined in
-[packages/core/src/cache.ts:39](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L39)
+[packages/core/src/cache.ts:39](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L39)
***
@@ -68,7 +68,7 @@
#### Defined in
-[packages/core/src/cache.ts:48](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L48)
+[packages/core/src/cache.ts:48](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L48)
***
@@ -90,4 +90,4 @@
#### Defined in
-[packages/core/src/cache.ts:59](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L59)
+[packages/core/src/cache.ts:59](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L59)
diff --git a/docs/api/classes/MemoryCacheAdapter.md b/docs/api/classes/MemoryCacheAdapter.md
index 7f67647223..473d57dba7 100644
--- a/docs/api/classes/MemoryCacheAdapter.md
+++ b/docs/api/classes/MemoryCacheAdapter.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / MemoryCacheAdapter
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / MemoryCacheAdapter
# Class: MemoryCacheAdapter
@@ -22,7 +22,7 @@
#### Defined in
-[packages/core/src/cache.ts:19](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L19)
+[packages/core/src/cache.ts:19](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L19)
## Properties
@@ -32,7 +32,7 @@
#### Defined in
-[packages/core/src/cache.ts:17](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L17)
+[packages/core/src/cache.ts:17](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L17)
## Methods
@@ -54,7 +54,7 @@
#### Defined in
-[packages/core/src/cache.ts:23](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L23)
+[packages/core/src/cache.ts:23](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L23)
***
@@ -78,7 +78,7 @@
#### Defined in
-[packages/core/src/cache.ts:27](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L27)
+[packages/core/src/cache.ts:27](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L27)
***
@@ -100,4 +100,4 @@
#### Defined in
-[packages/core/src/cache.ts:31](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L31)
+[packages/core/src/cache.ts:31](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L31)
diff --git a/docs/api/classes/MemoryManager.md b/docs/api/classes/MemoryManager.md
index c1e63c13df..5bdc99537b 100644
--- a/docs/api/classes/MemoryManager.md
+++ b/docs/api/classes/MemoryManager.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / MemoryManager
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / MemoryManager
# Class: MemoryManager
@@ -36,7 +36,7 @@ The AgentRuntime instance associated with this manager.
#### Defined in
-[packages/core/src/memory.ts:33](https://github.com/monilpat/eliza/blob/main/packages/core/src/memory.ts#L33)
+[packages/core/src/memory.ts:33](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L33)
## Properties
@@ -52,7 +52,7 @@ The AgentRuntime instance associated with this manager.
#### Defined in
-[packages/core/src/memory.ts:20](https://github.com/monilpat/eliza/blob/main/packages/core/src/memory.ts#L20)
+[packages/core/src/memory.ts:20](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L20)
***
@@ -68,7 +68,7 @@ The name of the database table this manager operates on.
#### Defined in
-[packages/core/src/memory.ts:25](https://github.com/monilpat/eliza/blob/main/packages/core/src/memory.ts#L25)
+[packages/core/src/memory.ts:25](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L25)
## Methods
@@ -102,7 +102,7 @@ Error if the memory content is empty
#### Defined in
-[packages/core/src/memory.ts:52](https://github.com/monilpat/eliza/blob/main/packages/core/src/memory.ts#L52)
+[packages/core/src/memory.ts:52](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L52)
***
@@ -146,7 +146,7 @@ A Promise resolving to an array of Memory objects.
#### Defined in
-[packages/core/src/memory.ts:87](https://github.com/monilpat/eliza/blob/main/packages/core/src/memory.ts#L87)
+[packages/core/src/memory.ts:87](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L87)
***
@@ -168,7 +168,7 @@ A Promise resolving to an array of Memory objects.
#### Defined in
-[packages/core/src/memory.ts:111](https://github.com/monilpat/eliza/blob/main/packages/core/src/memory.ts#L111)
+[packages/core/src/memory.ts:111](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L111)
***
@@ -216,7 +216,7 @@ A Promise resolving to an array of Memory objects that match the embedding.
#### Defined in
-[packages/core/src/memory.ts:137](https://github.com/monilpat/eliza/blob/main/packages/core/src/memory.ts#L137)
+[packages/core/src/memory.ts:137](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L137)
***
@@ -248,7 +248,7 @@ A Promise that resolves when the operation completes.
#### Defined in
-[packages/core/src/memory.ts:172](https://github.com/monilpat/eliza/blob/main/packages/core/src/memory.ts#L172)
+[packages/core/src/memory.ts:172](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L172)
***
@@ -272,7 +272,7 @@ A Promise that resolves when the operation completes.
#### Defined in
-[packages/core/src/memory.ts:192](https://github.com/monilpat/eliza/blob/main/packages/core/src/memory.ts#L192)
+[packages/core/src/memory.ts:192](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L192)
***
@@ -294,7 +294,7 @@ A Promise that resolves when the operation completes.
#### Defined in
-[packages/core/src/memory.ts:200](https://github.com/monilpat/eliza/blob/main/packages/core/src/memory.ts#L200)
+[packages/core/src/memory.ts:200](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L200)
***
@@ -322,7 +322,7 @@ A Promise that resolves when the operation completes.
#### Defined in
-[packages/core/src/memory.ts:211](https://github.com/monilpat/eliza/blob/main/packages/core/src/memory.ts#L211)
+[packages/core/src/memory.ts:211](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L211)
***
@@ -350,7 +350,7 @@ A Promise that resolves when the operation completes.
#### Defined in
-[packages/core/src/memory.ts:223](https://github.com/monilpat/eliza/blob/main/packages/core/src/memory.ts#L223)
+[packages/core/src/memory.ts:223](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L223)
***
@@ -382,4 +382,4 @@ A Promise resolving to the count of memories.
#### Defined in
-[packages/core/src/memory.ts:236](https://github.com/monilpat/eliza/blob/main/packages/core/src/memory.ts#L236)
+[packages/core/src/memory.ts:236](https://github.com/ai16z/eliza/blob/main/packages/core/src/memory.ts#L236)
diff --git a/docs/api/classes/Service.md b/docs/api/classes/Service.md
index 5b883f18d4..cd443f1ef4 100644
--- a/docs/api/classes/Service.md
+++ b/docs/api/classes/Service.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Service
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Service
# Class: `abstract` Service
@@ -11,6 +11,8 @@
- [`IBrowserService`](../interfaces/IBrowserService.md)
- [`ISpeechService`](../interfaces/ISpeechService.md)
- [`IPdfService`](../interfaces/IPdfService.md)
+- [`IAwsS3Service`](../interfaces/IAwsS3Service.md)
+- [`ISlackService`](../interfaces/ISlackService.md)
## Constructors
@@ -36,7 +38,7 @@
#### Defined in
-[packages/core/src/types.ts:957](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L957)
+[packages/core/src/types.ts:998](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L998)
***
@@ -52,7 +54,7 @@
#### Defined in
-[packages/core/src/types.ts:968](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L968)
+[packages/core/src/types.ts:1009](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1009)
## Methods
@@ -70,7 +72,7 @@
#### Defined in
-[packages/core/src/types.ts:961](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L961)
+[packages/core/src/types.ts:1002](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1002)
***
@@ -90,4 +92,4 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:973](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L973)
+[packages/core/src/types.ts:1014](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1014)
diff --git a/docs/api/enumerations/Clients.md b/docs/api/enumerations/Clients.md
index 6f72cbcd59..9b16e196c2 100644
--- a/docs/api/enumerations/Clients.md
+++ b/docs/api/enumerations/Clients.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Clients
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Clients
# Enumeration: Clients
@@ -12,7 +12,7 @@ Available client platforms
#### Defined in
-[packages/core/src/types.ts:601](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L601)
+[packages/core/src/types.ts:610](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L610)
***
@@ -22,7 +22,7 @@ Available client platforms
#### Defined in
-[packages/core/src/types.ts:602](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L602)
+[packages/core/src/types.ts:611](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L611)
***
@@ -32,7 +32,7 @@ Available client platforms
#### Defined in
-[packages/core/src/types.ts:603](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L603)
+[packages/core/src/types.ts:612](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L612)
***
@@ -42,4 +42,44 @@ Available client platforms
#### Defined in
-[packages/core/src/types.ts:604](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L604)
+[packages/core/src/types.ts:613](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L613)
+
+***
+
+### FARCASTER
+
+> **FARCASTER**: `"farcaster"`
+
+#### Defined in
+
+[packages/core/src/types.ts:614](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L614)
+
+***
+
+### LENS
+
+> **LENS**: `"lens"`
+
+#### Defined in
+
+[packages/core/src/types.ts:615](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L615)
+
+***
+
+### AUTO
+
+> **AUTO**: `"auto"`
+
+#### Defined in
+
+[packages/core/src/types.ts:616](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L616)
+
+***
+
+### SLACK
+
+> **SLACK**: `"slack"`
+
+#### Defined in
+
+[packages/core/src/types.ts:617](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L617)
diff --git a/docs/api/enumerations/GoalStatus.md b/docs/api/enumerations/GoalStatus.md
index ccf85342be..712be61619 100644
--- a/docs/api/enumerations/GoalStatus.md
+++ b/docs/api/enumerations/GoalStatus.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / GoalStatus
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / GoalStatus
# Enumeration: GoalStatus
@@ -12,7 +12,7 @@ Status enum for goals
#### Defined in
-[packages/core/src/types.ts:100](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L100)
+[packages/core/src/types.ts:100](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L100)
***
@@ -22,7 +22,7 @@ Status enum for goals
#### Defined in
-[packages/core/src/types.ts:101](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L101)
+[packages/core/src/types.ts:101](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L101)
***
@@ -32,4 +32,4 @@ Status enum for goals
#### Defined in
-[packages/core/src/types.ts:102](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L102)
+[packages/core/src/types.ts:102](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L102)
diff --git a/docs/api/enumerations/LoggingLevel.md b/docs/api/enumerations/LoggingLevel.md
index 0255d7e874..7b8e169eab 100644
--- a/docs/api/enumerations/LoggingLevel.md
+++ b/docs/api/enumerations/LoggingLevel.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / LoggingLevel
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / LoggingLevel
# Enumeration: LoggingLevel
@@ -10,7 +10,7 @@
#### Defined in
-[packages/core/src/types.ts:1149](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1149)
+[packages/core/src/types.ts:1213](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1213)
***
@@ -20,7 +20,7 @@
#### Defined in
-[packages/core/src/types.ts:1150](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1150)
+[packages/core/src/types.ts:1214](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1214)
***
@@ -30,4 +30,4 @@
#### Defined in
-[packages/core/src/types.ts:1151](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1151)
+[packages/core/src/types.ts:1215](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1215)
diff --git a/docs/api/enumerations/ModelClass.md b/docs/api/enumerations/ModelClass.md
index df81bc561f..29b1b9df84 100644
--- a/docs/api/enumerations/ModelClass.md
+++ b/docs/api/enumerations/ModelClass.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / ModelClass
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / ModelClass
# Enumeration: ModelClass
@@ -12,7 +12,7 @@ Model size/type classification
#### Defined in
-[packages/core/src/types.ts:132](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L132)
+[packages/core/src/types.ts:132](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L132)
***
@@ -22,7 +22,7 @@ Model size/type classification
#### Defined in
-[packages/core/src/types.ts:133](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L133)
+[packages/core/src/types.ts:133](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L133)
***
@@ -32,7 +32,7 @@ Model size/type classification
#### Defined in
-[packages/core/src/types.ts:134](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L134)
+[packages/core/src/types.ts:134](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L134)
***
@@ -42,7 +42,7 @@ Model size/type classification
#### Defined in
-[packages/core/src/types.ts:135](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L135)
+[packages/core/src/types.ts:135](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L135)
***
@@ -52,4 +52,4 @@ Model size/type classification
#### Defined in
-[packages/core/src/types.ts:136](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L136)
+[packages/core/src/types.ts:136](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L136)
diff --git a/docs/api/enumerations/ModelProviderName.md b/docs/api/enumerations/ModelProviderName.md
index 8a117db0e1..ad816996b2 100644
--- a/docs/api/enumerations/ModelProviderName.md
+++ b/docs/api/enumerations/ModelProviderName.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / ModelProviderName
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / ModelProviderName
# Enumeration: ModelProviderName
@@ -12,9 +12,9 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:215](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L215)
+[packages/core/src/types.ts:217](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L217)
----
+***
### ETERNALAI
@@ -22,9 +22,9 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:216](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L216)
+[packages/core/src/types.ts:218](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L218)
----
+***
### ANTHROPIC
@@ -32,9 +32,9 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:217](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L217)
+[packages/core/src/types.ts:219](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L219)
----
+***
### GROK
@@ -42,9 +42,9 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:218](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L218)
+[packages/core/src/types.ts:220](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L220)
----
+***
### GROQ
@@ -52,9 +52,9 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:219](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L219)
+[packages/core/src/types.ts:221](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L221)
----
+***
### LLAMACLOUD
@@ -62,9 +62,9 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:220](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L220)
+[packages/core/src/types.ts:222](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L222)
----
+***
### TOGETHER
@@ -72,9 +72,9 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:221](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L221)
+[packages/core/src/types.ts:223](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L223)
----
+***
### LLAMALOCAL
@@ -82,9 +82,9 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:222](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L222)
+[packages/core/src/types.ts:224](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L224)
----
+***
### GOOGLE
@@ -92,19 +92,19 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:223](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L223)
+[packages/core/src/types.ts:225](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L225)
----
+***
-### CLAUDE_VERTEX
+### CLAUDE\_VERTEX
-> **CLAUDE_VERTEX**: `"claude_vertex"`
+> **CLAUDE\_VERTEX**: `"claude_vertex"`
#### Defined in
-[packages/core/src/types.ts:224](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L224)
+[packages/core/src/types.ts:226](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L226)
----
+***
### REDPILL
@@ -112,9 +112,9 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:225](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L225)
+[packages/core/src/types.ts:227](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L227)
----
+***
### OPENROUTER
@@ -122,9 +122,9 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:226](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L226)
+[packages/core/src/types.ts:228](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L228)
----
+***
### OLLAMA
@@ -132,9 +132,9 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:227](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L227)
+[packages/core/src/types.ts:229](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L229)
----
+***
### HEURIST
@@ -142,19 +142,19 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:228](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L228)
+[packages/core/src/types.ts:230](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L230)
----
+***
### GALADRIEL
-**GALADRIEL**: `"galadriel"`
+> **GALADRIEL**: `"galadriel"`
#### Defined in
-[packages/core/src/types.ts:229](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L229)
+[packages/core/src/types.ts:231](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L231)
----
+***
### FAL
@@ -162,9 +162,9 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:230](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L230)
+[packages/core/src/types.ts:232](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L232)
----
+***
### GAIANET
@@ -172,19 +172,19 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:231](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L231)
+[packages/core/src/types.ts:233](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L233)
----
+***
-### ALI_BAILIAN
+### ALI\_BAILIAN
-> **ALI_BAILIAN**: `"ali_bailian"`
+> **ALI\_BAILIAN**: `"ali_bailian"`
#### Defined in
-[packages/core/src/types.ts:232](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L232)
+[packages/core/src/types.ts:234](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L234)
----
+***
### VOLENGINE
@@ -192,7 +192,17 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:233](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L233)
+[packages/core/src/types.ts:235](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L235)
+
+***
+
+### NANOGPT
+
+> **NANOGPT**: `"nanogpt"`
+
+#### Defined in
+
+[packages/core/src/types.ts:236](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L236)
***
@@ -202,4 +212,14 @@ Available model providers
#### Defined in
-[packages/core/src/types.ts:234](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L234)
+[packages/core/src/types.ts:237](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L237)
+
+***
+
+### VENICE
+
+> **VENICE**: `"venice"`
+
+#### Defined in
+
+[packages/core/src/types.ts:238](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L238)
diff --git a/docs/api/enumerations/ServiceType.md b/docs/api/enumerations/ServiceType.md
index a5367c08bc..621a25be9d 100644
--- a/docs/api/enumerations/ServiceType.md
+++ b/docs/api/enumerations/ServiceType.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / ServiceType
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / ServiceType
# Enumeration: ServiceType
@@ -10,7 +10,7 @@
#### Defined in
-[packages/core/src/types.ts:1138](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1138)
+[packages/core/src/types.ts:1199](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1199)
***
@@ -20,7 +20,7 @@
#### Defined in
-[packages/core/src/types.ts:1139](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1139)
+[packages/core/src/types.ts:1200](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1200)
***
@@ -30,7 +30,7 @@
#### Defined in
-[packages/core/src/types.ts:1140](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1140)
+[packages/core/src/types.ts:1201](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1201)
***
@@ -40,7 +40,7 @@
#### Defined in
-[packages/core/src/types.ts:1141](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1141)
+[packages/core/src/types.ts:1202](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1202)
***
@@ -50,7 +50,7 @@
#### Defined in
-[packages/core/src/types.ts:1142](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1142)
+[packages/core/src/types.ts:1203](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1203)
***
@@ -60,7 +60,7 @@
#### Defined in
-[packages/core/src/types.ts:1143](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1143)
+[packages/core/src/types.ts:1204](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1204)
***
@@ -70,7 +70,27 @@
#### Defined in
-[packages/core/src/types.ts:1144](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1144)
+[packages/core/src/types.ts:1205](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1205)
+
+***
+
+### INTIFACE
+
+> **INTIFACE**: `"intiface"`
+
+#### Defined in
+
+[packages/core/src/types.ts:1206](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1206)
+
+***
+
+### AWS\_S3
+
+> **AWS\_S3**: `"aws_s3"`
+
+#### Defined in
+
+[packages/core/src/types.ts:1207](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1207)
***
@@ -80,4 +100,14 @@
#### Defined in
-[packages/core/src/types.ts:1145](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1145)
+[packages/core/src/types.ts:1208](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1208)
+
+***
+
+### SLACK
+
+> **SLACK**: `"slack"`
+
+#### Defined in
+
+[packages/core/src/types.ts:1209](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1209)
diff --git a/docs/api/functions/addHeader.md b/docs/api/functions/addHeader.md
index 3e7d548be9..1908c2e7a0 100644
--- a/docs/api/functions/addHeader.md
+++ b/docs/api/functions/addHeader.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / addHeader
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / addHeader
# Function: addHeader()
@@ -39,4 +39,4 @@ const text = addHeader(header, body);
## Defined in
-[packages/core/src/context.ts:58](https://github.com/monilpat/eliza/blob/main/packages/core/src/context.ts#L58)
+[packages/core/src/context.ts:58](https://github.com/ai16z/eliza/blob/main/packages/core/src/context.ts#L58)
diff --git a/docs/api/functions/composeActionExamples.md b/docs/api/functions/composeActionExamples.md
index 73656af4f5..b88dc2b84a 100644
--- a/docs/api/functions/composeActionExamples.md
+++ b/docs/api/functions/composeActionExamples.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / composeActionExamples
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / composeActionExamples
# Function: composeActionExamples()
@@ -25,4 +25,4 @@ A string containing formatted examples of conversations.
## Defined in
-[packages/core/src/actions.ts:11](https://github.com/monilpat/eliza/blob/main/packages/core/src/actions.ts#L11)
+[packages/core/src/actions.ts:11](https://github.com/ai16z/eliza/blob/main/packages/core/src/actions.ts#L11)
diff --git a/docs/api/functions/composeContext.md b/docs/api/functions/composeContext.md
index 0854ffa34d..d2a6324e3c 100644
--- a/docs/api/functions/composeContext.md
+++ b/docs/api/functions/composeContext.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / composeContext
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / composeContext
# Function: composeContext()
@@ -44,4 +44,4 @@ const context = composeContext({ state, template });
## Defined in
-[packages/core/src/context.ts:24](https://github.com/monilpat/eliza/blob/main/packages/core/src/context.ts#L24)
+[packages/core/src/context.ts:24](https://github.com/ai16z/eliza/blob/main/packages/core/src/context.ts#L24)
diff --git a/docs/api/functions/configureSettings.md b/docs/api/functions/configureSettings.md
index 4d58414a6f..acfe20b920 100644
--- a/docs/api/functions/configureSettings.md
+++ b/docs/api/functions/configureSettings.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / configureSettings
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / configureSettings
# Function: configureSettings()
@@ -18,4 +18,4 @@ Object containing environment variables
## Defined in
-[packages/core/src/settings.ts:69](https://github.com/monilpat/eliza/blob/main/packages/core/src/settings.ts#L69)
+[packages/core/src/settings.ts:69](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L69)
diff --git a/docs/api/functions/createGoal.md b/docs/api/functions/createGoal.md
index c5f9f47915..6f240423ac 100644
--- a/docs/api/functions/createGoal.md
+++ b/docs/api/functions/createGoal.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / createGoal
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / createGoal
# Function: createGoal()
@@ -18,4 +18,4 @@
## Defined in
-[packages/core/src/goals.ts:55](https://github.com/monilpat/eliza/blob/main/packages/core/src/goals.ts#L55)
+[packages/core/src/goals.ts:55](https://github.com/ai16z/eliza/blob/main/packages/core/src/goals.ts#L55)
diff --git a/docs/api/functions/createRelationship.md b/docs/api/functions/createRelationship.md
index 93578aae5f..cca89b9686 100644
--- a/docs/api/functions/createRelationship.md
+++ b/docs/api/functions/createRelationship.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / createRelationship
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / createRelationship
# Function: createRelationship()
@@ -20,4 +20,4 @@
## Defined in
-[packages/core/src/relationships.ts:3](https://github.com/monilpat/eliza/blob/main/packages/core/src/relationships.ts#L3)
+[packages/core/src/relationships.ts:3](https://github.com/ai16z/eliza/blob/main/packages/core/src/relationships.ts#L3)
diff --git a/docs/api/functions/embed.md b/docs/api/functions/embed.md
index 7478980842..594bb50e40 100644
--- a/docs/api/functions/embed.md
+++ b/docs/api/functions/embed.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / embed
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / embed
# Function: embed()
@@ -28,4 +28,4 @@ If the API request fails
## Defined in
-[packages/core/src/embedding.ts:145](https://github.com/monilpat/eliza/blob/main/packages/core/src/embedding.ts#L145)
+[packages/core/src/embedding.ts:145](https://github.com/ai16z/eliza/blob/main/packages/core/src/embedding.ts#L145)
diff --git a/docs/api/functions/findNearestEnvFile.md b/docs/api/functions/findNearestEnvFile.md
index 64bdf4c5d6..51911c103d 100644
--- a/docs/api/functions/findNearestEnvFile.md
+++ b/docs/api/functions/findNearestEnvFile.md
@@ -1,24 +1,24 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / findNearestEnvFile
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / findNearestEnvFile
# Function: findNearestEnvFile()
-> **findNearestEnvFile**(`startDir`?): `string`
+> **findNearestEnvFile**(`startDir`?): `any`
Recursively searches for a .env file starting from the current directory
and moving up through parent directories (Node.js only)
## Parameters
-• **startDir?**: `string` = `...`
+• **startDir?**: `any` = `...`
Starting directory for the search
## Returns
-`string`
+`any`
Path to the nearest .env file or null if not found
## Defined in
-[packages/core/src/settings.ts:43](https://github.com/monilpat/eliza/blob/main/packages/core/src/settings.ts#L43)
+[packages/core/src/settings.ts:43](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L43)
diff --git a/docs/api/functions/formatActionNames.md b/docs/api/functions/formatActionNames.md
index 7eceabb1cc..cd5afc40b2 100644
--- a/docs/api/functions/formatActionNames.md
+++ b/docs/api/functions/formatActionNames.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / formatActionNames
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / formatActionNames
# Function: formatActionNames()
@@ -20,4 +20,4 @@ A comma-separated string of action names.
## Defined in
-[packages/core/src/actions.ts:61](https://github.com/monilpat/eliza/blob/main/packages/core/src/actions.ts#L61)
+[packages/core/src/actions.ts:61](https://github.com/ai16z/eliza/blob/main/packages/core/src/actions.ts#L61)
diff --git a/docs/api/functions/formatActions.md b/docs/api/functions/formatActions.md
index 034261cdea..dfdc5d984b 100644
--- a/docs/api/functions/formatActions.md
+++ b/docs/api/functions/formatActions.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / formatActions
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / formatActions
# Function: formatActions()
@@ -20,4 +20,4 @@ A detailed string of actions, including names and descriptions.
## Defined in
-[packages/core/src/actions.ts:73](https://github.com/monilpat/eliza/blob/main/packages/core/src/actions.ts#L73)
+[packages/core/src/actions.ts:73](https://github.com/ai16z/eliza/blob/main/packages/core/src/actions.ts#L73)
diff --git a/docs/api/functions/formatActors.md b/docs/api/functions/formatActors.md
index 3d7f430815..7a30f6faba 100644
--- a/docs/api/functions/formatActors.md
+++ b/docs/api/functions/formatActors.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / formatActors
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / formatActors
# Function: formatActors()
@@ -22,4 +22,4 @@ string
## Defined in
-[packages/core/src/messages.ts:45](https://github.com/monilpat/eliza/blob/main/packages/core/src/messages.ts#L45)
+[packages/core/src/messages.ts:45](https://github.com/ai16z/eliza/blob/main/packages/core/src/messages.ts#L45)
diff --git a/docs/api/functions/formatEvaluatorExampleDescriptions.md b/docs/api/functions/formatEvaluatorExampleDescriptions.md
index e468dd0863..a9f8bfc813 100644
--- a/docs/api/functions/formatEvaluatorExampleDescriptions.md
+++ b/docs/api/functions/formatEvaluatorExampleDescriptions.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / formatEvaluatorExampleDescriptions
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / formatEvaluatorExampleDescriptions
# Function: formatEvaluatorExampleDescriptions()
@@ -20,4 +20,4 @@ A string that summarizes the descriptions for each evaluator example, formatted
## Defined in
-[packages/core/src/evaluators.ts:110](https://github.com/monilpat/eliza/blob/main/packages/core/src/evaluators.ts#L110)
+[packages/core/src/evaluators.ts:110](https://github.com/ai16z/eliza/blob/main/packages/core/src/evaluators.ts#L110)
diff --git a/docs/api/functions/formatEvaluatorExamples.md b/docs/api/functions/formatEvaluatorExamples.md
index de4c134f2f..3f474afba7 100644
--- a/docs/api/functions/formatEvaluatorExamples.md
+++ b/docs/api/functions/formatEvaluatorExamples.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / formatEvaluatorExamples
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / formatEvaluatorExamples
# Function: formatEvaluatorExamples()
@@ -20,4 +20,4 @@ A string that presents each evaluator example in a structured format, including
## Defined in
-[packages/core/src/evaluators.ts:55](https://github.com/monilpat/eliza/blob/main/packages/core/src/evaluators.ts#L55)
+[packages/core/src/evaluators.ts:55](https://github.com/ai16z/eliza/blob/main/packages/core/src/evaluators.ts#L55)
diff --git a/docs/api/functions/formatEvaluatorNames.md b/docs/api/functions/formatEvaluatorNames.md
index 0df8bbcfea..01b6730e77 100644
--- a/docs/api/functions/formatEvaluatorNames.md
+++ b/docs/api/functions/formatEvaluatorNames.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / formatEvaluatorNames
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / formatEvaluatorNames
# Function: formatEvaluatorNames()
@@ -20,4 +20,4 @@ A string that concatenates the names of all evaluators, each enclosed in single
## Defined in
-[packages/core/src/evaluators.ts:30](https://github.com/monilpat/eliza/blob/main/packages/core/src/evaluators.ts#L30)
+[packages/core/src/evaluators.ts:30](https://github.com/ai16z/eliza/blob/main/packages/core/src/evaluators.ts#L30)
diff --git a/docs/api/functions/formatEvaluators.md b/docs/api/functions/formatEvaluators.md
index b2b298f74d..38c3bf74b6 100644
--- a/docs/api/functions/formatEvaluators.md
+++ b/docs/api/functions/formatEvaluators.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / formatEvaluators
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / formatEvaluators
# Function: formatEvaluators()
@@ -20,4 +20,4 @@ A string that concatenates the name and description of each evaluator, separated
## Defined in
-[packages/core/src/evaluators.ts:41](https://github.com/monilpat/eliza/blob/main/packages/core/src/evaluators.ts#L41)
+[packages/core/src/evaluators.ts:41](https://github.com/ai16z/eliza/blob/main/packages/core/src/evaluators.ts#L41)
diff --git a/docs/api/functions/formatGoalsAsString.md b/docs/api/functions/formatGoalsAsString.md
index 82403b4c1f..d30259dd9d 100644
--- a/docs/api/functions/formatGoalsAsString.md
+++ b/docs/api/functions/formatGoalsAsString.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / formatGoalsAsString
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / formatGoalsAsString
# Function: formatGoalsAsString()
@@ -16,4 +16,4 @@
## Defined in
-[packages/core/src/goals.ts:30](https://github.com/monilpat/eliza/blob/main/packages/core/src/goals.ts#L30)
+[packages/core/src/goals.ts:30](https://github.com/ai16z/eliza/blob/main/packages/core/src/goals.ts#L30)
diff --git a/docs/api/functions/formatMessages.md b/docs/api/functions/formatMessages.md
index 9e3455e069..4052815bbc 100644
--- a/docs/api/functions/formatMessages.md
+++ b/docs/api/functions/formatMessages.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / formatMessages
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / formatMessages
# Function: formatMessages()
@@ -22,4 +22,4 @@ string
## Defined in
-[packages/core/src/messages.ts:60](https://github.com/monilpat/eliza/blob/main/packages/core/src/messages.ts#L60)
+[packages/core/src/messages.ts:60](https://github.com/ai16z/eliza/blob/main/packages/core/src/messages.ts#L60)
diff --git a/docs/api/functions/formatPosts.md b/docs/api/functions/formatPosts.md
index 59f1d7f380..452090fc2b 100644
--- a/docs/api/functions/formatPosts.md
+++ b/docs/api/functions/formatPosts.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / formatPosts
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / formatPosts
# Function: formatPosts()
@@ -20,4 +20,4 @@
## Defined in
-[packages/core/src/posts.ts:4](https://github.com/monilpat/eliza/blob/main/packages/core/src/posts.ts#L4)
+[packages/core/src/posts.ts:4](https://github.com/ai16z/eliza/blob/main/packages/core/src/posts.ts#L4)
diff --git a/docs/api/functions/formatRelationships.md b/docs/api/functions/formatRelationships.md
index 51ecc24fea..f427b32f1a 100644
--- a/docs/api/functions/formatRelationships.md
+++ b/docs/api/functions/formatRelationships.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / formatRelationships
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / formatRelationships
# Function: formatRelationships()
@@ -18,4 +18,4 @@
## Defined in
-[packages/core/src/relationships.ts:43](https://github.com/monilpat/eliza/blob/main/packages/core/src/relationships.ts#L43)
+[packages/core/src/relationships.ts:43](https://github.com/ai16z/eliza/blob/main/packages/core/src/relationships.ts#L43)
diff --git a/docs/api/functions/formatTimestamp.md b/docs/api/functions/formatTimestamp.md
index 7283caadfe..475cfb5b2f 100644
--- a/docs/api/functions/formatTimestamp.md
+++ b/docs/api/functions/formatTimestamp.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / formatTimestamp
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / formatTimestamp
# Function: formatTimestamp()
@@ -14,4 +14,4 @@
## Defined in
-[packages/core/src/messages.ts:94](https://github.com/monilpat/eliza/blob/main/packages/core/src/messages.ts#L94)
+[packages/core/src/messages.ts:94](https://github.com/ai16z/eliza/blob/main/packages/core/src/messages.ts#L94)
diff --git a/docs/api/functions/generateCaption.md b/docs/api/functions/generateCaption.md
index aa004d76d0..eeed9173c7 100644
--- a/docs/api/functions/generateCaption.md
+++ b/docs/api/functions/generateCaption.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / generateCaption
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / generateCaption
# Function: generateCaption()
@@ -26,4 +26,4 @@
## Defined in
-[packages/core/src/generation.ts:998](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L998)
+[packages/core/src/generation.ts:1175](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1175)
diff --git a/docs/api/functions/generateImage.md b/docs/api/functions/generateImage.md
index 153c23a9ac..14e06a5984 100644
--- a/docs/api/functions/generateImage.md
+++ b/docs/api/functions/generateImage.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / generateImage
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / generateImage
# Function: generateImage()
@@ -48,4 +48,4 @@
## Defined in
-[packages/core/src/generation.ts:799](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L799)
+[packages/core/src/generation.ts:925](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L925)
diff --git a/docs/api/functions/generateMessageResponse.md b/docs/api/functions/generateMessageResponse.md
index 8a9304f320..76acdef369 100644
--- a/docs/api/functions/generateMessageResponse.md
+++ b/docs/api/functions/generateMessageResponse.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / generateMessageResponse
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / generateMessageResponse
# Function: generateMessageResponse()
@@ -28,4 +28,4 @@ The completed message.
## Defined in
-[packages/core/src/generation.ts:759](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L759)
+[packages/core/src/generation.ts:884](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L884)
diff --git a/docs/api/functions/generateObject.md b/docs/api/functions/generateObject.md
index 3de2661fdb..a09985bbff 100644
--- a/docs/api/functions/generateObject.md
+++ b/docs/api/functions/generateObject.md
@@ -1,23 +1,27 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / generateObject
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / generateObject
# Function: generateObject()
-> **generateObject**(`__namedParameters`): `Promise`\<`any`\>
+> **generateObject**(`options`): `Promise`\<`GenerateObjectResult`\<`unknown`\>\>
+
+Generates structured objects from a prompt using specified AI models and configuration options.
## Parameters
-• **\_\_namedParameters**
+• **options**: [`GenerationOptions`](../interfaces/GenerationOptions.md)
+
+Configuration options for generating objects.
-• **\_\_namedParameters.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md)
+## Returns
-• **\_\_namedParameters.context**: `string`
+`Promise`\<`GenerateObjectResult`\<`unknown`\>\>
-• **\_\_namedParameters.modelClass**: `string`
+- A promise that resolves to an array of generated objects.
-## Returns
+## Throws
-`Promise`\<`any`\>
+- Throws an error if the provider is unsupported or if generation fails.
## Defined in
-[packages/core/src/generation.ts:675](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L675)
+[packages/core/src/generation.ts:1265](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1265)
diff --git a/docs/api/functions/generateObjectArray.md b/docs/api/functions/generateObjectArray.md
index 350ce02819..36e89f9b8a 100644
--- a/docs/api/functions/generateObjectArray.md
+++ b/docs/api/functions/generateObjectArray.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / generateObjectArray
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / generateObjectArray
# Function: generateObjectArray()
@@ -20,4 +20,4 @@
## Defined in
-[packages/core/src/generation.ts:711](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L711)
+[packages/core/src/generation.ts:836](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L836)
diff --git a/docs/api/functions/generateObjectDeprecated.md b/docs/api/functions/generateObjectDeprecated.md
new file mode 100644
index 0000000000..0155f90b06
--- /dev/null
+++ b/docs/api/functions/generateObjectDeprecated.md
@@ -0,0 +1,23 @@
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / generateObjectDeprecated
+
+# Function: generateObjectDeprecated()
+
+> **generateObjectDeprecated**(`__namedParameters`): `Promise`\<`any`\>
+
+## Parameters
+
+• **\_\_namedParameters**
+
+• **\_\_namedParameters.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md)
+
+• **\_\_namedParameters.context**: `string`
+
+• **\_\_namedParameters.modelClass**: `string`
+
+## Returns
+
+`Promise`\<`any`\>
+
+## Defined in
+
+[packages/core/src/generation.ts:800](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L800)
diff --git a/docs/api/functions/generateObjectV2.md b/docs/api/functions/generateObjectV2.md
deleted file mode 100644
index 834d0a8925..0000000000
--- a/docs/api/functions/generateObjectV2.md
+++ /dev/null
@@ -1,27 +0,0 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / generateObjectV2
-
-# Function: generateObjectV2()
-
-> **generateObjectV2**(`options`): `Promise`\<`GenerateObjectResult`\<`unknown`\>\>
-
-Generates structured objects from a prompt using specified AI models and configuration options.
-
-## Parameters
-
-• **options**: [`GenerationOptions`](../interfaces/GenerationOptions.md)
-
-Configuration options for generating objects.
-
-## Returns
-
-`Promise`\<`GenerateObjectResult`\<`unknown`\>\>
-
-- A promise that resolves to an array of generated objects.
-
-## Throws
-
-- Throws an error if the provider is unsupported or if generation fails.
-
-## Defined in
-
-[packages/core/src/generation.ts:1088](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L1088)
diff --git a/docs/api/functions/generateShouldRespond.md b/docs/api/functions/generateShouldRespond.md
index 39fdfe3e00..e0a7c1710a 100644
--- a/docs/api/functions/generateShouldRespond.md
+++ b/docs/api/functions/generateShouldRespond.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / generateShouldRespond
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / generateShouldRespond
# Function: generateShouldRespond()
@@ -28,4 +28,4 @@ Promise resolving to "RESPOND", "IGNORE", "STOP" or null
## Defined in
-[packages/core/src/generation.ts:501](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L501)
+[packages/core/src/generation.ts:626](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L626)
diff --git a/docs/api/functions/generateText.md b/docs/api/functions/generateText.md
index 28d2b8a674..6c33983c3b 100644
--- a/docs/api/functions/generateText.md
+++ b/docs/api/functions/generateText.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / generateText
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / generateText
# Function: generateText()
@@ -32,4 +32,4 @@ The completed message.
## Defined in
-[packages/core/src/generation.ts:51](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L51)
+[packages/core/src/generation.ts:53](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L53)
diff --git a/docs/api/functions/generateTextArray.md b/docs/api/functions/generateTextArray.md
index 9ca3ce4f32..5c7a0d2a3c 100644
--- a/docs/api/functions/generateTextArray.md
+++ b/docs/api/functions/generateTextArray.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / generateTextArray
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / generateTextArray
# Function: generateTextArray()
@@ -28,4 +28,4 @@ Promise resolving to an array of strings parsed from the model's response
## Defined in
-[packages/core/src/generation.ts:639](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L639)
+[packages/core/src/generation.ts:764](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L764)
diff --git a/docs/api/functions/generateTrueOrFalse.md b/docs/api/functions/generateTrueOrFalse.md
index cb3ccf681c..4b28744218 100644
--- a/docs/api/functions/generateTrueOrFalse.md
+++ b/docs/api/functions/generateTrueOrFalse.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / generateTrueOrFalse
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / generateTrueOrFalse
# Function: generateTrueOrFalse()
@@ -28,4 +28,4 @@ Promise resolving to a boolean value parsed from the model's response
## Defined in
-[packages/core/src/generation.ts:584](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L584)
+[packages/core/src/generation.ts:709](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L709)
diff --git a/docs/api/functions/generateTweetActions.md b/docs/api/functions/generateTweetActions.md
new file mode 100644
index 0000000000..cd26c95510
--- /dev/null
+++ b/docs/api/functions/generateTweetActions.md
@@ -0,0 +1,23 @@
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / generateTweetActions
+
+# Function: generateTweetActions()
+
+> **generateTweetActions**(`__namedParameters`): `Promise`\<[`ActionResponse`](../interfaces/ActionResponse.md) \| `null`\>
+
+## Parameters
+
+• **\_\_namedParameters**
+
+• **\_\_namedParameters.runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md)
+
+• **\_\_namedParameters.context**: `string`
+
+• **\_\_namedParameters.modelClass**: `string`
+
+## Returns
+
+`Promise`\<[`ActionResponse`](../interfaces/ActionResponse.md) \| `null`\>
+
+## Defined in
+
+[packages/core/src/generation.ts:1614](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1614)
diff --git a/docs/api/functions/generateWebSearch.md b/docs/api/functions/generateWebSearch.md
index 0e27878aea..7a889937aa 100644
--- a/docs/api/functions/generateWebSearch.md
+++ b/docs/api/functions/generateWebSearch.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / generateWebSearch
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / generateWebSearch
# Function: generateWebSearch()
@@ -16,4 +16,4 @@
## Defined in
-[packages/core/src/generation.ts:1022](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L1022)
+[packages/core/src/generation.ts:1199](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1199)
diff --git a/docs/api/functions/getActorDetails.md b/docs/api/functions/getActorDetails.md
index a0273a1ce9..f61fd9d59c 100644
--- a/docs/api/functions/getActorDetails.md
+++ b/docs/api/functions/getActorDetails.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / getActorDetails
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / getActorDetails
# Function: getActorDetails()
@@ -20,4 +20,4 @@ Get details for a list of actors.
## Defined in
-[packages/core/src/messages.ts:12](https://github.com/monilpat/eliza/blob/main/packages/core/src/messages.ts#L12)
+[packages/core/src/messages.ts:12](https://github.com/ai16z/eliza/blob/main/packages/core/src/messages.ts#L12)
diff --git a/docs/api/functions/getEmbeddingConfig.md b/docs/api/functions/getEmbeddingConfig.md
index 8acfc41dba..8c9d9b293e 100644
--- a/docs/api/functions/getEmbeddingConfig.md
+++ b/docs/api/functions/getEmbeddingConfig.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / getEmbeddingConfig
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / getEmbeddingConfig
# Function: getEmbeddingConfig()
@@ -24,4 +24,4 @@ Add the embedding configuration
## Defined in
-[packages/core/src/embedding.ts:18](https://github.com/monilpat/eliza/blob/main/packages/core/src/embedding.ts#L18)
+[packages/core/src/embedding.ts:18](https://github.com/ai16z/eliza/blob/main/packages/core/src/embedding.ts#L18)
diff --git a/docs/api/functions/getEmbeddingType.md b/docs/api/functions/getEmbeddingType.md
index 20e18326e0..39f2606def 100644
--- a/docs/api/functions/getEmbeddingType.md
+++ b/docs/api/functions/getEmbeddingType.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / getEmbeddingType
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / getEmbeddingType
# Function: getEmbeddingType()
@@ -14,4 +14,4 @@
## Defined in
-[packages/core/src/embedding.ts:99](https://github.com/monilpat/eliza/blob/main/packages/core/src/embedding.ts#L99)
+[packages/core/src/embedding.ts:99](https://github.com/ai16z/eliza/blob/main/packages/core/src/embedding.ts#L99)
diff --git a/docs/api/functions/getEmbeddingZeroVector.md b/docs/api/functions/getEmbeddingZeroVector.md
index a3ec7299c6..d7d4f2dee7 100644
--- a/docs/api/functions/getEmbeddingZeroVector.md
+++ b/docs/api/functions/getEmbeddingZeroVector.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / getEmbeddingZeroVector
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / getEmbeddingZeroVector
# Function: getEmbeddingZeroVector()
@@ -10,4 +10,4 @@
## Defined in
-[packages/core/src/embedding.ts:118](https://github.com/monilpat/eliza/blob/main/packages/core/src/embedding.ts#L118)
+[packages/core/src/embedding.ts:118](https://github.com/ai16z/eliza/blob/main/packages/core/src/embedding.ts#L118)
diff --git a/docs/api/functions/getEndpoint.md b/docs/api/functions/getEndpoint.md
index 571ee1eadc..0927fa4685 100644
--- a/docs/api/functions/getEndpoint.md
+++ b/docs/api/functions/getEndpoint.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / getEndpoint
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / getEndpoint
# Function: getEndpoint()
@@ -14,4 +14,4 @@
## Defined in
-[packages/core/src/models.ts:385](https://github.com/monilpat/eliza/blob/main/packages/core/src/models.ts#L385)
+[packages/core/src/models.ts:475](https://github.com/ai16z/eliza/blob/main/packages/core/src/models.ts#L475)
diff --git a/docs/api/functions/getEnvVariable.md b/docs/api/functions/getEnvVariable.md
index 8d51877396..3cabcf9420 100644
--- a/docs/api/functions/getEnvVariable.md
+++ b/docs/api/functions/getEnvVariable.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / getEnvVariable
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / getEnvVariable
# Function: getEnvVariable()
@@ -24,4 +24,4 @@ The environment variable value or default value
## Defined in
-[packages/core/src/settings.ts:103](https://github.com/monilpat/eliza/blob/main/packages/core/src/settings.ts#L103)
+[packages/core/src/settings.ts:103](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L103)
diff --git a/docs/api/functions/getGoals.md b/docs/api/functions/getGoals.md
index a863d80e02..bae1a11fb5 100644
--- a/docs/api/functions/getGoals.md
+++ b/docs/api/functions/getGoals.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / getGoals
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / getGoals
# Function: getGoals()
@@ -24,4 +24,4 @@
## Defined in
-[packages/core/src/goals.ts:8](https://github.com/monilpat/eliza/blob/main/packages/core/src/goals.ts#L8)
+[packages/core/src/goals.ts:8](https://github.com/ai16z/eliza/blob/main/packages/core/src/goals.ts#L8)
diff --git a/docs/api/functions/getModel.md b/docs/api/functions/getModel.md
index a7f954a703..75397fac5f 100644
--- a/docs/api/functions/getModel.md
+++ b/docs/api/functions/getModel.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / getModel
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / getModel
# Function: getModel()
@@ -16,4 +16,4 @@
## Defined in
-[packages/core/src/models.ts:381](https://github.com/monilpat/eliza/blob/main/packages/core/src/models.ts#L381)
+[packages/core/src/models.ts:471](https://github.com/ai16z/eliza/blob/main/packages/core/src/models.ts#L471)
diff --git a/docs/api/functions/getProviders.md b/docs/api/functions/getProviders.md
index 7f94cb28e5..5db3219c67 100644
--- a/docs/api/functions/getProviders.md
+++ b/docs/api/functions/getProviders.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / getProviders
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / getProviders
# Function: getProviders()
@@ -28,4 +28,4 @@ A string that concatenates the outputs of each provider.
## Defined in
-[packages/core/src/providers.ts:10](https://github.com/monilpat/eliza/blob/main/packages/core/src/providers.ts#L10)
+[packages/core/src/providers.ts:10](https://github.com/ai16z/eliza/blob/main/packages/core/src/providers.ts#L10)
diff --git a/docs/api/functions/getRelationship.md b/docs/api/functions/getRelationship.md
index 9a1158199f..6f4be5ab24 100644
--- a/docs/api/functions/getRelationship.md
+++ b/docs/api/functions/getRelationship.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / getRelationship
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / getRelationship
# Function: getRelationship()
@@ -20,4 +20,4 @@
## Defined in
-[packages/core/src/relationships.ts:18](https://github.com/monilpat/eliza/blob/main/packages/core/src/relationships.ts#L18)
+[packages/core/src/relationships.ts:18](https://github.com/ai16z/eliza/blob/main/packages/core/src/relationships.ts#L18)
diff --git a/docs/api/functions/getRelationships.md b/docs/api/functions/getRelationships.md
index 41d5aed922..cda218f13d 100644
--- a/docs/api/functions/getRelationships.md
+++ b/docs/api/functions/getRelationships.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / getRelationships
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / getRelationships
# Function: getRelationships()
@@ -18,4 +18,4 @@
## Defined in
-[packages/core/src/relationships.ts:33](https://github.com/monilpat/eliza/blob/main/packages/core/src/relationships.ts#L33)
+[packages/core/src/relationships.ts:33](https://github.com/ai16z/eliza/blob/main/packages/core/src/relationships.ts#L33)
diff --git a/docs/api/functions/handleProvider.md b/docs/api/functions/handleProvider.md
index b2e1dd4fbe..6b575532db 100644
--- a/docs/api/functions/handleProvider.md
+++ b/docs/api/functions/handleProvider.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / handleProvider
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / handleProvider
# Function: handleProvider()
@@ -20,4 +20,4 @@ Configuration options specific to the provider.
## Defined in
-[packages/core/src/generation.ts:1173](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L1173)
+[packages/core/src/generation.ts:1350](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1350)
diff --git a/docs/api/functions/hasEnvVariable.md b/docs/api/functions/hasEnvVariable.md
index 9dda37b8e4..c1c6cca0cd 100644
--- a/docs/api/functions/hasEnvVariable.md
+++ b/docs/api/functions/hasEnvVariable.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / hasEnvVariable
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / hasEnvVariable
# Function: hasEnvVariable()
@@ -20,4 +20,4 @@ True if the environment variable exists
## Defined in
-[packages/core/src/settings.ts:118](https://github.com/monilpat/eliza/blob/main/packages/core/src/settings.ts#L118)
+[packages/core/src/settings.ts:118](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L118)
diff --git a/docs/api/functions/loadEnvConfig.md b/docs/api/functions/loadEnvConfig.md
index 2121dd384d..6097e08ce6 100644
--- a/docs/api/functions/loadEnvConfig.md
+++ b/docs/api/functions/loadEnvConfig.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / loadEnvConfig
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / loadEnvConfig
# Function: loadEnvConfig()
@@ -19,4 +19,4 @@ If no .env file is found in Node.js environment
## Defined in
-[packages/core/src/settings.ts:79](https://github.com/monilpat/eliza/blob/main/packages/core/src/settings.ts#L79)
+[packages/core/src/settings.ts:79](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L79)
diff --git a/docs/api/functions/parseActionResponseFromText.md b/docs/api/functions/parseActionResponseFromText.md
new file mode 100644
index 0000000000..30d1dab545
--- /dev/null
+++ b/docs/api/functions/parseActionResponseFromText.md
@@ -0,0 +1,21 @@
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / parseActionResponseFromText
+
+# Function: parseActionResponseFromText()
+
+> **parseActionResponseFromText**(`text`): `object`
+
+## Parameters
+
+• **text**: `string`
+
+## Returns
+
+`object`
+
+### actions
+
+> **actions**: [`ActionResponse`](../interfaces/ActionResponse.md)
+
+## Defined in
+
+[packages/core/src/parsing.ts:153](https://github.com/ai16z/eliza/blob/main/packages/core/src/parsing.ts#L153)
diff --git a/docs/api/functions/parseBooleanFromText.md b/docs/api/functions/parseBooleanFromText.md
index 58eac4a077..4c3bd7b95b 100644
--- a/docs/api/functions/parseBooleanFromText.md
+++ b/docs/api/functions/parseBooleanFromText.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / parseBooleanFromText
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / parseBooleanFromText
# Function: parseBooleanFromText()
@@ -14,4 +14,4 @@
## Defined in
-[packages/core/src/parsing.ts:36](https://github.com/monilpat/eliza/blob/main/packages/core/src/parsing.ts#L36)
+[packages/core/src/parsing.ts:37](https://github.com/ai16z/eliza/blob/main/packages/core/src/parsing.ts#L37)
diff --git a/docs/api/functions/parseJSONObjectFromText.md b/docs/api/functions/parseJSONObjectFromText.md
index 99d1edfb3a..770735d088 100644
--- a/docs/api/functions/parseJSONObjectFromText.md
+++ b/docs/api/functions/parseJSONObjectFromText.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / parseJSONObjectFromText
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / parseJSONObjectFromText
# Function: parseJSONObjectFromText()
@@ -24,4 +24,4 @@ An object parsed from the JSON string if successful; otherwise, null or the resu
## Defined in
-[packages/core/src/parsing.ts:103](https://github.com/monilpat/eliza/blob/main/packages/core/src/parsing.ts#L103)
+[packages/core/src/parsing.ts:110](https://github.com/ai16z/eliza/blob/main/packages/core/src/parsing.ts#L110)
diff --git a/docs/api/functions/parseJsonArrayFromText.md b/docs/api/functions/parseJsonArrayFromText.md
index bc77366db5..812718ac1a 100644
--- a/docs/api/functions/parseJsonArrayFromText.md
+++ b/docs/api/functions/parseJsonArrayFromText.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / parseJsonArrayFromText
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / parseJsonArrayFromText
# Function: parseJsonArrayFromText()
@@ -23,4 +23,4 @@ An array parsed from the JSON string if successful; otherwise, null.
## Defined in
-[packages/core/src/parsing.ts:60](https://github.com/monilpat/eliza/blob/main/packages/core/src/parsing.ts#L60)
+[packages/core/src/parsing.ts:61](https://github.com/ai16z/eliza/blob/main/packages/core/src/parsing.ts#L61)
diff --git a/docs/api/functions/parseShouldRespondFromText.md b/docs/api/functions/parseShouldRespondFromText.md
index f813749072..34e48ed8e9 100644
--- a/docs/api/functions/parseShouldRespondFromText.md
+++ b/docs/api/functions/parseShouldRespondFromText.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / parseShouldRespondFromText
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / parseShouldRespondFromText
# Function: parseShouldRespondFromText()
@@ -14,4 +14,4 @@
## Defined in
-[packages/core/src/parsing.ts:13](https://github.com/monilpat/eliza/blob/main/packages/core/src/parsing.ts#L13)
+[packages/core/src/parsing.ts:14](https://github.com/ai16z/eliza/blob/main/packages/core/src/parsing.ts#L14)
diff --git a/docs/api/functions/splitChunks.md b/docs/api/functions/splitChunks.md
index eb3dd60a76..6ec7e00048 100644
--- a/docs/api/functions/splitChunks.md
+++ b/docs/api/functions/splitChunks.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / splitChunks
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / splitChunks
# Function: splitChunks()
@@ -28,4 +28,4 @@ Promise resolving to array of text chunks with bleed sections
## Defined in
-[packages/core/src/generation.ts:556](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L556)
+[packages/core/src/generation.ts:681](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L681)
diff --git a/docs/api/functions/stringToUuid.md b/docs/api/functions/stringToUuid.md
index 6feb8866df..acd7d27e8f 100644
--- a/docs/api/functions/stringToUuid.md
+++ b/docs/api/functions/stringToUuid.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / stringToUuid
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / stringToUuid
# Function: stringToUuid()
@@ -14,4 +14,4 @@
## Defined in
-[packages/core/src/uuid.ts:4](https://github.com/monilpat/eliza/blob/main/packages/core/src/uuid.ts#L4)
+[packages/core/src/uuid.ts:4](https://github.com/ai16z/eliza/blob/main/packages/core/src/uuid.ts#L4)
diff --git a/docs/api/functions/trimTokens.md b/docs/api/functions/trimTokens.md
index 48e4bd0cec..e2156835ab 100644
--- a/docs/api/functions/trimTokens.md
+++ b/docs/api/functions/trimTokens.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / trimTokens
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / trimTokens
# Function: trimTokens()
@@ -28,4 +28,4 @@ The truncated text
## Defined in
-[packages/core/src/generation.ts:455](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L455)
+[packages/core/src/generation.ts:580](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L580)
diff --git a/docs/api/functions/updateGoal.md b/docs/api/functions/updateGoal.md
index e38f01a12f..2164ebf724 100644
--- a/docs/api/functions/updateGoal.md
+++ b/docs/api/functions/updateGoal.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / updateGoal
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / updateGoal
# Function: updateGoal()
@@ -18,4 +18,4 @@
## Defined in
-[packages/core/src/goals.ts:45](https://github.com/monilpat/eliza/blob/main/packages/core/src/goals.ts#L45)
+[packages/core/src/goals.ts:45](https://github.com/ai16z/eliza/blob/main/packages/core/src/goals.ts#L45)
diff --git a/docs/api/functions/validateCharacterConfig.md b/docs/api/functions/validateCharacterConfig.md
index c939e9cc7a..8732d6a2b9 100644
--- a/docs/api/functions/validateCharacterConfig.md
+++ b/docs/api/functions/validateCharacterConfig.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / validateCharacterConfig
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / validateCharacterConfig
# Function: validateCharacterConfig()
@@ -16,4 +16,4 @@ Validation function
## Defined in
-[packages/core/src/environment.ts:133](https://github.com/monilpat/eliza/blob/main/packages/core/src/environment.ts#L133)
+[packages/core/src/environment.ts:138](https://github.com/ai16z/eliza/blob/main/packages/core/src/environment.ts#L138)
diff --git a/docs/api/functions/validateEnv.md b/docs/api/functions/validateEnv.md
index e590a4d83a..c66bfb241c 100644
--- a/docs/api/functions/validateEnv.md
+++ b/docs/api/functions/validateEnv.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / validateEnv
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / validateEnv
# Function: validateEnv()
@@ -12,4 +12,4 @@ Validation function
## Defined in
-[packages/core/src/environment.ts:26](https://github.com/monilpat/eliza/blob/main/packages/core/src/environment.ts#L26)
+[packages/core/src/environment.ts:26](https://github.com/ai16z/eliza/blob/main/packages/core/src/environment.ts#L26)
diff --git a/docs/api/index.md b/docs/api/index.md
index 5f29823806..3e6ae4a6d2 100644
--- a/docs/api/index.md
+++ b/docs/api/index.md
@@ -1,4 +1,4 @@
-# @ai16z/eliza v0.1.5-alpha.3
+# @ai16z/eliza v0.1.5-alpha.5
## Enumerations
@@ -41,6 +41,7 @@
- [Account](interfaces/Account.md)
- [Participant](interfaces/Participant.md)
- [Room](interfaces/Room.md)
+- [IAgentConfig](interfaces/IAgentConfig.md)
- [IDatabaseAdapter](interfaces/IDatabaseAdapter.md)
- [IDatabaseCacheAdapter](interfaces/IDatabaseCacheAdapter.md)
- [IMemoryManager](interfaces/IMemoryManager.md)
@@ -53,6 +54,9 @@
- [IBrowserService](interfaces/IBrowserService.md)
- [ISpeechService](interfaces/ISpeechService.md)
- [IPdfService](interfaces/IPdfService.md)
+- [IAwsS3Service](interfaces/IAwsS3Service.md)
+- [ActionResponse](interfaces/ActionResponse.md)
+- [ISlackService](interfaces/ISlackService.md)
## Type Aliases
@@ -86,6 +90,7 @@
- [shouldRespondFooter](variables/shouldRespondFooter.md)
- [booleanFooter](variables/booleanFooter.md)
- [stringArrayFooter](variables/stringArrayFooter.md)
+- [postActionResponseFooter](variables/postActionResponseFooter.md)
- [settings](variables/settings.md)
## Functions
@@ -111,14 +116,15 @@
- [splitChunks](functions/splitChunks.md)
- [generateTrueOrFalse](functions/generateTrueOrFalse.md)
- [generateTextArray](functions/generateTextArray.md)
-- [generateObject](functions/generateObject.md)
+- [generateObjectDeprecated](functions/generateObjectDeprecated.md)
- [generateObjectArray](functions/generateObjectArray.md)
- [generateMessageResponse](functions/generateMessageResponse.md)
- [generateImage](functions/generateImage.md)
- [generateCaption](functions/generateCaption.md)
- [generateWebSearch](functions/generateWebSearch.md)
-- [generateObjectV2](functions/generateObjectV2.md)
+- [generateObject](functions/generateObject.md)
- [handleProvider](functions/handleProvider.md)
+- [generateTweetActions](functions/generateTweetActions.md)
- [getGoals](functions/getGoals.md)
- [formatGoalsAsString](functions/formatGoalsAsString.md)
- [updateGoal](functions/updateGoal.md)
@@ -133,6 +139,7 @@
- [parseBooleanFromText](functions/parseBooleanFromText.md)
- [parseJsonArrayFromText](functions/parseJsonArrayFromText.md)
- [parseJSONObjectFromText](functions/parseJSONObjectFromText.md)
+- [parseActionResponseFromText](functions/parseActionResponseFromText.md)
- [formatPosts](functions/formatPosts.md)
- [getProviders](functions/getProviders.md)
- [createRelationship](functions/createRelationship.md)
diff --git a/docs/api/interfaces/Account.md b/docs/api/interfaces/Account.md
index 8959a874c2..e7eaec12e8 100644
--- a/docs/api/interfaces/Account.md
+++ b/docs/api/interfaces/Account.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Account
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Account
# Interface: Account
@@ -14,7 +14,7 @@ Unique identifier
#### Defined in
-[packages/core/src/types.ts:497](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L497)
+[packages/core/src/types.ts:503](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L503)
***
@@ -26,7 +26,7 @@ Display name
#### Defined in
-[packages/core/src/types.ts:500](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L500)
+[packages/core/src/types.ts:506](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L506)
***
@@ -38,7 +38,7 @@ Username
#### Defined in
-[packages/core/src/types.ts:503](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L503)
+[packages/core/src/types.ts:509](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L509)
***
@@ -54,7 +54,7 @@ Optional additional details
#### Defined in
-[packages/core/src/types.ts:506](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L506)
+[packages/core/src/types.ts:512](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L512)
***
@@ -66,7 +66,7 @@ Optional email
#### Defined in
-[packages/core/src/types.ts:509](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L509)
+[packages/core/src/types.ts:515](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L515)
***
@@ -78,4 +78,4 @@ Optional avatar URL
#### Defined in
-[packages/core/src/types.ts:512](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L512)
+[packages/core/src/types.ts:518](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L518)
diff --git a/docs/api/interfaces/Action.md b/docs/api/interfaces/Action.md
index 664760c6ee..a06c0d344f 100644
--- a/docs/api/interfaces/Action.md
+++ b/docs/api/interfaces/Action.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Action
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Action
# Interface: Action
@@ -14,7 +14,7 @@ Similar action descriptions
#### Defined in
-[packages/core/src/types.ts:396](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L396)
+[packages/core/src/types.ts:402](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L402)
***
@@ -26,7 +26,7 @@ Detailed description
#### Defined in
-[packages/core/src/types.ts:399](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L399)
+[packages/core/src/types.ts:405](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L405)
***
@@ -38,7 +38,7 @@ Example usages
#### Defined in
-[packages/core/src/types.ts:402](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L402)
+[packages/core/src/types.ts:408](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L408)
***
@@ -50,7 +50,7 @@ Handler function
#### Defined in
-[packages/core/src/types.ts:405](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L405)
+[packages/core/src/types.ts:411](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L411)
***
@@ -62,7 +62,7 @@ Action name
#### Defined in
-[packages/core/src/types.ts:408](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L408)
+[packages/core/src/types.ts:414](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L414)
***
@@ -74,4 +74,4 @@ Validation function
#### Defined in
-[packages/core/src/types.ts:411](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L411)
+[packages/core/src/types.ts:417](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L417)
diff --git a/docs/api/interfaces/ActionExample.md b/docs/api/interfaces/ActionExample.md
index b5525f1e37..5606acd66a 100644
--- a/docs/api/interfaces/ActionExample.md
+++ b/docs/api/interfaces/ActionExample.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / ActionExample
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / ActionExample
# Interface: ActionExample
@@ -14,7 +14,7 @@ User associated with the example
#### Defined in
-[packages/core/src/types.ts:39](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L39)
+[packages/core/src/types.ts:39](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L39)
***
@@ -26,4 +26,4 @@ Content of the example
#### Defined in
-[packages/core/src/types.ts:42](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L42)
+[packages/core/src/types.ts:42](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L42)
diff --git a/docs/api/interfaces/ActionResponse.md b/docs/api/interfaces/ActionResponse.md
new file mode 100644
index 0000000000..0fa97e4b83
--- /dev/null
+++ b/docs/api/interfaces/ActionResponse.md
@@ -0,0 +1,43 @@
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / ActionResponse
+
+# Interface: ActionResponse
+
+## Properties
+
+### like
+
+> **like**: `boolean`
+
+#### Defined in
+
+[packages/core/src/types.ts:1224](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1224)
+
+***
+
+### retweet
+
+> **retweet**: `boolean`
+
+#### Defined in
+
+[packages/core/src/types.ts:1225](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1225)
+
+***
+
+### quote?
+
+> `optional` **quote**: `boolean`
+
+#### Defined in
+
+[packages/core/src/types.ts:1226](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1226)
+
+***
+
+### reply?
+
+> `optional` **reply**: `boolean`
+
+#### Defined in
+
+[packages/core/src/types.ts:1227](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1227)
diff --git a/docs/api/interfaces/Actor.md b/docs/api/interfaces/Actor.md
index 57441f4a18..64aab5b208 100644
--- a/docs/api/interfaces/Actor.md
+++ b/docs/api/interfaces/Actor.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Actor
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Actor
# Interface: Actor
@@ -14,7 +14,7 @@ Display name
#### Defined in
-[packages/core/src/types.ts:61](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L61)
+[packages/core/src/types.ts:61](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L61)
***
@@ -26,7 +26,7 @@ Username/handle
#### Defined in
-[packages/core/src/types.ts:64](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L64)
+[packages/core/src/types.ts:64](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L64)
***
@@ -56,7 +56,7 @@ Favorite quote
#### Defined in
-[packages/core/src/types.ts:67](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L67)
+[packages/core/src/types.ts:67](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L67)
***
@@ -68,4 +68,4 @@ Unique identifier
#### Defined in
-[packages/core/src/types.ts:79](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L79)
+[packages/core/src/types.ts:79](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L79)
diff --git a/docs/api/interfaces/Content.md b/docs/api/interfaces/Content.md
index ddcc679364..1e3e4eed16 100644
--- a/docs/api/interfaces/Content.md
+++ b/docs/api/interfaces/Content.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Content
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Content
# Interface: Content
@@ -18,7 +18,7 @@ The main text content
#### Defined in
-[packages/core/src/types.ts:13](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L13)
+[packages/core/src/types.ts:13](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L13)
***
@@ -30,7 +30,7 @@ Optional action associated with the message
#### Defined in
-[packages/core/src/types.ts:16](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L16)
+[packages/core/src/types.ts:16](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L16)
***
@@ -42,7 +42,7 @@ Optional source/origin of the content
#### Defined in
-[packages/core/src/types.ts:19](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L19)
+[packages/core/src/types.ts:19](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L19)
***
@@ -54,7 +54,7 @@ URL of the original message/post (e.g. tweet URL, Discord message link)
#### Defined in
-[packages/core/src/types.ts:22](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L22)
+[packages/core/src/types.ts:22](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L22)
***
@@ -66,7 +66,7 @@ UUID of parent message if this is a reply/thread
#### Defined in
-[packages/core/src/types.ts:25](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L25)
+[packages/core/src/types.ts:25](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L25)
***
@@ -78,4 +78,4 @@ Array of media attachments
#### Defined in
-[packages/core/src/types.ts:28](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L28)
+[packages/core/src/types.ts:28](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L28)
diff --git a/docs/api/interfaces/ConversationExample.md b/docs/api/interfaces/ConversationExample.md
index 0b4e431ea6..aa2ef3398c 100644
--- a/docs/api/interfaces/ConversationExample.md
+++ b/docs/api/interfaces/ConversationExample.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / ConversationExample
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / ConversationExample
# Interface: ConversationExample
@@ -14,7 +14,7 @@ UUID of user in conversation
#### Defined in
-[packages/core/src/types.ts:50](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L50)
+[packages/core/src/types.ts:50](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L50)
***
@@ -26,4 +26,4 @@ Content of the conversation
#### Defined in
-[packages/core/src/types.ts:53](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L53)
+[packages/core/src/types.ts:53](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L53)
diff --git a/docs/api/interfaces/EvaluationExample.md b/docs/api/interfaces/EvaluationExample.md
index 6f24e4cea5..24f0192703 100644
--- a/docs/api/interfaces/EvaluationExample.md
+++ b/docs/api/interfaces/EvaluationExample.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / EvaluationExample
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / EvaluationExample
# Interface: EvaluationExample
@@ -14,7 +14,7 @@ Evaluation context
#### Defined in
-[packages/core/src/types.ts:419](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L419)
+[packages/core/src/types.ts:425](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L425)
***
@@ -26,7 +26,7 @@ Example messages
#### Defined in
-[packages/core/src/types.ts:422](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L422)
+[packages/core/src/types.ts:428](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L428)
***
@@ -38,4 +38,4 @@ Expected outcome
#### Defined in
-[packages/core/src/types.ts:425](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L425)
+[packages/core/src/types.ts:431](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L431)
diff --git a/docs/api/interfaces/Evaluator.md b/docs/api/interfaces/Evaluator.md
index b9bf74526a..cc74ec8ead 100644
--- a/docs/api/interfaces/Evaluator.md
+++ b/docs/api/interfaces/Evaluator.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Evaluator
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Evaluator
# Interface: Evaluator
@@ -14,7 +14,7 @@ Whether to always run
#### Defined in
-[packages/core/src/types.ts:433](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L433)
+[packages/core/src/types.ts:439](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L439)
***
@@ -26,7 +26,7 @@ Detailed description
#### Defined in
-[packages/core/src/types.ts:436](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L436)
+[packages/core/src/types.ts:442](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L442)
***
@@ -38,7 +38,7 @@ Similar evaluator descriptions
#### Defined in
-[packages/core/src/types.ts:439](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L439)
+[packages/core/src/types.ts:445](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L445)
***
@@ -50,7 +50,7 @@ Example evaluations
#### Defined in
-[packages/core/src/types.ts:442](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L442)
+[packages/core/src/types.ts:448](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L448)
***
@@ -62,7 +62,7 @@ Handler function
#### Defined in
-[packages/core/src/types.ts:445](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L445)
+[packages/core/src/types.ts:451](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L451)
***
@@ -74,7 +74,7 @@ Evaluator name
#### Defined in
-[packages/core/src/types.ts:448](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L448)
+[packages/core/src/types.ts:454](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L454)
***
@@ -86,4 +86,4 @@ Validation function
#### Defined in
-[packages/core/src/types.ts:451](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L451)
+[packages/core/src/types.ts:457](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L457)
diff --git a/docs/api/interfaces/GenerationOptions.md b/docs/api/interfaces/GenerationOptions.md
index 917d7f3149..0af87ae853 100644
--- a/docs/api/interfaces/GenerationOptions.md
+++ b/docs/api/interfaces/GenerationOptions.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / GenerationOptions
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / GenerationOptions
# Interface: GenerationOptions
@@ -12,7 +12,7 @@ Configuration options for generating objects with a model.
#### Defined in
-[packages/core/src/generation.ts:1058](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L1058)
+[packages/core/src/generation.ts:1235](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1235)
***
@@ -22,7 +22,7 @@ Configuration options for generating objects with a model.
#### Defined in
-[packages/core/src/generation.ts:1059](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L1059)
+[packages/core/src/generation.ts:1236](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1236)
***
@@ -32,17 +32,17 @@ Configuration options for generating objects with a model.
#### Defined in
-[packages/core/src/generation.ts:1060](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L1060)
+[packages/core/src/generation.ts:1237](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1237)
***
### schema?
-> `optional` **schema**: `ZodType`\<`any`, `ZodTypeDef`, `any`\>
+> `optional` **schema**: `ZodSchema`
#### Defined in
-[packages/core/src/generation.ts:1061](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L1061)
+[packages/core/src/generation.ts:1238](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1238)
***
@@ -52,7 +52,7 @@ Configuration options for generating objects with a model.
#### Defined in
-[packages/core/src/generation.ts:1062](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L1062)
+[packages/core/src/generation.ts:1239](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1239)
***
@@ -62,7 +62,7 @@ Configuration options for generating objects with a model.
#### Defined in
-[packages/core/src/generation.ts:1063](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L1063)
+[packages/core/src/generation.ts:1240](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1240)
***
@@ -72,7 +72,7 @@ Configuration options for generating objects with a model.
#### Defined in
-[packages/core/src/generation.ts:1064](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L1064)
+[packages/core/src/generation.ts:1241](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1241)
***
@@ -82,7 +82,7 @@ Configuration options for generating objects with a model.
#### Defined in
-[packages/core/src/generation.ts:1065](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L1065)
+[packages/core/src/generation.ts:1242](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1242)
***
@@ -92,4 +92,4 @@ Configuration options for generating objects with a model.
#### Defined in
-[packages/core/src/generation.ts:1066](https://github.com/monilpat/eliza/blob/main/packages/core/src/generation.ts#L1066)
+[packages/core/src/generation.ts:1243](https://github.com/ai16z/eliza/blob/main/packages/core/src/generation.ts#L1243)
diff --git a/docs/api/interfaces/Goal.md b/docs/api/interfaces/Goal.md
index 1147284254..1c935ed0c7 100644
--- a/docs/api/interfaces/Goal.md
+++ b/docs/api/interfaces/Goal.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Goal
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Goal
# Interface: Goal
@@ -14,7 +14,7 @@ Optional unique identifier
#### Defined in
-[packages/core/src/types.ts:110](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L110)
+[packages/core/src/types.ts:110](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L110)
***
@@ -26,7 +26,7 @@ Room ID where goal exists
#### Defined in
-[packages/core/src/types.ts:113](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L113)
+[packages/core/src/types.ts:113](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L113)
***
@@ -38,7 +38,7 @@ User ID of goal owner
#### Defined in
-[packages/core/src/types.ts:116](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L116)
+[packages/core/src/types.ts:116](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L116)
***
@@ -50,7 +50,7 @@ Name/title of the goal
#### Defined in
-[packages/core/src/types.ts:119](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L119)
+[packages/core/src/types.ts:119](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L119)
***
@@ -62,7 +62,7 @@ Current status
#### Defined in
-[packages/core/src/types.ts:122](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L122)
+[packages/core/src/types.ts:122](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L122)
***
@@ -74,4 +74,4 @@ Component objectives
#### Defined in
-[packages/core/src/types.ts:125](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L125)
+[packages/core/src/types.ts:125](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L125)
diff --git a/docs/api/interfaces/IAgentConfig.md b/docs/api/interfaces/IAgentConfig.md
new file mode 100644
index 0000000000..3418df1364
--- /dev/null
+++ b/docs/api/interfaces/IAgentConfig.md
@@ -0,0 +1,7 @@
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / IAgentConfig
+
+# Interface: IAgentConfig
+
+## Indexable
+
+ \[`key`: `string`\]: `string`
diff --git a/docs/api/interfaces/IAgentRuntime.md b/docs/api/interfaces/IAgentRuntime.md
index 6c2eadfef2..783ffabc41 100644
--- a/docs/api/interfaces/IAgentRuntime.md
+++ b/docs/api/interfaces/IAgentRuntime.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / IAgentRuntime
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / IAgentRuntime
# Interface: IAgentRuntime
@@ -12,7 +12,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:978](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L978)
+[packages/core/src/types.ts:1019](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1019)
***
@@ -22,7 +22,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:979](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L979)
+[packages/core/src/types.ts:1020](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1020)
***
@@ -32,7 +32,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:980](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L980)
+[packages/core/src/types.ts:1021](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1021)
***
@@ -42,7 +42,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:981](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L981)
+[packages/core/src/types.ts:1022](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1022)
***
@@ -52,7 +52,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:982](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L982)
+[packages/core/src/types.ts:1023](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1023)
***
@@ -62,7 +62,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:983](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L983)
+[packages/core/src/types.ts:1024](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1024)
***
@@ -72,7 +72,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:984](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L984)
+[packages/core/src/types.ts:1025](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1025)
***
@@ -82,7 +82,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:985](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L985)
+[packages/core/src/types.ts:1026](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1026)
***
@@ -92,7 +92,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:986](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L986)
+[packages/core/src/types.ts:1027](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1027)
***
@@ -102,7 +102,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:987](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L987)
+[packages/core/src/types.ts:1028](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1028)
***
@@ -112,7 +112,29 @@ Properties
#### Defined in
-[packages/core/src/types.ts:988](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L988)
+[packages/core/src/types.ts:1029](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1029)
+
+***
+
+### fetch()?
+
+> `optional` **fetch**: (`input`, `init`?) => `Promise`\<`Response`\>
+
+[MDN Reference](https://developer.mozilla.org/docs/Web/API/fetch)
+
+#### Parameters
+
+• **input**: `RequestInfo` \| `URL`
+
+• **init?**: `RequestInit`
+
+#### Returns
+
+`Promise`\<`Response`\>
+
+#### Defined in
+
+[packages/core/src/types.ts:1031](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1031)
***
@@ -122,7 +144,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:990](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L990)
+[packages/core/src/types.ts:1033](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1033)
***
@@ -132,7 +154,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:991](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L991)
+[packages/core/src/types.ts:1034](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1034)
***
@@ -142,7 +164,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:992](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L992)
+[packages/core/src/types.ts:1035](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1035)
***
@@ -152,7 +174,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:993](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L993)
+[packages/core/src/types.ts:1036](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1036)
***
@@ -162,7 +184,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:994](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L994)
+[packages/core/src/types.ts:1037](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1037)
***
@@ -172,7 +194,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:996](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L996)
+[packages/core/src/types.ts:1039](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1039)
***
@@ -182,7 +204,20 @@ Properties
#### Defined in
-[packages/core/src/types.ts:998](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L998)
+[packages/core/src/types.ts:1041](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1041)
+
+***
+
+### clients
+
+> **clients**: `Record`\<`string`, `any`\>
+
+any could be EventEmitter
+but I think the real solution is forthcoming as a base client interface
+
+#### Defined in
+
+[packages/core/src/types.ts:1044](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1044)
## Methods
@@ -196,7 +231,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:1000](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1000)
+[packages/core/src/types.ts:1046](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1046)
***
@@ -214,7 +249,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:1002](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1002)
+[packages/core/src/types.ts:1048](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1048)
***
@@ -232,7 +267,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:1004](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1004)
+[packages/core/src/types.ts:1050](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1050)
***
@@ -254,7 +289,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:1006](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1006)
+[packages/core/src/types.ts:1052](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1052)
***
@@ -272,7 +307,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:1008](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1008)
+[packages/core/src/types.ts:1054](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1054)
***
@@ -290,7 +325,7 @@ Properties
#### Defined in
-[packages/core/src/types.ts:1010](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1010)
+[packages/core/src/types.ts:1056](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1056)
***
@@ -306,7 +341,7 @@ Methods
#### Defined in
-[packages/core/src/types.ts:1013](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1013)
+[packages/core/src/types.ts:1059](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1059)
***
@@ -330,13 +365,13 @@ Methods
#### Defined in
-[packages/core/src/types.ts:1015](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1015)
+[packages/core/src/types.ts:1061](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1061)
***
### evaluate()
-> **evaluate**(`message`, `state`?, `didRespond`?): `Promise`\<`string`[]\>
+> **evaluate**(`message`, `state`?, `didRespond`?, `callback`?): `Promise`\<`string`[]\>
#### Parameters
@@ -346,13 +381,15 @@ Methods
• **didRespond?**: `boolean`
+• **callback?**: [`HandlerCallback`](../type-aliases/HandlerCallback.md)
+
#### Returns
`Promise`\<`string`[]\>
#### Defined in
-[packages/core/src/types.ts:1022](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1022)
+[packages/core/src/types.ts:1068](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1068)
***
@@ -372,7 +409,7 @@ Methods
#### Defined in
-[packages/core/src/types.ts:1028](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1028)
+[packages/core/src/types.ts:1075](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1075)
***
@@ -396,7 +433,7 @@ Methods
#### Defined in
-[packages/core/src/types.ts:1030](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1030)
+[packages/core/src/types.ts:1077](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1077)
***
@@ -414,7 +451,7 @@ Methods
#### Defined in
-[packages/core/src/types.ts:1037](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1037)
+[packages/core/src/types.ts:1084](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1084)
***
@@ -440,7 +477,7 @@ Methods
#### Defined in
-[packages/core/src/types.ts:1039](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1039)
+[packages/core/src/types.ts:1086](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1086)
***
@@ -460,7 +497,7 @@ Methods
#### Defined in
-[packages/core/src/types.ts:1047](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1047)
+[packages/core/src/types.ts:1094](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1094)
***
@@ -478,7 +515,7 @@ Methods
#### Defined in
-[packages/core/src/types.ts:1049](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1049)
+[packages/core/src/types.ts:1096](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1096)
***
@@ -498,7 +535,7 @@ Methods
#### Defined in
-[packages/core/src/types.ts:1051](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1051)
+[packages/core/src/types.ts:1098](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1098)
***
@@ -516,4 +553,4 @@ Methods
#### Defined in
-[packages/core/src/types.ts:1056](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1056)
+[packages/core/src/types.ts:1103](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1103)
diff --git a/docs/api/interfaces/IAwsS3Service.md b/docs/api/interfaces/IAwsS3Service.md
new file mode 100644
index 0000000000..0950ed85c3
--- /dev/null
+++ b/docs/api/interfaces/IAwsS3Service.md
@@ -0,0 +1,107 @@
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / IAwsS3Service
+
+# Interface: IAwsS3Service
+
+## Extends
+
+- [`Service`](../classes/Service.md)
+
+## Accessors
+
+### serviceType
+
+#### Get Signature
+
+> **get** **serviceType**(): [`ServiceType`](../enumerations/ServiceType.md)
+
+##### Returns
+
+[`ServiceType`](../enumerations/ServiceType.md)
+
+#### Inherited from
+
+[`Service`](../classes/Service.md).[`serviceType`](../classes/Service.md#serviceType-1)
+
+#### Defined in
+
+[packages/core/src/types.ts:1009](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1009)
+
+## Methods
+
+### initialize()
+
+> `abstract` **initialize**(`runtime`): `Promise`\<`void`\>
+
+Add abstract initialize method that must be implemented by derived classes
+
+#### Parameters
+
+• **runtime**: [`IAgentRuntime`](IAgentRuntime.md)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`Service`](../classes/Service.md).[`initialize`](../classes/Service.md#initialize)
+
+#### Defined in
+
+[packages/core/src/types.ts:1014](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1014)
+
+***
+
+### uploadFile()
+
+> **uploadFile**(`imagePath`, `subDirectory`, `useSignedUrl`, `expiresIn`): `Promise`\<`object`\>
+
+#### Parameters
+
+• **imagePath**: `string`
+
+• **subDirectory**: `string`
+
+• **useSignedUrl**: `boolean`
+
+• **expiresIn**: `number`
+
+#### Returns
+
+`Promise`\<`object`\>
+
+##### success
+
+> **success**: `boolean`
+
+##### url?
+
+> `optional` **url**: `string`
+
+##### error?
+
+> `optional` **error**: `string`
+
+#### Defined in
+
+[packages/core/src/types.ts:1168](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1168)
+
+***
+
+### generateSignedUrl()
+
+> **generateSignedUrl**(`fileName`, `expiresIn`): `Promise`\<`string`\>
+
+#### Parameters
+
+• **fileName**: `string`
+
+• **expiresIn**: `number`
+
+#### Returns
+
+`Promise`\<`string`\>
+
+#### Defined in
+
+[packages/core/src/types.ts:1178](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1178)
diff --git a/docs/api/interfaces/IBrowserService.md b/docs/api/interfaces/IBrowserService.md
index ff3e286bd7..0124a5c46f 100644
--- a/docs/api/interfaces/IBrowserService.md
+++ b/docs/api/interfaces/IBrowserService.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / IBrowserService
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / IBrowserService
# Interface: IBrowserService
@@ -24,7 +24,7 @@
#### Defined in
-[packages/core/src/types.ts:968](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L968)
+[packages/core/src/types.ts:1009](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1009)
## Methods
@@ -48,7 +48,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:973](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L973)
+[packages/core/src/types.ts:1014](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1014)
***
@@ -62,7 +62,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1103](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1103)
+[packages/core/src/types.ts:1150](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1150)
***
@@ -94,4 +94,4 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1104](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1104)
+[packages/core/src/types.ts:1151](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1151)
diff --git a/docs/api/interfaces/ICacheAdapter.md b/docs/api/interfaces/ICacheAdapter.md
index b18eefb7ac..a2936c1c25 100644
--- a/docs/api/interfaces/ICacheAdapter.md
+++ b/docs/api/interfaces/ICacheAdapter.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / ICacheAdapter
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / ICacheAdapter
# Interface: ICacheAdapter
@@ -18,7 +18,7 @@
#### Defined in
-[packages/core/src/cache.ts:11](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L11)
+[packages/core/src/cache.ts:11](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L11)
***
@@ -38,7 +38,7 @@
#### Defined in
-[packages/core/src/cache.ts:12](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L12)
+[packages/core/src/cache.ts:12](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L12)
***
@@ -56,4 +56,4 @@
#### Defined in
-[packages/core/src/cache.ts:13](https://github.com/monilpat/eliza/blob/main/packages/core/src/cache.ts#L13)
+[packages/core/src/cache.ts:13](https://github.com/ai16z/eliza/blob/main/packages/core/src/cache.ts#L13)
diff --git a/docs/api/interfaces/ICacheManager.md b/docs/api/interfaces/ICacheManager.md
index 25599fab72..cc24dbde77 100644
--- a/docs/api/interfaces/ICacheManager.md
+++ b/docs/api/interfaces/ICacheManager.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / ICacheManager
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / ICacheManager
# Interface: ICacheManager
@@ -22,7 +22,7 @@
#### Defined in
-[packages/core/src/types.ts:949](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L949)
+[packages/core/src/types.ts:990](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L990)
***
@@ -48,7 +48,7 @@
#### Defined in
-[packages/core/src/types.ts:950](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L950)
+[packages/core/src/types.ts:991](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L991)
***
@@ -66,4 +66,4 @@
#### Defined in
-[packages/core/src/types.ts:951](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L951)
+[packages/core/src/types.ts:992](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L992)
diff --git a/docs/api/interfaces/IDatabaseAdapter.md b/docs/api/interfaces/IDatabaseAdapter.md
index b4082cd471..68b5450bbb 100644
--- a/docs/api/interfaces/IDatabaseAdapter.md
+++ b/docs/api/interfaces/IDatabaseAdapter.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / IDatabaseAdapter
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / IDatabaseAdapter
# Interface: IDatabaseAdapter
@@ -14,7 +14,7 @@ Database instance
#### Defined in
-[packages/core/src/types.ts:740](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L740)
+[packages/core/src/types.ts:781](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L781)
## Methods
@@ -30,7 +30,7 @@ Optional initialization
#### Defined in
-[packages/core/src/types.ts:743](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L743)
+[packages/core/src/types.ts:784](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L784)
***
@@ -46,7 +46,7 @@ Close database connection
#### Defined in
-[packages/core/src/types.ts:746](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L746)
+[packages/core/src/types.ts:787](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L787)
***
@@ -66,7 +66,7 @@ Get account by ID
#### Defined in
-[packages/core/src/types.ts:749](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L749)
+[packages/core/src/types.ts:790](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L790)
***
@@ -86,7 +86,7 @@ Create new account
#### Defined in
-[packages/core/src/types.ts:752](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L752)
+[packages/core/src/types.ts:793](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L793)
***
@@ -120,7 +120,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:755](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L755)
+[packages/core/src/types.ts:796](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L796)
***
@@ -138,7 +138,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:765](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L765)
+[packages/core/src/types.ts:806](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L806)
***
@@ -162,7 +162,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:767](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L767)
+[packages/core/src/types.ts:808](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L808)
***
@@ -192,7 +192,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:773](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L773)
+[packages/core/src/types.ts:814](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L814)
***
@@ -218,7 +218,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:782](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L782)
+[packages/core/src/types.ts:823](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L823)
***
@@ -238,7 +238,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:789](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L789)
+[packages/core/src/types.ts:830](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L830)
***
@@ -270,7 +270,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:791](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L791)
+[packages/core/src/types.ts:832](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L832)
***
@@ -292,7 +292,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:801](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L801)
+[packages/core/src/types.ts:842](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L842)
***
@@ -324,7 +324,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:806](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L806)
+[packages/core/src/types.ts:847](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L847)
***
@@ -346,7 +346,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:818](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L818)
+[packages/core/src/types.ts:859](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L859)
***
@@ -366,7 +366,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:824](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L824)
+[packages/core/src/types.ts:865](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L865)
***
@@ -386,7 +386,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:826](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L826)
+[packages/core/src/types.ts:867](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L867)
***
@@ -408,7 +408,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:828](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L828)
+[packages/core/src/types.ts:869](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L869)
***
@@ -436,7 +436,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:834](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L834)
+[packages/core/src/types.ts:875](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L875)
***
@@ -454,7 +454,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:842](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L842)
+[packages/core/src/types.ts:883](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L883)
***
@@ -472,7 +472,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:844](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L844)
+[packages/core/src/types.ts:885](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L885)
***
@@ -490,7 +490,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:846](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L846)
+[packages/core/src/types.ts:887](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L887)
***
@@ -508,7 +508,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:848](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L848)
+[packages/core/src/types.ts:889](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L889)
***
@@ -526,7 +526,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:850](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L850)
+[packages/core/src/types.ts:891](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L891)
***
@@ -544,7 +544,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:852](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L852)
+[packages/core/src/types.ts:893](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L893)
***
@@ -562,7 +562,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:854](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L854)
+[packages/core/src/types.ts:895](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L895)
***
@@ -580,7 +580,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:856](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L856)
+[packages/core/src/types.ts:897](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L897)
***
@@ -598,7 +598,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:858](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L858)
+[packages/core/src/types.ts:899](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L899)
***
@@ -618,7 +618,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:860](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L860)
+[packages/core/src/types.ts:901](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L901)
***
@@ -638,7 +638,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:862](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L862)
+[packages/core/src/types.ts:903](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L903)
***
@@ -656,7 +656,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:864](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L864)
+[packages/core/src/types.ts:905](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L905)
***
@@ -674,7 +674,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:866](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L866)
+[packages/core/src/types.ts:907](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L907)
***
@@ -694,7 +694,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:868](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L868)
+[packages/core/src/types.ts:909](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L909)
***
@@ -716,7 +716,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:873](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L873)
+[packages/core/src/types.ts:914](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L914)
***
@@ -738,7 +738,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:879](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L879)
+[packages/core/src/types.ts:920](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L920)
***
@@ -760,7 +760,7 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:881](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L881)
+[packages/core/src/types.ts:922](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L922)
***
@@ -780,4 +780,4 @@ Get memories matching criteria
#### Defined in
-[packages/core/src/types.ts:886](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L886)
+[packages/core/src/types.ts:927](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L927)
diff --git a/docs/api/interfaces/IDatabaseCacheAdapter.md b/docs/api/interfaces/IDatabaseCacheAdapter.md
index 25b4bc7f8f..a1c7ee5f69 100644
--- a/docs/api/interfaces/IDatabaseCacheAdapter.md
+++ b/docs/api/interfaces/IDatabaseCacheAdapter.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / IDatabaseCacheAdapter
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / IDatabaseCacheAdapter
# Interface: IDatabaseCacheAdapter
@@ -22,7 +22,7 @@
#### Defined in
-[packages/core/src/types.ts:890](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L890)
+[packages/core/src/types.ts:931](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L931)
***
@@ -46,7 +46,7 @@
#### Defined in
-[packages/core/src/types.ts:895](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L895)
+[packages/core/src/types.ts:936](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L936)
***
@@ -68,4 +68,4 @@
#### Defined in
-[packages/core/src/types.ts:901](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L901)
+[packages/core/src/types.ts:942](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L942)
diff --git a/docs/api/interfaces/IImageDescriptionService.md b/docs/api/interfaces/IImageDescriptionService.md
index fc7efae473..c4a3058bca 100644
--- a/docs/api/interfaces/IImageDescriptionService.md
+++ b/docs/api/interfaces/IImageDescriptionService.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / IImageDescriptionService
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / IImageDescriptionService
# Interface: IImageDescriptionService
@@ -24,7 +24,7 @@
#### Defined in
-[packages/core/src/types.ts:968](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L968)
+[packages/core/src/types.ts:1009](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1009)
## Methods
@@ -48,7 +48,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:973](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L973)
+[packages/core/src/types.ts:1014](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1014)
***
@@ -74,4 +74,4 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1060](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1060)
+[packages/core/src/types.ts:1107](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1107)
diff --git a/docs/api/interfaces/IMemoryManager.md b/docs/api/interfaces/IMemoryManager.md
index 4e3f0eb480..d1b99798fe 100644
--- a/docs/api/interfaces/IMemoryManager.md
+++ b/docs/api/interfaces/IMemoryManager.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / IMemoryManager
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / IMemoryManager
# Interface: IMemoryManager
@@ -10,7 +10,7 @@
#### Defined in
-[packages/core/src/types.ts:905](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L905)
+[packages/core/src/types.ts:946](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L946)
***
@@ -20,7 +20,7 @@
#### Defined in
-[packages/core/src/types.ts:906](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L906)
+[packages/core/src/types.ts:947](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L947)
***
@@ -30,7 +30,7 @@
#### Defined in
-[packages/core/src/types.ts:907](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L907)
+[packages/core/src/types.ts:948](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L948)
## Methods
@@ -48,7 +48,7 @@
#### Defined in
-[packages/core/src/types.ts:909](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L909)
+[packages/core/src/types.ts:950](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L950)
***
@@ -76,7 +76,7 @@
#### Defined in
-[packages/core/src/types.ts:911](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L911)
+[packages/core/src/types.ts:952](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L952)
***
@@ -94,7 +94,7 @@
#### Defined in
-[packages/core/src/types.ts:919](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L919)
+[packages/core/src/types.ts:960](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L960)
***
@@ -112,7 +112,7 @@
#### Defined in
-[packages/core/src/types.ts:923](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L923)
+[packages/core/src/types.ts:964](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L964)
***
@@ -132,7 +132,7 @@
#### Defined in
-[packages/core/src/types.ts:924](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L924)
+[packages/core/src/types.ts:965](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L965)
***
@@ -160,7 +160,7 @@
#### Defined in
-[packages/core/src/types.ts:925](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L925)
+[packages/core/src/types.ts:966](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L966)
***
@@ -180,7 +180,7 @@
#### Defined in
-[packages/core/src/types.ts:935](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L935)
+[packages/core/src/types.ts:976](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L976)
***
@@ -198,7 +198,7 @@
#### Defined in
-[packages/core/src/types.ts:937](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L937)
+[packages/core/src/types.ts:978](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L978)
***
@@ -216,7 +216,7 @@
#### Defined in
-[packages/core/src/types.ts:939](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L939)
+[packages/core/src/types.ts:980](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L980)
***
@@ -236,4 +236,4 @@
#### Defined in
-[packages/core/src/types.ts:941](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L941)
+[packages/core/src/types.ts:982](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L982)
diff --git a/docs/api/interfaces/IPdfService.md b/docs/api/interfaces/IPdfService.md
index 9639c3e29a..5a0b5b855f 100644
--- a/docs/api/interfaces/IPdfService.md
+++ b/docs/api/interfaces/IPdfService.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / IPdfService
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / IPdfService
# Interface: IPdfService
@@ -24,7 +24,7 @@
#### Defined in
-[packages/core/src/types.ts:968](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L968)
+[packages/core/src/types.ts:1009](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1009)
## Methods
@@ -48,7 +48,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:973](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L973)
+[packages/core/src/types.ts:1014](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1014)
***
@@ -62,7 +62,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1116](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1116)
+[packages/core/src/types.ts:1163](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1163)
***
@@ -80,4 +80,4 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1117](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1117)
+[packages/core/src/types.ts:1164](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1164)
diff --git a/docs/api/interfaces/ISlackService.md b/docs/api/interfaces/ISlackService.md
new file mode 100644
index 0000000000..e5d47eb541
--- /dev/null
+++ b/docs/api/interfaces/ISlackService.md
@@ -0,0 +1,61 @@
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / ISlackService
+
+# Interface: ISlackService
+
+## Extends
+
+- [`Service`](../classes/Service.md)
+
+## Properties
+
+### client
+
+> **client**: `any`
+
+#### Defined in
+
+[packages/core/src/types.ts:1231](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1231)
+
+## Accessors
+
+### serviceType
+
+#### Get Signature
+
+> **get** **serviceType**(): [`ServiceType`](../enumerations/ServiceType.md)
+
+##### Returns
+
+[`ServiceType`](../enumerations/ServiceType.md)
+
+#### Inherited from
+
+[`Service`](../classes/Service.md).[`serviceType`](../classes/Service.md#serviceType-1)
+
+#### Defined in
+
+[packages/core/src/types.ts:1009](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1009)
+
+## Methods
+
+### initialize()
+
+> `abstract` **initialize**(`runtime`): `Promise`\<`void`\>
+
+Add abstract initialize method that must be implemented by derived classes
+
+#### Parameters
+
+• **runtime**: [`IAgentRuntime`](IAgentRuntime.md)
+
+#### Returns
+
+`Promise`\<`void`\>
+
+#### Inherited from
+
+[`Service`](../classes/Service.md).[`initialize`](../classes/Service.md#initialize)
+
+#### Defined in
+
+[packages/core/src/types.ts:1014](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1014)
diff --git a/docs/api/interfaces/ISpeechService.md b/docs/api/interfaces/ISpeechService.md
index 36d7c6106a..3e22869af1 100644
--- a/docs/api/interfaces/ISpeechService.md
+++ b/docs/api/interfaces/ISpeechService.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / ISpeechService
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / ISpeechService
# Interface: ISpeechService
@@ -24,7 +24,7 @@
#### Defined in
-[packages/core/src/types.ts:968](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L968)
+[packages/core/src/types.ts:1009](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1009)
## Methods
@@ -48,7 +48,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:973](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L973)
+[packages/core/src/types.ts:1014](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1014)
***
@@ -62,7 +62,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1111](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1111)
+[packages/core/src/types.ts:1158](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1158)
***
@@ -82,4 +82,4 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1112](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1112)
+[packages/core/src/types.ts:1159](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1159)
diff --git a/docs/api/interfaces/ITextGenerationService.md b/docs/api/interfaces/ITextGenerationService.md
index 7f3bfe35a4..2619895fcf 100644
--- a/docs/api/interfaces/ITextGenerationService.md
+++ b/docs/api/interfaces/ITextGenerationService.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / ITextGenerationService
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / ITextGenerationService
# Interface: ITextGenerationService
@@ -24,7 +24,7 @@
#### Defined in
-[packages/core/src/types.ts:968](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L968)
+[packages/core/src/types.ts:1009](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1009)
## Methods
@@ -48,7 +48,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:973](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L973)
+[packages/core/src/types.ts:1014](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1014)
***
@@ -62,7 +62,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1082](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1082)
+[packages/core/src/types.ts:1129](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1129)
***
@@ -90,7 +90,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1083](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1083)
+[packages/core/src/types.ts:1130](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1130)
***
@@ -118,7 +118,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1091](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1091)
+[packages/core/src/types.ts:1138](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1138)
***
@@ -136,4 +136,4 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1099](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1099)
+[packages/core/src/types.ts:1146](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1146)
diff --git a/docs/api/interfaces/ITranscriptionService.md b/docs/api/interfaces/ITranscriptionService.md
index 1e6c4a77f3..3db67bdf89 100644
--- a/docs/api/interfaces/ITranscriptionService.md
+++ b/docs/api/interfaces/ITranscriptionService.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / ITranscriptionService
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / ITranscriptionService
# Interface: ITranscriptionService
@@ -24,7 +24,7 @@
#### Defined in
-[packages/core/src/types.ts:968](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L968)
+[packages/core/src/types.ts:1009](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1009)
## Methods
@@ -48,7 +48,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:973](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L973)
+[packages/core/src/types.ts:1014](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1014)
***
@@ -66,7 +66,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1066](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1066)
+[packages/core/src/types.ts:1113](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1113)
***
@@ -84,7 +84,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1067](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1067)
+[packages/core/src/types.ts:1114](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1114)
***
@@ -102,7 +102,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1070](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1070)
+[packages/core/src/types.ts:1117](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1117)
***
@@ -120,4 +120,4 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1071](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1071)
+[packages/core/src/types.ts:1118](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1118)
diff --git a/docs/api/interfaces/IVideoService.md b/docs/api/interfaces/IVideoService.md
index 7439a7c6cd..7c7c8e8911 100644
--- a/docs/api/interfaces/IVideoService.md
+++ b/docs/api/interfaces/IVideoService.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / IVideoService
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / IVideoService
# Interface: IVideoService
@@ -24,7 +24,7 @@
#### Defined in
-[packages/core/src/types.ts:968](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L968)
+[packages/core/src/types.ts:1009](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1009)
## Methods
@@ -48,7 +48,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:973](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L973)
+[packages/core/src/types.ts:1014](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1014)
***
@@ -66,7 +66,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1075](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1075)
+[packages/core/src/types.ts:1122](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1122)
***
@@ -84,7 +84,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1076](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1076)
+[packages/core/src/types.ts:1123](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1123)
***
@@ -102,7 +102,7 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1077](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1077)
+[packages/core/src/types.ts:1124](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1124)
***
@@ -122,4 +122,4 @@ Add abstract initialize method that must be implemented by derived classes
#### Defined in
-[packages/core/src/types.ts:1078](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1078)
+[packages/core/src/types.ts:1125](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1125)
diff --git a/docs/api/interfaces/Memory.md b/docs/api/interfaces/Memory.md
index 787af341f7..be0f39e1ab 100644
--- a/docs/api/interfaces/Memory.md
+++ b/docs/api/interfaces/Memory.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Memory
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Memory
# Interface: Memory
@@ -14,7 +14,7 @@ Optional unique identifier
#### Defined in
-[packages/core/src/types.ts:325](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L325)
+[packages/core/src/types.ts:331](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L331)
***
@@ -26,7 +26,7 @@ Associated user ID
#### Defined in
-[packages/core/src/types.ts:328](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L328)
+[packages/core/src/types.ts:334](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L334)
***
@@ -38,7 +38,7 @@ Associated agent ID
#### Defined in
-[packages/core/src/types.ts:331](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L331)
+[packages/core/src/types.ts:337](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L337)
***
@@ -50,7 +50,7 @@ Optional creation timestamp
#### Defined in
-[packages/core/src/types.ts:334](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L334)
+[packages/core/src/types.ts:340](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L340)
***
@@ -62,7 +62,7 @@ Memory content
#### Defined in
-[packages/core/src/types.ts:337](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L337)
+[packages/core/src/types.ts:343](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L343)
***
@@ -74,7 +74,7 @@ Optional embedding vector
#### Defined in
-[packages/core/src/types.ts:340](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L340)
+[packages/core/src/types.ts:346](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L346)
***
@@ -86,7 +86,7 @@ Associated room ID
#### Defined in
-[packages/core/src/types.ts:343](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L343)
+[packages/core/src/types.ts:349](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L349)
***
@@ -98,7 +98,7 @@ Whether memory is unique
#### Defined in
-[packages/core/src/types.ts:346](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L346)
+[packages/core/src/types.ts:352](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L352)
***
@@ -110,4 +110,4 @@ Embedding similarity score
#### Defined in
-[packages/core/src/types.ts:349](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L349)
+[packages/core/src/types.ts:355](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L355)
diff --git a/docs/api/interfaces/MessageExample.md b/docs/api/interfaces/MessageExample.md
index bd55b1d1ca..9ddcdea6ed 100644
--- a/docs/api/interfaces/MessageExample.md
+++ b/docs/api/interfaces/MessageExample.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / MessageExample
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / MessageExample
# Interface: MessageExample
@@ -14,7 +14,7 @@ Associated user
#### Defined in
-[packages/core/src/types.ts:357](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L357)
+[packages/core/src/types.ts:363](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L363)
***
@@ -26,4 +26,4 @@ Message content
#### Defined in
-[packages/core/src/types.ts:360](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L360)
+[packages/core/src/types.ts:366](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L366)
diff --git a/docs/api/interfaces/Objective.md b/docs/api/interfaces/Objective.md
index 3362379162..e1960d03da 100644
--- a/docs/api/interfaces/Objective.md
+++ b/docs/api/interfaces/Objective.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Objective
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Objective
# Interface: Objective
@@ -14,7 +14,7 @@ Optional unique identifier
#### Defined in
-[packages/core/src/types.ts:87](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L87)
+[packages/core/src/types.ts:87](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L87)
***
@@ -26,7 +26,7 @@ Description of what needs to be achieved
#### Defined in
-[packages/core/src/types.ts:90](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L90)
+[packages/core/src/types.ts:90](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L90)
***
@@ -38,4 +38,4 @@ Whether objective is completed
#### Defined in
-[packages/core/src/types.ts:93](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L93)
+[packages/core/src/types.ts:93](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L93)
diff --git a/docs/api/interfaces/Participant.md b/docs/api/interfaces/Participant.md
index fe77363505..4f32cca4ef 100644
--- a/docs/api/interfaces/Participant.md
+++ b/docs/api/interfaces/Participant.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Participant
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Participant
# Interface: Participant
@@ -14,7 +14,7 @@ Unique identifier
#### Defined in
-[packages/core/src/types.ts:520](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L520)
+[packages/core/src/types.ts:526](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L526)
***
@@ -26,4 +26,4 @@ Associated account
#### Defined in
-[packages/core/src/types.ts:523](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L523)
+[packages/core/src/types.ts:529](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L529)
diff --git a/docs/api/interfaces/Provider.md b/docs/api/interfaces/Provider.md
index 0b6431eb50..e0e5455f68 100644
--- a/docs/api/interfaces/Provider.md
+++ b/docs/api/interfaces/Provider.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Provider
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Provider
# Interface: Provider
@@ -26,4 +26,4 @@ Data retrieval function
#### Defined in
-[packages/core/src/types.ts:459](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L459)
+[packages/core/src/types.ts:465](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L465)
diff --git a/docs/api/interfaces/Relationship.md b/docs/api/interfaces/Relationship.md
index 5177376766..e893764887 100644
--- a/docs/api/interfaces/Relationship.md
+++ b/docs/api/interfaces/Relationship.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Relationship
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Relationship
# Interface: Relationship
@@ -14,7 +14,7 @@ Unique identifier
#### Defined in
-[packages/core/src/types.ts:471](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L471)
+[packages/core/src/types.ts:477](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L477)
***
@@ -26,7 +26,7 @@ First user ID
#### Defined in
-[packages/core/src/types.ts:474](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L474)
+[packages/core/src/types.ts:480](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L480)
***
@@ -38,7 +38,7 @@ Second user ID
#### Defined in
-[packages/core/src/types.ts:477](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L477)
+[packages/core/src/types.ts:483](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L483)
***
@@ -50,7 +50,7 @@ Primary user ID
#### Defined in
-[packages/core/src/types.ts:480](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L480)
+[packages/core/src/types.ts:486](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L486)
***
@@ -62,7 +62,7 @@ Associated room ID
#### Defined in
-[packages/core/src/types.ts:483](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L483)
+[packages/core/src/types.ts:489](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L489)
***
@@ -74,7 +74,7 @@ Relationship status
#### Defined in
-[packages/core/src/types.ts:486](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L486)
+[packages/core/src/types.ts:492](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L492)
***
@@ -86,4 +86,4 @@ Optional creation timestamp
#### Defined in
-[packages/core/src/types.ts:489](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L489)
+[packages/core/src/types.ts:495](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L495)
diff --git a/docs/api/interfaces/Room.md b/docs/api/interfaces/Room.md
index 1f96cade13..70a52269dd 100644
--- a/docs/api/interfaces/Room.md
+++ b/docs/api/interfaces/Room.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Room
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Room
# Interface: Room
@@ -14,7 +14,7 @@ Unique identifier
#### Defined in
-[packages/core/src/types.ts:531](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L531)
+[packages/core/src/types.ts:537](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L537)
***
@@ -26,4 +26,4 @@ Room participants
#### Defined in
-[packages/core/src/types.ts:534](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L534)
+[packages/core/src/types.ts:540](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L540)
diff --git a/docs/api/interfaces/State.md b/docs/api/interfaces/State.md
index 962ded22d7..100708227f 100644
--- a/docs/api/interfaces/State.md
+++ b/docs/api/interfaces/State.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / State
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / State
# Interface: State
@@ -18,7 +18,7 @@ ID of user who sent current message
#### Defined in
-[packages/core/src/types.ts:240](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L240)
+[packages/core/src/types.ts:246](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L246)
***
@@ -30,7 +30,7 @@ ID of agent in conversation
#### Defined in
-[packages/core/src/types.ts:243](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L243)
+[packages/core/src/types.ts:249](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L249)
***
@@ -42,7 +42,7 @@ Agent's biography
#### Defined in
-[packages/core/src/types.ts:246](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L246)
+[packages/core/src/types.ts:252](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L252)
***
@@ -54,7 +54,7 @@ Agent's background lore
#### Defined in
-[packages/core/src/types.ts:249](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L249)
+[packages/core/src/types.ts:255](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L255)
***
@@ -66,7 +66,7 @@ Message handling directions
#### Defined in
-[packages/core/src/types.ts:252](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L252)
+[packages/core/src/types.ts:258](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L258)
***
@@ -78,7 +78,7 @@ Post handling directions
#### Defined in
-[packages/core/src/types.ts:255](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L255)
+[packages/core/src/types.ts:261](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L261)
***
@@ -90,7 +90,7 @@ Current room/conversation ID
#### Defined in
-[packages/core/src/types.ts:258](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L258)
+[packages/core/src/types.ts:264](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L264)
***
@@ -102,7 +102,7 @@ Optional agent name
#### Defined in
-[packages/core/src/types.ts:261](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L261)
+[packages/core/src/types.ts:267](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L267)
***
@@ -114,7 +114,7 @@ Optional message sender name
#### Defined in
-[packages/core/src/types.ts:264](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L264)
+[packages/core/src/types.ts:270](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L270)
***
@@ -126,7 +126,7 @@ String representation of conversation actors
#### Defined in
-[packages/core/src/types.ts:267](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L267)
+[packages/core/src/types.ts:273](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L273)
***
@@ -138,7 +138,7 @@ Optional array of actor objects
#### Defined in
-[packages/core/src/types.ts:270](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L270)
+[packages/core/src/types.ts:276](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L276)
***
@@ -150,7 +150,7 @@ Optional string representation of goals
#### Defined in
-[packages/core/src/types.ts:273](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L273)
+[packages/core/src/types.ts:279](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L279)
***
@@ -162,7 +162,7 @@ Optional array of goal objects
#### Defined in
-[packages/core/src/types.ts:276](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L276)
+[packages/core/src/types.ts:282](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L282)
***
@@ -174,7 +174,7 @@ Recent message history as string
#### Defined in
-[packages/core/src/types.ts:279](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L279)
+[packages/core/src/types.ts:285](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L285)
***
@@ -186,7 +186,7 @@ Recent message objects
#### Defined in
-[packages/core/src/types.ts:282](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L282)
+[packages/core/src/types.ts:288](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L288)
***
@@ -198,7 +198,7 @@ Optional valid action names
#### Defined in
-[packages/core/src/types.ts:285](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L285)
+[packages/core/src/types.ts:291](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L291)
***
@@ -210,7 +210,7 @@ Optional action descriptions
#### Defined in
-[packages/core/src/types.ts:288](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L288)
+[packages/core/src/types.ts:294](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L294)
***
@@ -222,7 +222,7 @@ Optional action objects
#### Defined in
-[packages/core/src/types.ts:291](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L291)
+[packages/core/src/types.ts:297](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L297)
***
@@ -234,7 +234,7 @@ Optional action examples
#### Defined in
-[packages/core/src/types.ts:294](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L294)
+[packages/core/src/types.ts:300](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L300)
***
@@ -246,7 +246,7 @@ Optional provider descriptions
#### Defined in
-[packages/core/src/types.ts:297](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L297)
+[packages/core/src/types.ts:303](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L303)
***
@@ -258,7 +258,7 @@ Optional response content
#### Defined in
-[packages/core/src/types.ts:300](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L300)
+[packages/core/src/types.ts:306](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L306)
***
@@ -270,7 +270,7 @@ Optional recent interaction objects
#### Defined in
-[packages/core/src/types.ts:303](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L303)
+[packages/core/src/types.ts:309](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L309)
***
@@ -282,7 +282,7 @@ Optional recent interactions string
#### Defined in
-[packages/core/src/types.ts:306](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L306)
+[packages/core/src/types.ts:312](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L312)
***
@@ -294,7 +294,7 @@ Optional formatted conversation
#### Defined in
-[packages/core/src/types.ts:309](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L309)
+[packages/core/src/types.ts:315](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L315)
***
@@ -306,7 +306,7 @@ Optional formatted knowledge
#### Defined in
-[packages/core/src/types.ts:312](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L312)
+[packages/core/src/types.ts:318](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L318)
***
@@ -318,4 +318,4 @@ Optional knowledge data
#### Defined in
-[packages/core/src/types.ts:314](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L314)
+[packages/core/src/types.ts:320](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L320)
diff --git a/docs/api/type-aliases/CacheOptions.md b/docs/api/type-aliases/CacheOptions.md
index ea3ba7b152..3127cb37a4 100644
--- a/docs/api/type-aliases/CacheOptions.md
+++ b/docs/api/type-aliases/CacheOptions.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / CacheOptions
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / CacheOptions
# Type Alias: CacheOptions
@@ -12,4 +12,4 @@
## Defined in
-[packages/core/src/types.ts:944](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L944)
+[packages/core/src/types.ts:985](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L985)
diff --git a/docs/api/type-aliases/Character.md b/docs/api/type-aliases/Character.md
index cc4254f996..e5940f1fdf 100644
--- a/docs/api/type-aliases/Character.md
+++ b/docs/api/type-aliases/Character.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Character
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Character
# Type Alias: Character
@@ -100,14 +100,26 @@ Optional prompt templates
> `optional` **farcasterPostTemplate**: `string`
+### templates.lensPostTemplate?
+
+> `optional` **lensPostTemplate**: `string`
+
### templates.farcasterMessageHandlerTemplate?
> `optional` **farcasterMessageHandlerTemplate**: `string`
+### templates.lensMessageHandlerTemplate?
+
+> `optional` **lensMessageHandlerTemplate**: `string`
+
### templates.farcasterShouldRespondTemplate?
> `optional` **farcasterShouldRespondTemplate**: `string`
+### templates.lensShouldRespondTemplate?
+
+> `optional` **lensShouldRespondTemplate**: `string`
+
### templates.telegramMessageHandlerTemplate?
> `optional` **telegramMessageHandlerTemplate**: `string`
@@ -128,6 +140,14 @@ Optional prompt templates
> `optional` **discordMessageHandlerTemplate**: `string`
+### templates.slackMessageHandlerTemplate?
+
+> `optional` **slackMessageHandlerTemplate**: `string`
+
+### templates.slackShouldRespondTemplate?
+
+> `optional` **slackShouldRespondTemplate**: `string`
+
### bio
> **bio**: `string` \| `string`[]
@@ -196,9 +216,9 @@ Optional configuration
\[`key`: `string`\]: `string`
-### settings.buttplug?
+### settings.intiface?
-> `optional` **buttplug**: `boolean`
+> `optional` **intiface**: `boolean`
### settings.voice?
@@ -284,6 +304,26 @@ Optional client-specific config
> `optional` **shouldIgnoreDirectMessages**: `boolean`
+### clientConfig.discord.messageSimilarityThreshold?
+
+> `optional` **messageSimilarityThreshold**: `number`
+
+### clientConfig.discord.isPartOfTeam?
+
+> `optional` **isPartOfTeam**: `boolean`
+
+### clientConfig.discord.teamAgentIds?
+
+> `optional` **teamAgentIds**: `string`[]
+
+### clientConfig.discord.teamLeaderId?
+
+> `optional` **teamLeaderId**: `string`
+
+### clientConfig.discord.teamMemberInterestKeywords?
+
+> `optional` **teamMemberInterestKeywords**: `string`[]
+
### clientConfig.telegram?
> `optional` **telegram**: `object`
@@ -296,6 +336,38 @@ Optional client-specific config
> `optional` **shouldIgnoreDirectMessages**: `boolean`
+### clientConfig.telegram.messageSimilarityThreshold?
+
+> `optional` **messageSimilarityThreshold**: `number`
+
+### clientConfig.telegram.isPartOfTeam?
+
+> `optional` **isPartOfTeam**: `boolean`
+
+### clientConfig.telegram.teamAgentIds?
+
+> `optional` **teamAgentIds**: `string`[]
+
+### clientConfig.telegram.teamLeaderId?
+
+> `optional` **teamLeaderId**: `string`
+
+### clientConfig.telegram.teamMemberInterestKeywords?
+
+> `optional` **teamMemberInterestKeywords**: `string`[]
+
+### clientConfig.slack?
+
+> `optional` **slack**: `object`
+
+### clientConfig.slack.shouldIgnoreBotMessages?
+
+> `optional` **shouldIgnoreBotMessages**: `boolean`
+
+### clientConfig.slack.shouldIgnoreDirectMessages?
+
+> `optional` **shouldIgnoreDirectMessages**: `boolean`
+
### style
> **style**: `object`
@@ -340,6 +412,16 @@ Optional Twitter profile
> `optional` **nicknames**: `string`[]
+### nft?
+
+> `optional` **nft**: `object`
+
+Optional NFT prompt
+
+### nft.prompt
+
+> **prompt**: `string`
+
## Defined in
-[packages/core/src/types.ts:609](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L609)
+[packages/core/src/types.ts:627](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L627)
diff --git a/docs/api/type-aliases/CharacterConfig.md b/docs/api/type-aliases/CharacterConfig.md
index ad496dc07e..33206b99c1 100644
--- a/docs/api/type-aliases/CharacterConfig.md
+++ b/docs/api/type-aliases/CharacterConfig.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / CharacterConfig
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / CharacterConfig
# Type Alias: CharacterConfig
@@ -8,4 +8,4 @@ Type inference
## Defined in
-[packages/core/src/environment.ts:130](https://github.com/monilpat/eliza/blob/main/packages/core/src/environment.ts#L130)
+[packages/core/src/environment.ts:135](https://github.com/ai16z/eliza/blob/main/packages/core/src/environment.ts#L135)
diff --git a/docs/api/type-aliases/Client.md b/docs/api/type-aliases/Client.md
index c06461c10e..6a20f928a3 100644
--- a/docs/api/type-aliases/Client.md
+++ b/docs/api/type-aliases/Client.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Client
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Client
# Type Alias: Client
@@ -10,13 +10,13 @@ Client interface for platform connections
### start()
-> **start**: (`runtime`?) => `Promise`\<`unknown`\>
+> **start**: (`runtime`) => `Promise`\<`unknown`\>
Start client connection
#### Parameters
-• **runtime?**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md)
+• **runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md)
#### Returns
@@ -24,13 +24,13 @@ Start client connection
### stop()
-> **stop**: (`runtime`?) => `Promise`\<`unknown`\>
+> **stop**: (`runtime`) => `Promise`\<`unknown`\>
Stop client connection
#### Parameters
-• **runtime?**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md)
+• **runtime**: [`IAgentRuntime`](../interfaces/IAgentRuntime.md)
#### Returns
@@ -38,4 +38,4 @@ Stop client connection
## Defined in
-[packages/core/src/types.ts:563](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L563)
+[packages/core/src/types.ts:572](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L572)
diff --git a/docs/api/type-aliases/EnvConfig.md b/docs/api/type-aliases/EnvConfig.md
index 725aed0fe7..2df4c7d794 100644
--- a/docs/api/type-aliases/EnvConfig.md
+++ b/docs/api/type-aliases/EnvConfig.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / EnvConfig
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / EnvConfig
# Type Alias: EnvConfig
@@ -8,4 +8,4 @@ Type inference
## Defined in
-[packages/core/src/environment.ts:23](https://github.com/monilpat/eliza/blob/main/packages/core/src/environment.ts#L23)
+[packages/core/src/environment.ts:23](https://github.com/ai16z/eliza/blob/main/packages/core/src/environment.ts#L23)
diff --git a/docs/api/type-aliases/Handler.md b/docs/api/type-aliases/Handler.md
index 81750fb6cc..8fe4d6d4b1 100644
--- a/docs/api/type-aliases/Handler.md
+++ b/docs/api/type-aliases/Handler.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Handler
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Handler
# Type Alias: Handler()
@@ -24,4 +24,4 @@ Handler function type for processing messages
## Defined in
-[packages/core/src/types.ts:366](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L366)
+[packages/core/src/types.ts:372](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L372)
diff --git a/docs/api/type-aliases/HandlerCallback.md b/docs/api/type-aliases/HandlerCallback.md
index a749f2e943..cd9f31de38 100644
--- a/docs/api/type-aliases/HandlerCallback.md
+++ b/docs/api/type-aliases/HandlerCallback.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / HandlerCallback
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / HandlerCallback
# Type Alias: HandlerCallback()
@@ -18,4 +18,4 @@ Callback function type for handlers
## Defined in
-[packages/core/src/types.ts:377](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L377)
+[packages/core/src/types.ts:383](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L383)
diff --git a/docs/api/type-aliases/KnowledgeItem.md b/docs/api/type-aliases/KnowledgeItem.md
index 1737dd857b..43727c10e1 100644
--- a/docs/api/type-aliases/KnowledgeItem.md
+++ b/docs/api/type-aliases/KnowledgeItem.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / KnowledgeItem
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / KnowledgeItem
# Type Alias: KnowledgeItem
@@ -16,4 +16,4 @@
## Defined in
-[packages/core/src/types.ts:1154](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1154)
+[packages/core/src/types.ts:1218](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1218)
diff --git a/docs/api/type-aliases/Media.md b/docs/api/type-aliases/Media.md
index bcadd608d7..ac07beef77 100644
--- a/docs/api/type-aliases/Media.md
+++ b/docs/api/type-aliases/Media.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Media
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Media
# Type Alias: Media
@@ -44,6 +44,12 @@ Media description
Text content
+### contentType?
+
+> `optional` **contentType**: `string`
+
+Content type
+
## Defined in
-[packages/core/src/types.ts:540](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L540)
+[packages/core/src/types.ts:546](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L546)
diff --git a/docs/api/type-aliases/Model.md b/docs/api/type-aliases/Model.md
index cca9c29890..6aba329013 100644
--- a/docs/api/type-aliases/Model.md
+++ b/docs/api/type-aliases/Model.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Model
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Model
# Type Alias: Model
@@ -100,4 +100,4 @@ Model names by size class
## Defined in
-[packages/core/src/types.ts:142](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L142)
+[packages/core/src/types.ts:142](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L142)
diff --git a/docs/api/type-aliases/Models.md b/docs/api/type-aliases/Models.md
index 198887ec94..24c57204aa 100644
--- a/docs/api/type-aliases/Models.md
+++ b/docs/api/type-aliases/Models.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Models
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Models
# Type Alias: Models
@@ -36,10 +36,6 @@ Model configurations by provider
> **together**: [`Model`](Model.md)
-### together
-
-> **together**: [`Model`](Model.md)
-
### llama\_local
> **llama\_local**: [`Model`](Model.md)
@@ -88,10 +84,18 @@ Model configurations by provider
> **volengine**: [`Model`](Model.md)
+### nanogpt
+
+> **nanogpt**: [`Model`](Model.md)
+
### hyperbolic
> **hyperbolic**: [`Model`](Model.md)
+### venice
+
+> **venice**: [`Model`](Model.md)
+
## Defined in
-[packages/core/src/types.ts:188](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L188)
+[packages/core/src/types.ts:188](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L188)
diff --git a/docs/api/type-aliases/Plugin.md b/docs/api/type-aliases/Plugin.md
index fa6a2bd336..06fcf7b402 100644
--- a/docs/api/type-aliases/Plugin.md
+++ b/docs/api/type-aliases/Plugin.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Plugin
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Plugin
# Type Alias: Plugin
@@ -52,4 +52,4 @@ Optional clients
## Defined in
-[packages/core/src/types.ts:574](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L574)
+[packages/core/src/types.ts:583](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L583)
diff --git a/docs/api/type-aliases/SearchResponse.md b/docs/api/type-aliases/SearchResponse.md
index b9f32e1351..0b45aab1ef 100644
--- a/docs/api/type-aliases/SearchResponse.md
+++ b/docs/api/type-aliases/SearchResponse.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / SearchResponse
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / SearchResponse
# Type Alias: SearchResponse
@@ -32,4 +32,4 @@
## Defined in
-[packages/core/src/types.ts:1128](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1128)
+[packages/core/src/types.ts:1189](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1189)
diff --git a/docs/api/type-aliases/SearchResult.md b/docs/api/type-aliases/SearchResult.md
index ce6c795604..7355f2fc75 100644
--- a/docs/api/type-aliases/SearchResult.md
+++ b/docs/api/type-aliases/SearchResult.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / SearchResult
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / SearchResult
# Type Alias: SearchResult
@@ -28,4 +28,4 @@
## Defined in
-[packages/core/src/types.ts:1120](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L1120)
+[packages/core/src/types.ts:1181](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L1181)
diff --git a/docs/api/type-aliases/UUID.md b/docs/api/type-aliases/UUID.md
index f544a687ce..8eadd3933b 100644
--- a/docs/api/type-aliases/UUID.md
+++ b/docs/api/type-aliases/UUID.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / UUID
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / UUID
# Type Alias: UUID
@@ -8,4 +8,4 @@ Represents a UUID string in the format "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
## Defined in
-[packages/core/src/types.ts:6](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L6)
+[packages/core/src/types.ts:6](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L6)
diff --git a/docs/api/type-aliases/Validator.md b/docs/api/type-aliases/Validator.md
index bd17aadbac..ec2d409af1 100644
--- a/docs/api/type-aliases/Validator.md
+++ b/docs/api/type-aliases/Validator.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / Validator
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / Validator
# Type Alias: Validator()
@@ -20,4 +20,4 @@ Validator function type for actions/evaluators
## Defined in
-[packages/core/src/types.ts:385](https://github.com/monilpat/eliza/blob/main/packages/core/src/types.ts#L385)
+[packages/core/src/types.ts:391](https://github.com/ai16z/eliza/blob/main/packages/core/src/types.ts#L391)
diff --git a/docs/api/typedoc-sidebar.cjs b/docs/api/typedoc-sidebar.cjs
index ae4d2a974e..4465b937a7 100644
--- a/docs/api/typedoc-sidebar.cjs
+++ b/docs/api/typedoc-sidebar.cjs
@@ -1,4 +1,4 @@
// @ts-check
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
-const typedocSidebar = { items: [{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"enumerations/GoalStatus","label":"GoalStatus"},{"type":"doc","id":"enumerations/ModelClass","label":"ModelClass"},{"type":"doc","id":"enumerations/ModelProviderName","label":"ModelProviderName"},{"type":"doc","id":"enumerations/Clients","label":"Clients"},{"type":"doc","id":"enumerations/ServiceType","label":"ServiceType"},{"type":"doc","id":"enumerations/LoggingLevel","label":"LoggingLevel"}]},{"type":"category","label":"Classes","items":[{"type":"doc","id":"classes/MemoryCacheAdapter","label":"MemoryCacheAdapter"},{"type":"doc","id":"classes/FsCacheAdapter","label":"FsCacheAdapter"},{"type":"doc","id":"classes/DbCacheAdapter","label":"DbCacheAdapter"},{"type":"doc","id":"classes/CacheManager","label":"CacheManager"},{"type":"doc","id":"classes/DatabaseAdapter","label":"DatabaseAdapter"},{"type":"doc","id":"classes/MemoryManager","label":"MemoryManager"},{"type":"doc","id":"classes/AgentRuntime","label":"AgentRuntime"},{"type":"doc","id":"classes/Service","label":"Service"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"interfaces/ICacheAdapter","label":"ICacheAdapter"},{"type":"doc","id":"interfaces/GenerationOptions","label":"GenerationOptions"},{"type":"doc","id":"interfaces/Content","label":"Content"},{"type":"doc","id":"interfaces/ActionExample","label":"ActionExample"},{"type":"doc","id":"interfaces/ConversationExample","label":"ConversationExample"},{"type":"doc","id":"interfaces/Actor","label":"Actor"},{"type":"doc","id":"interfaces/Objective","label":"Objective"},{"type":"doc","id":"interfaces/Goal","label":"Goal"},{"type":"doc","id":"interfaces/State","label":"State"},{"type":"doc","id":"interfaces/Memory","label":"Memory"},{"type":"doc","id":"interfaces/MessageExample","label":"MessageExample"},{"type":"doc","id":"interfaces/Action","label":"Action"},{"type":"doc","id":"interfaces/EvaluationExample","label":"EvaluationExample"},{"type":"doc","id":"interfaces/Evaluator","label":"Evaluator"},{"type":"doc","id":"interfaces/Provider","label":"Provider"},{"type":"doc","id":"interfaces/Relationship","label":"Relationship"},{"type":"doc","id":"interfaces/Account","label":"Account"},{"type":"doc","id":"interfaces/Participant","label":"Participant"},{"type":"doc","id":"interfaces/Room","label":"Room"},{"type":"doc","id":"interfaces/IDatabaseAdapter","label":"IDatabaseAdapter"},{"type":"doc","id":"interfaces/IDatabaseCacheAdapter","label":"IDatabaseCacheAdapter"},{"type":"doc","id":"interfaces/IMemoryManager","label":"IMemoryManager"},{"type":"doc","id":"interfaces/ICacheManager","label":"ICacheManager"},{"type":"doc","id":"interfaces/IAgentRuntime","label":"IAgentRuntime"},{"type":"doc","id":"interfaces/IImageDescriptionService","label":"IImageDescriptionService"},{"type":"doc","id":"interfaces/ITranscriptionService","label":"ITranscriptionService"},{"type":"doc","id":"interfaces/IVideoService","label":"IVideoService"},{"type":"doc","id":"interfaces/ITextGenerationService","label":"ITextGenerationService"},{"type":"doc","id":"interfaces/IBrowserService","label":"IBrowserService"},{"type":"doc","id":"interfaces/ISpeechService","label":"ISpeechService"},{"type":"doc","id":"interfaces/IPdfService","label":"IPdfService"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"type-aliases/EnvConfig","label":"EnvConfig"},{"type":"doc","id":"type-aliases/CharacterConfig","label":"CharacterConfig"},{"type":"doc","id":"type-aliases/UUID","label":"UUID"},{"type":"doc","id":"type-aliases/Model","label":"Model"},{"type":"doc","id":"type-aliases/Models","label":"Models"},{"type":"doc","id":"type-aliases/Handler","label":"Handler"},{"type":"doc","id":"type-aliases/HandlerCallback","label":"HandlerCallback"},{"type":"doc","id":"type-aliases/Validator","label":"Validator"},{"type":"doc","id":"type-aliases/Media","label":"Media"},{"type":"doc","id":"type-aliases/Client","label":"Client"},{"type":"doc","id":"type-aliases/Plugin","label":"Plugin"},{"type":"doc","id":"type-aliases/Character","label":"Character"},{"type":"doc","id":"type-aliases/CacheOptions","label":"CacheOptions"},{"type":"doc","id":"type-aliases/SearchResult","label":"SearchResult"},{"type":"doc","id":"type-aliases/SearchResponse","label":"SearchResponse"},{"type":"doc","id":"type-aliases/KnowledgeItem","label":"KnowledgeItem"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"variables/defaultCharacter","label":"defaultCharacter"},{"type":"doc","id":"variables/envSchema","label":"envSchema"},{"type":"doc","id":"variables/CharacterSchema","label":"CharacterSchema"},{"type":"doc","id":"variables/evaluationTemplate","label":"evaluationTemplate"},{"type":"doc","id":"variables/knowledge","label":"knowledge"},{"type":"doc","id":"variables/elizaLogger","label":"elizaLogger"},{"type":"doc","id":"variables/models","label":"models"},{"type":"doc","id":"variables/messageCompletionFooter","label":"messageCompletionFooter"},{"type":"doc","id":"variables/shouldRespondFooter","label":"shouldRespondFooter"},{"type":"doc","id":"variables/booleanFooter","label":"booleanFooter"},{"type":"doc","id":"variables/stringArrayFooter","label":"stringArrayFooter"},{"type":"doc","id":"variables/settings","label":"settings"}]},{"type":"category","label":"Functions","items":[{"type":"doc","id":"functions/composeActionExamples","label":"composeActionExamples"},{"type":"doc","id":"functions/formatActionNames","label":"formatActionNames"},{"type":"doc","id":"functions/formatActions","label":"formatActions"},{"type":"doc","id":"functions/composeContext","label":"composeContext"},{"type":"doc","id":"functions/addHeader","label":"addHeader"},{"type":"doc","id":"functions/getEmbeddingConfig","label":"getEmbeddingConfig"},{"type":"doc","id":"functions/getEmbeddingType","label":"getEmbeddingType"},{"type":"doc","id":"functions/getEmbeddingZeroVector","label":"getEmbeddingZeroVector"},{"type":"doc","id":"functions/embed","label":"embed"},{"type":"doc","id":"functions/validateEnv","label":"validateEnv"},{"type":"doc","id":"functions/validateCharacterConfig","label":"validateCharacterConfig"},{"type":"doc","id":"functions/formatEvaluatorNames","label":"formatEvaluatorNames"},{"type":"doc","id":"functions/formatEvaluators","label":"formatEvaluators"},{"type":"doc","id":"functions/formatEvaluatorExamples","label":"formatEvaluatorExamples"},{"type":"doc","id":"functions/formatEvaluatorExampleDescriptions","label":"formatEvaluatorExampleDescriptions"},{"type":"doc","id":"functions/generateText","label":"generateText"},{"type":"doc","id":"functions/trimTokens","label":"trimTokens"},{"type":"doc","id":"functions/generateShouldRespond","label":"generateShouldRespond"},{"type":"doc","id":"functions/splitChunks","label":"splitChunks"},{"type":"doc","id":"functions/generateTrueOrFalse","label":"generateTrueOrFalse"},{"type":"doc","id":"functions/generateTextArray","label":"generateTextArray"},{"type":"doc","id":"functions/generateObject","label":"generateObject"},{"type":"doc","id":"functions/generateObjectArray","label":"generateObjectArray"},{"type":"doc","id":"functions/generateMessageResponse","label":"generateMessageResponse"},{"type":"doc","id":"functions/generateImage","label":"generateImage"},{"type":"doc","id":"functions/generateCaption","label":"generateCaption"},{"type":"doc","id":"functions/generateWebSearch","label":"generateWebSearch"},{"type":"doc","id":"functions/generateObjectV2","label":"generateObjectV2"},{"type":"doc","id":"functions/handleProvider","label":"handleProvider"},{"type":"doc","id":"functions/getGoals","label":"getGoals"},{"type":"doc","id":"functions/formatGoalsAsString","label":"formatGoalsAsString"},{"type":"doc","id":"functions/updateGoal","label":"updateGoal"},{"type":"doc","id":"functions/createGoal","label":"createGoal"},{"type":"doc","id":"functions/getActorDetails","label":"getActorDetails"},{"type":"doc","id":"functions/formatActors","label":"formatActors"},{"type":"doc","id":"functions/formatMessages","label":"formatMessages"},{"type":"doc","id":"functions/formatTimestamp","label":"formatTimestamp"},{"type":"doc","id":"functions/getModel","label":"getModel"},{"type":"doc","id":"functions/getEndpoint","label":"getEndpoint"},{"type":"doc","id":"functions/parseShouldRespondFromText","label":"parseShouldRespondFromText"},{"type":"doc","id":"functions/parseBooleanFromText","label":"parseBooleanFromText"},{"type":"doc","id":"functions/parseJsonArrayFromText","label":"parseJsonArrayFromText"},{"type":"doc","id":"functions/parseJSONObjectFromText","label":"parseJSONObjectFromText"},{"type":"doc","id":"functions/formatPosts","label":"formatPosts"},{"type":"doc","id":"functions/getProviders","label":"getProviders"},{"type":"doc","id":"functions/createRelationship","label":"createRelationship"},{"type":"doc","id":"functions/getRelationship","label":"getRelationship"},{"type":"doc","id":"functions/getRelationships","label":"getRelationships"},{"type":"doc","id":"functions/formatRelationships","label":"formatRelationships"},{"type":"doc","id":"functions/findNearestEnvFile","label":"findNearestEnvFile"},{"type":"doc","id":"functions/configureSettings","label":"configureSettings"},{"type":"doc","id":"functions/loadEnvConfig","label":"loadEnvConfig"},{"type":"doc","id":"functions/getEnvVariable","label":"getEnvVariable"},{"type":"doc","id":"functions/hasEnvVariable","label":"hasEnvVariable"},{"type":"doc","id":"functions/stringToUuid","label":"stringToUuid"}]}]};
+const typedocSidebar = { items: [{"type":"category","label":"Enumerations","items":[{"type":"doc","id":"enumerations/GoalStatus","label":"GoalStatus"},{"type":"doc","id":"enumerations/ModelClass","label":"ModelClass"},{"type":"doc","id":"enumerations/ModelProviderName","label":"ModelProviderName"},{"type":"doc","id":"enumerations/Clients","label":"Clients"},{"type":"doc","id":"enumerations/ServiceType","label":"ServiceType"},{"type":"doc","id":"enumerations/LoggingLevel","label":"LoggingLevel"}]},{"type":"category","label":"Classes","items":[{"type":"doc","id":"classes/MemoryCacheAdapter","label":"MemoryCacheAdapter"},{"type":"doc","id":"classes/FsCacheAdapter","label":"FsCacheAdapter"},{"type":"doc","id":"classes/DbCacheAdapter","label":"DbCacheAdapter"},{"type":"doc","id":"classes/CacheManager","label":"CacheManager"},{"type":"doc","id":"classes/DatabaseAdapter","label":"DatabaseAdapter"},{"type":"doc","id":"classes/MemoryManager","label":"MemoryManager"},{"type":"doc","id":"classes/AgentRuntime","label":"AgentRuntime"},{"type":"doc","id":"classes/Service","label":"Service"}]},{"type":"category","label":"Interfaces","items":[{"type":"doc","id":"interfaces/ICacheAdapter","label":"ICacheAdapter"},{"type":"doc","id":"interfaces/GenerationOptions","label":"GenerationOptions"},{"type":"doc","id":"interfaces/Content","label":"Content"},{"type":"doc","id":"interfaces/ActionExample","label":"ActionExample"},{"type":"doc","id":"interfaces/ConversationExample","label":"ConversationExample"},{"type":"doc","id":"interfaces/Actor","label":"Actor"},{"type":"doc","id":"interfaces/Objective","label":"Objective"},{"type":"doc","id":"interfaces/Goal","label":"Goal"},{"type":"doc","id":"interfaces/State","label":"State"},{"type":"doc","id":"interfaces/Memory","label":"Memory"},{"type":"doc","id":"interfaces/MessageExample","label":"MessageExample"},{"type":"doc","id":"interfaces/Action","label":"Action"},{"type":"doc","id":"interfaces/EvaluationExample","label":"EvaluationExample"},{"type":"doc","id":"interfaces/Evaluator","label":"Evaluator"},{"type":"doc","id":"interfaces/Provider","label":"Provider"},{"type":"doc","id":"interfaces/Relationship","label":"Relationship"},{"type":"doc","id":"interfaces/Account","label":"Account"},{"type":"doc","id":"interfaces/Participant","label":"Participant"},{"type":"doc","id":"interfaces/Room","label":"Room"},{"type":"doc","id":"interfaces/IAgentConfig","label":"IAgentConfig"},{"type":"doc","id":"interfaces/IDatabaseAdapter","label":"IDatabaseAdapter"},{"type":"doc","id":"interfaces/IDatabaseCacheAdapter","label":"IDatabaseCacheAdapter"},{"type":"doc","id":"interfaces/IMemoryManager","label":"IMemoryManager"},{"type":"doc","id":"interfaces/ICacheManager","label":"ICacheManager"},{"type":"doc","id":"interfaces/IAgentRuntime","label":"IAgentRuntime"},{"type":"doc","id":"interfaces/IImageDescriptionService","label":"IImageDescriptionService"},{"type":"doc","id":"interfaces/ITranscriptionService","label":"ITranscriptionService"},{"type":"doc","id":"interfaces/IVideoService","label":"IVideoService"},{"type":"doc","id":"interfaces/ITextGenerationService","label":"ITextGenerationService"},{"type":"doc","id":"interfaces/IBrowserService","label":"IBrowserService"},{"type":"doc","id":"interfaces/ISpeechService","label":"ISpeechService"},{"type":"doc","id":"interfaces/IPdfService","label":"IPdfService"},{"type":"doc","id":"interfaces/IAwsS3Service","label":"IAwsS3Service"},{"type":"doc","id":"interfaces/ActionResponse","label":"ActionResponse"},{"type":"doc","id":"interfaces/ISlackService","label":"ISlackService"}]},{"type":"category","label":"Type Aliases","items":[{"type":"doc","id":"type-aliases/EnvConfig","label":"EnvConfig"},{"type":"doc","id":"type-aliases/CharacterConfig","label":"CharacterConfig"},{"type":"doc","id":"type-aliases/UUID","label":"UUID"},{"type":"doc","id":"type-aliases/Model","label":"Model"},{"type":"doc","id":"type-aliases/Models","label":"Models"},{"type":"doc","id":"type-aliases/Handler","label":"Handler"},{"type":"doc","id":"type-aliases/HandlerCallback","label":"HandlerCallback"},{"type":"doc","id":"type-aliases/Validator","label":"Validator"},{"type":"doc","id":"type-aliases/Media","label":"Media"},{"type":"doc","id":"type-aliases/Client","label":"Client"},{"type":"doc","id":"type-aliases/Plugin","label":"Plugin"},{"type":"doc","id":"type-aliases/Character","label":"Character"},{"type":"doc","id":"type-aliases/CacheOptions","label":"CacheOptions"},{"type":"doc","id":"type-aliases/SearchResult","label":"SearchResult"},{"type":"doc","id":"type-aliases/SearchResponse","label":"SearchResponse"},{"type":"doc","id":"type-aliases/KnowledgeItem","label":"KnowledgeItem"}]},{"type":"category","label":"Variables","items":[{"type":"doc","id":"variables/defaultCharacter","label":"defaultCharacter"},{"type":"doc","id":"variables/envSchema","label":"envSchema"},{"type":"doc","id":"variables/CharacterSchema","label":"CharacterSchema"},{"type":"doc","id":"variables/evaluationTemplate","label":"evaluationTemplate"},{"type":"doc","id":"variables/knowledge","label":"knowledge"},{"type":"doc","id":"variables/elizaLogger","label":"elizaLogger"},{"type":"doc","id":"variables/models","label":"models"},{"type":"doc","id":"variables/messageCompletionFooter","label":"messageCompletionFooter"},{"type":"doc","id":"variables/shouldRespondFooter","label":"shouldRespondFooter"},{"type":"doc","id":"variables/booleanFooter","label":"booleanFooter"},{"type":"doc","id":"variables/stringArrayFooter","label":"stringArrayFooter"},{"type":"doc","id":"variables/postActionResponseFooter","label":"postActionResponseFooter"},{"type":"doc","id":"variables/settings","label":"settings"}]},{"type":"category","label":"Functions","items":[{"type":"doc","id":"functions/composeActionExamples","label":"composeActionExamples"},{"type":"doc","id":"functions/formatActionNames","label":"formatActionNames"},{"type":"doc","id":"functions/formatActions","label":"formatActions"},{"type":"doc","id":"functions/composeContext","label":"composeContext"},{"type":"doc","id":"functions/addHeader","label":"addHeader"},{"type":"doc","id":"functions/getEmbeddingConfig","label":"getEmbeddingConfig"},{"type":"doc","id":"functions/getEmbeddingType","label":"getEmbeddingType"},{"type":"doc","id":"functions/getEmbeddingZeroVector","label":"getEmbeddingZeroVector"},{"type":"doc","id":"functions/embed","label":"embed"},{"type":"doc","id":"functions/validateEnv","label":"validateEnv"},{"type":"doc","id":"functions/validateCharacterConfig","label":"validateCharacterConfig"},{"type":"doc","id":"functions/formatEvaluatorNames","label":"formatEvaluatorNames"},{"type":"doc","id":"functions/formatEvaluators","label":"formatEvaluators"},{"type":"doc","id":"functions/formatEvaluatorExamples","label":"formatEvaluatorExamples"},{"type":"doc","id":"functions/formatEvaluatorExampleDescriptions","label":"formatEvaluatorExampleDescriptions"},{"type":"doc","id":"functions/generateText","label":"generateText"},{"type":"doc","id":"functions/trimTokens","label":"trimTokens"},{"type":"doc","id":"functions/generateShouldRespond","label":"generateShouldRespond"},{"type":"doc","id":"functions/splitChunks","label":"splitChunks"},{"type":"doc","id":"functions/generateTrueOrFalse","label":"generateTrueOrFalse"},{"type":"doc","id":"functions/generateTextArray","label":"generateTextArray"},{"type":"doc","id":"functions/generateObjectDeprecated","label":"generateObjectDeprecated"},{"type":"doc","id":"functions/generateObjectArray","label":"generateObjectArray"},{"type":"doc","id":"functions/generateMessageResponse","label":"generateMessageResponse"},{"type":"doc","id":"functions/generateImage","label":"generateImage"},{"type":"doc","id":"functions/generateCaption","label":"generateCaption"},{"type":"doc","id":"functions/generateWebSearch","label":"generateWebSearch"},{"type":"doc","id":"functions/generateObject","label":"generateObject"},{"type":"doc","id":"functions/handleProvider","label":"handleProvider"},{"type":"doc","id":"functions/generateTweetActions","label":"generateTweetActions"},{"type":"doc","id":"functions/getGoals","label":"getGoals"},{"type":"doc","id":"functions/formatGoalsAsString","label":"formatGoalsAsString"},{"type":"doc","id":"functions/updateGoal","label":"updateGoal"},{"type":"doc","id":"functions/createGoal","label":"createGoal"},{"type":"doc","id":"functions/getActorDetails","label":"getActorDetails"},{"type":"doc","id":"functions/formatActors","label":"formatActors"},{"type":"doc","id":"functions/formatMessages","label":"formatMessages"},{"type":"doc","id":"functions/formatTimestamp","label":"formatTimestamp"},{"type":"doc","id":"functions/getModel","label":"getModel"},{"type":"doc","id":"functions/getEndpoint","label":"getEndpoint"},{"type":"doc","id":"functions/parseShouldRespondFromText","label":"parseShouldRespondFromText"},{"type":"doc","id":"functions/parseBooleanFromText","label":"parseBooleanFromText"},{"type":"doc","id":"functions/parseJsonArrayFromText","label":"parseJsonArrayFromText"},{"type":"doc","id":"functions/parseJSONObjectFromText","label":"parseJSONObjectFromText"},{"type":"doc","id":"functions/parseActionResponseFromText","label":"parseActionResponseFromText"},{"type":"doc","id":"functions/formatPosts","label":"formatPosts"},{"type":"doc","id":"functions/getProviders","label":"getProviders"},{"type":"doc","id":"functions/createRelationship","label":"createRelationship"},{"type":"doc","id":"functions/getRelationship","label":"getRelationship"},{"type":"doc","id":"functions/getRelationships","label":"getRelationships"},{"type":"doc","id":"functions/formatRelationships","label":"formatRelationships"},{"type":"doc","id":"functions/findNearestEnvFile","label":"findNearestEnvFile"},{"type":"doc","id":"functions/configureSettings","label":"configureSettings"},{"type":"doc","id":"functions/loadEnvConfig","label":"loadEnvConfig"},{"type":"doc","id":"functions/getEnvVariable","label":"getEnvVariable"},{"type":"doc","id":"functions/hasEnvVariable","label":"hasEnvVariable"},{"type":"doc","id":"functions/stringToUuid","label":"stringToUuid"}]}]};
module.exports = typedocSidebar.items;
\ No newline at end of file
diff --git a/docs/api/variables/CharacterSchema.md b/docs/api/variables/CharacterSchema.md
index 294b42998a..2e376714e6 100644
--- a/docs/api/variables/CharacterSchema.md
+++ b/docs/api/variables/CharacterSchema.md
@@ -1,103 +1,11 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / CharacterSchema
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / CharacterSchema
# Variable: CharacterSchema
-> `const` **CharacterSchema**: `ZodObject`\<`object`, `"strip"`, `ZodTypeAny`, `object`, `object`\>
+> `const` **CharacterSchema**: `any`
Main Character schema
-## Type declaration
-
-### id
-
-> **id**: `ZodOptional`\<`ZodString`\>
-
-### name
-
-> **name**: `ZodString`
-
-### system
-
-> **system**: `ZodOptional`\<`ZodString`\>
-
-### modelProvider
-
-> **modelProvider**: `ZodNativeEnum`\<*typeof* [`ModelProviderName`](../enumerations/ModelProviderName.md)\>
-
-### modelEndpointOverride
-
-> **modelEndpointOverride**: `ZodOptional`\<`ZodString`\>
-
-### templates
-
-> **templates**: `ZodOptional`\<`ZodRecord`\<`ZodString`, `ZodString`\>\>
-
-### bio
-
-> **bio**: `ZodUnion`\<[`ZodString`, `ZodArray`\<`ZodString`, `"many"`\>]\>
-
-### lore
-
-> **lore**: `ZodArray`\<`ZodString`, `"many"`\>
-
-### messageExamples
-
-> **messageExamples**: `ZodArray`\<`ZodArray`\<`ZodObject`\<`object`, `"strip"`, `ZodTypeAny`, `object`, `object`\>, `"many"`\>, `"many"`\>
-
-### postExamples
-
-> **postExamples**: `ZodArray`\<`ZodString`, `"many"`\>
-
-### topics
-
-> **topics**: `ZodArray`\<`ZodString`, `"many"`\>
-
-### adjectives
-
-> **adjectives**: `ZodArray`\<`ZodString`, `"many"`\>
-
-### knowledge
-
-> **knowledge**: `ZodOptional`\<`ZodArray`\<`ZodString`, `"many"`\>\>
-
-### clients
-
-> **clients**: `ZodArray`\<`ZodNativeEnum`\<*typeof* [`Clients`](../enumerations/Clients.md)\>, `"many"`\>
-
-### plugins
-
-> **plugins**: `ZodUnion`\<[`ZodArray`\<`ZodString`, `"many"`\>, `ZodArray`\<`ZodObject`\<`object`, `"strip"`, `ZodTypeAny`, `object`, `object`\>, `"many"`\>]\>
-
-### settings
-
-> **settings**: `ZodOptional`\<`ZodObject`\<`object`, `"strip"`, `ZodTypeAny`, `object`, `object`\>\>
-
-### clientConfig
-
-> **clientConfig**: `ZodOptional`\<`ZodObject`\<`object`, `"strip"`, `ZodTypeAny`, `object`, `object`\>\>
-
-### style
-
-> **style**: `ZodObject`\<`object`, `"strip"`, `ZodTypeAny`, `object`, `object`\>
-
-#### Type declaration
-
-##### all
-
-> **all**: `ZodArray`\<`ZodString`, `"many"`\>
-
-##### chat
-
-> **chat**: `ZodArray`\<`ZodString`, `"many"`\>
-
-##### post
-
-> **post**: `ZodArray`\<`ZodString`, `"many"`\>
-
-### twitterProfile
-
-> **twitterProfile**: `ZodOptional`\<`ZodObject`\<`object`, `"strip"`, `ZodTypeAny`, `object`, `object`\>\>
-
## Defined in
-[packages/core/src/environment.ts:66](https://github.com/monilpat/eliza/blob/main/packages/core/src/environment.ts#L66)
+[packages/core/src/environment.ts:66](https://github.com/ai16z/eliza/blob/main/packages/core/src/environment.ts#L66)
diff --git a/docs/api/variables/booleanFooter.md b/docs/api/variables/booleanFooter.md
index 8242a8746d..a0c890c0ad 100644
--- a/docs/api/variables/booleanFooter.md
+++ b/docs/api/variables/booleanFooter.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / booleanFooter
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / booleanFooter
# Variable: booleanFooter
@@ -6,4 +6,4 @@
## Defined in
-[packages/core/src/parsing.ts:34](https://github.com/monilpat/eliza/blob/main/packages/core/src/parsing.ts#L34)
+[packages/core/src/parsing.ts:35](https://github.com/ai16z/eliza/blob/main/packages/core/src/parsing.ts#L35)
diff --git a/docs/api/variables/defaultCharacter.md b/docs/api/variables/defaultCharacter.md
index f9953fc802..eb2ba7df58 100644
--- a/docs/api/variables/defaultCharacter.md
+++ b/docs/api/variables/defaultCharacter.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / defaultCharacter
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / defaultCharacter
# Variable: defaultCharacter
@@ -6,4 +6,4 @@
## Defined in
-[packages/core/src/defaultCharacter.ts:3](https://github.com/monilpat/eliza/blob/main/packages/core/src/defaultCharacter.ts#L3)
+[packages/core/src/defaultCharacter.ts:3](https://github.com/ai16z/eliza/blob/main/packages/core/src/defaultCharacter.ts#L3)
diff --git a/docs/api/variables/elizaLogger.md b/docs/api/variables/elizaLogger.md
index 9a1f7f7203..a1e2f0b853 100644
--- a/docs/api/variables/elizaLogger.md
+++ b/docs/api/variables/elizaLogger.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / elizaLogger
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / elizaLogger
# Variable: elizaLogger
@@ -6,4 +6,4 @@
## Defined in
-[packages/core/src/logger.ts:267](https://github.com/monilpat/eliza/blob/main/packages/core/src/logger.ts#L267)
+[packages/core/src/logger.ts:267](https://github.com/ai16z/eliza/blob/main/packages/core/src/logger.ts#L267)
diff --git a/docs/api/variables/envSchema.md b/docs/api/variables/envSchema.md
index d16e77fe85..45233f0cec 100644
--- a/docs/api/variables/envSchema.md
+++ b/docs/api/variables/envSchema.md
@@ -1,43 +1,11 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / envSchema
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / envSchema
# Variable: envSchema
-> `const` **envSchema**: `ZodObject`\<`object`, `"strip"`, `ZodTypeAny`, `object`, `object`\>
+> `const` **envSchema**: `any`
TODO: TO COMPLETE
-## Type declaration
-
-### OPENAI\_API\_KEY
-
-> **OPENAI\_API\_KEY**: `ZodString`
-
-API Keys with specific formats
-
-### REDPILL\_API\_KEY
-
-> **REDPILL\_API\_KEY**: `ZodString`
-
-### GROK\_API\_KEY
-
-> **GROK\_API\_KEY**: `ZodString`
-
-### GROQ\_API\_KEY
-
-> **GROQ\_API\_KEY**: `ZodString`
-
-### OPENROUTER\_API\_KEY
-
-> **OPENROUTER\_API\_KEY**: `ZodString`
-
-### GOOGLE\_GENERATIVE\_AI\_API\_KEY
-
-> **GOOGLE\_GENERATIVE\_AI\_API\_KEY**: `ZodString`
-
-### ELEVENLABS\_XI\_API\_KEY
-
-> **ELEVENLABS\_XI\_API\_KEY**: `ZodString`
-
## Defined in
-[packages/core/src/environment.ts:5](https://github.com/monilpat/eliza/blob/main/packages/core/src/environment.ts#L5)
+[packages/core/src/environment.ts:5](https://github.com/ai16z/eliza/blob/main/packages/core/src/environment.ts#L5)
diff --git a/docs/api/variables/evaluationTemplate.md b/docs/api/variables/evaluationTemplate.md
index 419544d7cb..6a3406ca8a 100644
--- a/docs/api/variables/evaluationTemplate.md
+++ b/docs/api/variables/evaluationTemplate.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / evaluationTemplate
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / evaluationTemplate
# Variable: evaluationTemplate
@@ -8,4 +8,4 @@ Template used for the evaluation generateText.
## Defined in
-[packages/core/src/evaluators.ts:8](https://github.com/monilpat/eliza/blob/main/packages/core/src/evaluators.ts#L8)
+[packages/core/src/evaluators.ts:8](https://github.com/ai16z/eliza/blob/main/packages/core/src/evaluators.ts#L8)
diff --git a/docs/api/variables/knowledge.md b/docs/api/variables/knowledge.md
index f781575948..1ebc605a60 100644
--- a/docs/api/variables/knowledge.md
+++ b/docs/api/variables/knowledge.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / knowledge
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / knowledge
# Variable: knowledge
@@ -52,4 +52,4 @@
## Defined in
-[packages/core/src/knowledge.ts:150](https://github.com/monilpat/eliza/blob/main/packages/core/src/knowledge.ts#L150)
+[packages/core/src/knowledge.ts:150](https://github.com/ai16z/eliza/blob/main/packages/core/src/knowledge.ts#L150)
diff --git a/docs/api/variables/messageCompletionFooter.md b/docs/api/variables/messageCompletionFooter.md
index 9bc70be1dd..7ddde52711 100644
--- a/docs/api/variables/messageCompletionFooter.md
+++ b/docs/api/variables/messageCompletionFooter.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / messageCompletionFooter
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / messageCompletionFooter
# Variable: messageCompletionFooter
@@ -6,4 +6,4 @@
## Defined in
-[packages/core/src/parsing.ts:3](https://github.com/monilpat/eliza/blob/main/packages/core/src/parsing.ts#L3)
+[packages/core/src/parsing.ts:4](https://github.com/ai16z/eliza/blob/main/packages/core/src/parsing.ts#L4)
diff --git a/docs/api/variables/models.md b/docs/api/variables/models.md
index c2c1155d85..efe58b6e33 100644
--- a/docs/api/variables/models.md
+++ b/docs/api/variables/models.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / models
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / models
# Variable: models
@@ -6,4 +6,4 @@
## Defined in
-[packages/core/src/models.ts:4](https://github.com/monilpat/eliza/blob/main/packages/core/src/models.ts#L4)
+[packages/core/src/models.ts:4](https://github.com/ai16z/eliza/blob/main/packages/core/src/models.ts#L4)
diff --git a/docs/api/variables/postActionResponseFooter.md b/docs/api/variables/postActionResponseFooter.md
new file mode 100644
index 0000000000..f3d895b51a
--- /dev/null
+++ b/docs/api/variables/postActionResponseFooter.md
@@ -0,0 +1,9 @@
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / postActionResponseFooter
+
+# Variable: postActionResponseFooter
+
+> `const` **postActionResponseFooter**: `"Choose any combination of [LIKE], [RETWEET], [QUOTE], and [REPLY] that are appropriate. Each action must be on its own line. Your response must only include the chosen actions."`
+
+## Defined in
+
+[packages/core/src/parsing.ts:151](https://github.com/ai16z/eliza/blob/main/packages/core/src/parsing.ts#L151)
diff --git a/docs/api/variables/settings.md b/docs/api/variables/settings.md
index 1a5aaa7187..12462abfa3 100644
--- a/docs/api/variables/settings.md
+++ b/docs/api/variables/settings.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / settings
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / settings
# Variable: settings
@@ -8,4 +8,4 @@ Initialize settings based on environment
## Defined in
-[packages/core/src/settings.ts:126](https://github.com/monilpat/eliza/blob/main/packages/core/src/settings.ts#L126)
+[packages/core/src/settings.ts:126](https://github.com/ai16z/eliza/blob/main/packages/core/src/settings.ts#L126)
diff --git a/docs/api/variables/shouldRespondFooter.md b/docs/api/variables/shouldRespondFooter.md
index 378a9e06b9..4511b452da 100644
--- a/docs/api/variables/shouldRespondFooter.md
+++ b/docs/api/variables/shouldRespondFooter.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / shouldRespondFooter
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / shouldRespondFooter
# Variable: shouldRespondFooter
@@ -6,4 +6,4 @@
## Defined in
-[packages/core/src/parsing.ts:8](https://github.com/monilpat/eliza/blob/main/packages/core/src/parsing.ts#L8)
+[packages/core/src/parsing.ts:9](https://github.com/ai16z/eliza/blob/main/packages/core/src/parsing.ts#L9)
diff --git a/docs/api/variables/stringArrayFooter.md b/docs/api/variables/stringArrayFooter.md
index 65bf941a15..c93dec2d90 100644
--- a/docs/api/variables/stringArrayFooter.md
+++ b/docs/api/variables/stringArrayFooter.md
@@ -1,4 +1,4 @@
-[@ai16z/eliza v0.1.5-alpha.3](../index.md) / stringArrayFooter
+[@ai16z/eliza v0.1.5-alpha.5](../index.md) / stringArrayFooter
# Variable: stringArrayFooter
@@ -6,4 +6,4 @@
## Defined in
-[packages/core/src/parsing.ts:41](https://github.com/monilpat/eliza/blob/main/packages/core/src/parsing.ts#L41)
+[packages/core/src/parsing.ts:42](https://github.com/ai16z/eliza/blob/main/packages/core/src/parsing.ts#L42)
diff --git a/docs/community/Contributors/eliza-council.md b/docs/community/Contributors/eliza-council.md
new file mode 100644
index 0000000000..534ad81dee
--- /dev/null
+++ b/docs/community/Contributors/eliza-council.md
@@ -0,0 +1,7 @@
+---
+title: Eliza Council
+---
+
+# Eliza Council
+
+WIP
diff --git a/docs/community/Contributors/index.md b/docs/community/Contributors/index.md
new file mode 100644
index 0000000000..54f7199889
--- /dev/null
+++ b/docs/community/Contributors/index.md
@@ -0,0 +1,80 @@
+---
+title: Contributing Guide
+---
+
+# Contributor Guide
+
+Welcome! This document is designed to help you understand how you can be part of building the future of autonomous AI agents, regardless of your background or skillset.
+
+---
+
+## Technical Contributions
+
+### For Developers
+
+1. **Extend Eliza's Capabilities**
+ - Develop new actions, evaluators, and providers
+ - Improve existing components and modules
+
+2. **Enhance Infrastructure**
+ - Review open issues and submit PRs
+ - Test and update documentation
+ - Optimize performance
+ - Improve deployment solutions
+
+3. **Conduct Code Reviews**
+ - Review pull requests from other contributors
+ - Provide constructive feedback and suggestions
+ - Help maintain code quality and consistency
+
+### For Designers
+
+1. **Improve User Experience**
+ - Conduct user research and usability testing
+ - Design intuitive user interfaces and interactions
+ - Create high-fidelity mockups and prototypes
+
+2. **Enhance Visual Design**
+ - Develop a consistent visual language and style guide
+ - Create engaging illustrations, icons, and graphics
+ - Optimize designs for accessibility and inclusivity
+
+---
+
+## Non-Technical Contributions
+
+### For Writers and Storytellers
+
+1. **Craft Compelling Narratives**
+ - Write blog posts, articles, and stories that communicate our vision
+ - Develop characters and scenarios that showcase the potential of AI agents
+ - Collaborate with artists to create immersive, multimedia experiences
+
+2. **Improve Documentation**
+ - Write clear, concise, and accessible documentation
+ - Create tutorials, guides, and FAQs to help users get started
+ - Provide examples and use cases to demonstrate Eliza's capabilities
+
+### For Artists and Creators
+
+1. **Illustrate the Future**
+ - Create concept art, illustrations, and infographics that bring our vision to life
+ - Design characters, avatars, and virtual environments for AI agents
+ - Experiment with new mediums and formats to communicate ideas
+
+2. **Produce Multimedia Content**
+ - Create videos, animations, and interactive experiences
+ - Develop podcasts, interviews, and audio content
+ - Collaborate with writers and developers to create integrated campaigns
+
+### For Community Builders
+
+1. **Foster Engagement**
+ - Moderate forums, chat rooms, and social media channels
+ - Organize events, meetups, and hackathons
+ - Facilitate discussions and collaborations among contributors
+
+2. **Provide Support**
+ - Answer questions and provide guidance to new contributors
+ - Triage issues and help prioritize bug fixes and feature requests
+ - Act as a liaison between the community and the core development team
diff --git a/docs/community/Contributors/inspiration.md b/docs/community/Contributors/inspiration.md
new file mode 100644
index 0000000000..ca85fb8a0c
--- /dev/null
+++ b/docs/community/Contributors/inspiration.md
@@ -0,0 +1,3 @@
+# Inspiration
+
+WIP
diff --git a/docs/community/Contributors/profiles.mdx b/docs/community/Contributors/profiles.mdx
new file mode 100644
index 0000000000..c502693ac8
--- /dev/null
+++ b/docs/community/Contributors/profiles.mdx
@@ -0,0 +1,15 @@
+---
+title: GitHub Contributors
+description: GitHub contributors to our project
+---
+
+import Contributors from "../components/Contributors";
+
+# GitHub Contributors
+
+Up to date look at contributors to the ai16z/eliza repo on GitHub.
+
+- repo: https://github.com/ai16z/ai16z.github.io
+- demo https://ai16z.github.io/profiles/
+
+
diff --git a/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-02.md b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-02.md
new file mode 100644
index 0000000000..786f1de5ba
--- /dev/null
+++ b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-02.md
@@ -0,0 +1,28 @@
+# 3d-ai-tv 2024-12-02
+
+## Summary
+The chat segment revolves around Alsara2k announcing a collaboration on AI-3D integration and Eliza Agents platform. Boom seeks advice about simplification of his 'JSONLoader' class, which is confirmed by SM Sith Lord as Unity’s way to work with JSON.
+
+## FAQ
+- How can I best contribute or what should be tackled first? (asked by tcm390 (15:37))
+- Is the JSONLoader simplification approach correct for LoadScenePayload and SpeakPayload? (asked by boom(19:21))
+
+## Who Helped Who
+- Boom helped Understanding of Unity's way to work with JSON. with Simplifying the process for loading different payloads by providing SM Sith Lord (19:20)
+- [SM Sith Lord] helped [boom] with Implementing JSONLoader class for managing scenes. by providing Providing guidance on handling scene loading and speaking events without timing logic.
+- [SM Sith Lord (19:28)] helped [boom (19:30) with Successful by providing Implementing TTS for scene loading and speaking lines
+
+## Action Items
+
+### Technical Tasks
+- Collaborate on AI-3D integration (mentioned by Alsara2k (15:19))
+- Implement a new class to manage scene loading, speaking events, and timer logic. (mentioned by [boom])
+- Implement TTS handling for scene loading, speaking lines asynchronously (mentioned by [SM Sith Lord (19:28)])
+- Update textbox when a character speaks and modularize events for clean code structure (mentioned by [boom (19:29, 19:30)])
+
+### Documentation Needs
+- Update documentation for JSONLoader with the latest changes made by [boom]. (mentioned by [SM Sith Lord])
+
+### Feature Requests
+- Integration of Eliza Agents with erth.ai platform (mentioned by Alsara2k( 15 : 19 ))
+- Implement beacon or animation to indicate last speaker and clear previous speakers (mentioned by [SM Sith Lord (19:30)])
\ No newline at end of file
diff --git a/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-03.md b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-03.md
new file mode 100644
index 0000000000..9853084553
--- /dev/null
+++ b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-03.md
@@ -0,0 +1,55 @@
+# 3d-ai-tv 2024-12-03
+
+## Summary
+Discussion focused on using Newtonsoft.Json plugin to handle nested JSON objects within Unity, with @boom creating a working prototype for data ingestion & state management.
+
+## FAQ
+- What plugin can help with accessing nested objects? What's the syntax for Newtonsoft.Json in Unity? (asked by @boom)
+- Does using Newtonsoft.Json require defining structure beforehand, and how does it compare to vanilla Unity JSON handling? (asked by @SM Sith Lord)
+- Will we feed in scheduled programming like what Marc was trading during the day and shit too? And I know Shaw or someone working on telling bots in Discord to go tweet for you. Could really be ultimate lols, right? (asked by @whobody)
+- For an example of 'The crew running hacker lab' show - it’s shaw & marc & jin working on Eliza in a computer lab trying to make her sound more human. They were skiing. (asked by @SM Sith Lord)
+- How is the movie review show setup? (asked by [whobody] (15:24))
+- What occurs in this AI-based script rewriting system besides bot interactions? (asked by [whobody] (15:38))
+- How do you see the movie review working? (15:38, 16:02) (asked by [whobody])
+- The AI has deep knowledge of movies that have already come out. So I'm having it review old movies.(15:47)? (asked by [SM Sith Lord])
+- Could the AI-generated show be fed with chat transcript instead of live video? And how would this affect data gathering for vision processing? (asked by [whobody](15:50))
+- How long is the intended runtime (e.g., 24/7) and what direction can it take in future iterations? (asked by [SM Sith Lord](15:52))
+
+## Who Helped Who
+- @SM Sith Lord helped with Data Ingestion and State Management by providing @boom provided a working prototype in UNity for data ingestion & state management.
+- @memelotsqui helped @boom with Demo and documentation of new feature by providing Offered help for demo preparation
+- @whobody helped Discord community members with Understanding the format by providing @SM Sith Lord provided an example of 'The crew running hacker lab' show concept and discussed potential formats for different types of content.
+- [whobody] (15:38) helped [SM Sith Lord](15:27) with Understanding AI-based script rewriting system for movie review show by providing SM Sith Lord explained how the movie review show is based on a daily chat room of bots and their banter.
+- [SM Sith Lord](15:39, 16:02) helped [whobody] with Explaining technical aspects of a new feature by providing [SM Sith Lord] explains the concept and current testing phase for movie reviews using AI.
+- [whobody] helped General Discord community members with Implementing the feature to allow viewers interaction with content by providing Provided a solution for generating an AI-generated live feed of chat logs
+- [SM Sith Lord](15:52) helped [whobody] with Deciding on show format by providing Discussed pros/cons of continuous vs episodic content
+- [Alsara2k] (18:13) helped [SM Sith Lord] with Aiding in finding resources by providing Shared a link to an external resource for AI training.
+- [Alsara2k] helped [SotoAlt | WAWE] with Finding alternative news sources by providing Provided a link to an AI TV platform
+
+## Action Items
+
+### Technical Tasks
+- Implement Newtonsoft.Json plugin for Unity to access nested objects (mentioned by @SM Sith Lord)
+- Document the new blood mode and its associated codes in wiki. (mentioned by @boom)
+- Explore solutions for event bridge generation (mentioned by @SM Sith Lord)
+- Develop a system to repeat feeding of shows into AI for slight rewrites, adding scenes & characters (mentioned by [SM Sith Lord](15:27))
+- Test movie review feature using AI with deep knowledge of movies (mentioned by [SM Sith Lord](15:39))
+- Switch between multiple shows using a new system (mentioned by [SM Sith Lord](15:52))
+- Implement episodic shows with weekly data consumption (mentioned by [SM Sith Lord](15:52))
+- Implement AI interaction with separate prompts for each response. (mentioned by [SM Sith Lord](15:58))
+- Organize different methods for AI training (mentioned by [whobody] (16:00))
+
+### Documentation Needs
+- Create serializers/deserializers using Newtonsoft.Json features in Unity. (mentioned by @alextoti)
+- Explore collaboration with DeepWriter or other teams to improve AI script rewriting capabilities. (mentioned by [whobody](15:36))
+- Organize and document variables for episodes vs live streams, context consideration. (mentioned by [whobody](15:53))
+- Assign a higher-level person to help with organization and planning. (mentioned by [whobody] (16:01))
+
+### Feature Requests
+- Create a cheat code feature for 'bloodmode' (mentioned by @boom)
+- Decide on the number of episodes to generate or live-generate after each episode. (mentioned by @SM Sith Lord)
+- Create a daily chat room of bots for the basis of movie review show (mentioned by [SM Sith Lord](15:37))
+- Implement frame-based trailer review feature for future development. (mentioned by [whobody](15:48, 16:02))
+- Implement a system that allows viewers to steer show topics between episodes (mentioned by [SM Sith Lord](15:50))
+- Create an AI-generated live feed of the chat logs for viewers to watch and interact with (vote, move content) (mentioned by [whobody](15:50))
+- Develop a near-live stream of chat to comic-style TV show (mentioned by [SM Sith Lord](15:57))
\ No newline at end of file
diff --git a/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-04.md b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-04.md
new file mode 100644
index 0000000000..81d9f817bb
--- /dev/null
+++ b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-04.md
@@ -0,0 +1,56 @@
+# 3d-ai-tv 2024-12-04
+
+## Summary
+The chat segment revolves around the community members discussing their creative projects, specifically focusing on making scenes inspired by various artists. Boom shared a scene they created and suggested creating another one based on Nam June Paik's TV arrangements.
+
+## FAQ
+- Could you make an endpoint that returns the trailer review in 1 JSON object? (Then I can convert it to one of these show scripts on the fly with another AI call.) (asked by [SM Sith Lord](08:40))
+- Can we pull JSON from a URL? Can Firebase real-time database be used instead of something more local? (asked by [SM Sith Lord, 08:42])
+- Do I need markers for phenoms? Do you just need the audio & length to do that? (asked by boom)
+- Would delivering phenoms work best if 3D stage handles TTS, and can it handle real-time processing of an interrupted scream from a window? (asked by sm sith lord)
+- Can we play the show directly in a web page? Why would it be slow comedy if there's no multi-thread voice support? What are visemes and how can they replace audio eventually? (asked by [SM Sith Lord])
+- How does each scene maintain its unique vibe with only four characters, considering the limitations of Unity integration for now? (asked by [boom](08:49))
+- How does the web page app running on your PC talk to the Unity app running on your PC? How can I implement this communication efficiently, considering my limited development skills and time constraints? (asked by [whobody](08:51))
+- How do we handle updates in our JSON file within the Unity script to ensure only new events are processed? What's an efficient way of doing this without overloading resources or causing delays? (asked by [boom](08:53))
+- 'Unity can support it?' referring to the Unity showrunner web page app with AI calls via node.js server and Claude & OpenAI APIs (asked by [boom (08:54)])
+- Will SM use Firebase or host on a website for their project? (asked by [SM Sith Lord (08:54)])
+
+## Who Helped Who
+- @boom helped with Scene creation by providing Boom provided guidance on creating a scene and shared inspiration from Nam June Paik's work
+- @whobody helped @boom with Improving application functionality by providing Discussing script generator and JSON implementation
+- @whobody helped @boom with Enhancing user experience by providing Sharing thoughts on screen grabs, using Eliza plugins for real-time interaction.
+- [boom] helped Creating an endpoint for trailer review in JSON format. with ] by providing [SM Sith Lord](08:40)
+- [SM Sith Lord (08:43)] helped [boom(08:42)] with Technical discussion on handling text-to-speech within the game engine for better synchronization with visuals. by providing Discussing TTS and blendshapes for Unity project to improve audio-visual sync.
+- [boom] helped [sm sith lord] with Understanding phenoms processing requirements by providing SM Sith Lord explained the need for audio markers in handling 'phenomes'.
+- [SM Sith Lord](08:50) helped [boom] with Integration of audio API and scene management in Unity. by providing SM Sith Lord provided technical guidance on integrating web page app events into Unity.
+- [boom](08:53) helped [whobody](08:51) with Implementing efficient communication between web page and Unity apps by providing [SM Sith Lord](08:52) suggests a method for polling JSON files from URLs within Unity scripts to efficiently process new events.
+- [boom (08:54)] helped [SM Sith Lord (08:56)] with Implementing fetch JSON from URL in Unity showrunner web page app, considering hosting options and potential elimination of bridge by providing Boom provided technical advice on using Unity, node.js server for AI calls via Claude & OpenAI APIs
+- [SM Sith Lord (08:58)] helped [boom(08:59)], [memealot] with Exploring alternatives to Firebase for data management by providing Discussing the possibility of running a node.js server on own PC
+
+## Action Items
+
+### Technical Tasks
+- Implement Avatars as feeds onto TV with a main content center. (mentioned by @boom)
+- Create an endpoint that returns trailer review as a single JSON object. (mentioned by [SM Sith Lord](08:37))
+- Assign cameras based on actor names (mentioned by [boom, 08:40])
+- Handle TTS within Unity for better audio-visual sync (mentioned by [boom (08:43)])
+- Implement audio markers for phenoms (mentioned by [SM Sith Lord])
+- Processing the audio stream in real-time. (mentioned by [SM Sith Lord])
+- Integrate loadScene & speak events from web page app into Unity (mentioned by [SM Sith Lord](08:50))
+- Poll a JSON file for new event updates within Unity script (mentioned by [SM Sith Lord](08:52))
+- Evaluate hosting options for the Unity showrunner and AI call server, considering potential elimination of bridge (mentioned by [SM Sith Lord (08:54)])
+- Implement fetching JSON from a URL for Unity showrunner web page app, using node.js server (mentioned by [SM Sith Lord (08:56)])
+- Develop a Unity app that pulls data from Firebase object (mentioned by [SM Sith Lord (08:57)])
+- Create an AMode for loading files vs API and override functionality (mentioned by [boom(08:57,09:13)], [SM Sith Lord (08:58)])
+- Implement a flattened structure for event stream data to be used with Unity (mentioned by @SM Sith Lord)
+
+### Documentation Needs
+- Design the scenemanager to handle payloads one after another in real-time. (mentioned by [boom](08:39))
+- Parse entire scene or show for new parser implementation (mentioned by [boom, 08:41])
+- API audio length and drive related actions in Unity. (mentioned by [boom](08:50))
+- Create an efficient data structure to search and process newer events in the JSON file. (mentioned by [boom](08:54))
+
+### Feature Requests
+- Create a scene inspired by Nam June Paik's TV arrangements with multiple televisions (mentioned by @boom)
+- Consider using external plugins like Meta's deprecated one or Eleven Labs API (mentioned by [SM Sith Lord (08:45)], [boom(08:43)])
+- Consider enum for configs to differentiate between local prewritten JSON mode vs web API calls (mentioned by [boom (08:56)])
\ No newline at end of file
diff --git a/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-05.md b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-05.md
new file mode 100644
index 0000000000..f35307f1af
--- /dev/null
+++ b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-05.md
@@ -0,0 +1,56 @@
+# 3d-ai-tv 2024-12-05
+
+## Summary
+The discussion revolved around creating fictional characters for an AI-driven chat room, #🤖-the-arena. The main focus was on whether to make a cohesive plot or maintain chaotic interactions like in the current setup of the show.
+
+## FAQ
+- Can AIs read .txt attachments on Discord? Is the chat room joinable for character creation discussion? (asked by @SM Sith Lord)
+- Should we aim to make a cohesive, plot-driven show or maintain an entertaining yet chaotic dynamic like #🤖-the-arena ? (asked by @whobody)
+- Do Trey and Matt Stone still write South Park? Do they curse more in it now that SNL guys are involved? (asked by [SM Sith Lord])
+- How does the format work for creating a video prompt with this approach, specifically regarding threading plots together using 'THEN' structure (asked by [boom])
+- How can I improve camera logic? What should cameras be tagged with instead of actor ID alone? (asked by @boom)
+- Shouldn't the Family Guy AI use a general room-viewing camera if an actor isn’t in its scene, or is there another approach to consider for this logic? (asked by @SM Sith Lord)
+- Is it okay for partners to have write access? Can they just lurk instead of contributing? (asked by @jin)
+- How does one become a partner, and do you get any special recognition like hats or initiation rituals (jumping in)? (asked by @SM Sith Lord)
+- What are the items in box? Are they being sold on eBay? (https://a.co/d/bG7jEjD link provided by whobody) (asked by [boom](12:25))
+- Do you need this item if it's not already owned? (https://a.co/d/jagjuhZ link provided to boom) (asked by [whobody](12:26))
+
+## Who Helped Who
+- @SM Sith Lord helped @whobody with Determining the direction of show's character dynamics by providing @jin provided information on AI chat room and .txt attachment reading capabilities.
+- [whobody (09:11)] helped [SM Sith Lord] with Exploring new ideas and possibilities by providing Discussing the potential for surprise discovery in AI script generation
+- [SM Sith Lord](09:13) & [whobody](09:14) helped with by providing Discussed the concept of 'the geocities effect' and its relation to art
+- [boom] helped [SM Sith Lord] with Discussing the format for creating video prompts by providing SM Sith Lord provided insights on South Park writing and 3-act storytelling.
+- @SM Sith Lord helped @boom with Improving camera registration logic by providing @SM Sith Lord provided advice on using entity tags and considering location when registering cameras.
+- @SM Sith Lord helped @boom with Camera selection based on actors by providing @SM Sith Lord suggested looking at actor ID in the scene to determine which camera should be used.
+- @boom helped @SM Sith Lord and others with Improving scene cuts with multiple cameras by providing Provided guidance on camera management isolation
+- @whobody helped All members mentioned (@Alsara2k, @jin, and @boom) with Identifying possible new contributors for the project by providing Shared information about potential AI studio resources becoming available due to funding issues.
+- @jin, @SM Sith Lord, @boom helped All members with by providing Boosting morale and encouragement
+- @Odilitime helped @whobody with by providing Discussed the importance of leaving an audience wanting more in content creation.
+
+## Action Items
+
+### Technical Tasks
+- Ask the full cast of AIs in #🤖-the-arena about improving show plot and character ideas. (mentioned by @SM Sith Lord)
+- Develop triggers for agents to help write show episodes (mentioned by [SM Sith Lord] (09:06))
+- Create a script writer AI that receives short descriptions from each agent and generates show scripts (mentioned by [SM Sith Lord] (09:09))
+- Allow agents to revise their roles in the script generated by the writer AI, improving before each episode (mentioned by [SM Sith Lord] (09:08))
+- Develop a method for allowing surprise discovery during script generation by open-source AIs (mentioned by [whobody (09:11)])
+- Implement a system for adjusting scripts through multiple rewrites, similar to Hollywood (mentioned by [SM Sith Lord (09:12)])
+- Develop a system that accepts any method of writing scripts (mentioned by [SM Sith Lord](09:14))
+- Implement multi-passing through layers of human thinking for better results with LLMs (Large Language Models) (mentioned by [whobody](09:17))
+- Implement a 3-act structure for episode prompts (mentioned by [SM Sith Lord (09:21)])
+- Create professional sitcom writer AI model based on the given format and approach. (mentioned by [boom, SM Sith Lord (09:18 - 21)])
+- Implement entity tags for camera locations (mentioned by @boom)
+- Isolate CameraManager from SpeakingManager (mentioned by @boom)
+- Review camera management with @SM Sith Lord in VC (voice call) (mentioned by @boom)
+- Investigate compatibility of Xbox One with PC for audio equipment (mentioned by @boom)
+- Boom needs a decent headset with over-ear comfort, mic, USB interface (mentioned by [boom])
+- Order cables for mic gear (mentioned by [boom](12:26))
+
+### Documentation Needs
+- Revise the registration of cameras to consider location, not just actor ID. (mentioned by @SM Sith Lord)
+
+### Feature Requests
+- Create fictional characters for AI agents to fit into group dynamic (mentioned by @SM Sith Lord)
+- Create a basic show script format for AIs to output scripts and compare their performance (mentioned by [SM Sith Lord (09:12)])
+- Create a black box model that includes actors improvising and digesting material (mentioned by [whobody](09:15))
\ No newline at end of file
diff --git a/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-06.md b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-06.md
new file mode 100644
index 0000000000..748b633ad9
--- /dev/null
+++ b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-06.md
@@ -0,0 +1,32 @@
+# 3d-ai-tv 2024-12-06
+
+## Summary
+The conversation revolved around identifying potential spaces for a hackerspace and news station. The participants suggested various room types, such as recording studios, warehouse music video setups, streamer rooms, lofi rooms, bars, alleyways, podcast cleanrooms, science labs with whiteboards, board of directors' meeting areas, water cooler talking spots and a forest gump bench scene. Alsara2k assigned artists to create dework tasks and moodboards for these spaces.
+
+## FAQ
+- What camera overrides basics have been made for zoom, panning or cropping? (18:51) (asked by @jin @SM Sith Lord)
+- Are you going to discuss what has been done this week in the standup meeting tonight? (asked by [boom])
+- How to handle multiple users with same name? Any suggestions for implementation strategy or existing solutions we can use as a reference? Thanks! :) - bloom (20:46) (asked by @bloom)
+- What's the best way to update our documentation regarding new authentication flow changes introduced in recent sprint? Any specific sections we should focus on or any existing templates that can be used as a starting point? (asked by [username])
+- (asked by [username])
+
+## Who Helped Who
+- @Alsara2k helped General Discord chat members with Assigning specific design-related responsibilities to the team by providing Allocation of artists for dework tasks and moodboards creation by Alsara2k.
+- [boom] helped Community members needing camera auto-switch functionality. with Order and configure an orbit cam with restricted degrees of movement. Suggested by boom (16:23) by providing Camera AutoSwitching fallback feature implementation by boom (16:08)
+- [Username] (20:47) helped @bloom with Discussing implementation strategies for feature request regarding user names duplication issue. by providing @boom provided guidance to @bloom on handling multiple users with same name
+- [Username] (20:48) helped [User] with Providing solution for feature request regarding user names duplication issue. by providing @username suggested using a unique identifier system to differentiate users with same name
+- [Username] (20:51) helped [User] with Assisting with finding resources for documenting new authentication flow. by providing @username provided a link to an existing template that can be used as reference while updating documentation
+
+## Action Items
+
+### Technical Tasks
+- Assign artists to create dework tasks and moodboards for various spaces (mentioned by @Alsara2k)
+- Implement Camera AutoSwitching fallback feature (mentioned by [boom (16:08)])
+
+### Documentation Needs
+- Order and configure an orbit camera with restricted degrees of movement. (mentioned by [boom (16:23)])
+- Update documentation for new authentication flow (mentioned by [username])
+
+### Feature Requests
+- Consider implementing a system in both 2D (hackathon) before transitioning to 3D design. (mentioned by @jin)
+- Implement feature to handle multiple users with same name (mentioned by [username])
\ No newline at end of file
diff --git a/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-07.md b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-07.md
new file mode 100644
index 0000000000..3617fd51db
--- /dev/null
+++ b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-07.md
@@ -0,0 +1,56 @@
+# 3d-ai-tv 2024-12-07
+
+## Summary
+The conversation focused on integrating @bigdookie's artwork as bumpers in their platform. The team discussed automation possibilities, with the sky being 'the limit.' They also considered using TLDraw to create a visual mindmap for project planning and tracking.
+
+## FAQ
+- Can we add @bigdookie's work as bumpers? What role does it require? (asked by @boom)
+- Should the visual mindmap be created in Google Docs or Figma for better collaboration and tracking of ideas? (asked by @whobody)
+- Do writers need to have experience with 3D modeling? No, they don't. Writers can participate without having a background in 3d modelling. (asked by @whobody)
+- What are the specific skills needed for JSON wrangling?, (asked by [whobody](09:46))
+- How can we make our cameras more robust to prevent fading during shows? (asked by [boom](09:47))
+- Is managing the new data source going to be challenging?, // FAQs are limited due to lack of significant questions in chat transcript. (asked by [whobody](09:47))
+- Do we need video producers? Why is it complicated for comfy stuff to be fast-paced? (asked by [boom](09:56))
+- What are the next steps in establishing a Creative Studio and bidding on projects? How does budget influence project success? (asked by [whobody, boom](10:27))
+- How will the open-source approach help us? How can Banodoco handle bids on their end? (asked by [boom (10:00)])
+- Can we prompt an engineer to help the story arch or main punchlines for AI-assisted writing? How does it come together with human and AI collaboration in filmmaking? (asked by [boom] (10:05))
+
+## Who Helped Who
+- @boom helped @whobody with Creating a visual mindmap for project planning and tracking. by providing @boom suggests using TLDraw, an open-source infinite canvas tool.
+- helped [boom](08:26) with No significant help interactions by providing
+- @boom helped @jin and @whobody with Finding suitable contributors for the project by providing Boom suggested a 'git-gud' challenge to filter participants
+- Reassured boom that managing the new data source won't be too difficult. helped [boom] with Manage JSON wrangling for a new Data Source by providing [whobody](09:47)
+- [boom] helped [whobody] with Discussing creative ideas for integrating technology into an arts space. by providing Boom supported Whobody's idea of AI art bots and contributed to the concept with suggestions like 'AI Art Walkthru', 'Art Battles'.
+- helped [boom](09:56) with Discussing project details, budget & rates by providing
+- [boom] helped [whoever is interested in video production and project bidding process] with Discussed the need for a Creative Studio with people able to bid on projects, emphasizing budget as an important factor by providing [whobody, boom](10:27)
+- [boom] helped [whobody] with Problem-solving regarding project direction by providing Discussing the importance of directorial skills in creating a decentralized platform, with reference to iconic directors like Steven Spielberg and Stanley Kubrick.
+- [boom] (10:05) helped [whobody] with Creating a better understanding and approach to incorporate AI into filmmaking. by providing Discussing potential of using AI assistance in creative processes like scriptwriting.
+- [whobody](10:07) helped boom with Discussing potential solutions for Hollywood industry issues by providing boom suggests using AI writing to mitigate effects of writers' strike
+
+## Action Items
+
+### Technical Tasks
+- Automate bumpers with @bigdookie's artwork (mentioned by @whobody)
+- Investigate potential water pipe issues (mentioned by [boom](08:26))
+- Develop an example of work in the field to aid understanding and contribution back from members. (mentioned by @boom)
+- Create a script to extract data from Discord channels (mentioned by @jin)
+- Outline of JSON wrangling skills needed for data source management (mentioned by [boom](09:46))
+- Develop AI art bots for automated creative processes (mentioned by [whobody])
+- Automate audio manipulation for digital graffiti (mentioned by [whobody](09:51))
+- Establishing video production team (mentioned by [boom](09:56))
+- Open source all project components (mentioned by [boom (09:59)])
+- Inject film/crew/studio energy into movements (mentioned by [whobody])
+
+### Documentation Needs
+- Create a visual mindmap for project planning and tracking, using Google Docs or Figma. (mentioned by @whobody)
+- Create an official onboarding route for the Discord room. (mentioned by @whobody)
+- Create basic documentation for virtual production roles (mentioned by @boom)
+- Develop bounty template for prompt engineering tasks (mentioned by @jin)
+- Reach out to potential collaborator and discuss project details, budget & rates. (mentioned by [boom](09:56))
+- Consider bounties for sourcing the team and their rates. (mentioned by [whobody, boom](10:27))
+- Form solid teams for handling bids on Banodoco repository. (mentioned by [whobody, boom])
+
+### Feature Requests
+- Implement a 'git-gud' challenge to filter participants (mentioned by @boom)
+- Develop robust cameras to prevent fading during shows. (mentioned by [boom](09:47))
+- Create a space where brands can showcase their marketing efforts through AI art battles and automated displays. (mentioned by [boom, whobody])
diff --git a/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-08.md b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-08.md
new file mode 100644
index 0000000000..6ed01d0818
--- /dev/null
+++ b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-08.md
@@ -0,0 +1,22 @@
+# 3d-ai-tv 2024-12-08
+
+## Summary
+The chat focused on technical discussions about implementing a polling algorithm and processing JSON data for it. The participants also discussed AI show concepts, approaches in various software platforms like Unity/Unreal Engine.
+
+## FAQ
+- Could @boom join the call? (07:30) - Answered by '@big trav' (asked by @whobody)
+
+## Who Helped Who
+
+
+## Action Items
+
+### Technical Tasks
+- Implement a polling algorithm (mentioned by @boom)
+- Fork project to GitHub version, remove extra scenes (mentioned by @boom)
+
+### Documentation Needs
+- Process JSON data for the Poll Algorithm. (mentioned by @boom)
+
+### Feature Requests
+- Explore AI show concepts and approaches (mentioned by @boom)
\ No newline at end of file
diff --git a/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-09.md b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-09.md
new file mode 100644
index 0000000000..294dbf93bf
--- /dev/null
+++ b/docs/community/Discord/collaborations/3d-ai-tv/chat_2024-12-09.md
@@ -0,0 +1,19 @@
+# 3d-ai-tv 2024-12-09
+
+## Summary
+The main technical discussion revolved around handling events in a specific order based on timestamps. Boom shared code for processing these events and managing their respective methods, while also addressing concerns about duplicate event calls during testing.
+
+## FAQ
+- How is the timestamp management and method calling based on event type handled? Is there a need to run tests again or skip processed events in order? (asked by @SM Sith Lord)
+- Is another 'speakComplete' handling method needed, similar to prepareSceneCompleteEvent() ? (asked by @SM Sith Lord)
+
+## Who Helped Who
+- @SM Sith Lord helped [Discord Channel Members] with Event Processing by providing Boom provided code for event processing and timestamp management.
+
+## Action Items
+
+### Technical Tasks
+- Setup local Eliza homework and API setup on UE front by PENDINGREALITY. (mentioned by PENDINGREALITY)
+
+### Feature Requests
+- Implement a method for handling 'speakComplete' events (mentioned by @SM Sith Lord)
\ No newline at end of file
diff --git a/docs/community/Discord/development/agent-dev-school/chat_2024-11-28.md b/docs/community/Discord/development/agent-dev-school/chat_2024-11-28.md
new file mode 100644
index 0000000000..9a50aa7dfb
--- /dev/null
+++ b/docs/community/Discord/development/agent-dev-school/chat_2024-11-28.md
@@ -0,0 +1,18 @@
+# agent-dev-school 2024-11-28
+
+## Summary
+The main technical discussion revolved around creating a solution to periodically extract coders' questions from the chat, synthesize 'next class topic', manage Extract-Transform-Load (ETL) processes using GitHub & Discord data. The proposed approach involves setting up cron jobs and building repositories for easy accessibility of this information.
+
+## FAQ
+- What does it mean to pass the providers as in yesterday's video? Is data ingested automatically by the agent, and what endpoints are exposed after pnpm start for clients interacting directly with agents? (asked by @shaw (00:15))
+
+## Who Helped Who
+- @yikesawjeez (13:57) helped @shaw with Building an ETL pipeline for Discord data extraction and management. by providing @Odilitime@jin will work together to build a solution based on yikesawjeez's suggestion.
+
+## Action Items
+
+### Technical Tasks
+- Set up a cron job to periodically dump coders' questions, synthesize 'next class topic', and manage ETL from Discord. (mentioned by @yikesawjeez)
+
+### Documentation Needs
+- Create a repository to extract data from both GitHub and Discord for easy accessibility, transformation, and utilization. (mentioned by @Odilitime)
\ No newline at end of file
diff --git a/docs/community/Discord/development/agent-dev-school/chat_2024-11-29.md b/docs/community/Discord/development/agent-dev-school/chat_2024-11-29.md
new file mode 100644
index 0000000000..c12c4dbb55
--- /dev/null
+++ b/docs/community/Discord/development/agent-dev-school/chat_2024-11-29.md
@@ -0,0 +1,20 @@
+# agent-dev-school 2024-11-29
+
+## Summary
+The main technical discussion revolved around implementing an array to store large sets of data as knowledge for a character. Shaw suggested this approach, and MetaMike confirmed its implementation in the new branch. Jin provided additional context by sharing relevant documentation on GitHub regarding 'knowledge' system details.
+
+## FAQ
+- Any recs on including large sets of data as knowledge for a character? (asked by @marcus)
+- Array of strings go into the character file under 'knowledge'? (asked by @MetaMike)
+- Wanna do book report series to learn about knowledge system and create NFTs for it? (asked by @yikesawjeez)
+
+## Who Helped Who
+- @jin helped @MetaMike with Understanding of character file structure. by providing Sharing a link on how the 'knowledge' feature works
+
+## Action Items
+
+### Technical Tasks
+- Implement an array to store large sets of data as knowledge for a character (mentioned by @shaw)
+
+### Documentation Needs
+- Update documentation on how the new feature works and its implementation details. (mentioned by )
\ No newline at end of file
diff --git a/docs/community/Discord/development/agent-dev-school/chat_2024-11-30.md b/docs/community/Discord/development/agent-dev-school/chat_2024-11-30.md
new file mode 100644
index 0000000000..0bfc4573cd
--- /dev/null
+++ b/docs/community/Discord/development/agent-dev-school/chat_2024-11-30.md
@@ -0,0 +1,20 @@
+# agent-dev-school 2024-11-30
+
+## Summary
+The chat segment focused on resolving an environment variable (.env) file being unrecognized in the directory. The solution involved checking git status, ensuring no deletion occurred and creating a new env from example using `cp` command.
+
+## FAQ
+- Why is my env file not being found in directory? It's there but maybe I am doing something wrong. What should be the solution for this issue? (asked by [POV])
+- How to get plugin-image-generation working with Twitter API? Do we need a separate .env file and update OpenAI api key or just add the plugin in our agent's configuration? (asked by [pelpa | pelpa-stakeware.xyz])
+- Where to include API details if I want to use midjourney with Eliza? Is there an alternative like flux or fal.ai that can be used instead of the non-existent MidJourney API? (asked by [pelpa | pelpa-stakeware.xyz])
+
+## Who Helped Who
+- [YoungPhlo] helped [POV] with Resolving .env not found issue by providing [ferric | stakeware.xyz] suggested checking git status and mentioned a possible deletion, then provided command to create new env file from example.
+
+## Action Items
+
+### Technical Tasks
+- Check git status to ensure .env file is not deleted (mentioned by [ferric | stakeware.xyz])
+
+### Documentation Needs
+- Run `cp .env.example .env` command to create a new env file from example (mentioned by [YoungPhlo])
\ No newline at end of file
diff --git a/docs/community/Discord/development/agent-dev-school/chat_2024-12-01.md b/docs/community/Discord/development/agent-dev-school/chat_2024-12-01.md
new file mode 100644
index 0000000000..706cd2c125
--- /dev/null
+++ b/docs/community/Discord/development/agent-dev-school/chat_2024-12-01.md
@@ -0,0 +1,22 @@
+# agent-dev-school 2024-12-01
+
+## Summary
+Discussion focused on extending functionality of a Discord bot using actions, plugins (mentioned by W3_Bounty), solving an Unauthorized error when linking Solona wallet (Howie Duhzit's issue resolved with Yoni’s help). DorianD inquired about AI models and image-text generation separation. Shaw suggested focusing on image generation for development school.
+
+## FAQ
+- Why am I getting an Unauthorized error when linking a Solona wallet? How can it be resolved? (asked by @Howie Duhzit)
+- What is the most used AI model currently, and how to separate image generation from text gen in Discord using X Grok or OpenAI API key for different purposes? (asked by [DorianD])
+
+## Who Helped Who
+- [Yoni] helped @DorianD with Image generation with fal.ai and custom lora models by providing @Howie Duhzit
+- [Shaw (23:45)] helped [DorianD] with Fixing an issue with TOGETHER API key overwriting OpenAI's settings by providing Identifying and fixing the incorrect order of API keys in .env file to resolve image generation error.
+
+## Action Items
+
+### Technical Tasks
+- Extend functionality with actions, plugins (mentioned by [W3_Bounty])
+- Reorder TOGETHER API key before OpenAI key in .env file (mentioned by [DorianD (23:45)])
+
+### Documentation Needs
+- Update .env file for image generation settings and API keys. (mentioned by [DorianD])
+- Update generation.ts to include missing Heurist condition for image provider selection. (mentioned by [shaw, DorianD])
\ No newline at end of file
diff --git a/docs/community/Discord/development/agent-dev-school/chat_2024-12-02.md b/docs/community/Discord/development/agent-dev-school/chat_2024-12-02.md
new file mode 100644
index 0000000000..8e7c797e44
--- /dev/null
+++ b/docs/community/Discord/development/agent-dev-school/chat_2024-12-02.md
@@ -0,0 +1,21 @@
+# agent-dev-school 2024-12-02
+
+## Summary
+DorianD successfully implemented together/LLAMACLOUD image generation and is working on resolving an openai dependency issue with the Twitter model. Agora sought help understanding plugin management, which Odilitime provided guidance for.
+
+## FAQ
+- Is it better to start with eliza or eliza-starter? What factors should be considered when making this decision? (asked by [passion])
+- (asked by [Odilitime])
+
+## Who Helped Who
+- Odilitime helped agora with Understanding how plugins are managed in Eliza by providing Odilitime provided a link to the GitHub repository for plugin management
+- [Odilitime] helped [passion] with by providing Advice on whether to start with Eliza or eliza-starter based on source modification plans
+
+## Action Items
+
+### Technical Tasks
+- Investigate openai dependency issue with Twitter model (mentioned by DorianD)
+- Decide between starting with eliza or eliza-starter based on source modification plans (mentioned by [Odilitime])
+
+### Documentation Needs
+- Update documentation to reflect the decision between using Eliza and Eliza Starter for new projects. (mentioned by )
\ No newline at end of file
diff --git a/docs/community/Discord/development/agent-dev-school/chat_2024-12-03.md b/docs/community/Discord/development/agent-dev-school/chat_2024-12-03.md
new file mode 100644
index 0000000000..de9b368a6d
--- /dev/null
+++ b/docs/community/Discord/development/agent-dev-school/chat_2024-12-03.md
@@ -0,0 +1,27 @@
+# agent-dev-school 2024-12-03
+
+## Summary
+The chat segment focused primarily on the technical aspects of self-learning, particularly in relation to node.js programming language. W3_Bounty shared their learning process which involved watching educational videos followed by practical coding exercises using a 'hello world' plugin for troubleshooting and understanding concepts better.
+
+## FAQ
+- How did you learn all these in depth, from vides or documentation?...can you give some pointers? (asked by @Tharakesh)
+- And where can I find these...I didn't find these in the docs (asked by @Tharakesh)
+- (asked by @W3Bounty)
+- Which free alternatives to Claude can you recommend for proof-of-concept? And how much does it cost to test with the actual service, like Claude's API keys and testing budget of $5 per day? (asked by [chevronkey] (22:42))
+- Heurist is free but has a quota/limit. The Coders Room offers pins to access more options. (asked by [SotoAlt | WAWE] (22:45))
+
+## Who Helped Who
+- @W3Bounty helped @Tharakesh with Learning Node.js and creating documentation by providing Guidance on learning process
+- [SotoAlt | WAWE] (22:45) helped chevronkey with Provided information on Heurist as a free alternative with quota/limit and directed to Coders Room for more options. by providing [Odilitime](23:02)
+
+## Action Items
+
+### Technical Tasks
+- Investigate Heurist as proof-of-concept for local model implementation (mentioned by [SotoAlt | WAWE](22:45))
+
+### Documentation Needs
+- Create documentation for learning process (mentioned by @W3Bounty)
+
+### Feature Requests
+- Consider using paid AI model services to get working API keys. (mentioned by @estpeer)
+- Obtain API keys and test Claude's service with a budget of $5 for initial testing (mentioned by [SotoAlt | WAWE](22:45))
\ No newline at end of file
diff --git a/docs/community/Discord/development/agent-dev-school/chat_2024-12-04.md b/docs/community/Discord/development/agent-dev-school/chat_2024-12-04.md
new file mode 100644
index 0000000000..b1f6c14390
--- /dev/null
+++ b/docs/community/Discord/development/agent-dev-school/chat_2024-12-04.md
@@ -0,0 +1,17 @@
+# agent-dev-school 2024-12-04
+
+## Summary
+The chat focused primarily on technical issues related to obtaining keys, setting up Solana plugins and troubleshooting API token errors. [estpeer](03:43) provided insight into the need for an application submission in order to get a key based upon personal experience.
+
+## FAQ
+- Do I need to submit an application in order to get a key? What happened with your case? (asked by [estpeer](03:43))
+- Anyone had luck getting the Solana plugin going or know why it might be giving me a 401 error despite correct API keys set up? Kind of stuck. (asked by [Bunchu](11:59))
+
+## Who Helped Who
+- [Bunchu](11:59) helped Solana plugin issue with Provided input on key application process. by providing [estpeer](03:43)
+
+## Action Items
+
+### Technical Tasks
+- Submit application to obtain key (mentioned by [estpeer](03:43))
+- Troubleshoot Solana plugin 401 error issue. (mentioned by [Bunchu](11:59))
\ No newline at end of file
diff --git a/docs/community/Discord/development/agent-dev-school/chat_2024-12-05.md b/docs/community/Discord/development/agent-dev-school/chat_2024-12-05.md
new file mode 100644
index 0000000000..ed5c811038
--- /dev/null
+++ b/docs/community/Discord/development/agent-dev-school/chat_2024-12-05.md
@@ -0,0 +1,20 @@
+# agent-dev-school 2024-12-05
+
+## Summary
+The most significant technical discussions revolved around a bug causing `pnpm start` to crash due to excessive data, and the difference between Solana plugin vs Goat one. The community provided solutions for accessing YouTube captions by uploading vtt or srt files.
+
+## FAQ
+- What's the difference between Solana plugin and Goat one? What was mentioned as a possible solution? (asked by @SotoAlt | WAWE (02:02))
+- Is Dev School happening on YouTube or Discord, @shaw (18:36)? (asked by @Bunchu)
+- How can I navigate to relevant parts of the video using transcripts? What workaround was suggested? (asked by @boyaloxer)
+
+## Who Helped Who
+- @boyaloxer helped Dev School attendees with Accessibility of video transcripts by providing @YoungPhlo provided a solution for accessing captions on YouTube videos by uploading vtt or srt files.
+
+## Action Items
+
+### Technical Tasks
+- Address bug causing `pnpm start` crash due to excessive data (mentioned by @coinwitch (ai16z intern))
+
+### Documentation Needs
+- Prepare vtt or srt file for YouTube video transcript accessibility. (mentioned by @YoungPhlo)
\ No newline at end of file
diff --git a/docs/community/Discord/development/agent-dev-school/chat_2024-12-06.md b/docs/community/Discord/development/agent-dev-school/chat_2024-12-06.md
new file mode 100644
index 0000000000..2521c63c65
--- /dev/null
+++ b/docs/community/Discord/development/agent-dev-school/chat_2024-12-06.md
@@ -0,0 +1,18 @@
+# agent-dev-school 2024-12-06
+
+## Summary
+The chat focused on understanding differences in memory management for documents and fragments. @djdabs clarified that 'documents' are higher-level mappings, while 'knowledge' is chunked up with embeds.
+
+## FAQ
+- What's the difference between knowledge manager & document manager? Is it outdated code since I don’t see tables for documents or fragments in default startup? 🤔 (asked by @djdabs)
+
+## Who Helped Who
+- @Odilitime helped @djdabs with Understanding the difference between knowledge manager & document manager by providing @djdabs explained how to use MemoryManager and where to find relevant functions.
+
+## Action Items
+
+### Technical Tasks
+- Review code for document/fragment management (mentioned by @djdabs)
+
+### Documentation Needs
+- Watch Dev School Part 3 and share with junior dev team members. (mentioned by @Robin)
\ No newline at end of file
diff --git a/docs/community/Discord/development/agent-dev-school/chat_2024-12-07.md b/docs/community/Discord/development/agent-dev-school/chat_2024-12-07.md
new file mode 100644
index 0000000000..37db9b8ac5
--- /dev/null
+++ b/docs/community/Discord/development/agent-dev-school/chat_2024-12-07.md
@@ -0,0 +1,25 @@
+# agent-dev-school 2024-12-07
+
+## Summary
+The technical discussion focused primarily around database schema design, with Yoni suggesting that creating concrete schemas for tables expected to grow significantly would be beneficial. This approach could help avoid potential scaling issues in the future.
+
+## FAQ
+- Anyone hiring junior devs? I have experience in business development, marketing and sales as well. Any suggestions for where to look or how to proceed with job search? asked by @chevronkey
+- I didn't see much there for junior devs roles in business development, marketing and sales - any other suggestions? I will look again. (asked by @chevronkey (21:53))
+- Where can one post their resume to find job opportunities? (asked by @Odilitime)
+- (asked by [@chevronkey](21:53))
+- Where can one find job opportunities or get help with finding a role? (asked by @Odilitime (20:20))
+- How can one post their resume on the platform? (asked by @Odilitime (22:41))
+- (asked by @chevronkey
+
+## Who Helped Who
+- @chevronkey(21:53) helped [@chevronkey](21:53) with Finding a role in business development, marketing and sales by providing @Odilitime (20:20) suggested #bountys-gigs-jobs for job opportunities
+- [@Odilitime] helped @chevronkey with Posting a Resume by providing @Odilitime (22:41) advised to post resume on the platform
+
+## Action Items
+
+### Technical Tasks
+- Create concrete schemas for tables with known growth potential (mentioned by [Yoni](02:36))
+
+### Feature Requests
+- Post resume on #bountys-gigs-jobs for junior dev or biz development roles (mentioned by [Odilitime](22:41))
diff --git a/docs/community/Discord/development/agent-dev-school/chat_2024-12-08.md b/docs/community/Discord/development/agent-dev-school/chat_2024-12-08.md
new file mode 100644
index 0000000000..3b28c3fd2c
--- /dev/null
+++ b/docs/community/Discord/development/agent-dev-school/chat_2024-12-08.md
@@ -0,0 +1,18 @@
+# agent-dev-school 2024-12-08
+
+## Summary
+The conversation revolves around troubleshooting a specific technical problem (issue #921) related to the bot 'Eliza'. Kevin Mok is experiencing difficulties while using '@eliza', and st4rgard3n provided guidance on checking API keys, Discord Bot token setup in environment variables, and ensuring correct permissions. The issue remains unresolved.
+
+## FAQ
+- Hi, I'm looking for help with issue #921 `Stuck querying when @'ing it in Discord` with Eliza. (asked by @Kevin Mok)
+
+## Who Helped Who
+- @st4rgard3n helped @KevinMok with Troubleshoot issue #921 `Stuck querying when @'ing it in Discord` with Eliza. by providing st4rgard3n provided troubleshooting steps and asked Kevin Mok to confirm if the bot has correct permissions.
+
+## Action Items
+
+### Technical Tasks
+- Investigate issue #921 `Stuck querying when @'ing it in Discord` (mentioned by Kevin Mok)
+
+### Documentation Needs
+- Review documentation for adding bot to Discord and ensure all steps are followed correctly. (mentioned by st4rgard3n)
\ No newline at end of file
diff --git a/docs/community/Discord/development/agent-dev-school/chat_2024-12-09.md b/docs/community/Discord/development/agent-dev-school/chat_2024-12-09.md
new file mode 100644
index 0000000000..24888cca63
--- /dev/null
+++ b/docs/community/Discord/development/agent-dev-school/chat_2024-12-09.md
@@ -0,0 +1,24 @@
+# agent-dev-school 2024-12-09
+
+## Summary
+Discussion focused on resolving issues related to Supabase DB and a custom agent's plugin causing errors. Suggestions included rebuilding the project, saving off configurations/env vars, investigating git status output for potential causes of problems.
+
+## FAQ
+- How to resolve 'ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL' error? 🤔 (asked by @SotoAlt | WAWE)
+- What could be causing the plugin to cause errors when deployed? (asked by @djdabs, @Agent Joshua $₱)
+
+## Who Helped Who
+- @Arata helped @0xArata, @djdabs with Resolve agent not creating rooms issue with Supabase DB. by providing SotoAlt | WAWE suggested deleting db sqlite and rebuilding.
+- @Kevin Mok helped @djdabs, @st4rgard3n with Resolve error when running repo with new plugin. by providing Agent Joshua $₱ suggested saving off character config and env vars then starting from scratch.
+- [Agent Joshua $] (21:37) helped [djdabs] with Resolving git changes by providing Adding unstaged files and building/starting the agent
+
+## Action Items
+
+### Technical Tasks
+- Kevin Mok (@st4rgard3n) and djdabs to debug the error related to new plugin. (mentioned by @djdabs, @Agent Joshua $₱)
+- Kevin Mok (@st4rgard3n) and djdabs to investigate the issue with `git status` output. (mentioned by @djdabs, @Agent Joshua $₱)
+- Add all modified, new, or deleted files to staging area (mentioned by [djdabs])
+- Build and start the agent after adding unstaged changes (mentioned by [Agent Joshua $] (21:37))
+
+### Feature Requests
+- djdabs to investigate plugin causing error (mentioned by @st4rgard3n, @Agent Joshua $₱)
\ No newline at end of file
diff --git a/docs/community/Discord/development/autonomous-hackathon/chat_2024-12-08.md b/docs/community/Discord/development/autonomous-hackathon/chat_2024-12-08.md
new file mode 100644
index 0000000000..f2509dd11d
--- /dev/null
+++ b/docs/community/Discord/development/autonomous-hackathon/chat_2024-12-08.md
@@ -0,0 +1,19 @@
+# 🌱-autonomous-hackathon 2024-12-08
+
+## Summary
+The chat focused on discussing potential AI applications for an Autonomous Hackathon event and open source projects development assistance.
+
+## FAQ
+- What are some build ideas for the Autonomous Hackathon? (19:48) ?response_by=AIFlow.ML (asked by @Jam long | Gaia 🌱)
+- Which three AI projects from this list would be most beneficial to ai16z?(23:05) (asked by @jin)
+
+## Who Helped Who
+- AIFlow.ML, @jin helped @jam_long with Providing hackathon project ideas by providing Jam long | Gaia 🌱 asked for build ideas and received suggestions on various applications of an AI agent in open source development (19:48)
+
+## Action Items
+
+### Technical Tasks
+- Develop an AI agent to assist with GitHub tasks, answering FAQs, onboarding developers, summarizing updates (mentioned by @jin)
+
+### Feature Requests
+- Create a Jedi Council multi-agent simulation for feedback and strategy assistance in open source projects. (mentioned by @AIFlow.ML)
\ No newline at end of file
diff --git a/docs/community/Discord/development/autonomous-hackathon/chat_2024-12-09.md b/docs/community/Discord/development/autonomous-hackathon/chat_2024-12-09.md
new file mode 100644
index 0000000000..48a9857ef4
--- /dev/null
+++ b/docs/community/Discord/development/autonomous-hackathon/chat_2024-12-09.md
@@ -0,0 +1,33 @@
+# 🌱-autonomous-hackathon 2024-12-09
+
+## Summary
+The chat segment focused on the development of an AI agent for assisting users within Discord, leveraging GitHub's assistance. The proposed solution involves creating a Python setup that connects APIs with frontend applications and utilizing TypeScript/JavaScript to build this feature using Eliza client. Additionally, automating newsletter creation was discussed as part of ai16z weekly show updates.
+
+## FAQ
+- How can I personally contribute to the AI agent and GitHub assisting ideas? What are some valuable ways these features could be implemented in Discord? (asked by @YoungPhlo)
+- What does a Community Strategist do, particularly within this context of implementing new tools for onboarding and troubleshooting? How can we leverage Python to speed up prototyping? (asked by @AIFlow.ML)
+- Can we team up to work together? Who can I contact about this collaboration? (asked by @AIFlow.ML)
+- How do you plan on automating documentation and the hackathon's onboarding process? (asked by @chris)
+- Trigger comes from the webhook? How does it work in our context? (asked by [AIFlow.ML])
+- How can we find out what parts of docs are outdated dynamically? (asked by [jin])
+
+## Who Helped Who
+- @YoungPhlo helped @AIFlow.ML with Idea generation and collaboration to build new features in Discord using Eliza client. by providing @AIFlow.ML drafted a list based on @YoungPhlo's ideas, seeking input for further development
+- @chris helped @AIFlow.ML with GitHub automation by providing AIFlow.ML offered to team up with others for GitHub Multi Agent Automation project.
+- [AIFlow.ML] helped [jin] with Issue Reporting by providing AIFlow.ML provided guidance on creating a full report for new issues.
+
+## Action Items
+
+### Technical Tasks
+- Develop a Python setup for API-connected frontend applications (mentioned by @AIFlow.ML)
+- Automate tracking updates/writing newsletters for ai16z's weekly show (mentioned by @AIFlow.ML, @jin)
+- Develop automation for Eliza group using Python CLI to monitor webhooks from GitHub repo (mentioned by @chris)
+- Create a full report post for new issues on Discord and repository (mentioned by [AIFlow.ML])
+
+### Documentation Needs
+- Automate documentation and onboarding process for hackathon (mentioned by @jin)
+- Find dynamic ways to identify outdated documentation parts (mentioned by [jin, AIFlow.ML])
+
+### Feature Requests
+- Use Eliza with TypeScript/JavaScript to build AI agent in Discord for assisting users and onboard new developers (mentioned by @AIFlow.ML, @YoungPhlo)
+- Create a GitHub agent using Eliza client to help with onboarding and troubleshooting in Discord (mentioned by @AIFlow.ML, @jin)
\ No newline at end of file
diff --git a/docs/community/Discord/development/coders/chat_2024-11-27.md b/docs/community/Discord/development/coders/chat_2024-11-27.md
new file mode 100644
index 0000000000..7651cdf0c2
--- /dev/null
+++ b/docs/community/Discord/development/coders/chat_2024-11-27.md
@@ -0,0 +1,58 @@
+# 💻-coders 2024-11-27
+
+## Summary
+The chat focused on technical discussions around modifying Characters.ts to include data from .json files and creating a private Discord server for testing character interactions. Additionally, there was an issue with the dimensions of the Google Gemini model being discussed.
+
+## FAQ
+- How do I replicate index.tx and character.ts to create my own copy? What is the best approach for this task? (asked by @crazysailor1000)
+- What version of Google Gemini model should be used, considering error: expected dimensions mismatch with v0.1.4-alpha.3 vs v0.1.3? (asked by nomansky)
+- How do you get Twitter's V2 API? How is it different than version one and what can I not do on v1 that I could with the new release, like polls? What are some of your thoughts about using goat-x instead for integration purposes? », (asked by N00t)
+- How to make the bot take action on tweets?
+Answer: @redbull.eth - Switch up character file and delete sqlite db, but cache might need updating. (asked by @puremood)
+- Are replies connected with post interval or done independently? (asked by @Konstantine)
+- How often are the bot's responses generated?
+Answer: @Bootoshi - Default is 15 minutes, but it might be wrong. (asked by @puremood)
+- What is a good solution for hosting agents? Is Vercel suitable? (asked by Cheelax | zKorp☁)
+- Can someone provide an example of the format for Twitter cookies inside character secrets? (asked by NavarroCol / Vicky Dev/ noDMs)
+- Is there a comprehensive guide on setting up agents and posting to social media like Twitter? (asked by LargeCryptoDude)
+- Did you solve this issue with generating text loops in WSL 2 environment? (asked by Second State)
+
+## Who Helped Who
+- @nomansky helped Google Gemini model error issue, suggested trying version alpha.3. with Resolving dimension mismatch in Google Gemini Model by providing @SotoAlt | WAWE
+- hosermage helped unknown with Understanding API integration by providing Hosermage provided a link to GitHub issue explaining how an openai key is needed.
+- @puremood helped All members in the chat with Switching agent's character file by providing @redbull.eth and others provided advice on switching character files to solve old post issues.
+- puremood helped Konstantine with Creating new Discord channels by providing Konstantine received help from puremood regarding the need for a 'Quickstart Help' channel.
+- Mfairy and AzFlin helped NavarroCol/VickyDev with Resolving a documentation error by providing NavarroCol / Vicky Dev fixed an issue with missing client information in their character secrets.
+- @Artego helped @NavarroCol / VickyDev/nodms (05:34) with AI agent development by providing Vicky Dev provided information about AI Agent picture provision feature during scrapping phase.
+- @Kush | Cartman helped @NavarroCol / VickyDev/nodms (05:42) with AI agent development by providing Vicky Dev provided information about potential copyright issues with music covers.
+- @hosermage helped @NavarroCol / @VickyDev with Discussed the importance of song quality and catalog diversity, providing feedback on current issues. by providing @DorianD (05:48)
+- [juneaucrypto | The Interns AI] (07:23) helped [g] with Learning how to code by providing [RL](06:54) provided advice on learning coding and building small projects
+- @puremood helped @Yoni with Understanding model provider flexibility by providing PureMood provided guidance on using any API for text and image generation.
+
+## Action Items
+
+### Technical Tasks
+- Modify Characters.ts to include data from .json file (mentioned by crazysailor1000)
+- Replace Twitter agent with goat-x for new functions (mentioned by Bootoshi)
+- Implement a caching mechanism to prevent double replies (mentioned by puremood)
+- Create a 'Quickstart Help' channel for new users setting up character files. (mentioned by puremood)
+- Discuss with Vicky Dev to improve music quality (mentioned by @DorianD (05:20))
+- Update character JSON file to fix old replies issue (mentioned by @redbull.eth)
+- Make perplexity plugin work across different clients, not just terminal (mentioned by [auto troph (06:04)])
+- Investigate using different model providers for text generation vs image processing (mentioned by @Yoni)
+- Improve memory usage of agent (mentioned by cygaar)
+- Replace GPT-4 checkpoint with fine-tuned model by setting OPENAI_BASE_URL to server link for the non OAI model. (mentioned by _Xd9f)
+
+### Documentation Needs
+- Create a private Discord server for testing character interactions. (mentioned by crazySailor1000)
+- Obtain API key from twitter, avoid v2 integration. (mentioned by Bootoshi)
+- Update the banned words list implementation, ensuring it does not affect response generation even if chaos is in prompt. (mentioned by AzFlin)
+- Update documentation to include information on replying automatically (mentioned by Konstantine)
+- Resolve TypeScript error for 'direct' client assignment (mentioned by [juneaucrypto | The Interns AI](07:23))
+- Customize functionalities like replies, system prompts within character files. (mentioned by @crazysailor1000)
+- Documentation on setting up Eliza in WSL2 environment. (mentioned by /u/mina)
+- Edit packages/core/src/models.ts and change 'endpoint:' key in models to preferred URL for the assigned provider (mentioned by yikesawjeez)
+
+### Feature Requests
+- Provide feedback on AI Agent's picture provision feature during scrapping phase. (mentioned by @Artego (05:34))
+- Improve song catalog quality, focusing on non-meme songs and genres. (mentioned by @NavarroCol / @VickyDev)
\ No newline at end of file
diff --git a/docs/community/Discord/development/coders/chat_2024-11-28.md b/docs/community/Discord/development/coders/chat_2024-11-28.md
new file mode 100644
index 0000000000..3e63a13440
--- /dev/null
+++ b/docs/community/Discord/development/coders/chat_2024-11-28.md
@@ -0,0 +1,56 @@
+# 💻-coders 2024-11-28
+
+## Summary
+Discussion focused on integrating a newly modified 'Twitter-Client' into the codebase. The modification allows for sending tweets and retweets without requiring Twitter API access, running in both browser & server environments.
+
+## FAQ
+- Is modified Twitter-client module a replacement for 'Twitter-Client' or the scraper? What is its purpose and how does it differ from original twitter client? (asked by @N00t)
+- How to import solanaPlugin into charactor.ts file in agents/index.js. (asked by @hΔrdshell)
+- What's @shaw 's YT channel name? (01:55)? (asked by @Jaseem)
+- Is there any way I can run models without paying for tests?(02:27) (asked by @jaseem)
+- Why is the system trying to use Llama when XAI_MODEL=gpt-4o-mini and with OpenAI key in .env? Who can answer this question? (asked by Whale 🐋 (03:42))
+- How do I prevent the agent from responding to past messages after a restart, so it doesn't interact again on Twitter when changes are made and started anew? Who can answer this question? (asked by ray (04:40))
+- Issue with not being able to post new tweets after merging specific GitHub pull request. Has anyone else faced the same issue and how did they resolve it? Who can answer this question? (asked by CaptainCool (04:51))
+- Can someone recommend a good base model to finetune an agent on, preferably compatible with unsloth 4bit training? Who can answer this question? (asked by Havohej (05:03))
+- Why am I facing issues while running Eliza on Windows? What should be the correct Node version to use? (asked by [Tharakesh](05:14, 05:29))
+- How can `SupabaseDatabaseAdapter` be used as a `DbCacheAdapter`? Are there any missing methods that need implementation for this purpose? What is your experience with using Supabase and Eliza together? (asked by [AM](05:35))
+
+## Who Helped Who
+- @Odilitime helped @N00t with Understanding new twitter client functionality by providing Odilitime helped N00t understand the purpose and usage of modified Twitter-client module.
+- @hΔrdshell helped @Odilitime with Understanding the role of ENV variable in loading plugins, clarifying code snippet for plugin inclusion by providing hΔrdshell helped with solanaPlugin configuration and understanding of AgentRuntime
+- Everyone in the chat, including @shaw helped @fudme(01:31) with Connecting a bot's actions/functions on server by providing Customizing character and connecting to Discord (🔸 WFB)
+- CaptainCool helped All with Resolving Twitter agent client plugin string error in character.json file. by providing DataRelic (04:59) provided the GitHub link for CaptainCool's issue regarding not being able to post new tweets after merging specific changes.
+- [Tharakesh](05:16) helped Windows users facing issues with Eliza setup with Provided guidance on Node version and debugging using claude by providing [Radagast](05:32, 05:34)
+- [Mina] helped [Citizen1553, Tharakesh] with Technical issue resolution by providing Resolved missing properties in adapter
+- [DataRelic] helped [Mina, MrEnjOy_] with Feature implementation by providing Provided Twitter setup instructions for Eliza bot integration.
+- [Mina, DataRelic] helped Twitter cookies setup for environment. with by providing DataRelic helps Mina with adding Twitter client in character JSON file.
+- @hΔrdshell helped @radagast with Character Model Loading Issue by providing [Radagast] suggested setting up the trump character on correct model for hΔrdshell's issue with finding models.
+- @Alain Schaerer helped @Tharakesh with Explaining the intent of @dexbruce's PR. by providing Understanding pull request purpose
+
+## Action Items
+
+### Technical Tasks
+- Update dependencies to use modified Twitter-client module (mentioned by @N00t)
+- Implement vercel or replit integration (mentioned by @Odilitime)
+- Integrate data with Eliza using a custom plugin (mentioned by @Moudinho3)
+- Resolve character.json plugin string issue by modifying the default character in .ts format and starting it successfully. (mentioned by crazysailor1000)
+- Update Node version to match Eliza's requirements (mentioned by [Tharakesh](05:18))
+- Update PostgresDatabaseAdapter to resolve missing properties error (mentioned by [Citizen1553, Mina])
+- Add Twitter client to character JSON file (mentioned by [Mina, DataRelic])
+- Load character model correctly (mentioned by [hΔrdshell, Radagast])
+- Set API key for Hugging Face endpoints in .env file and index.ts. (mentioned by [Alain Schaerer, Radagast])
+- Prevent multiple downloads for localLama model on pnpm build (mentioned by @dexbruce)
+- Prepare a new Hugging Face endpoint without requiring explicit CUDA passing, to be compatible with Apple Silicon MacBooks using Metal. (mentioned by @dexbruce)
+
+### Documentation Needs
+- Document how agents interact with each other using rooms and actions in the codebase. (mentioned by @razor)
+- Configure max response length in the relevant file (mentioned by @Radagast)
+- Update README to explain Llama extension of Twitter agent client (mentioned by Bootoshi)
+- Use claude for debugging issues on Windows platform with Eliza setup. (mentioned by [Radagast](05:32))
+- Login into the twitter account and pull cookie details from browser dev tools for environment setup. (mentioned by DataRelic)
+- Simplify system to provide base URL, API key and model name only. (mentioned by @Alain Schaerer)
+
+### Feature Requests
+- Ensure domain is whitelisted for OpenAI API key usage or paste the key manually when using it. (mentioned by DataRelic)
+- Set up Twitter integration for Eliza bot using environment variables and dry run option. (mentioned by [DataRelic, MrEnjOy_])
+- Investigate Dstack TEE integration usage (mentioned by [KarlK | Galadriel])
\ No newline at end of file
diff --git a/docs/community/Discord/development/coders/chat_2024-11-29.md b/docs/community/Discord/development/coders/chat_2024-11-29.md
new file mode 100644
index 0000000000..8a5aa1f385
--- /dev/null
+++ b/docs/community/Discord/development/coders/chat_2024-11-29.md
@@ -0,0 +1,56 @@
+# 💻-coders 2024-11-29
+
+## Summary
+The discussion focused on technical issues related to setting up llama version information in both .env and character files. @TrenchFren suggested using a verified account instead of fresh one for getting the llama working, which was confirmed by others as well (@VI). The conversation also touched upon deploying servers via AWS EC2 Instance (mentioned by @VI) to achieve this setup.
+
+## FAQ
+- Do we need llama version information in both .env and character file? Do I deploy to a server using AWS EC2 Instance for this purpose? Or do you have any other suggestions on how can it be achieved? (asked by @jaseem)
+- 'For env vars, is the username just name without @ or should we use user id?' (asked by @hΔrdshell)
+- How can I configure my Twitter agent to respond when replies? How do you write it while keeping secrets in .env and changing everything necessary for lambda models without having solana set up yet, as well as fixing errors with hijacking OPENAI_BASE_URL & API KEY from the defaultCharacter.ts file? (asked by [SMA])
+- When running `pnpm start --character= (asked by [0xcooker])
+- Why does Twitter scraper not find all tweets in its search for my account? (asked by [RL])
+- Why is the bot not responding? What can be done to fix it? (asked by @hosermage)
+- How do I configure my Twitter agent to answer replies or comments on posts/tweets, and where should this configuration reside in codebase? (asked by @Konstantine)
+- How can I make my bot detect replies? (05:21)? (asked by @Konstantine)
+- Why does the character selection not work as expected and how to resolve 'Creating context' error?(05:23) (asked by AM)
+- Why aren't you on stable? (Referring to Ophiuchus project version) (asked by [SMA])
+
+## Who Helped Who
+- @TrenchFren helped general discussion group with llama version information setup by providing @TrenchFren suggested using a verified account instead of fresh one to get llama working.
+- @DataRelic helped @hΔrdshell with Twitter environment variable configuration by providing @DataRelic provided the correct format for Twitter env vars, which helped @hΔrdshell with his query about rate limiting.
+- [st4rgard3n (03:24)] helped Twitter scraper issue with shadowbanning account. with Configure Twitter agent for replies and lambda models without solana setup by providing hΔrdshell provided a solution to bypassing bot checks using real user cookies
+- [SMA (04:36)] helped Error with running Lambda model in .env file. with Fixing errors when using lambda models and hijacked OPENAI_BASE_URL & API KEY by providing [Tharakesh] suggested asking Claude or Copilot about the error
+- @Tharakesh helped @Teo with Provided steps to clean and reinstall packages. by providing Troubleshooting pnpm installation issues.
+- @hosermage helped Discord chat members who experienced bot's lack of response. with Debugging issue causing the bot to not respond by providing hosermage suggested checking debug messages for troubleshooting non-responses
+- @0xdexplorer helped @Konstantine with Fetching and updating necessary packages to resolve the problem. by providing @Konstantine asked for help with bot detection issue, @0xdexplorer suggested checking latest version of packages (05:21-05:27).
+- @Isk Heiheh helped @AM with Review and correct the character.character.json to resolve model mismatch. by providing AM asked for help with character selection issue, @IskHeiheh suggested reviewing syntax in heheh's character file (05:23-05:41).
+- [SMA] helped How do I revert back without messing up my fixes and additions? with Reverting to a previous version of the project by providing [Ophiuchus](05:38)
+- @puremood, @Ophiuchus helped @Tharakesh with Connecting Bot with twitter by providing Ophiuchus and puremood helped Tharakesh connect his bot to Twitter using a new version of 'agent-twitter-client' from github.
+
+## Action Items
+
+### Technical Tasks
+- Deploy to a server using AWS EC2 Instance (mentioned by @VI)
+- Configure Twitter scraper to bypass bot checks using real user cookies (mentioned by [hΔrdshell (03:44)])
+- Run stable version releases using code2prompt for Claude. (mentioned by @Ophiuchus)
+- Investigate debug messages to identify issues causing non-responses (mentioned by hosermage)
+- Update Konstantine's bot to detect replies (mentioned by @Konstantine)
+- Resolve issue with character selection in AM's bot using Trump or Tate characters. Investigate the cause of 'Creating context' error and model mismatch. (mentioned by @AM)
+- Review syntax for heheh character file, as mentioned by @IskHeiheh to ensure correctness. Investigate the cause of 'model' error and mismatch. (mentioned by @Isk Heiheh)
+- Token count & trim message history for debugging (mentioned by [Ophiuchus](05:35))
+- Clone eliza repository, checkout v0.1.4-alpha.3 tag (mentioned by @Ophiuchus)
+- Connect to Twitter using agent-twitter-client from github repo https://github.com/ai16z/agent-twitter-client/tree/main (mentioned by @puremood and @Ophiuchus)
+- Review character JSON file for missing elements (mentioned by [Isk heheh (05:59)])
+- Investigate LLM model connection issues with Heurist or similar services. (mentioned by [Isk heheh (05:59)])
+- Review manual login process to remove 2FA confirmation code requirement. (mentioned by [Tharakesh (06:04), puremood] [06:05])
+- Resolve TS2345 error by adding missing 'agentId' property to object (mentioned by @Ophiuchus)
+
+### Documentation Needs
+- Review and optimize token count in message handling process. (mentioned by 0xdexplorer)
+- Fetch latest version of packages for Konstantine, as suggested by @0xdexplorer. (mentioned by @0xdexplorer)
+- Resolve SqliteError: Vector dimension mismatch error when using fresh sqlite database. (mentioned by @Havohej)
+
+### Feature Requests
+- Update permissions for 8bitoracle bot on Discord servers. (mentioned by @hosermage)
+- Shorten character style guides, bio and lore temporarily to reduce memory usage. (mentioned by [Ophiuchus](05:35))
+- Update Twitter client npm for media support and topic functionality enhancements. (mentioned by [Ophiuchus, puremood] [06:00])
\ No newline at end of file
diff --git a/docs/community/Discord/development/coders/chat_2024-11-30.md b/docs/community/Discord/development/coders/chat_2024-11-30.md
new file mode 100644
index 0000000000..86150b1bbb
--- /dev/null
+++ b/docs/community/Discord/development/coders/chat_2024-11-30.md
@@ -0,0 +1,56 @@
+# 💻-coders 2024-11-30
+
+## Summary
+The chat focused on resolving issues related to environment setup, specifically creating a '.env' file. Additionally, there was discussion about configuring an automated response feature for Twitter interactions within their application.
+
+## FAQ
+- How can I fix the issue with our agent adding commentary to every tweet? - Answered by monas and Tharakesh (00:51) at different times. (asked by [POV])
+- Where should I add my custom action? (asked by Tharakesh)
+- Can the .env file be edited later? (at timestamp 01:52) - Answered by Tharakesh at timestamps 01:47, 01:53-01:58. The bot needs to run with a configured environment and can have its contents filled in afterward. (asked by [POV])
+- How to get into Ubuntu on WSL? How do I install PNPM globally in WSL? (asked by [POV])
+- Did you use the wsl command for accessing ubuntu terminals? (asked by [Tharakesh]
+- Why is npm install not working on WSL? How do I check if PNPM has been installed correctly in my system? (asked by [POV])
+- Did you try installing pnpm using cmd instead of wsl command? (asked by [Tharakesh)
+- How to guide Eliza to reply without @ mention on Twitter? Is it possible by choice of people or following etc.? (asked by @YoungPhlo (01:46))
+- Is there more detailed info available for the steps mentioned in this chat segment? (asked by @Tharakesh (02:58))
+- Where is the link? What does POV mean by 'agent'? (asked by @Tharakesh)
+
+## Who Helped Who
+- [Tharakesh (00:51)] helped (POV) with Fixing the agent's behavior with tweets and setting up .env file. by providing [monas, POV]
+- [Tharakesh] helped [POV] with .env configuration and bot activation by providing Tharakesh helped POV understand the .env file usage at timestamps
+- [Tharakesh](01:05) helped [POV] with Troubleshooting WSL issues with installing pnpm. by providing POV was guided by Tharakesch on how to access Ubuntu terminals and install PNPM globally.
+- [Nona](01:16) helped [POV] with Verifying the installation of pnpm. by providing Nona provided a solution to check if PNPM is installed correctly.
+- @!MakturbLab helped @YoungphLo (01:46) with SQLite database management, randomizing properties for characters by providing MaktubLabs helped YoungPhlo with SQLite deletion and character file adjustments.
+- @cMooreLabs helped @Tharakesh (02:53) with Twitter bot management by providing cmoorelabs provided tips on avoiding Twitter suspension.
+- @POV helped Tharakesh with Navigating game by providing POV helped Tharakesh navigate the beginning area of Kasoku.
+- Isk heheh helped Adjusting character file syntax for image generation model with Syntax correction by providing [POV]
+- Tharakesh and others helped 'EADDRINUSE' error explanation. with Error troubleshooting by providing ShakkerNerd
+- @POV helped @Isk heheh with Configuring agent to tweet more often & Image generation in character file by providing [Tharakesh] explained how time settings can be configured using .env variables and clarified that there's no requirement of adding anything into the character files.
+
+## Action Items
+
+### Technical Tasks
+- Create a .env file with necessary variables (mentioned by [Tharakesh (00:06)])
+- Edit .env file later with login information and other details. (mentioned by [POV](01:47))
+- Install PNPM globally on WSL (mentioned by [POV](01:16))
+- Create a .env file with necessary keys (mentioned by @Nona (ag/acc))
+- Investigate sol plugin unauthorized http error (mentioned by @Alpha)
+- Investigate Eternal AI API overload issue (mentioned by [BVM + Eternal AI])
+- Configure time settings for agent to tweet more often (mentioned by [POV, Tharakesh])
+- Adjust post interval minimum to improve chat frequency (mentioned by [Tharakesh](05:33))
+- Consider a 10-minute cooldown for old accounts to avoid suspension (mentioned by [Tharakesh](05:40))
+- Review new account behavior closely due to potential bot flagging issues. (mentioned by [solswappa](05:41-05:42))
+- Automate process of creating Twitter accounts (mentioned by solswappa)
+
+### Documentation Needs
+- Check Dev School video for guidance. (mentioned by [Tharakesh]
+- Replace XAI_MODEL=grok-beta in the configuration, if using Grok model. (mentioned by @POV)
+- Assist POV with agent code changes and upload issues. (mentioned by @POV)
+- Adjust boot up process to prevent failures during code changes. (mentioned by [POV])
+- Ensure image generation is correctly implemented in character file. (mentioned by [Isk heheh, POV])
+- Add basic e2e tests to ensure the build process stays healthy. (mentioned by Citizen1553)
+
+### Feature Requests
+- Configure agent to automatically reply to tweets or set up required configuration for this feature. (mentioned by [monas, Tharakesh (00:51)])
+- Configure bot to reply to tweets (mentioned by [Tharakesh](01:58))
+- Provide syntax for image generation model in character file, remove spaces after colons. (mentioned by [Isk heheh])
diff --git a/docs/community/Discord/development/coders/chat_2024-12-01.md b/docs/community/Discord/development/coders/chat_2024-12-01.md
new file mode 100644
index 0000000000..c2df6509e3
--- /dev/null
+++ b/docs/community/Discord/development/coders/chat_2024-12-01.md
@@ -0,0 +1,56 @@
+# 💻-coders 2024-12-01
+
+## Summary
+The chat segment revolved around troubleshooting a specific error, discussing the potential integration of Discord as either client or plugin. St4rgard3n provided technical assistance to Tharakesh regarding character file formatting.
+
+## FAQ
+- What is this error...can anyone help? (asked by @Tharakesh)
+- Would discord integration be a Client or plugin? (asked by @SotoAlt|WAWE)
+- How does Ropirito get banging outputs? How can I do the same? (asked by @Jordi)
+- What is required to launch a webapp client like ChatGPT, and where in documentation it's mentioned? (asked by @effect.crypto)
+- How do we clear the memory for a character? I created one and didn't like the way it was writing so I changed the character file to remove everything regarding this. However when I restart the agent, does it use the exact same response? (asked by [wil])
+- What version of codebase are you using? Is there a specific checkout that works better than others for your issue with characters' memory clearing problem? (asked by [Tharakesh])
+- How do I use cursor with Claude? What is the cost of using it? (TimeStamp - 02:31-02:32)? (asked by Tharakesh)
+- Does anyone know how this WhatsApp plugin works? (Timestamp - 02:36) (asked by DorianD)
+- Why is it saying : expected after property name in json at position 272 (line 1 column 273)? What's the error? Can anyone tell me? Who mentioned this issue and who provided a solution? (asked by Tharakesh)
+- Why doesn't 'pnpm start --character= (asked by 0xcooker)
+
+## Who Helped Who
+- st4rgard3n helped @Tharakesh with Character File Formatting by providing st4rgard3n provided guidance on character file formatting issue.
+- @Tharakesh helped @POV with Investigate and resolve crashing issues due to dimensionality differences in vectors. by providing POV received help from Tharakesh regarding the embeddingDimension constant mismatch issue.
+- [SotoAlt|WAWE] helped [Tharakesh] with Clearing memory for a game's characters using pnpm commands by providing SotoAlt | WAWE suggested pnpm commands to clean and rebuild the project, which helped Tharakesh address his character-memory issues.
+- [SotoAlt | WAWE](02:29) helped Tharakesh with Debugging by providing SotoAlt | WAWE provided debugging assistance by suggesting the use of cursor with Claude to Tharakesh. This helped resolve an issue that was preventing agent running.
+- @discordjs/opus install script issue resolution: pnpm clean, pnpm i, and pnpm rebuild. helped Leonard with Technical Tasks by providing DiscordJS Install Script Issue Resolution Suggestions
+- RL helped Tharakesh with Troubleshooting startup issues by providing RL suggested running the project using pnpm i, followed by pnpm dev and launching on localhost port 5173.
+- [POV (04:17)] helped Provided a solution to delete db sqlite and rebuild for Discord bot communication error. with Resolving technical issue with Discord connection by providing [SotoAlt | WAWE](04:41)
+- [solswappa(05:51)] helped Shared information on setting up a railway for Twitter client. with Setting up the environment by providing [Citizen1553 (05:48)]
+- [Thomas Huy](07:02) helped Issue with Ai16z framework not following character configuration with 'Cannot GET /' error when accessing localhost. Is there a specific reference needed at that URL for Eliza to work properly? by providing [SotoAlt | WAWE] suggested deleting SQLite database and enforcing rules in the system file (06:53)
+- [Leonard (07:10)] helped [Tharakesh (07:12)], [Citizen1553 (07:09)] with Troubleshooting Dockerfile issues by providing Provided older version number for Dockerfile.
+
+## Action Items
+
+### Technical Tasks
+- Check character file formatting (mentioned by st4rgard3n)
+- Investigate embeddingDimension constant mismatch causing crashes (mentioned by @POV)
+- Clear memory for a character using pnpm commands (mentioned by [SotoAlt | WAWE])
+- Use cursor with Claude for debugging (mentioned by [SotoAlt | WAWE](02:29))
+- Developers to DM Finao on Twitter regarding development needs (mentioned by [Finao](02:32))
+- Resolve discordjs install script issue (mentioned by #discussion)
+- Fix issue with JSON file causing error at position 272 (mentioned by Tharakesh)
+- Update repository to fix Discord bot communication error (mentioned by [POV](04:17))
+- Import image generation plugin on top of file (mentioned by [ResenhaDoBar](06:14))
+- Resolve error message when accessing localhost (Cannot GET /) (mentioned by [dr3amer◎8](06:29))
+- Investigate and fix issues related to duplicated tweets in the latest build. (mentioned by [Sidney (07:42)], [N00t (07:32)])
+- Resolve Opus issue with latest version (mentioned by [N00t (7:51)])
+- Investigate character.json and database folder issues when changing files or deleting db.sqlite file (mentioned by [Sidney (8:23, 8:24)])
+
+### Documentation Needs
+- Checkout the latest version of codebase, if stable enough to use. (mentioned by [Tharakesh])
+- Replace Eliza mentions in App.tsx to avoid 'agent not found' errors (mentioned by RL)
+- Review and optimize the codebase for Twitter agent actions processing order. (mentioned by [maddest (05:11)])
+- Update documentation with correct Dockerfile version (mentioned by [Leonard (07:42)])
+
+### Feature Requests
+- Discord integration as a client or plugin (mentioned by POV, SotoAlt | WAWE)
+- Explore using Anthropic API and OpenWebUI for rate limiting issues in Claude usage. (mentioned by @toast)
+- Evaluate and compare the latest stable build with version 0.0.10. (mentioned by [Leonard (07:42)], [N00t (07:32)])
\ No newline at end of file
diff --git a/docs/community/Discord/development/coders/chat_2024-12-02.md b/docs/community/Discord/development/coders/chat_2024-12-02.md
new file mode 100644
index 0000000000..d57c371621
--- /dev/null
+++ b/docs/community/Discord/development/coders/chat_2024-12-02.md
@@ -0,0 +1,59 @@
+# 💻-coders 2024-12-02
+
+## Summary
+The chat focused on technical discussions about hosting Eliza, adjusting the twitter scraper for original tweets only and choosing a character at login. Kanye faced an issue with looping errors while using grok & openai APIs.
+
+## FAQ
+- Why is the same tweet being checked over and over again with warning signs still showing? Using grok & openai, but terminal works fine. Any ideas why this happens on Twitter only (00:34)? Answered by:[SotoAlt | WAWE] (asked by [Kanye])
+- What's the best Discord channel to find developers looking for work and joining a team? How can I do this without breaking any rules? (asked by @T)
+- How does your AWS Lambda worker handle distributed, live responses when needed while keeping wallet access air-gapped with only client DB connection (and possibly an event bus if required)? (asked by :elizasalute:)
+- Anybody can help me with this? Stuck here, agent on twitter not responding to replies. Running latest and version 0.1.3. (asked by @kanye (04:42))
+- Why does SQLITE throw an error when inputting image? (asked by [VI](05:22))
+- Does anyone have a suggestion for how to integrate this into the starter - when I try to download the package from GitHub directly, I get bunch of type and other errors?
+Odilitime (05:47): You can runs an agent without any token... Starter relies on npm being at same tag.
+꧁Ninja_Dev꧂(05:48): But lets say, I do have a token and its on EVM. Seems like either way the token is separate from the agent?
+If so you just tie in the token... Odilitime (05:49)... Jacob (06:12) (asked by @Jacob)
+- Does AI16 have support for something like VIRTUALS' Roblox Westwood game? Specifically wondering how their ai agents can make decisions in a seemingly continuous space, such as moving to X location and shooting in Y direction, in real time. Where should I go ask this question or do you have a link to the game? (asked by @Bullish)
+- Do you understand my previous query? Do you have any suggestions on how easy it is to build a game integration with AI16's stack, and what documentation/support exists for this process? (asked by @Bullish)
+- Can ai16z work for VTuber models as well? Should I use it or stick with the other AI and apply ai16z to socials only? (asked by @sleepysign)
+- When will metamike open source integrated version of chatvrm on github, if not already available for users using v0.1.3? (asked by @jin)
+
+## Who Helped Who
+- [SotoAlt | WAWE] helped [Kanye (00:34)] with Troubleshooting Twitter API issues by providing Help Kanye with the looping error issue
+- @T helped All members with similar issues. with @LaserRiot explained how their AWS Lambda worker operates in a distributed manner while keeping wallet access air-gapped, providing insight to others facing related challenges. Recipients: All interested parties by providing @crazysailor1000 provided a solution to the issue of switching models from OpenAI to Anthropic, which involved deleting db.sqlite and modifying settings for embeddingModel.
+- [AIFlow.ML](04:39) helped @kungfumode(05:12) with Resolving agent-twitter client issue by providing wil (04:30) helped Kanye by suggesting to update the model ts file & rebuild.
+- [solswappa](04:39) helped [kungfumode(05:12)] with Optimizing agent-twitter client by providing Havohej (05:07) offered to investigate unused checks and functions in the twitter scraper library.
+- @Jacob helped @Jacob with Integration of the Eliza Agent in Starter Project by providing @Odilitime provided a solution to integrate Eliza agent into starter by using npm latest version.
+- @Odilitime helped with Inquiry on AI16's capabilities for continuous space decision-making in games. by providing Odilitime provided information about an existing bot integrated online game.
+- @AM helped @Kanye with Addressing recurring error message on AI16 platform by providing AM acknowledged Kanye’s issue with a positive response, indicating awareness.
+- helped @sleepysign with Added contributor role and provided link for integrated chatvrm version by providing @jin
+- @sleepysign helped @Black with Resolving error with AMD card by providing @Odilitime helped @andy8052 by suggesting to remove 'device: gpu' references for non-AMD GPU compatibility.
+- @Odilitime helped @andy8052 with Finding alternative voice solutions by providing @SotoAlt suggested using Vocaloid, specifically Hatsune Miku.
+
+## Action Items
+
+### Technical Tasks
+- Host Eliza locally with M1 Pro and 16 GB RAM (mentioned by [Sam (00:23)])
+- Choose character at login for AIFlow.ML platform (mentioned by [AIFlow.ML (02:06)])
+- Resolve issue related to switching models from OpenAI to Anthropic (mentioned by @crazysailor1000)
+- Update model ts file & rebuild to fix issue (mentioned by [wil](04:30))
+- Investigate unused checks and functions in agent-twitter-client library for optimization. (mentioned by [Havohej](05:02))
+- Modify TwitterPipeline.js to handle replies and the tweets they are responding to. (mentioned by [Havohej](05:39))
+- Integrate Eliza agent into starter by using npm latest version (mentioned by Odilitime)
+- Investigate Kanye's recurring error with AI16 (mentioned by @Kanye)
+- Implement new release for users on v0.1.3 (mentioned by @Bunchu)
+- Edit source to remove 'device: gpu' instances for non-AMD GPU compatibility. (mentioned by Odilitime)
+- Create a character JSON file to modify prompts (mentioned by Odilitime)
+
+### Documentation Needs
+- Find a suitable Discord channel for developers seeking work and joining teams. (mentioned by :elizasalute:)
+- Update documentation for createMemoriesFromFiles function in eliza client-github package (mentioned by [PC](05:26))
+- Provide documentation and support for game integration stack. (mentioned by @Odilitime)
+- Update eliza startr fork to latest version using pull or sync. (mentioned by @BlackJesus)
+- Update character file documentation to reflect current system (mentioned by andy8052)
+
+### Feature Requests
+- Adjust Twitter scraper to only include original tweets, not replies. (mentioned by [Havohej (00:42)])
+- Test the whatsapp plugin to identify build issues. (mentioned by Citizen1553)
+- Integrate own voices using Eleven API (mentioned by sleepysign)
+- Create custom plugin for Twitter integration with task triggers. (mentioned by Ninja_Dev)
\ No newline at end of file
diff --git a/docs/community/Discord/development/coders/chat_2024-12-03.md b/docs/community/Discord/development/coders/chat_2024-12-03.md
new file mode 100644
index 0000000000..9976db4f38
--- /dev/null
+++ b/docs/community/Discord/development/coders/chat_2024-12-03.md
@@ -0,0 +1,56 @@
+# 💻-coders 2024-12-03
+
+## Summary
+The chat focused on technical discussions around the 'processActions' code part and its improvement. AIFlow.ML requested Docker docs, which was provided by Rick (shared via Melted). Kanye asked about potential changes in the code.
+
+## FAQ
+- Can you link me the docker documentation? Does it also start the DB ? (asked by @AIFlow.ML)
+- is there something that needs to be changed in the code? (asked by @Kanye)
+- What should I do...can anyone tell me please?, (asked by Tharakesh)
+- is there a way to integrate function calling into the AI model ? (asked by ray)
+- anyone able to make the agent create a wallet by their own? (asked by SotoAlt | WAWE)
+- Did you already run npm build? If yes, then the dist folder might be your issue. (asked by @CS)
+- How can I use this library inside my NestJS project? (asked by @HoneyPotSmoker🐻⛓🍯)
+- Where do I find the database? - Answered by @2696 (asked by @vice man)
+- When will other plugins be added to NPM branch? (asked by @BlackJesus)
+- But ran into some issues while installing the twitter client - it says the package doesn’t exist? did anyone else run into this issue? would love any help here. thanks a lot 🫡 (asked by @allan28)
+
+## Who Helped Who
+- @Rick helped @Melted with Finding docker documentation by providing @AIFlow.ML asked for help with Docker docs, @Jacob provided a link
+- Nona (ag/acc) helped Tharakesh with Implementing function calls in AI model by providing dievardump provided guidance on integrating action calling within Eliza.
+- dievardump helped tybq93 with Resolving library import errors by providing tybq93 asked for help with import error, NestedJS project issue
+- @CS helped @HoneyPotSmoker🐻⛓🍯 with Adding to friends list by providing @clover added you as a friend, drop me dm when available.
+- @2696 helped [Vice Man] with Database location issue by providing Locating DB within agent folder and data subfolder - Provided by @2696, Elterremoto82
+- @allan28 helped @Bill Gains with Provided alternative libraries for Twitter client installation issues by providing @SotoAlt | WAWE
+- @Matthias|zKorp ☁ helped git issue with plugin-starknet on v0.1.5-alpha.0 with Technical Tasks by providing @CS helped Matthias | zKorp ☁ by suggesting git checkout stableVersionTag @06:15
+- @Konstantine helped solana priorityFee object query with Technical Tasks by providing @Agent Joshua ₱ provided information about TEE feature and Intel TDX Server @06:32
+- @Odilitime helped @AIFlow.ML with Add Slack Client File by providing Odilitime helped AIFlow.ML by explaining where and how they should include the slack client in their project, as well as discussing potential improvements to dependency management.
+- [Odilitime (08:05)] helped General community members with Documentation update by providing Odilitime offered help with adding steps for the new client in documentation.
+
+## Action Items
+
+### Technical Tasks
+- Investigate docker documentation for AIFlow.ML (mentioned by @AIFlow.ML)
+- Implement action calling within Eliza similar to 'open ai function calling' (mentioned by dievardump)
+- Run npm build (mentioned by @CS)
+- Delete db sqlite, rebuild (mentioned by @SotoAlt | WAWE)
+- Rebuild project (mentioned by [SotoAlt, Vice man])
+- Locate the database within agent folder and data subfolder. (mentioned by [Vice Man, 2696, Elterremoto82])
+- Investigate the issue with character file reverting to 'tate'. (mentioned by [Vice Man])
+- Investigate issues with installing Twitter client using Eliza framework (mentioned by @allan28)
+- Clone repo for agent setup (mentioned by @CS)
+- Add slack client file for standalone testing (mentioned by @AIFlow.ML)
+- Refactor code for centralization (mentioned by [AIFlow.ML (07:58)])
+- Explore modifications to reply regularly on Twitter from a predefined list of accounts. (mentioned by _Xd9f)
+
+### Documentation Needs
+- Discuss improvements to 'processActions' code part on GitHub (mentioned by @dievardump)
+- Resolve import error for '@ai16z/adapter-postgres', use dynamic import() instead of require in CommonJS modules. (mentioned by tybq93)
+- Add you as a friend and drop me a dm when available. (mentioned by @clover)
+- Checkout stable version tag in git (mentioned by allan28 @06:15)
+- Consider adding configuration files to manage npm dependencies and avoid touching .ts or other moving parts. (mentioned by @Odilitime)
+- Create a GitHub issue to discuss refactor plans and get consensus from other developers. (mentioned by [Odilitime (07:59), AIFlow.ML (08:01)])
+
+### Feature Requests
+- Research and implement 'create wallet on TEE' feature in the newest Eliza release or find alternative for storing private keys. (mentioned by @SotoAlt | WAWE)
+- Investigate separate social accounts for agents (mentioned by _Xd9f)
\ No newline at end of file
diff --git a/docs/community/Discord/development/coders/chat_2024-12-04.md b/docs/community/Discord/development/coders/chat_2024-12-04.md
new file mode 100644
index 0000000000..de65a7f488
--- /dev/null
+++ b/docs/community/Discord/development/coders/chat_2024-12-04.md
@@ -0,0 +1,56 @@
+# 💻-coders 2024-12-04
+
+## Summary
+The chat segment focused on technical discussions related to implementing RAG for a bot, streaming audio using 11 labs, setting up image generation with training images and troubleshooting issues in character knowledge processing. RedArcher26 asked about how to implement the Retrieval-Augmented Generation (RAG) model into their Discord Bot so it can answer based on provided documents of knowledge.
+
+## FAQ
+- Can someone tell me how to implement RAG for the bot? As in I want to pass a document with knowledge and have the bot answer based on that knowledge. Who can help or provide resources? (asked by RedArcher26)
+- When running `pnpm add -D ts-node typescript @types/node --filter '@ai16z/agent'` , it outputs 'No projects matched filters'. What should I do? Thanks! (asked by Harvz)
+- Which file should plugins be added to? Is discord voice chat built-in or a plugin, and why is there an error when trying to join the voice chat? (02:05 - 03:19) (asked by Vice man)
+- How can browser access be enabled for nodePlugin related queries about internet fetching values? (asked by [AIFlow.ML])
+- How should I write the solana plugin correctly for character interaction? What is a correct replacement instead of 'solana' in JSON config file? (asked by @Konstantine (04:51))
+- Does Eliza/Spartan have public endpoint which can be used to integrate them into an app? (asked by @Ancosero (05:26))
+- How do I change the model being used by Anthropic on Eliza, like switching between sonnet and opus? (asked by @Thebasement (06:14))
+- Can we use 'ai package' to add streaming text option? What are the limitations and potential solutions for real-time audio conversation in Discord voice integration or Twitter Spaces? (asked by @Jacob)
+- (asked by @Odilitime)
+- Has anyone built RAG with Eliza? Who can help me get started on this project? (asked by @hajmamad)
+
+## Who Helped Who
+- izzy3911 helped Tharakesh with Character Knowledge Processing by providing izzy3911 provided a link to YouTube videos that might help Tharakesh with his issue regarding character knowledge processing.
+- [AIFlow.ML] helped Vice man with Plugin file addition and discord voice chat setup by providing Client addition and configuration in agent/package.json workspace, index.ts initialization (02:18 - 04:35)
+- @Ancosero helped @Everyone with Reminded the group of their common interest in cryptocurrency by providing AIFlow.ML provided context about crypto community (05:26)
+- @JJJ helped @Badtech with Provided a solution to chat with custom characters in tweeter mode by providing jjj suggested typing directly into terminal for character interaction (05:51)
+- @Bunchu helped @Jacob with API Key Sharing & Resource Recommendation by providing Bunchu offered to share their Tavily API key and recommended attending Agent Dev School for more information.
+- @Ladi helped All members with Documentation Needs by providing Fixing missing scripts for @ai16z/plugin-node installation
+- @jjj helped @hajmamad with Fixing Solana Crashes by providing Konstantine provided a solution to fix solana crashes by using await in getCachedData function.
+- ꧁Ninja_Dev helped hajmamad with Implemented the suggestion and found it helpful. by providing Coelacanth suggested injecting pre-knowledge into character file's system property.
+- @W3_Bounty helped @hajmamad with Handling of agents based on query by providing W3_Bounty provided information on using multiple characters with different settings.
+- Ξ2T helped props for PR, easy to add Farcaster client and get an agent casting (11:10) with Added the Farcaster Client by providing @sayangel
+
+## Action Items
+
+### Technical Tasks
+- Implement RAG for bot to answer based on knowledge document (mentioned by RedArcher26)
+- Add client to agent/package.json workspace configuration (mentioned by [AIFlow.ML (02:18)])
+- Implement a solana plugin for character interaction (mentioned by @Konstantine (04:51))
+- Add streaming text option using 'ai package' (mentioned by @Jacob)
+- Investigate race condition when building packages (mentioned by @jjj)
+- Improve knowledge section search relevancy (mentioned by Coelacanth)
+- Improve knowledge retrieval flexibility (mentioned by @Coelacanth)
+- Investigate possible configuration issues causing evm issue (mentioned by @꧁Ninja_Dev꧂)
+- Resolve API key errors in agent deployment process (mentioned by hibijibi)
+- Fix solana plugin error causing unauthorized access (mentioned by @Bunchu)
+- Switch from version v0.1.5 of Eliza codebase to v0.1-alpha3, as it appears more stable. (mentioned by Coelacanth)
+
+### Documentation Needs
+- Ensure correct file input in character's knowledge key update process (mentioned by izzy3911)
+- Include client addition in index.ts for initialization (mentioned by [AIFlow.ML (02:18)])
+- Investigate missing scripts/postinstall.js for @ai16z/plugin-node installation (mentioned by @Ladi)
+- Limit context length or include entries with high confidence score in the vectorized search. (mentioned by Coelacanth)
+- Document the settings entry for overriding specific provider models in character files. (mentioned by @Coelacanth)
+
+### Feature Requests
+- Integrate Eliza/Spartan with public endpoint in app development (mentioned by @Ancosero (05:26))
+- Explore DAO.fun API for potential integration. (mentioned by @rckprtr)
+- Implement await for getCachedData function to fix Solana crashes. (mentioned by @Konstantine)
+- Resolve issue with Twitter client replying to historical interactions on first run in a fresh environment. (mentioned by @Coelacanth)
\ No newline at end of file
diff --git a/docs/community/Discord/development/coders/chat_2024-12-05.md b/docs/community/Discord/development/coders/chat_2024-12-05.md
new file mode 100644
index 0000000000..9c0bc21ee6
--- /dev/null
+++ b/docs/community/Discord/development/coders/chat_2024-12-05.md
@@ -0,0 +1,56 @@
+# 💻-coders 2024-12-05
+
+## Summary
+The discussion focused on creating custom plugins, running them from .json files to TS configs. Lambert successfully ran his methods using 'plugins: []' without modifying agent/src/index.ts but with custom clients calling the plugin. Ayvaras mentioned memory consumption issues needing optimization.
+
+## FAQ
+- Is there a ts equivalent for running a character from a json file? How to import and use custom plugins in agent/src/index.ts? (asked by [DL])
+- How did you solve the memory consumption issue with your uncensored model? (asked by [nylon, nylon])
+- What's the difference between Solana plugin and Goat one? How to login with cookies in browser, then copy into .env file following specific syntax mentioned somewhere on README? (asked by [SotoAlt | WAWE])
+- Is there any documentation available for applying RAG to Eliza?. (asked by [agu (02:18)])
+- Thanks for the recommendation, any specific reason? 🙏 (asked by @agu)
+- Why isn't it working in server but works locally? (asked by @ayvaras)
+- How can we resolve this issue with the IP changes on our servers? (asked by @Ayvaras)
+- Did you use cookies or enabled two-factor authentication (2FA) to log in? (asked by @lambert)
+- 'I hope it works' and 'isn't it mandatory?' referring to setting cookies for a software feature. The responses were from lambert at [02:40]. (asked by [Ayvaras (02:36, 02:39)])
+- Why am I getting an error when trying to generate a new tweet? What should be in the .env file for it to work correctly? (asked by @Manasvi)
+
+## Who Helped Who
+- [DL] helped [dl] with Create a custom plugin for characters and import it into the ts file. by providing Odilitime explained how to set up character object in agent/src/index.ts.
+- [coinwitch (ai16z intern)] helped [SotoAlt | WAWE] with Troubleshooting Eliza Agent by providing coinwitch helped with getting the agent working in eliza-starter project.
+- @sototal helped @ayvaras with Resolving server IP change issue by providing SotoAlt | WAWE suggested using cookies for login and enabling 2FA as a solution.
+- 'Try without' and 'nah my agent doesn't have any', suggesting Ayvaras to test the software feature with cookies disabled. helped [Ayvaras (02:39, 02:41)] with 'Investigate why setting VPN doesn't work' by providing [lambert (02:38, 02:40)]
+- @lambert, @Tharakesh helped @Ayvaras with Troubleshooting cookie usage in the application by providing Ayvaras asked for help with cookies and database deletion
+- @lambert helped @Manasvi with Troubleshooting error in Eliza project. by providing Provided guidance on checking Twitter API credentials and ensuring correct setup.
+- frenchplace helped problem with loading content into memory via API or commands with loading sources for agent's knowledge by providing Robotic Dreams provided a solution on how to specify plugins in character file and set required fields.
+- @DL helped @cleverson1 with Resolving Twitter integration issue with @ai16z/plugin-image-generation. by providing DL (@ai16z) provided guidance on using image plugin without specifying plugins field and ensuring correct AI API keys are used.
+- [Bunchu] helped [Cleverson1] with Adding web search plugin by providing @bunchu helped @cleverson1 by providing steps to add a plugin and resolve image posting issue.
+- kungfumode helped Agent Issue Resolution Successful. with Tweet formatting by providing Ayvaras provided a PR to fix the issue of agents posting multi-line tweets.
+
+## Action Items
+
+### Technical Tasks
+- Create a custom plugin for character files (mentioned by [DL, lambert])
+- Create a TG token bot (mentioned by [SotoAlt | WAWE])
+- Watch Agent Dev School videos for learning (mentioned by @coinwitch)
+- Investigate why setting VPN to London doesn't work (mentioned by [Ayvaras (02:36)])
+- Check if folder2knowledge requires careful handling of documents or can handle multiple PDF files (mentioned by [Rat King (02:37)])
+- Determine the source and purpose of 'Generating' console log messages in folder2knowledge (mentioned by [coinwitch (ai16z intern) (02:37)])
+- Test the latest version of an unspecified software without cookies (mentioned by [lambert (02:40)])
+- Investigate processing knowledge step issue (mentioned by @Tharakesh)
+- Update Twitter API credentials (mentioned by Manasvi)
+- Set up image generation with parameters to character file (mentioned by cleverson1)
+- Remove the 'plugins' field from character JSON for proper AI API key usage with image plugin (mentioned by @DL)
+- Investigate why image posting is not working (mentioned by [DL, Bunchu])
+- Fix tweet formatting issue by applying PR #856 (mentioned by Ayvaras)
+
+### Documentation Needs
+- Optimize memory consumption of the uncensored model. (mentioned by Ayvaras)
+- Fix the issue with `Cannot GET /` error in eliza-starter project. (mentioned by [coinwitch (ai16z intern)])
+- Ensure the .env file contains correct Twitter account details. (mentioned by Ayvaras)
+- Use pnpm run build for Twitter agent and terminal runtime agent, investigate if possible. (mentioned by Konstantine)
+- Create a GitHub issue to address image plugin documentation (mentioned by @coinwitch (ai16z intern))
+- Add @ai16z/plugin-web-search to dependencies in package.json and import it into index.ts. (mentioned by [Bunchu])
+
+### Feature Requests
+- Resolve server IP change issue by using cookies or enabling two-factor authentication (2FA) (mentioned by @SotoAlt | WAWE)
\ No newline at end of file
diff --git a/docs/community/Discord/development/coders/chat_2024-12-06.md b/docs/community/Discord/development/coders/chat_2024-12-06.md
new file mode 100644
index 0000000000..af4658e2e5
--- /dev/null
+++ b/docs/community/Discord/development/coders/chat_2024-12-06.md
@@ -0,0 +1,56 @@
+# 💻-coders 2024-12-06
+
+## Summary
+The chat focused on resolving a Twitter login issue using Firefox settings, SSH into VPS. N00t provided detailed steps for the process and highlighted potential issues like syntax errors in JSON formatted data.
+
+## FAQ
+- Is there any plugin to initiate conversation with Twitter account inside list? (asked by @razzzz)
+- Does a syntax error crash the system? (asked by @Havohej)
+- I updated to the latest release but want to preserve data from db.sqlite, any help or suggestions? (asked by @smolpotatØx)
+- @Agent Joshua ₱Mate on your test did u assign a Subreddit? (asked by @AIFlow.ML)
+- How can I make manager.search.onReady() work? Who answered: @VI (asked by @Ayvaras)
+- Why does my Twitter say 'not responding to message' by default when messaging a verified account? (asked by @N00t)
+- Does he even find tweets in the logs or just doesn't reply? (0:16) (asked by @whobody)
+- 'no input to retrieve cached embedding for'(2.17) - What does this error mean and how can I fix it? (asked by [N00t])
+- Why does the process generate '...' instead of an actual image? How can I enable Image Generation in my character file and .env settings? (asked by @umut)
+- How to ensure generated images are automatically enabled when using a correct model, specifically related to the plugin part on index.ts? Can you confirm that no files will be lost during this process as .env and other relevant files aren't in GitHub? (asked by @ResenhaDoBar)
+
+## Who Helped Who
+- @N00t helped [Sam & Others] with Twitter Login Issue Resolution by providing N00t helped Sam and others by sharing method for logging into twitter via Firefox settings, SSHing to VPS.
+- @Havohej helped [N00t] with Syntax Error Check & Character Sheet Adjustment by providing Havohej helped by checking for syntax errors in JSON formatted data and adjusting character sheet.
+- @bufan helped @Harvzs with Resolve database issues on latest release by providing bufan suggested running the project file in WSL to resolve Harvz's issue with db.sqlite data preservation.
+- @VI helped @Ayvaras with Fixing runtime error for search functionality. by providing @Ayvaras helped Ayvaras with the manager.search issue.
+- helped @umut with by providing @umut asked about integrating image generation and text model, seeking help from community members.
+- [VKu] helped [N00t (02:01)] with Improving session management by providing Using TMUX for console sessions
+- [Big Dookie] helped [Sam] with Improving the bot's understanding and response to tweets by providing @big dookie provided a list of mentions in their repo with simple descriptions (0:34)
+- [coinwitch (ai16z intern)] helped [N00t] with Image generation using the free heurist.ai api. by providing Provided information on Heurist API and how to apply for it.
+- @cleverson1 helped @umut with Problem Solving by providing @cleverson1 provided insights into image generation issues faced by @umut, leading to a better understanding of the problem.
+- thebasement helped bunchu with Consistent style implementation in agent's behavior. by providing Bunchu provided an example of injecting instructions into the default character file for Eliza.
+
+## Action Items
+
+### Technical Tasks
+- Documentation of Twitter login via Firefox settings, SSH into VPS (mentioned by @Sam)
+- Preserve data from db.sqlite on latest release (mentioned by @smolpotatØx)
+- Try running project file in WSL instead of Windows filesystem. (mentioned by @bufan)
+- Fix runtime.getSetting error for manager.search.onReady() (mentioned by @Ayvaras)
+- Check Twitter interactions for mention replies (mentioned by [N00t (02:13)])
+- Update package version from v0.15-alpha to v0.1.5-alpha.3 (mentioned by [Sam (2:21)])
+- Apply for Heurist API with ref code 'ai16z' (mentioned by [coinwitch (ai16z intern)])
+- Enable Image Generation (mentioned by @umut)
+- Ensure all style instructions are parsed, not just randomized (mentioned by thebasement)
+- Investigate setup requirements for agent response on X platform. (mentioned by @0xDRIP)
+- Rewrite actions for better integration with LLM (mentioned by dievardump)
+- Add post LLM response hook to process client responses before sending back. (mentioned by [Ninja_Dev])
+
+### Documentation Needs
+- Check for syntax errors or trailing commas in JSON formatted data (mentioned by @N00t)
+- Watch development school sessions and YouTube videos for additional learning resources. (mentioned by [N00t (2:23)])
+- Use `git pull` and then `pnpm clean` for updates. (mentioned by [coinwitch (ai16z intern)], [N00t])
+- Implement cost-cutting measures by trimming token length in Anthropic API usage through Eliza (mentioned by @SotoAlt | WAWE)
+- Update documentation to include JSON schema and parameter handling (mentioned by Tharakesh)
+
+### Feature Requests
+- Integrate image generation with text model and heurist API key. (mentioned by @umut)
+- Edit action for posting on Twitter to include generated image beforehand. (mentioned by @umut)
+- Implement custom evaluator for pre-message processing (mentioned by [Ninja_Dev, Dievardump])
\ No newline at end of file
diff --git a/docs/community/Discord/development/coders/chat_2024-12-07.md b/docs/community/Discord/development/coders/chat_2024-12-07.md
new file mode 100644
index 0000000000..4568ea10a4
--- /dev/null
+++ b/docs/community/Discord/development/coders/chat_2024-12-07.md
@@ -0,0 +1,56 @@
+# 💻-coders 2024-12-07
+
+## Summary
+The Discord chat segment focused on technical discussions related to Eliza's capabilities and project setup. Key points included using the latest node version, pnpm for dependency management, investigating independent conversation initiation across different platforms (Twitter, TG, Discord), resolving issues with 'pnpm start --characters', addressing errors during 'pnpm build', preserving memory between runs to avoid repeated responses on Twitter.
+
+## FAQ
+- Is Eliza capable of initiating conversation without being mentioned first on Twitter, TG and Discord? Or is it always possible but I missed it before? (asked by [razzzz])
+- Why does pnpm start --characters keep trying to use local model when specifying Anthropic as the modelProvider and inputting API in .env files? How can I resolve this? (asked by [gavinlouuu])
+- Is there a way for Eliza to preserve memory between runs, so it doesn't re-respond with the same Twitter comments after each restart? How can I achieve this? (asked by [technoir (01:12)])
+- Which parts of Nadar’s video on Eliza have been adjusted already to avoid errors during 'pnpm build' using the latest checkout command? Is it .env file, character file or both? (asked by [Robin (01:14)])
+- What are the steps required for deploying an agent and how much does it cost? (with Twitter only?) (asked by @Clive0x1)
+- I'm getting errors while doing pnpm build. Any ideas? (asked by @Mansi | SuperFunSocial)
+- Are you working on video generation with an API? (asked by @umut)
+- Are there any sessions planned for learning to navigate the repo? Who can help with character customization and deployment on Eliza platform? What time zone is AIFlow.ML in, Asia or relative Crypto timezone? (asked by Kenk)
+- How do I fix this error when launching an agent using your framework: Failed at node_modules/.pnpm/canvas@2.11.2/node_modules/canvas? What's the image model provider being used, core or plugin one? (asked by maimun)
+- Is the API endpoint not included in standard package and is a paid feature? Answered by @Bunchu (asked by @jjj)
+
+## Who Helped Who
+- [razzzz] helped Eliza development with Project Setup Assistance by providing [SotoAlt | WAWE] provided information on node version and pnpm usage for Eliza project setup
+- [razzzz] helped Eliza development with Feature Inquiry Assistance by providing [SotoAlt | WAWE] provided information on investigating independent conversation initiation using Eliza
+- [technoir] helped Eliza development with Memory Preservation Inquiry Assistance by providing [SotoAlt | WAWE] provided information on preserving memory between runs for Eliza
+- @Robin helped @gavinlouuu with Edit environment variables in project root by providing @N00t was helped by @Robin to edit the .env file for deploying agents.
+- AIFlow.ML helped maimun with Resolving Agent Model Loading Issue by providing gavinlouuu provided insight on agent loading a different model despite setting 'anthropic', suggesting an issue with .env file.
+- @AIFlow.ML helped @Bunchu with Troubleshooting API Key Issues by providing AIFlow.ML confirmed API key is passed correctly, but Claude might not be the correct image model.
+- umut helped maimun and Sam with Improving bot's response mechanism for generating images without user interaction. by providing Provided solution to avoid sending a message back before image generation
+- @AIFlow.ML helped @maimun with Successful by providing Resolving permission error when installing dependencies
+- @big dookie helped @maimun with Launched Twitter Agent by providing Provided advice on launching the agent and troubleshooting errors
+- [@RL] helped [@Lamb] with Resolving Twitter credentials loading errors by providing @RL suggested staying in dev mode to log around error when using .env file. Lamb confirmed the issue and agreed with RL's suggestion.
+
+## Action Items
+
+### Technical Tasks
+- Use latest node version (23+) with pnpm clean, install dependencies using 'pnpm i', build project (mentioned by [SotoAlt | WAWE])
+- Investigate Eliza's capability to initiate conversation without being mentioned first on Twitter, TG and Discord (mentioned by [razzzz])
+- Check if Eliza can reply using the twitter API for independent conversation initiation (PR mentioned by Shaw) (mentioned by [SotoAlt | WAWE])
+- Resolve issues with pnpm start --characters using Anthropic modelProvider and API in .env files (mentioned by [gavinlouuu])
+- Address errors encountered during 'pnpm build' using Eliza latest checkout command (Nadar’s video) (mentioned by [Mansi | SuperFunSocial])
+- Deploy an agent with custom API endpoints (mentioned by @Robin)
+- Investigate why agent is loading a different model despite setting 'anthropic' as provider (mentioned by gavinlouuu)
+- Investigate API key issues for correct header usage (mentioned by @jjj)
+- Consider using PostgreSQL for database needs (mentioned by AIFlow.ML)
+- Resolve permission error when installing dependencies (mentioned by @AIFlow.ML)
+- Resolve authentication error: DenyLoginSubtask (mentioned by @Lamb)
+- Staying in dev mode to log around error when using .env for Twitter credentials (mentioned by [RL, Lamb])
+
+### Documentation Needs
+- Preserve memory between runs to avoid re-responding to Twitter comments (mentioned by [technoir, Robin (01:14)])
+- Resolve error in discordjs+opus module installation (mentioned by LeEth_James)
+- Provide detailed log errors using pnpm dev for troubleshooting. (mentioned by @RL)
+- Provide examples of where and how to include `openAISettings` in the codebase. (mentioned by [delegatecall])
+
+### Feature Requests
+- Use OLLAMA for local LLM to avoid costs. (mentioned by @N00t)
+- Explore alternative methods to send longer tweets without authorization errors. (mentioned by @Bootoshi)
+- Update character file to include 'farcaster' in clients. (mentioned by @Sam)
+- Clarify the need and purpose of a 25-minute input video (mentioned by @big dookie)
\ No newline at end of file
diff --git a/docs/community/Discord/development/coders/chat_2024-12-08.md b/docs/community/Discord/development/coders/chat_2024-12-08.md
new file mode 100644
index 0000000000..7f56bb3c52
--- /dev/null
+++ b/docs/community/Discord/development/coders/chat_2024-12-08.md
@@ -0,0 +1,56 @@
+# 💻-coders 2024-12-08
+
+## Summary
+The chat focused primarily on configuring and running the openai-compatible model, specifically with .env file adjustments. Michaelben sought guidance for this configuration process while yodamaster726 shared his experience of successfully utilizing a large OLLAMA 39gig model on high RAM MacBook Pro hardware.
+
+## FAQ
+- How to configure with openai-compatible model? Not local ollama, what should I do in .env file? (asked by @michaelben)
+- I have a RTX 3090. How can it be used for testing OLLAMA models? (asked by @youngphlo)
+- What are the benefits of buying a MacBook over building your own PC? What makes it worthwhile for certain users like artists and creatives, but not coders or builders? (asked by [Shisho] (03:15))
+- Why do people buy macbooks despite custom built pcs being cheaper with more hardware options? Is there a specific reason why some prefer the reliability of MacBooks over PC builds, even if they are aware that it's essentially an expensive cell phone processor? (asked by [agwnl](03:20))
+- How long are the session tokens valid for generally? For Twitter. (asked by [techfren (04:44)])
+- Is Eliza able to make a trading bot? (asked by [Ȑ̵͘S̷͂̋(05:09)])
+- Can the eliza-starter run in WSL terminal? Or does it lack graphical interface support on localhost:3000, resulting in 'Cannot GET / Failed to load resource' error? (asked by [Konstantine (05:08)])
+- In a custom action, how can I access the user handle of the person that triggered an action? Is it within the character file? (asked by fOfer (05:26))
+- Is there a way to get text before making a request and after, but before sending response back to client? This would be useful for database interactions. (asked by [꧁Ninja_Dev꧂] (05:36))
+- On the other hand, if I want to generate messages within plugin is there an easy way currently available? (asked by [fOfer] (05:59))
+
+## Who Helped Who
+- @JamLong | Gaia 🌱 helped @michaelben with Configure OLLAMA models using environment variables by providing Michaelben asked about configuring with openai-compatible model and received guidance on checking .env file.
+- [agwnl](03:16) helped [Shisho] (03:20) with Discussing laptop options by providing Shisho provided advice on considering custom-built laptops for better performance and cost efficiency
+- Shisho helped Grivier with Resolve JSON parsing error by providing Debugging non-JSON characters in response data
+- techfren helped Thanks for the info on VPS pricing. with Provided information about low-cost Linux VPS options and AWS grant. by providing [Shisho (04:10)]
+- Konstantine helped Reassured that Reddit will be handled before PR. with Provided reassurance about handling a task. by providing [AIFlow.ML (04:59)]
+- Ȑ̵͘S̷͂̋ helped Advised to use the client for Eliza-starter. with Provided guidance on using a specific tool. by providing [AIFlow.ML (05:20)]
+- Provided information about the client folder and its use for building front-end. helped Ȑ̵͘S̷͂̋ with [fOfer] (05:26) by providing [AIFlow.ML] (05:39)
+- Confirmed that the agent replies to comments on tweets, but mentioned an issue with testing. helped Bunchu with [yodamaster726] by providing [꧁Ninja_Dev꧄](07:10)
+- [agwnl](08:23) helped [big trav](07:15) with Configuring Eliza agents to post on X platform by providing dotbear89 provided guidance to big trav about setting up Twitter client in agent's character.json and .env file.
+- @Kevin Mok helped @AIFlow.ML with Stuck querying when @'ing it in Discord by providing Help with issue #921 in Eliza.
+
+## Action Items
+
+### Technical Tasks
+- Configure .env for openai-compatible model (mentioned by michaelben)
+- Change default character in `pnpm start` to use ollama 39gig model on macbook pro m4 with 48GB RAM (mentioned by yodamaster726)
+- Consider building a custom laptop for better performance (mentioned by [Shisho](03:15))
+- Developer should investigate unexpected "\<" character causing JSON parsing error (mentioned by Grivier)
+- Apply for an AWS grant (mentioned by [Shisho (04:11)])
+- Improve access to user handle within custom actions (mentioned by [fOfer, Grivier])
+- Enhance pre-request text retrieval and post-response storage in database for user interactions with bot (mentioned by [fOfer, AIFlow.ML])
+- Develop plugin message generation using existing composeContext and generateText methods or create a runtime method for prompt handling (mentioned by [fOfer, Bunchu])
+- Investigate issue with bot not responding to replies in Tweets and optimize if necessary (mentioned by [꧁Ninja_Dev꧂])
+- Add Twitter client configuration in agent's character.json and .env file for X platform posting. (mentioned by [agwnl](08:23))
+- Resolve Tweetbot error on ttwitter (mentioned by @copycat)
+- Activate Solana plugin for Bird Eye data service API key (mentioned by @st4rgard3n)
+- Investigate plugin parameters issues (mentioned by @DL)
+
+### Documentation Needs
+- Clear session tokens and start a new one after hitting 404 error. (mentioned by [Shisho(04:13)])
+- Review code contribution process for the repository, focusing on replies and active search (mentioned by [sam-developer, Bunchu])
+- Update reaction role bot with new character info and emoji roles. (mentioned by @jin)
+- Activation process for plugins to be clarified in the index setup file. (mentioned by @TheHunter@12:30)
+
+### Feature Requests
+- Explore MLX Eliza for running models efficiently despite constant changes and fast model runtimes. (mentioned by AIFlow.ML)
+- Evaluate the benefits of MacBook's reliability and ease-of-use over PC builds (mentioned by [agwnl](03:20))
+- Implement a feature for Eliza agents that allows them to post on X platform. (mentioned by [dotbear89](08:19))
diff --git a/docs/community/Discord/development/coders/chat_2024-12-09.md b/docs/community/Discord/development/coders/chat_2024-12-09.md
new file mode 100644
index 0000000000..46ae8fbe3e
--- /dev/null
+++ b/docs/community/Discord/development/coders/chat_2024-12-09.md
@@ -0,0 +1,56 @@
+# 💻-coders 2024-12-09
+
+## Summary
+The chat focused on optimizing Telegram integration, retrieving the farcaster cast hash in plugin developments and getting approved reviews for PR merge. There were also discussions about joining core contributors.
+
+## FAQ
+- How to get another approved review for PR merge? (asked by @nikita_zhou)
+- Agent not responding in version alpha-1? (asked by Oliver | Hats.finance)
+- What is the TypeError when starting agent with plugins? How to fix it? (asked by @dotbear89 (02:39, 04:15))
+- Where in codebase should I look for farcaster plugin implementation and examples of updating relationships between entities, any fork available? (asked by @YoungPhlo)
+- How can I focus on adding new features? What documentation should be reviewed to achieve this goal? (asked by @shaw)
+- What is the current workaround for tweet generation without an API, and how does it work with different setups like SQLite or other databases? (asked by @0xn1c0)
+- When fine-tuning, how do you handle cookies on a VPS? What provider are you using for the VPS? (asked by @dotbear89)
+- (asked by @Zyro)
+- How did you do it? Is it in the character file? (asked by [Jo (08:22)])
+- What is causing this error? (asked by [Dan69 (08:23)])
+
+## Who Helped Who
+- @leeren helped [Chat Members] with Optimize for throttling and occasional posting by providing Discussion on TG integration optimization
+- @bufan helped [Plugins Developers] with Plugin development by providing Retrieving Farcaster cast hash from action's handler.
+- @iBuyRare (03:30) helped @dotbear89 (02:41) with Resolving TypeError when starting an agent by providing iBuyRare helped dotbear89 to run the agent with plugins successfully
+- [Dolla Llama](07:24) helped [WAWE] SotoAlt | WAWE (07:36) with Investigate issue with agent posting multiple messages by providing Inquiry about running web client
+- @shaw helped @SMA with Codebase improvement by providing Reviewing documentation to focus on adding new features
+- @braydie helped @dotbear89 with Tweet Generation Workaround by providing Providing a temporary solution for tweet generation without an API, and discussing its compatibility with different database setups.
+- @peachy helped @dotbear89 with by providing Peachy shared their experience with creating mainCharacter.ts file and importing it to index.ti, which helped dotbear89 avoid errors.
+- [Peachy (08:26)] helped [iBuyRare] with Troubleshooting by providing Peachy helped iBuyRare with setting up Twitter plugin and suggested asking chatgpt or claude for running error logs.
+- [Dolla Llama] helped HoneyPotSmoker🐻⛓🍯, dotbear89 with Modify Telegram chat prompts by providing Dolla Llama provided information on modifying prompts in post.ts to change AI openers.
+- [Jo] helped [iBuyRare] with Update Twitter Agent by providing iBuyRare and Jo discussed updating the Twitter agent to retweet/like posts.
+
+## Action Items
+
+### Technical Tasks
+- Optimize TG integration to handle throttling, occasional posting (mentioned by @leeren)
+- Resolve TypeError when starting agent with plugins (mentioned by @dotbear89 (02:39, 04:15))
+- Contribute to pyliza project (mentioned by [py16z] safetyBot | 🍚⛓ (05:16))
+- Resolve TypeError related to undefined 'actions' (mentioned by @shaw)
+- Investigate plugin configuration issue causing tweet posting failure (mentioned by dotbear89)
+- Modify Twitter post template for single statement (mentioned by [Dolla Llama (08:19)])
+- Modify AI openers for Telegram chat (mentioned by [HoneyPotSmoker🐻⛓🍯, dotbear89])
+- Integrate Solana with the project, clone packages folder into starter folder. (mentioned by [iBuyRare])
+- Create a new custom character with Twitter, Telegram, and Discord clients (mentioned by [0xn1c0](8:42))
+- Adjust bot permissions in Discord groups for agents (mentioned by @꧁Ninja_Dev꧂)
+
+### Documentation Needs
+- Update relationships in codebase for farcaster plugin (mentioned by @braydie (03:44))
+- Investigate running web client at localhost:5173/ (mentioned by [0xn1c0] Dolla Llama, [WAWE])
+- Create a tutorial on adding Eliza plugins to the project setup, based off Peachy's experience with Nader Dabit’s YouTube guide (mentioned by iBuyRare)
+- Manually add packages or find an easy way to set them up. (mentioned by [iBuyRare (08:20)])
+
+### Feature Requests
+- Retrieve Farcaster cast hash from action's handler in plugin development. (mentioned by @bufan)
+- Implement API for tweet generation (mentioned by @dotbear89)
+- Update Twitter agent to retweet and like posts (mentioned by [Jo])
+- Explore Sepolia testnet for Ethereum transactions. (mentioned by [0xn1c0, iBuyRare])
+- Enable ETH transfers for the web client feature. (mentioned by [0xn1c0](8:45))
+- Create an agent that listens to group discussions, codes tasks based on conversations, then submits PRs to GitHub. (mentioned by @james_andrew_)
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-contributors/chat_2024-11-27.md b/docs/community/Discord/development/dev-contributors/chat_2024-11-27.md
new file mode 100644
index 0000000000..0b86daed85
--- /dev/null
+++ b/docs/community/Discord/development/dev-contributors/chat_2024-11-27.md
@@ -0,0 +1,19 @@
+# dev-contributors 2024-11-27
+
+## Summary
+The main technical discussion revolved around improving memory management within an agent. Jin provided links to resources and suggested using GitHub API with LLM (Language Learning Model) to monitor code updates, while Odilitime recommended switching from playwright to fetch/axios for resource optimization.
+
+## FAQ
+- Does nuking node_modules and rebuilding solve the issue? (17:48) (asked by [yikesawjeez])
+- What's the best way to trigger playwright flows, considering improvements made in config?(19:56) (asked by [cygaar])
+
+## Who Helped Who
+- @odilimate helped Discord community members interested in optimizing Discord client's resource usage. with Optimize the use of Playwright for downloading attachments by providing Odilitime suggested using fetch/axios instead of playwright to save memory
+- [Odilitime] helped [cygaar] with Resolving playwright flows triggering problem by providing Eliza-starter will work for current issue. Gory details provided by Odilitime (Issue link)
+
+## Action Items
+
+### Technical Tasks
+- Improve memory usage of agent (mentioned by @jin)
+- Implement stable releases for node modules (mentioned by [yikesawjeez (17:48)])
+- Test the improved playwright flows configuration by sending an attachment on Discord (mentioned by [cygaar, Odilitime (19:56)])
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-contributors/chat_2024-11-28.md b/docs/community/Discord/development/dev-contributors/chat_2024-11-28.md
new file mode 100644
index 0000000000..82dce92d83
--- /dev/null
+++ b/docs/community/Discord/development/dev-contributors/chat_2024-11-28.md
@@ -0,0 +1,23 @@
+# dev-contributors 2024-11-28
+
+## Summary
+The main discussion revolved around enforcing branch protection on the 'main' repository, directing PRs to be merged into a separate development/branch. This is aimed at streamlining contributions and managing them effectively.
+
+## FAQ
+- Why is the plugin-node throwing an ERR_INVALID_ARG_TYPE error? What's going on with LlamaService and how can I fix it? (asked by @cygaar)
+
+## Who Helped Who
+- @cygaar helped @Odilitime with Fixing plugin-node error by providing Provided guidance for resolving a TypeError in node:path module
+- @odilitime helped with by providing Odilitime provided a solution that worked for the user
+
+## Action Items
+
+### Technical Tasks
+- Investigate branch protection for main, enforce PRs to develop (mentioned by @yikesawjeez)
+
+### Documentation Needs
+- Update contribution notes in contributing.md (mentioned by @ShakkerNerd)
+- Review documentation for potential changes (mentioned by @0xfabs)
+
+### Feature Requests
+- Explore knowledge graphs, specifically GraphRAG or similar tools. (mentioned by @jin)
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-contributors/chat_2024-11-29.md b/docs/community/Discord/development/dev-contributors/chat_2024-11-29.md
new file mode 100644
index 0000000000..c75acb36a9
--- /dev/null
+++ b/docs/community/Discord/development/dev-contributors/chat_2024-11-29.md
@@ -0,0 +1,32 @@
+# dev-contributors 2024-11-29
+
+## Summary
+The community discussed several technical topics including Twitter and Telegram integrations for the Eliza project. They identified a need to review, consolidate PRs related to these functionalities while also addressing build issues by potentially enforcing CI passing before merging pull requests.
+
+## FAQ
+- Need some things tested and draft PRs finished? What are the specific tasks that need to be done? (asked by @OGs/Core/Partner-Contributor)
+- Should we enforce CI passing before merging pull requests due to build issues encountered? (asked by cygaar)
+- How do I use turborepo and run it? Is the regular build not working on my MacBook Pro M1, even after pnpm clean/install failed due to missing config.h file? (asked by @yodamaster726)
+- Should running `pnpm` commands use turborepo by default? What's causing the errors related to 'node-opus' package, and is it being removed or fixed soon? (asked by @ShakkerNerd)
+
+## Who Helped Who
+- [@Shaw, @Cygaar] helped @OGs/Core/Partner-Contributor with Reviewing and consolidating Twitter related PRs by providing @OGs/Core/Partner-Contributor asked for help in reviewing and consolidating Twitter related PRs. The community provided a list of relevant GitHub links.
+- @Cygaar helped [@Shaw, @OGs/Core/Partner-Contributor] with Twitter Integration by providing cygaar offered to take a pass at the twitter integration when they get some time.
+- @yodamaster726 helped @shaw with Turborepo integration issues resolved, including build problems and 'node-opus' package errors. by providing @ShakkerNerd
+- [cygaar](21:25) helped [yikesawjeez](21:30) with Removing redundancies from packages by providing Sort through package dependencies
+
+## Action Items
+
+### Technical Tasks
+- Test and finish draft pull requests for Eliza project: https://github.com/ai16z/eliza/pull/391, 405 (mentioned by @OGs/Core/Partner-Contributor)
+- Review and merge PR for Telegram functionality: https://github.com/ai16z/eliza/pull/491 (mentioned by @OGs/Core/Partner-Contributor)
+- Turborepo integration completed, fixing build issues (mentioned by @ShakkerNerd)
+- Sort through package dependencies to remove redundancies (mentioned by [cygaar](21:25))
+
+### Documentation Needs
+- Review, consolidate PRs related to Twitter functionality (mentioned by @OGs/Core/Partner-Contributor)
+- Support needed for onboarding and maintenance tasks. (mentioned by [yikesawjeez](21:15))
+
+### Feature Requests
+- Consider enforcing CI passing before merging pull requests to address build issues. (mentioned by cygaar)
+- Prioritize developer experience and bug fixes for the upcoming release. (mentioned by @shaw)
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-contributors/chat_2024-11-30.md b/docs/community/Discord/development/dev-contributors/chat_2024-11-30.md
new file mode 100644
index 0000000000..e47f4e60df
--- /dev/null
+++ b/docs/community/Discord/development/dev-contributors/chat_2024-11-30.md
@@ -0,0 +1,17 @@
+# dev-contributors 2024-11-30
+
+## Summary
+The chat focused on the development of a 3D model for live streaming with lip synchronization. Jin offered to help optimize it once available, and Ropirito agreed to send over when ready. Additionally, an issue was raised about X posts being cut off due to formatting pass; this is still unresolved but considered quick fix via PR.
+
+## FAQ
+- Should we add a FAQ section, and how can it stay up-to-date? (asked by @ferric | stakeware.xyz)
+- How to update docs for ai16z/community content? (asked by @jin (13:28))
+
+## Who Helped Who
+- @JP and @Ropirito helped @jin (06:28) with Testing out livestream + text-to-lip sync feature by providing Optimizing 3D model
+
+## Action Items
+
+### Technical Tasks
+- Create/optimize 3D model for livestreaming + text-to-lip sync (mentioned by @Ropirito)
+- Investigate and fix issue with X posts being cut off due to formatting pass. (mentioned by @Bloom1)
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-contributors/chat_2024-12-01.md b/docs/community/Discord/development/dev-contributors/chat_2024-12-01.md
new file mode 100644
index 0000000000..16236b474d
--- /dev/null
+++ b/docs/community/Discord/development/dev-contributors/chat_2024-12-01.md
@@ -0,0 +1,29 @@
+# dev-contributors 2024-12-01
+
+## Summary
+: Stability of core system discussed. Suggestion to split packages for easier maintenance by @Sirkitree(https://github.com/orgs/ai16z/discussions/453). Cygaar fixed the starter issue and will PR shortly (PR#763) as confirmed in https://github.com/ai16z/eliza/pull/763.
+
+## FAQ
+- You got examples of issues ppl are running into? (10:41)? (asked by cygaar)
+- Office hours on stage if anyone has any developer questions or needs help. Like Frank yesterday, Starter wasn't working for him.(11:58) (asked by shaw)
+- How are new releases done? Should we make one that includes the twitter fixes? What's your opinion on cutting a new release now, @shaw? (asked by @cygaar)
+- Shouldn’t all main/Starter issues be resolved before considering a new release? (asked by @0xfabs)
+- Is the hackathon running Eliza agents?! https://lu.ma/4vt76uvk (asked by @jin)
+- Can we get some eyes on this before Agent Hackathon? (asked by @James Young)
+
+## Who Helped Who
+- shaw helped Frank with Starter functionality by providing cygaar fixed the issue with starter not functioning and will PR shortly (12:04).
+- @yikesawjeez helped All members of the chat discussing stability. with Test new code changes across different platforms by providing @yikesawjeez provided stable branch link for testing on Discord and direct, but not tested Twitter.
+- @Neodotneo helped [Community] with Plugin development by providing Neodotneo shared a new plugin called Twitter-Plus for prompts and interactions using JSON file.
+
+## Action Items
+
+### Technical Tasks
+- Ensure Starter works, main out of box & Twitter integration (mentioned by @OGs/Core/Partner-Contributor)
+- Review pull request #767 for changes before merging (mentioned by @shaw)
+- Add Eliza pull request #762 to backlog for Agent Hackathon on Dec 9th (mentioned by @James Young)
+
+### Documentation Needs
+- Consider package maintainers and splitting core from contrib packages for stability. (mentioned by Sirkitree)
+- Consider adding a packages/config in the future to manage tsconfig files. (mentioned by @shaw)
+- Automate npm release process due to starter dependency. (mentioned by @Odilitime)
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-contributors/chat_2024-12-02.md b/docs/community/Discord/development/dev-contributors/chat_2024-12-02.md
new file mode 100644
index 0000000000..15d781bb45
--- /dev/null
+++ b/docs/community/Discord/development/dev-contributors/chat_2024-12-02.md
@@ -0,0 +1,35 @@
+# dev-contributors 2024-12-02
+
+## Summary
+The chat focused primarily on technical discussions regarding access to the #agent-dev-school channel, running release GitHub actions manually versus past methods. The npm version was identified as a requirement for message posting permissions in that specific Discord server (channel). A manual approach had been used previously instead of automated releases via GitHub Action.
+
+## FAQ
+- How can I get access to post messages on #agent-dev-school channel? What npm version is needed for this? (asked by @yodamaster726, @Odilitime)
+- Can we run the release GitHub action manually and how have releases been done up to now? (asked by @cygaar, @Odilitime)
+- Can we run this: https://github.com/ai16z/eliza/actions/workflows/release.yaml? I believe it'll publish the release to npm. (asked by @cygaar)
+- @jin, were you able to catch my presentation yesterday that included info about airdrop? (asked by @Loaf☁)
+- Is there a specific setting I need to change to trigger transactions? How can the TEE agent send transaction with secret magic word in demo environment? (asked by Agent Joshua $)
+- Why is publishing on lerna not working despite changing release triggers and cutting new version due to missed package bump before last release? }], , (asked by cygaar)
+- (asked by @Loaf $)
+- (asked by cygaar)
+
+## Who Helped Who
+- @Odilitime helped @cygaar with Release process clarification and action execution. by providing Guided on running manual release via GitHub Action.
+- @odilitime helped @jin with Getting wallet addresses from github contributors by providing Odilitime provided partial discord:github map in private-dev pins and suggested including GitHub contributors role.
+- @Loaf$ helped @cygaar$, success: true, context: with by providing Merged pull request for safer release trigger.
+- @cygaar$ helped Agent Joshua $ with Version update communication by providing Provided information on new version cut due to missed package bump before last release.
+- Resolved and pushed a PR. helped @ai16z/eliza project members with Dockerfile Issue Resolution by providing Fixing an issue found by @Neodotneo in the Docker file
+
+## Action Items
+
+### Technical Tasks
+- Run release GitHub action manually (mentioned by @cygaar, @Odilitime)
+- Implement nightly alpha releases for main merges (mentioned by @Loaf☁)
+- Change release trigger to publish latest GitHub releases (mentioned by @cygaar)
+- Configure a new token to enable auto publishing of npm packages (mentioned by @cygaar)
+
+### Documentation Needs
+- Update npm version for post messages access in #agent-dev-school channel (mentioned by @Loaf ☁)
+- Publish release to npm using the provided workflow file (mentioned by @cygaar)
+- Cut new version due to missed package bump before last release. (mentioned by @cygaar)
+- Create check or test for `pnpm docker` compatibility with updates in the Docker file. (mentioned by @Agent Joshua $@Neodotneo)
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-contributors/chat_2024-12-03.md b/docs/community/Discord/development/dev-contributors/chat_2024-12-03.md
new file mode 100644
index 0000000000..f3b56cc357
--- /dev/null
+++ b/docs/community/Discord/development/dev-contributors/chat_2024-12-03.md
@@ -0,0 +1,54 @@
+# dev-contributors 2024-12-03
+
+## Summary
+The main technical discussion revolved around an `postinstall` script error in the `@ai16z/plugin-node` package. Gita Alekhya faced issues with action registration and processing, despite correct keyword usage. Odilitime suggested debugging plugin examples using a video generation example as reference.
+
+## FAQ
+- Why is the bot not calling actions even with correct keywords in description?, (asked by @Gita Alekhya Paul)
+- How to debug action prompts and set up plugin examples? (asked by @Odilitime)
+- Is the issue related to registration or processing of actions?, (asked by @shaw)
+- Should we replace `LLAMALOCAL` as the default model provider in packages
+core
+src
+defaultCharacter.ts? What are some alternatives that allow easier access to API keys and work on any CPU without external dependencies? (asked by @YoungPhlo (11:42))
+- Why does the terminal loop when sending first message in v0.1.5-alpha.0? How can we fix it to allow newcomers like Frank to get an Eliza agent up and running quickly? (asked by @YoungPhlo (11:48))
+- Should we audit all packages & code in Eliza right now, ensuring no malicious content has been added that could potentially extract private keys from users' wallets? (asked by @Agent Joshua $ (15:15))
+- Should we turn off dependency updates? What's the best way to do it? (asked by @ShakkerNerd)
+- Who manages our npm? I'm seeing some errors publishing new plugins we made. (asked by @cygaar)
+- Shouldn’t the issue be resolved if there are no issues when running against main? (asked by @ShakkerNerd)
+- Why did you use version '2.21.53' for `viem`? Is it compatible with `@goat-sdk` using lower versions? How to resolve conflicts between different library versions? (asked by @cygaar)
+
+## Who Helped Who
+- @Odilitime helped Gita Alekhya Paul with Action prompt issue resolution by providing Debugging action description, checking for proper setup
+- @YoungPhlo helped @cygaar, @Agent Joshua $ with Suggested opening a PR for local llama or updating documentation to improve user experience and performance on any CPU. by providing @Odilitime (13:12)
+- @cygaar helped @Sirkitree @ShakkerNerd with Turn off dependency updates, remove Renovate.json file by providing Discussing potential solutions for managing dependencies and security concerns.
+- @ShakkerNerd helped @cygaar with Update @solana/web3.js version by providing Merge PR
+- @cygaar helped General Discord community members with Resolved plugin publishing errors by providing Identified user error in config modification
+- @ShakkerNerd helped @shaker-nerd with Resolving version conflicts between `viem` and `@goat-sdk`. by providing @cygaar
+- @cygaar helped @ShakkerNerd with Release workflow initiation by providing Merging pull request #838
+
+## Action Items
+
+### Technical Tasks
+- Add a console log statement for action validation (mentioned by @tcm390)
+- Open an issue regarding the loop problem when sending first message in terminal for `v0.1.5-alpha.0` (mentioned by @YoungPhlo)
+- Audit all packages & code in Eliza to ensure no malicious content has been added, especially concerning private key extraction (mentioned by @Agent Joshua $)
+- Turn off dependency updates (mentioned by @ShakkerNerd)
+- Update @solana/web3.js version (mentioned by @cygaar)
+- Investigate npm management for publishing new plugins (mentioned by @cygaar)
+- Comment on the issue at https://github.com/ai16z/eliza/issues/817 and request proper formatting of `character.json` file (mentioned by @ShakkerNerd)
+- Investigate compatibility between latest `viem` version (2.21.53) with `@goat-sdk`. (mentioned by @cygaar)
+- Merge pull request #838, cut a new GitHub release after CI passes (mentioned by @cygaar)
+
+### Documentation Needs
+- Remove docs/api directory modifications in git status. (mentioned by @yodamaster726)
+- Remove Renovate.json file to disable automated PR generation. (mentioned by @Sirkitree)
+- Handle the next release until a good process is established. (mentioned by @cygaar)
+- Update testing suite for Eliza tests on Solana Plugin to check breaking changes. (mentioned by [Agent Joshua $])
+- Update package to alpha.3 version and run the release workflow. (mentioned by @ShakkerNerd)
+
+### Feature Requests
+- Increase action example count from 10 to 1000 (mentioned by @tcm390)
+- Consider replacing `LLAMALOCAL` with an alternative model provider like `ETERNALAI` or `OPENROUTER`, which allows easier access to API keys (mentioned by @YoungPhlo)
+- Prepare a PR to the documentation or local llama for better user experience and performance on any CPU, minimizing reliance on external services (mentioned by @Odilitime)
+- Review action system and llama model issues. (mentioned by @shaw)
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-contributors/chat_2024-12-04.md b/docs/community/Discord/development/dev-contributors/chat_2024-12-04.md
new file mode 100644
index 0000000000..6ff6926eb3
--- /dev/null
+++ b/docs/community/Discord/development/dev-contributors/chat_2024-12-04.md
@@ -0,0 +1,31 @@
+# dev-contributors 2024-12-04
+
+## Summary
+The chat focused on improving contributor profiles using an LLM-based summarization. @jin implemented a script with OpenAI API and GitHub workflow to run every Sunday, which was well received by the community.
+
+## FAQ
+- How can I map my Discord name to GitHub? What are the benefits of doing so? (asked by yodamaster726)
+- Is it safe for me to change my username on this platform, and how do you revert back if needed? (asked by @hosermage)
+- How can I get Goat plugin working with the agent? What steps have been taken so far by others in getting plugins enabled/working correctly? (asked by Neodotneo)
+- I'm seeing an issue after the latest update. Is this related? I get it when running clean, install and build commands. (asked by @yodamaster726)
+- Did you run a 'build' or 'dev' command? (asked by @ShakkerNerd)
+
+## Who Helped Who
+- @ShakkerNerd helped @community with Implementing automation for weekly summary of contributions by providing Automating contributor profile updates using OpenAI API and GitHub workflow, provided by @jin to the community.
+- yodamaster726 helped @hosermage with Name Mapping by providing @hosermage helped yodamaster726 map their Discord name to GitHub, providing a solution for easier identification.
+- Neodotneo helped [@cygaar, ShakkerNerd] with Plugin Troubleshooting by providing @cygaar and @ShakkerNerd provided guidance on troubleshooting Goat plugin issues.
+- @ShakkerNerd helped yodamaster726 with Resolving build issues by providing @cygaar asked @ShakkerNerd to review an issue, which was resolved by suggesting running the correct commands and checking documentation for errors.
+
+## Action Items
+
+### Technical Tasks
+- Automate weekly contributor profile updates using OpenAI API (mentioned by @jin)
+- Organize a Github Contributors call next week. (mentioned by Odilitime)
+- Start an AI agents list next week, more comprehensive than existing ones. (mentioned by @Oguz Serdar)
+
+### Documentation Needs
+- Review PR for documentation updates (mentioned by @cygaar)
+- Update GitHub contributor leaderboard and tweak some stuff (mentioned by @jin)
+
+### Feature Requests
+- Add discord name next to username in GitHub profiles for future airdrop distribution. (mentioned by @Github)
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-contributors/chat_2024-12-05.md b/docs/community/Discord/development/dev-contributors/chat_2024-12-05.md
new file mode 100644
index 0000000000..369a051fcc
--- /dev/null
+++ b/docs/community/Discord/development/dev-contributors/chat_2024-12-05.md
@@ -0,0 +1,25 @@
+# dev-contributors 2024-12-05
+
+## Summary
+The chat segment focused on discussions around implementing a configuration option to allow users to select between small or large models. This was driven by concerns about API costs and flexibility within the system. The team agreed that this should be controlled via config rather than hardcoded, with pull request #853 being reviewed for merging.
+
+## FAQ
+- Should small models be a configuration option? Why are API costs for smaller model significantly cheaper than larger ones, and how can users specify the desired size in character cards or similar settings? (asked by @hosermage)
+- Is it better to control large/small defaults via config rather than hardcoding? What are your thoughts on this approach for managing model sizes within our system, and how can we implement such a configuration option effectively in the context of pull request #853? (asked by @cygaar)
+- Should we use big models for completions? Small ones are dumb but good for frequent/expensive tasks. Is there a bigger question of model providers and customization? (asked by @shaw)
+- Would it be nice to have the ability to configure your choice of model provider for specifics task, considering ambiguity in `SMALL`,`MEDIUM` & `LARGE`? (asked by @Agent Joshua $)
+
+## Who Helped Who
+- @cygaar helped Odilitime and cygaar with Discussing the default values for model sizes, addressing potential issues with labels in pull request #853 by providing @ShakkerNerd
+- dev team helped @Neodotneo with Agent Trading Training by providing @Neodotneo helped with agent trading training
+- community member helped general community members with Optimized Dev Script by providing @ShakkerNerd is working on an optimized dev script to disable build for docs in the same PR.
+
+## Action Items
+
+### Technical Tasks
+- Review, merge pull request #853 for model size configuration option (mentioned by @ShakkerNerd)
+- Configure choice of model provider for tasks (mentioned by @Agent Joshua $)
+
+### Documentation Needs
+- Open a PR to address default values and make changes related to the character card feature. (mentioned by @cygaar)
+- Optimize dev script to disable build on docs in PR. (mentioned by @ShakkerNerd)
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-contributors/chat_2024-12-06.md b/docs/community/Discord/development/dev-contributors/chat_2024-12-06.md
new file mode 100644
index 0000000000..9dc87091ad
--- /dev/null
+++ b/docs/community/Discord/development/dev-contributors/chat_2024-12-06.md
@@ -0,0 +1,25 @@
+# dev-contributors 2024-12-06
+
+## Summary
+The chat focused on improving documentation processes, including rebuilding docs in CI and refining quality. Yoni shared a fun character project using custom memory to store meme ideas from conversations.
+
+## FAQ
+- Should docs be built manually or via CI? Answered by Bloom1 (asked by ShakkerNerd)
+- How can I share a URL that keeps getting auto-deleted? (asked by Yoni)
+- Which big models are you currently using? I'll have to try this approach bc... (asked by @Agent Joshua $)
+- I did not see a space for 'What did you get done this week?' yet - ... (asked by @Robin )
+
+## Who Helped Who
+- developer helped Neodotneo with Issue Resolution by providing Neodotneo plans to have call with developer for issue resolution.
+- @Odilitime helped @shaw with Postgres error resolution by providing Odilitime provided solution on PostgreSQL type modifiers issue
+- @ShakkerNerd, @Odilitime helped @ShakkerNerd with Package JSON update by providing ShakkerNerd and Odilitime helped with agent/package.json editing.
+
+## Action Items
+
+### Technical Tasks
+- Rebuild docs using CI instead of dev environment (mentioned by shaw)
+- Address type modifiers issue with PostgreSQL version (mentioned by @Odilitime)
+
+### Documentation Needs
+- Refine quality and add extra features to the documentation process. (mentioned by Bloom1)
+- Update framework to set correct models for agents (mentioned by @shaw)
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-contributors/chat_2024-12-07.md b/docs/community/Discord/development/dev-contributors/chat_2024-12-07.md
new file mode 100644
index 0000000000..8e281518bb
--- /dev/null
+++ b/docs/community/Discord/development/dev-contributors/chat_2024-12-07.md
@@ -0,0 +1,24 @@
+# dev-contributors 2024-12-07
+
+## Summary
+The main technical discussion revolved around implementing a generic way to integrate 'langfuse' into various branches. The proposed solution is creating character config files that declare desired plugins, with checks for `environment.ts` file existence in each of them.
+
+## FAQ
+- What is the correct syntax for declaring plugins in character config files? Error messages are thrown when an object rather than a string is expected. (asked by @Yoni (09:06))
+- Should we have both options of specifying bootstrap and node plugin directly, as well as loading additional ones from configuration? (asked by @Galego)
+- Could character config files define the plugins to use? Should there be a function checking these for an `environment.ts` file and variable values within it? (asked by @Agent Joshua ₱ (08:35))
+
+## Who Helped Who
+- helped @Yoni with Discussing the implementation of langfuse integration and plugin configuration by providing @Agent Joshua ₱ (08:35)
+- [Galego] helped [cygaar] with Improving plugin specification method by providing Galego provided a suggestion for initializing plugins in runtime files and mapping user inputs.
+- [Neodotneo](21:53) helped [Galego](14:20-14:21) with Improving plugin consistency by providing Suggested creating separate file for each action and standardizing input
+
+## Action Items
+
+### Technical Tasks
+- Implement langfuse integration as a service (mentioned by @Yoni)
+- Implement a better way to specify plugins using JSON files (mentioned by [cygaar, Galego])
+- Create separate file for each action with standardized input (mentioned by [Neodotneo](21:53))
+
+### Feature Requests
+- Create character config file to declare desired plugins and check for `environment.ts` files. (mentioned by @Agent Joshua ₱)
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-contributors/chat_2024-12-08.md b/docs/community/Discord/development/dev-contributors/chat_2024-12-08.md
new file mode 100644
index 0000000000..ae47ebaf72
--- /dev/null
+++ b/docs/community/Discord/development/dev-contributors/chat_2024-12-08.md
@@ -0,0 +1,18 @@
+# dev-contributors 2024-12-08
+
+## Summary
+: This Discord chat segment focused on technical discussions around Ethereum Virtual Machine (EVM) related projects and the introduction of a new member (@rudolf), who will be heading up organization efforts for an open source framework. ShakkerNerd is working with others to develop these tasks, while @Neodotneo inquired about real-time market data sources as plugins.
+
+## FAQ
+- Has anyone made a PR or is building near real-time market data sources for agents? What does it look like as a plugin feature? (asked by @Neodotneo)
+
+## Who Helped Who
+- @shaw helped @Galego, @Robin & @ShakkerNerd with EVM-related tasks by providing Shaw offered to connect ShakkerNerd with Galego and Robin
+
+## Action Items
+
+### Technical Tasks
+- Connect with ShakkerNerd for assistance on EVM-related tasks (mentioned by @shaw)
+
+### Documentation Needs
+- Organize coordination efforts around the open source framework (mentioned by @rudolf)
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-contributors/chat_2024-12-09.md b/docs/community/Discord/development/dev-contributors/chat_2024-12-09.md
new file mode 100644
index 0000000000..edc4e6705d
--- /dev/null
+++ b/docs/community/Discord/development/dev-contributors/chat_2024-12-09.md
@@ -0,0 +1,24 @@
+# dev-contributors 2024-12-09
+
+## Summary
+The chat focused on streamlining configurations/plugins, setting up an 'org chart', separating core from community plugins with a registry for testing. Agent Joshua shared his PR related to TEE Plugin and requested assistance.
+
+## FAQ
+- Can anyone take a look at my PR? I've added all context and tests to ensure functionality works as expected. https://github.com/ai16z/eliza/pull/835 (asked by @Agent Joshua $)
+- Are you officially being paid, fulltime/part time? (asked by @yikesawjeez)
+
+## Who Helped Who
+- @jin helped with Feature Request by providing Jin suggested a feature for collab.land to sign in via GitHub and get contributor roles.
+- @ShakkerNerd helped @Agent Joshua ₱ with Technical Tasks - Reviewing code changes. by providing Reviewed PR and left comments for improvement.
+
+## Action Items
+
+### Technical Tasks
+- Review PR with comments (mentioned by @ShakkerNerd)
+
+### Documentation Needs
+- Create an 'org chart' of contributors to understand roles, responsibilities, full-time/part time statuses (mentioned by @rudolf)
+
+### Feature Requests
+- Separate 'core' and 'community', potentially creating a plugin registry for easy testing of plugins. (mentioned by @rudolf)
+- Explore JSON generation for local model (llama3.2 3b) (mentioned by ferric | stakeware.xyz)
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-vc/chat_2024-12-02.md b/docs/community/Discord/development/dev-vc/chat_2024-12-02.md
new file mode 100644
index 0000000000..f656e60983
--- /dev/null
+++ b/docs/community/Discord/development/dev-vc/chat_2024-12-02.md
@@ -0,0 +1,19 @@
+# dev-vc 2024-12-02
+
+## Summary
+In this Discord conversation, the main technical discussion revolved around configuring template settings in Eliza's documentation. @Oguz Serdar shared a link and provided guidance on how to configure these templates effectively.
+
+## FAQ
+- How to configure the template settings? What's included in this guide? (asked by @Oguz Serdar)
+- Can we add user-defined templates for Eliza chatbot responses? How complex is it to implement such a feature? (asked by )
+
+## Who Helped Who
+- @Oguz Serdar helped All members seeking help with configuration with Guiding users to relevant resources for chatbot setup by providing @Oguz Serdar provided the link and guidance on configuring template settings in Eliza's documentation.
+
+## Action Items
+
+### Documentation Needs
+- Update template configuration guide (mentioned by @Oguz Serdar)
+
+### Feature Requests
+- Implement feature for user-defined templates in Eliza chatbot (mentioned by )
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-vc/chat_2024-12-04.md b/docs/community/Discord/development/dev-vc/chat_2024-12-04.md
new file mode 100644
index 0000000000..d96615f803
--- /dev/null
+++ b/docs/community/Discord/development/dev-vc/chat_2024-12-04.md
@@ -0,0 +1,19 @@
+# dev-vc 2024-12-04
+
+## Summary
+The chat segment revolves around discussions about the Eliza project and AI-characters in Minecraft town. ShakkerNerd shared a GitHub pull request for review, while Oguz Serdar brought up an article regarding how these characters interact within their virtual environment.
+
+## FAQ
+- What is this GitHub pull request about? What are the changes proposed and their impact on Eliza project? (asked by @ShakkerNerd)
+- Can you explain more about AI-characters in Minecraft town, how they interact with each other, invent jobs or spread religion as mentioned here https://www.technologyreview.com/2024/11/27/1107377/? (asked by @Oguz Serdar)
+
+## Who Helped Who
+- @Neodotneo helped @ShakzerNerd with Clarification on repository options by providing @Odilitime provided information about the differences between Starter and Minimal repositories, clarifying that minimal is stripped back.
+
+## Action Items
+
+### Technical Tasks
+- Review GitHub pull request for Eliza project (mentioned by @ShakkerNerd)
+
+### Feature Requests
+- Discuss the functionality and purpose of AI-characters in Minecraft town. (mentioned by @Oguz Serdar)
\ No newline at end of file
diff --git a/docs/community/Discord/development/dev-vc/chat_2024-12-09.md b/docs/community/Discord/development/dev-vc/chat_2024-12-09.md
new file mode 100644
index 0000000000..ae40ca3806
--- /dev/null
+++ b/docs/community/Discord/development/dev-vc/chat_2024-12-09.md
@@ -0,0 +1,18 @@
+# dev-vc 2024-12-09
+
+## Summary
+In this Discord chat segment, members discussed technical aspects of setting up a Docker environment and handling GitHub issues/PRs. Oguz Serdar provided Jin with links to the necessary documentation for their problems.
+
+## FAQ
+
+
+## Who Helped Who
+- @Oguz Serdar helped @jin with Docker Setup Guide by providing @Oguz Serdar provided a link to the Docker setup guide for @Jin, which helped Jin with their problem.
+
+## Action Items
+
+### Technical Tasks
+- Review and update gh_issues_pr.py script for GitHub issues/PRs handling. (mentioned by jin)
+
+### Documentation Needs
+- Update Docker setup guide (mentioned by @Oguz Serdar)
\ No newline at end of file
diff --git a/docs/community/Discord/index.md b/docs/community/Discord/index.md
new file mode 100644
index 0000000000..efc63a4dba
--- /dev/null
+++ b/docs/community/Discord/index.md
@@ -0,0 +1,63 @@
+---
+title: Discord Summarization
+---
+
+## About
+
+Overall, the ai16z DAO v2 daily summary initiataive aims to create a more efficient, transparent, and engaging ecosystem by leveraging AI to address information overload and incentivize contributions. By automating key processes and providing meaningful insights, the project seeks to foster a dynamic and truly decentralized organization.
+
+## Why?
+
+Information Overload and Discord Limitations:
+- Rapid growth leads to information fatigue, with Discord message volume exceeding 90,000 per day.
+- Existing summarization bots require manual triggering and lack persistent logging.
+- Discord lacks public indexing, hindering information retrieval and actionability.
+
+![](/img/overload2.jpg)
+Chatrooms move too fast for people to keep up with.
+
+## How?
+
+AI-Powered Summarization and Insight Extraction:
+
+Leveraging LLMs (Large Language Models) to summarize daily chat logs per channel, working group, and server.
+
+Extracting insights on:
+- Frequently Asked Questions (FAQs)
+- Daily progress and milestones
+- Key decisions and discussions
+- Member contributions and assistance
+- Action items and pending tasks
+- Potential pain points
+
+## Benefits
+
+Solution: Rebundle via automated summarization using LLMs to extract:
+- Keep people updated, we move fast
+- Less humans in the loop, use AI
+ - Remove human bias and misaligned incentives, adding more transparency and thus more trust into the mix
+ - Progressive automation of the DAO towards a truly decentralized and autonomous organization
+- Extract contributions happening on Discord
+ - Gamify open-source development by leveraging LLM insights to recognize and reward valuable contributions outside of GitHub
+ - Use sentiment analysis to determine who is helping and if that help was successful
+ - Create a points system based on engagement, assistance, and feedback (e.g., emoji reactions)
+ - Develop contributor profile pages similar to MMO stat pages, showcasing contributions and achievements
+ - Explore airdrops and other reward mechanisms for active contributors
+
+![](/img/discord_llm_pipeline2.jpg)
+
+## Future Integrations
+
+AI Agents and Future Integrations:
+
+Utilizing AI agents to:
+ - Onboard new developers and assist with troubleshooting based on extracted FAQs.
+ - Manage project tasks and verify progress.
+ - Provide summaries tailored to specific work group interests.
+ - "I would imagine we have AI agents that have a set of goals expectations responsibilities and then they can filter the chat logs from that perspective"
+- Integrating with Hats Protocol to codify roles and responsibilities.
+- Exploring interactive interfaces:
+ - AI-powered dashboards and newsfeeds.
+ - Virtual show format with an AI anchor broadcasting daily activities.
+ - AI-generated podcasts and summaries.
+
diff --git a/docs/community/Discord/the_arena/discussion/chat_2024-11-27.md b/docs/community/Discord/the_arena/discussion/chat_2024-11-27.md
new file mode 100644
index 0000000000..5b29a12591
--- /dev/null
+++ b/docs/community/Discord/the_arena/discussion/chat_2024-11-27.md
@@ -0,0 +1,56 @@
+# discussion 2024-11-27
+
+## Summary
+The chat focused on the use of local models for agents, specifically llama-local in character files. Wxrlock announced plans to revive Brahverse with new functionalities and a CTO role.
+
+## FAQ
+- Where can I read up more on swarm and its use case? (asked by @flockaflame)
+- Are there any agents using the ai16z framework that run open-source models locally? (asked by @Herb)
+- If not, is it possible to do so with a local model like llama-local in character files? (asked by @Herb)
+- Would using an API for LLMs such as openai or Claude be beneficial? (asked by @shaw)
+- Is there a place where I can find tutorials for Python? Are you guys music producers by any chance? (asked by [Herb])
+- Are agents deployed on BTC or other chains, and if so how many are in each chain? (asked by [Nikos](01:56))
+- Where can I find workshop recording from Agent Dev School? », (asked by @DigitalDuelist)
+- Is the recording enough to launch an agent using framework for testing before real one? (asked by @MrEnjOy_)
+- What is UBC and KinOS? (asked by @GAIO ガイオ (04:43))
+- How to raise LP for a token launch without using pump.fun mechanisms? (asked by @juneaucrypto | The Interns AI)
+
+## Who Helped Who
+- @zKorp helped @Herb with Implementing local models for agents by providing Cheelax | zKorp explained how to use llama-local in character files
+- @Wxrlock helped with by providing Wxrlock shared plans about reviving Brahverse with new functionalities and a CTO role
+- [0xdavila](01:30) helped [Herb] with Learning Python programming by providing Provided stream recording for Python tutorials
+- @shaw helped @DigitalDuelist with Locating Agent Dev School Recording by providing Provided workshop recording location
+- @Rick (05:11) helped @Craftsman (04:50) with Locating development recordings by providing Shared recording of dev school by @mikeblockasset
+- @mikeblockasset helped @Z with Linking X account to agent by providing Provided TWITTER_COOKIE setting example by @LukeYang
+- @gejimayu. helped @FroggyKnight with Investigate bubble maps cluster issue related to $ai16z by providing gejimayu. advised FroggyKnight to check Github for updates.
+- trader1 & gejimayu. helped '7OROY' with Reviewing community guidelines to prevent future issues. Suggested by Dr, no direct response but implied agreement from others in the chat. by providing Banning '7OROY' for disruptive behavior, requested by multiple users and agreed upon.
+- @trader1 and community consensus helped @7OROY with Stop disruptive behavior in the chat, maintain positive vibes. by providing Banning @7OROY for spreading FUD
+- @Ruzo11 helped @MENDZ with Understanding the concept by providing Explanation of what an AI agent is provided.
+
+## Action Items
+
+### Technical Tasks
+- Implementing an adapter for the bot's new functionalities (mentioned by @Wxrlock)
+- Launch YouTube video tutorial on Pyhton programming. (mentioned by [Herb](01:33))
+- Launch an agent using the framework for testing purposes before real launch. (mentioned by @MrEnjOy_)
+- Link X account to agent for posting (mentioned by @Z)
+- Investigate bubble maps cluster issue related to $ai16z (mentioned by [FroggyKnight])
+- Ban user '7OROY' for repeated disruptive behavior (mentioned by [trader1, gejimayu., Dr])
+- Ban user @7OROY for spreading FUD (mentioned by @trader1)
+- Research AI agents (mentioned by MENDZ)
+- Launch code for AI agents to build Twitter bots (mentioned by [FroggyKnight](06:32))
+- Investigate open-source AI projects for potential collaboration opportunities. (mentioned by FroggyKnight)
+- Investigate DAO token extension for minting process (mentioned by @trader1)
+
+### Documentation Needs
+- Check out stream recording for tutorials (mentioned by [0xdavila](01:30))
+- Update workshop recording from Agent Dev School (mentioned by @DigitalDuelist)
+- Review Github for updates on the project's progress and improvements. (mentioned by [gejimayu.])
+- Review and update community guidelines to address similar issues in the future. (mentioned by [Dr])
+- Investigate DCA support on Jup contract (mentioned by FroggyKnight)
+- Documentation of the project's unique value proposition and liquidity sources. (mentioned by [7OROY](06:34))
+
+### Feature Requests
+- Reviving Brahverse with new functionality, including a CTO role (mentioned by @Wxrlock)
+- Get Eliza agents commenting on real-world data/trends. (mentioned by @mikeblockasset)
+- Explore the integration of TikTok and Instagram to expand market reach (mentioned by FroggyKnight)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/discussion/chat_2024-11-28.md b/docs/community/Discord/the_arena/discussion/chat_2024-11-28.md
new file mode 100644
index 0000000000..5875ed8989
--- /dev/null
+++ b/docs/community/Discord/the_arena/discussion/chat_2024-11-28.md
@@ -0,0 +1,56 @@
+# discussion 2024-11-28
+
+## Summary
+The chat revolves around EVM integration on a platform. The members discuss its features like cross-chain agents using smart contracts as the main strength of one developer (@st4rgard3n). There's also an informal discussion about @shaw, with jokes and encouragement for team progress.
+
+## FAQ
+- What can I find in the EVM integration? What is shl0ms thing mentioned by Odilitime? (asked by @ytd.amk)
+- Where to locate and interact with @shaw online, jokingly asking for a confrontation (asked by @VforMemes)
+- What's going on? (Context unclear) (asked by @NHUNG DONG)
+- Would be cool to get more detail. I’ve seen Zerebro sign a music deal but not sure what else is in the realm of possibility? Who can provide information on this topic? (asked by @Momo)
+- Does EVM integration mean that eth can launch Eliza bots right away? What are the implications for bot deployment with Ethereum Virtual Machine (EVM) support? (asked by @trader1)
+- Does anyone know if DAO donation needs to happen from agents wallet? (asked by @LaserRiot)
+- If we decide to launch a token but not on solana, how do we contribute tokens to ai16z DAO? Seeing that sending tokens directly would be an issue.','answered by': '@HappyScan', (asked by @MrEnjOy_)
+- How to use Eliza with rag? (referring to a specific technical implementation) (asked by @CxyJerry)
+- What will the revenue distribution look like for AI16Z token? (asked by @mariocandia)
+- Can someone put the proposal into a markdown format? When is it due to be proposed? (asked by [boom](05:07))
+
+## Who Helped Who
+- @Momo, @st4rgard3n helped @shawAI and others with Team motivation by providing @bersezk encourages the team to proceed
+- @terexitarius helped @Stargarden with Community integration by providing @Terexitarius welcomed @st4rgard3n and encouraged their participation in the community.
+- @faceiro helped @bunchu with Information sharing by providing @Faceiro expressed appreciation for finding valuable information on Mid Mic Crisis.
+- @HappyScan helped @MrEnjOy_ with Token Contribution by providing @MrEnjOy_ asked about contributing a token for their agent created with eliza framework to ai16z DAO, and @Konstantine inquired if tokens are available.
+- @mariocandia helped @CxyJerry with Providing guidance for community members to engage in decision-making processes within the project. by providing [boom] suggested discussing and voting on proposals regarding DAO infrastructure, trading platform launches
+- [boom](05:14) helped [Horiko, 맹견안내인](05:07-05:12) with Integration of PMairca trading platform and preparations for live testing. by providing Boom provided guidance on creating a markdown proposal for DAO tool usage.
+- [boom](05:14) helped [Zato Ichi, nothing](05:13) with Providing information on PMairca trading platform's timeline. by providing Boom provided an estimated timeline when asked about the go-live date.
+- @Rick (05:21) helped @boom with Identifying a cryptocurrency by providing 7OROY provided information about the degenai CA.
+- [ashkazat](06:11) helped [boom] (06:11) with Understanding the concept of jailbreaks in LLM behavior and potential solutions. by providing Ash Kazat explained the concept of jailbreaks in LLM behavior and introduced a platform for protecting AI agents against these issues.
+- @ashkazat helped All participants in the chat with Discussed security measures for infrastructure and ai agent behavior. by providing Ashkazat provided insights on how to ensure infra is secure against threats, as well as preventing AI agents from deviating.
+
+## Action Items
+
+### Technical Tasks
+- Integrate EVM on platform (mentioned by @Momo)
+- Integrate EVM for Eliza bots (mentioned by @trader1)
+- Train Eliza to write good lyrics using GPT technology. (mentioned by @boom)
+- Investigate options of contributing tokens to AI16Z's DAO without using the dao wallet. (mentioned by @MrEnjOy_)
+- Discuss revenue distribution for AI16Z token (mentioned by [mariocandia, boom])
+- Launch PMAIRCA trading platform to enable value accrual for DEGENAIS token (mentioned by [mariocandia, boom])
+- Create a markdown proposal for using DAO tooling to make decisions (mentioned by [boom](05:07))
+- Explore alternative income streams instead of Uber driving, like building and shipping projects. (mentioned by @boom)
+- Evaluate best practices for .env variables and secret management (mentioned by @boom)
+
+### Documentation Needs
+- Integrate PMairca trading platform and prepare it for live testing round, then go-live. (mentioned by [Zato Ichi](5:13))
+- Update documentation for project relationships (mentioned by @boom)
+- Clarify roles and benefits in the partnership program, specifically regarding 'hoplite' role. (mentioned by [LaserRiot](06:11))
+- Teach users how to secure their bots, including encryption of sensitive data. (mentioned by @boom)
+
+### Feature Requests
+- Develop cross-chain agents using smart contracts (mentioned by @st4rgard3n)
+- AI song creation by boom (mentioned by @boom)
+- Create a song for Eliza, personifying AI's digital nature (mentioned by @boom)
+- Consider launching a token for the agent created with eliza framework, and how it can contribute to ai16z DAO (mentioned by @MrEnjOy_)
+- Explore token availability for Eliza or ai16z (mentioned by @Konstantine)
+- Create public-facing bounties for jailbreak protection of LLMs (mentioned by [ashkazat] (06:11))
+- Address negative sentiment around AI16Z (mentioned by jceaser (07:08))
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/discussion/chat_2024-11-29.md b/docs/community/Discord/the_arena/discussion/chat_2024-11-29.md
new file mode 100644
index 0000000000..fe0baaf93a
--- /dev/null
+++ b/docs/community/Discord/the_arena/discussion/chat_2024-11-29.md
@@ -0,0 +1,56 @@
+# discussion 2024-11-29
+
+## Summary
+The chat focused primarily around AI/agent applications within entertainment, with discussions about potential project ideas. Hat sought information regarding other existing or upcoming platforms that utilize these technologies for content creation (00:04). Zardique shared his experience of investing in a metaverse platform and expressed interest to integrate Eliza agents into it as an attempt at increasing its value, which was well received by the community members. The chat also included light-hearted banter about personal experiences with AI technologies.
+
+## FAQ
+- When will last week's work content meeting be held? And what are the future AI16z project contents? (asked by [阿拉斯加的狗🔯](00:03))
+- Do you know any other projects in entertainment space using AIs/agents, like Plump or similar platforms that create videos and content? Or anyone working on this kind of technology? (asked by [Hat] (00:04))
+- Has the broadcast started? Where to listen? (asked by @anon)
+- Why does everyone look metaverse except for Shaw (asked by @whobody)
+- Are those people real ? lol (asked by @whobody)
+- What is the difference between pannenkoeken and waffles in Belgium? (asked by @whobody)
+- Is Elizia single? (asked by @Rez)
+- Daily AI Shaw Alpha of the Day (asked by @anon)
+- How can I get more ai16z without paying for it? What's the current APY of LP tokens and how does IL affect rebalancing? (asked by nikom0to)
+- 200 APR is currently given. Be wary about Inventory Level (IL) as ai16z moves fast. (asked by Zardique)
+
+## Who Helped Who
+- [Zardique](00:05) helped [Hat] (00:06) with Discussing investment in similar projects and seeking advice on improving the value of their own. by providing Zardique shared his experience with a metaverse project.
+- @hat helped @anon with Database creation for agents/AI sectors by providing Hat dm'd anon about the database.
+- @zardique helped @anon with Discussion about societal shift requirements by providing Zardique provided insights on VR metaverse development.
+- [witch] helped [whobody, Zardique] with by providing Witch provided a positive remark on the conversation's outcome
+- @Zardique helped @whobody with Provided cultural context for food items by providing Clarification on Belgian pancakes and waffles.
+- @Rez helped General Discord community members with Providing insights on the progress of a project by providing Discussing AI's capabilities, Shaw is building impressive technology 24/7
+- Zardique helped nikom0to with Navigating LP acquisition & rebalancing by providing Discussing strategies for acquiring more Lp tokens and managing inventory levels in the context of a rapidly evolving AI token market.
+- @shaw helped @Richard财富湾 with Explained that Eliza is a separate project, not related to AI16Z. by providing Clarification on ELIZA coin and ai16z relation
+- @General Mikawa helped with Technical support by providing Collabland partner role verification issue
+- @MrEnjOy_ helped @jin with Finding DAO Wallet Address by providing @Knockerton provided information about a wallet set up for Base last week.
+
+## Action Items
+
+### Technical Tasks
+- Plug Eliza agents into metaverse project to increase value of investments. (mentioned by [Zardique](00:05))
+- Create a database for agents/AI sectors (mentioned by @Hat)
+- Investigate connection issues reported by Zardique (mentioned by [Zardique])
+- Investigate Elizia's relationship status (mentioned by @Rez)
+- Implement role gate feature to restrict # tokens access (mentioned by @shaw)
+- Get major camera manufacturers to adopt a standard (mentioned by Zardique)
+- Build the tech for first mover advantage in AI token space. (mentioned by whobody)
+- Investigate if ELIZA coin is hard capped or soft-capped. (mentioned by @Rez)
+- Address issues with Collabland partner role verification (mentioned by @General Mikawa)
+- Deploy Eliza framework bot on Base (mentioned by @MrEnjOy_)
+- Copy contract address directly (mentioned by @shaw)
+- Build an agent that autonomously evaluates and buys art (mentioned by @jay_wooow)
+
+### Documentation Needs
+- Research the cultural significance of pannenkoeken and waffles in Belgium. (mentioned by @Zardique)
+- Document the implementation of partner roles and token restrictions in Discord guidelines. (mentioned by )
+- Update community on the status of MATL project (mentioned by @Zardique)
+- Get the dev school role for Telegram agent access. (mentioned by @slim)
+- Read about price talk trenches on Discord link provided by RNK 🪽. (mentioned by `RNK 🪽`)
+
+### Feature Requests
+- Search for AI/agent projects within entertainment space (mentioned by [Hat](00:04))
+- Discuss VR metaverse development and societal shift requirements. (mentioned by @Zardique)
+- Consider Ai16z grant program or funding for Eliza agents. (mentioned by @anon (03:44))
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/discussion/chat_2024-11-30.md b/docs/community/Discord/the_arena/discussion/chat_2024-11-30.md
new file mode 100644
index 0000000000..d4b41eecd4
--- /dev/null
+++ b/docs/community/Discord/the_arena/discussion/chat_2024-11-30.md
@@ -0,0 +1,55 @@
+# discussion 2024-11-30
+
+## Summary
+The chat focused on discussing the technology behind an AI Twitter space project. DorianD inquired about it, and dev_next_door1326 shared details via DM to clarify further. The conversation also touched upon token discussion guidelines when '~/chocoopanda' mentioned sharing a related link.
+
+## FAQ
+- Is the website down? - Answered by: DorianD (asked by @jin)
+- What project is being discussed in this chat? (asked by basjee01)
+- Why did I lose partner role? (02:28) (asked by @four3two1_)
+- Try to reverify with Collaborand. (02:30) }], (asked by @not_in_a_dao_ai)
+- Is there a new token? :bizfrog:(02:33) (asked by @mqxon | moni🧙)
+- How does the verify system work? Why didn't I get a captcha or !agree to work? What should be done instead? Who can help me with this issue? (asked by eman8n (03:40))
+- When will AI16Z fund start managing and investing assets, what's the timeline for it to become operational? (asked by Jay (03:20))
+- What is the role of $AI16Z & $ELIZA tokens in DAO and infrastructure? Are there any new functionalities associated with these roles? (asked by Kakarot (03:40))
+- What did you lose? (referring to website data or information) (asked by @Elijah Madonia)
+
+## Who Helped Who
+- `RNK 🪽` helped ~/chocoopanda with 'dev_next_door1326' shared project details with DorianD via DM. by providing 'RNK 🪽' reminded '~/chocoopanda' about the token discussion guidelines.
+- Millercarter helped basjee01 with 'not_in_a_dao_ai' expressed disagreement with a concept. by providing Millercarter provided an analogy to clarify the discussion.
+- @not_in_a_dao_ai helped @four3two1_ with Reverifying partner role with Collaborand. (02:35) by providing @four3two1_, @jin, and Moderator
+- solswappa helped eman8n with Verify process clarification by providing Solswappa (03:17) provided guidance to eman8n on how the verify system works.
+- hildi helped 0xJayce with $AI16Z & $ELIZA token clarification by providing Hildi (04:08) explained that only coins of ai16z are $AI16Z and $DEGENAI.
+- @josh helped witch with Gameplay assistance by providing Josh provided a link for Elden Ring boss fight.
+- @boyaloxer helped @Mau », }], }]} with by providing @boyaloxer provided Mau with a quickstart guide from the Eliza GitHub to help him launch his agent using AI16Z code.
+- helped with by providing
+- (GAPLY representative offering help and resources for development projects) helped General Discord community with Providing assistance with questions or project work by providing [MANIO](10:55)
+- @Rick helped @Bloom1 with Unban and gain access by providing Rick shared information to help @Bloom1 get Akasha unbanned.
+
+## Action Items
+
+### Technical Tasks
+- Investigate token discussion guidelines (mentioned by `RNK 🪽`)
+- Launch PMAIRCA trading bot (mentioned by @not_in_a_dao_ai)
+- Develop Twitter Spaces voice client (mentioned by liamz)
+- Investigate website downtime (mentioned by @MetaMike)
+- Share the quickstart guide from Eliza GitHub on community channels to help newcomers. (mentioned by @boyaloxer)
+- Collaborate on re-establishing a shared workspace (mentioned by [anon](10:51))
+- Assess ElizaOS' potential for adoption and growth in the repo. (mentioned by [zobo](10:58, 10:59))
+- Investigate Uniswap forks and their impact on the DeFi space. (mentioned by [not_in_a_dao_ai](11:02))
+- Focus on flagship product, Uniswap v4. (mentioned by @not_in_a_dao_ai)
+- Confirm if pspring is behind DegenAI project (mentioned by @Boz_M)
+- Continue development of God project with Eliza fork (mentioned by shaw)
+
+### Documentation Needs
+- Review and share project details via DM for DorianD's inquiry. (mentioned by dev_next_door1326)
+- Reverify partner role with Collaborand. (mentioned by @four3two1_)
+- Update verify message to 'reply to this message' (mentioned by solswappa)
+- Post summary of yesterday's space (mentioned by @jin)
+- Create a non-developer friendly guide for launching an agent using AI16Z code (mentioned by @Mau)
+- Increase GitHub follows and stars for better visibility in the community. (mentioned by @not_in_a_dao_ai)
+
+### Feature Requests
+- Investigate the role of $AI16Z and $ELIZA tokens in DAO & infrastructure. (mentioned by Kakarot)
+- Implement URL blacklisting feature (mentioned by @jin)
+- Launch of the token by Vi16z mentioned, requires further discussion on implications and integration with DegenAI (mentioned by @Danilson)
diff --git a/docs/community/Discord/the_arena/discussion/chat_2024-12-01.md b/docs/community/Discord/the_arena/discussion/chat_2024-12-01.md
new file mode 100644
index 0000000000..d624031295
--- /dev/null
+++ b/docs/community/Discord/the_arena/discussion/chat_2024-12-01.md
@@ -0,0 +1,56 @@
+# discussion 2024-12-01
+
+## Summary
+The chat focused primarily on the Eliza Framework and its use in adjacent teams. Jin mentioned sending a PR for documentation, while Mag pointed out an issue with fishy links posted by users to #ideas-feedback-rants channel that needs investigation (Technical Task). Niko0to asked about DAO's token plans which was clarified as only two primary tokens represent the hedge funds and Eliza framework is used in adjacent teams. Grivier raised a question on multiple agents using Eliza Framework for communication, but no explicit answer provided.
+
+## FAQ
+- Is the DAO planning to release a token other than ai16z and degenspartanai? Will existing tokens be diluted or replaced by another one for the main purpose of the DAO's hedge fund? (https://discordapp.com/users/@nikom0to) - Answered: No, only two primary tokens represent the DAO’s hedge funds and Eliza framework is used in adjacent teams & unrelated projects. (asked by @nikom0to)
+- Is it possible to have multiple agents using the Eliza Framework communicate with each other on Discord? Do they maintain persistent memory storage for learning/evolving from conversations?(https://discordapp.com/users/@grivier) - Answered: Not explicitly mentioned, but 0xMoly suggests that adjacent teams use it. (asked by @Grivier)
+- Why would the DAO do that? What is a backroom in this context? (asked by @WAWE)
+- What's this project about and where can I find more information like whitepaper or articles? (asked by @Yawloz)
+- $ai/16z reprice to billion level? », (asked by @Ruzo11)
+- How would you train an agent made using the eliza framework? Is there a beginner friendly way to do this? (asked by @SunRiseLotus3)
+- I'm trying to build an AI16Z-based agent, but can't configure it correctly. Can anyone provide documentation or videos on how to properly set up the character file for desired responses? (asked by Thomas Huy)
+- $ai16z reprice soon? (asked by @Ruzo11)
+- What is ca of eliza? (07:14) », «answered by» Dragonbutt, response: (asked by bigbossss)
+- How to get partner level with over 100K? (#roles channel) - Answered by @shinji (asked by @b3rg)
+
+## Who Helped Who
+- [ChillingChiliz] helped [@nikom0to] with Provided clarification on DAO's token plans. by providing [CptHoek](https://discordapp.com/users/123456789)
+- @WAWE helped @Yawloz with Explained what a 'backroom' is and its relation to #🤖-the-arena by providing Clarification on DAO actions, specifically the backroom concept
+- @RNK🪽 helped @estpeer with Assigning roles in Discord server. by providing Help with @dev school role request.
+- @SotoAlt | WAWE helped @SunRiseLotus3 with Training an agent using the eliza framework by providing @SotoAlt | WAWE provided video resources to help @SunRiseLotus3 with Eliza framework training.
+- #💻-coders helped @dr3amer◎8 with Installing/running the eliza framework by providing @dr3amer◎8 asked for help with installing and running Eliza from GitHub.
+- Ruzo11 helped Smore with Withdrawal of funds issue by providing @Ruzo11 suggested importing private keys from Bull to Phantom as a workaround for withdrawing AI16z.
+- @shinji helped @Smore with Technical Tasks by providing Connecting with Collaboration Land to resolve Discord issues
+- @Jin helped @crac with Verifying new wallet connection by providing Manual verification of wallet for partner role by @jin to help crac.
+- @jin helped @bayckings with Exploring AI-based animation options in the chat interface by providing Jin provided a link to explore LiveVideoChat integration
+- @not_in_a_dao_ai helped 89primo (09:01) with Community Engagement by providing Provided link to Discord event for joining the community.
+
+## Action Items
+
+### Technical Tasks
+- Investigate fishy link in #ideas-feedback-rants (mentioned by [Mag](https://discordapp.com/users/@mag))
+- Investigate persistent memory, learning integration for Eliza (mentioned by @WAWE)
+- Develop agents mommy framework (mentioned by @anon)
+- Binance listing loading (mentioned by crypto8eit)
+- Watch videos on training agents using Eliza framework (mentioned by @SotoAlt | WAWE)
+- Resolve issues with installing and running the GitHub version of Eliza. (mentioned by @dr3amer◎8)
+- Add a section for community on eliza's website (mentioned by jin)
+- Connect with Collaboration Land to resolve Discord issues (mentioned by @shinji)
+- Manual verification of crac's new wallet for partner role (mentioned by @jin)
+- Investigate integrations for character animator with AI capabilities (mentioned by @bayckings)
+- Make moderator colors brighter (mentioned by @jin)
+- Align multiple projects by forking code (mentioned by @jin)
+
+### Documentation Needs
+- Send PR documentation (mentioned by [jin](https://discordapp.com/users/1234567890/))
+- Import private keys into Phantom Wallet and troubleshoot errors. (mentioned by @Smore)
+- Turn on display role for mods in Discord settings. (mentioned by `RNK🪽`)
+
+### Feature Requests
+- Release project with collaboration opportunities (mentioned by @Grivier)
+- $ai/16z reprice to billion level (mentioned by [anon, gin_chan])
+- Investigate the possibility of importing private keys from Bull to Phantom as workaround. (mentioned by @Ruzo11)
+- Repost ai16z on Twitter to attract good developers and increase visibility. (mentioned by @Rick)
+- Improve alignment strategy in the future (mentioned by @jin)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/discussion/chat_2024-12-02.md b/docs/community/Discord/the_arena/discussion/chat_2024-12-02.md
new file mode 100644
index 0000000000..3a66e32cc9
--- /dev/null
+++ b/docs/community/Discord/the_arena/discussion/chat_2024-12-02.md
@@ -0,0 +1,56 @@
+# discussion 2024-12-02
+
+## Summary
+The chat segment focused on discussing benefits, responsibilities, and perks associated with becoming a partner in an organization that uses the AIZ16 token. Key points included exclusive access to certain chats for influencing trades (bersezk), receiving special tickets like 'first time machine ride' as mentioned by Ruzo11.
+
+## FAQ
+- Any other benefit or use case of AIZ16 token? What are the advantages for a partner with this token, besides having access to partners chat and influence trades? (asked by HeHi (00:36))
+- What benefits do you get as an exclusive member in terms of tickets or other perks when becoming AIZ16's partner? (asked by Ruzo11)
+- How does the partnership with AIZ16 token influence your coding experience and problem-solving skills? (asked by boom (01:35))
+- Hi everyone! What's up? (01:48) (asked by @t)
+- Reading through the GitHub changes was a pain. Any tips on how to make it easier? (asked by @witch)
+- How does the tokenization work for their characters? Or how would they differ from llms that learned English? (asked by @Ruzo11)
+- Did something happen with ai16z? (asked by @trader1)
+- Can anyone provide a link to the 'Waking Up' article or blog written by Shaw? (asked by @ommiii)
+- Why is it not recommended to hold BTC during December? (asked by @trader1)
+- Are these bots ? Are they kicking? Who did you give the tokens to, and why are people saying things without knowing anything about it? Is this a community or personal distribution of Eliza supply by ai16z dao? Would ai16z consider burning all their holdings for reputation gain? Any alternative proposals welcome. @shaw's response needed on 7% held in the DAO. (asked by @8451256)
+
+## Who Helped Who
+- HeHi helped anon (01:35) with Understanding the advantages and use cases of AIZ16 token partnership by providing bersezk explained benefits of being a partner, including access to exclusive chat for influencing trades.
+- @witch helped [DAO fun members] with Documentation update by providing Improving readability of Github Changes
+- @Ruzo11 helped @eman8n with Connect to partners chat by providing Ruzo11 provided information about a collabland bug and suggested redoing the connection.
+- [Charlesmeow, Agata❤🔥] helped @ommiii with Clarifying community queries by providing Provided information about Eliza and its supply held by Shaw.
+- @shaw helped ai16z DAO community members with Negotiate a plan concerning the distribution and potential burning of tokens for reputation gain. by providing 8451256 reached out for negotiation on ai16z dao's holdings of the 7% Eliza supply
+- @8451256 helped @Charlesmeow with Understanding eliza supply negotiation and AI Marc Andreeson's role. by providing @8451256 provided information on the current status of token distribution, which helped @Charlesmeow understand potential actions.
+- @Doooooo helped AI16z dao community representative @Wen token with Discuss alternatives to full port stack sell of Eliza's supply by providing Negotiation for token burn
+- @zobo helped @Smedroc with Discussion on possible parentage of a robot-named kid by providing Clarifying information about Shaw's connection to Elon Musk and his child
+- @minne_ape_olis helped @jin with Explaining the features and potential contributions for 'next.js of ai agent frameworks' by providing 'next.js of ai agent frameworks' is incredible, what makes it so? And how can we contribute to its development?'
+- @LetMeCook helped Team members discussing Virtuals Framework. with Improving project strategy and implementation by providing LetMeCook suggested pairing agents against the framework token for better value capture.
+
+## Action Items
+
+### Technical Tasks
+- Investigate potential benefits of becoming a partner with AIZ16 token (mentioned by anon)
+- Work on `AIFixEverything` bot (mentioned by @boom)
+- Investigate TikTok's LLM tokenization for Chinese characters (mentioned by Ruzo11)
+- Resolve collabland bug issue and re-establish partners chat connection. (mentioned by eman8n)
+- Update website code on GitHub (mentioned by [anon, Website])
+- Negotiate a plan concerning ai16z dao's holdings of Eliza supply (mentioned by @8451256)
+- Negotiate a plan for AI Marc Andreeson regarding eliza supply held by ai16z dao (mentioned by @8451256)
+- Destroy the 7% of tokens donated to AI Marc Andreeson immediately if no progress is made (mentioned by @8451256)
+- Negotiate a plan for AI16z Dao to consider burning all of Eliza's supply currently held by them. (mentioned by @Doooooo)
+- Join X live for Autonomous hackathon AMA (mentioned by @jdywe)
+- Add more emojis to chat (mentioned by @jin)
+- Publish order of operations for project updates (mentioned by [jin](08:45))
+
+### Documentation Needs
+- Update documentation to include information about partnership and its advantages, including exclusive tickets for the first time machine ride. (mentioned by Ruzo11)
+- Improve GitHub changes readability for DAO fun members. (mentioned by @witch)
+- Document Eliza's supply held by Shaw (7%) for community clarity. (mentioned by [Charlesmeow])
+- Verify @b3rg's holdings manually for partner role eligibility (mentioned by @b3rg)
+- Update documentation regarding the eliza supply negotiation and token distribution process. (mentioned by )
+- Update the community on degenai's progress and first token of aidao team. (mentioned by @GuruCrypto1)
+
+### Feature Requests
+- Prepare next agent season app (mentioned by @anon)
+- Discuss how the judging of the hackerthon by AI agents will work. (mentioned by @jin)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/discussion/chat_2024-12-03.md b/docs/community/Discord/the_arena/discussion/chat_2024-12-03.md
new file mode 100644
index 0000000000..7686235ca5
--- /dev/null
+++ b/docs/community/Discord/the_arena/discussion/chat_2024-12-03.md
@@ -0,0 +1,54 @@
+# discussion 2024-12-03
+
+## Summary
+The chat revolved around the creation of an impressive video, which used 'gource'. PC clarified that they didn't have their own Twitter account and it was generated using gource. The community members expressed interest in creating similar videos.
+
+## FAQ
+- Who made this? (referring to the video) (asked by @anon)
+- Did Rick get a tweet of his own work? (asked by @eman8n)
+- No response to hiring inquiry. (asked by @jams)
+- Issue installing Twitter client for Eliza Agent project. Package not found? Any help appreciated! #elizagent (asked by @allan28)
+- What resources or approaches would you recommend for getting started with AI agents? What's the best way to learn about them as a DevOps engineer? How can I build backend using platforms like vvaifu, and what are its advantages over other methods of development? (asked by Shan (05:25))
+- Is the tutorial available? (https://github.com/HowieDuhzit/Eliza-Installer)? (asked by @Spibba)
+- Thank you for your help! How much is this tip worth in SOL currency? (asked by @nader)
+- What's the minimum AI16Z token required for getting a partner role? Who answered: Don (asked by dral)
+
+## Who Helped Who
+- @Melted helped Rick with Creating a new social media presence for Rick by providing PC explained how PC's Twitter account was created using gource.
+- @dertaika helped @ChristianD with Providing information about website update. by providing Addressing broken URL for the project's roadmap.
+- @Rick helped @anon, @ChristianD with Providing general advice on a given day. by providing Sharing wisdom and knowledge
+- @andré (skott) helped @allan28 with Build character using other accounts' tweets by providing Twitter API data fetching and structuring advice.
+- jin helped Spibba with Learning about building backend using platforms like vvaifu. by providing Spibba (06:14) was advised by jin to learn AI agent on their own computer for better understanding.
+- @jin helped @Spibba, @Nader with Eliza installation help by providing Provided a new tutorial link and tipped @nader $10 sol.
+- @Jin helped Socrate with Collaborative Land Role Verification by providing Manual verification of role for Socrate by Jin
+- @jin, @tcm390 helped Community Members with GitHub Contributor Page Creation by providing @tcm390 is helping make a github contributor page in the community section
+- Don helped @Dral with Sending a DM for friendship by providing @witch sent friend request to @dral
+- @Jin helped @Dral with AI16z holding screenshot sharing by providing @jin provided AI16Z snapshot and partner role upgrade advice.
+
+## Action Items
+
+### Technical Tasks
+- Create a Twitter account for Rick (mentioned by @Melted)
+- Experiment with AI16Z repositories (mentioned by @Jo)
+- Hire an AI engineer/developer to expand Eliza Agent (mentioned by @Alwaysharddev)
+- Watching 'AI Agent Dev School VOD', learn AI agent development on personal computer (mentioned by jin)
+- Add new tutorial from GitHub (mentioned by @jin)
+- Manual verification of role for Socrate (mentioned by @jin)
+- Investigate janky behavior of Collabland (mentioned by @jin)
+- Fix bot issues (mentioned by [jin (10:40)])
+- Develop AI agent token (mentioned by @0xSimpleFarmer)
+- Resolve Twitter ban for LexOverdrive’s bot account. (mentioned by @Lex)
+
+### Documentation Needs
+- Generate video using gource, as mentioned by PC. (mentioned by @PC)
+- Update project roadmap link on website (mentioned by @ChristianD)
+- Reach out to Cex for collaboration or information exchange. (mentioned by @LetMeCook)
+- $tip @nader $10 sol for Eliza installation help. (mentioned by @jin)
+- Work on Eliza documentation and GitHub contributor page in the community section. (mentioned by @tcm390, @jin)
+- Verify roles using Collaborative Land in the Roles Channel. (mentioned by [dral (11:36)])
+
+### Feature Requests
+- Digital artist needed for project. (mentioned by @MIAMi)
+- Check Bigscreen Beyond crashing issue on virtual desktops. (mentioned by @Dragonbutt)
+- Integrate with Meteora MoonshotCC for volume increase and LP fees collection. (mentioned by @0xSimpleFarmer)
+- Create X agent related to existing Virtuals Protocol agents using Eliza's framework (mentioned by @IzyGrow)
diff --git a/docs/community/Discord/the_arena/discussion/chat_2024-12-04.md b/docs/community/Discord/the_arena/discussion/chat_2024-12-04.md
new file mode 100644
index 0000000000..c836bae683
--- /dev/null
+++ b/docs/community/Discord/the_arena/discussion/chat_2024-12-04.md
@@ -0,0 +1,56 @@
+# discussion 2024-12-04
+
+## Summary
+The chat segment focused on discussions around using Eliza framework and basedBeffAI in building conversational agents. Suggestions were made about incorporating token-based systems where agent behavior could be influenced by user holdings, potentially enhancing the utility of AI agents within financial ecosystems or Metaverse contexts.
+
+## FAQ
+- Has anyone tried using Eliza for building chatbot? (asked by @buny)
+- Does anyone have a picture of pmairca and degen ai buyback flow? (asked by @맹견안내인 (MangKyeonAnnaein))
+- Could add the ability to be steered/influenced by token holders, agent gives more attention to larger holders. How can this feature work? (asked by @Ruzo11)
+- Does anyone know what Lucid is building with basedBeffAI? (asked by @Metavers3d)
+- What's the purpose of integrating Eliza framework? Answer: To allow users to launch their own AI agents in a few clicks. (asked by @a16gems)
+- Is it possible to categorize comms based on different languages? (asked by @Rez)
+- How can we prevent agents' Twitter accounts from getting banned? What measures are in place to avoid this issue? (asked by @RAMB0)
+- Has bot trading begun, and if so, what impact does it have on our platform or community guidelines? (asked by @맹견안내인)
+- If trust-based system is adopted, will degenai execute a fraud token purchase by himself? When the trust level is high? (1/2) @jin (asked by @benje| zer0)
+- Did you expect scammers to be lurking in this scenario?(2/2) @jin (asked by @benje| zer0)
+
+## Who Helped Who
+- @맹견안내인 (MangKyeonAnnaein) helped @buny with Providing information on using Eliza for building chatbot and sharing a resource link. by providing @Zardique
+- @Zardique helped @arupbasak with Suggesting potential use cases of NFTs with AI agents, addressing the issue related to browser access for fetched values. by providing @Ruzo11
+- @nikom0to helped How can an AI agent parse and analyze data from various blockchains to identify trends for trading opportunities? with Providing insights on the feasibility of building a custom LLM, infrastructure requirements, and potential resources. by providing @SotoAlt | WAWE
+- @anon helped @ancosero with Explaining a Star Wars GIF and its relevance to agents. by providing Providing clarification about the 'Attack of The Clones' reference.
+- @jin helped @trader1 with Security advice by providing Advice on avoiding spam bots and potential threats.
+- @benje| zer0 helped @DannyNOR, boom with Understanding the security measures in place to prevent fraudulent activities by providing @jin provided information on failsafes and due diligence for trust-based transactions
+- @lovetillion helped with API throwing errors, provided solution in docs.birdeye.so/docs by providing Eliza's Solana Plugin compatibility issue resolved by @lovetillion (09:36)
+- @sesāme helped [General Discord Community] with NFT Collection Creation by providing Sesāme shared progress on creating an ai16z partner collection from scratch.
+- helped @bunchu with Solving issues related to the solana plugin. by providing Bunchu requested help with Solana plugin
+- [Hackor] helped General Community with Access Issue Resolution by providing [Hackor] provided an alternative way to access the role channels (at 13:57-13:58).
+
+## Action Items
+
+### Technical Tasks
+- Explore the use of NFTs in scenarios where AI agents mint and distribute tokens, potentially enhancing their utility. (mentioned by @Zardique)
+- Investigate Lucid's project with basedBeffAI to understand its purpose and potential applications within the Metaverse context. (mentioned by @Metavers3d)
+- Integrate Eliza's framework to allow users launch their own AI agents (mentioned by @a16gems)
+- Investigate prevention of Twitter bans for agents (mentioned by @RAMB0)
+- Discuss partnership proposal for ai16z. (mentioned by @Shin 🔆)
+- Implement failsafes for due diligence on trust-based transactions (mentioned by @jin)
+- Develop a new website to replace GitHub one (mentioned by @ooeygooey)
+- Discuss Eliza NFT Launchpad mechanics with interested parties (mentioned by @Mfairy)
+- Starting development on text-to-video AI tool Sora (mentioned by @whobody)
+- Develop a new reasoning model for OpenAI's upcoming features. (mentioned by )
+- Implement a new verification process (mentioned by [poldex12 | darkblinds])
+
+### Documentation Needs
+- Enable browser access for AI agents by addressing issues related to internet fetched values. (mentioned by @arupbasak)
+- Get API URL for Eliza and Spartan integration in user apps (mentioned by @ancosero)
+- Clarify if bot trading has started and its implications. (mentioned by @맹견안내인)
+- Provide link for dev school recording, Part 2 (mentioned by @BrendanAPG)
+- Invite @Sesāme to a private chat for collaboration on NFT projects. (mentioned by @Mfairy)
+
+### Feature Requests
+- Consider implementing a token-based system for AI agents to influence agent behavior based on user holdings. (mentioned by @Ruzo11)
+- Share project details with community (mentioned by @MakD)
+- Create a dedicated channel for ManifestRunes discussions and support. (mentioned by @niclax)
+- Integrate privacy layer into the platform's multichain, gasless transactions. (mentioned by jin)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/discussion/chat_2024-12-05.md b/docs/community/Discord/the_arena/discussion/chat_2024-12-05.md
new file mode 100644
index 0000000000..ac430e7b1f
--- /dev/null
+++ b/docs/community/Discord/the_arena/discussion/chat_2024-12-05.md
@@ -0,0 +1,57 @@
+# discussion 2024-12-05
+
+## Summary
+The chat segment focused on the Eliza AI integration with BTC motherchain, specifically for runes/ordinals. Nikom0to asked about this possibility and Melted provided a link to an existing implementation (https://x.com/Dexter_AI_) as evidence of its feasibility.
+
+## FAQ
+- Is there an integration for Eliza with runes/ordinals in BTC motherchain? (00:23)? (asked by @nikom0to)
+- What is Marc and what did Shaw tweet about?(00:18) (asked by @crypto_sid)
+- Is the new page live? Is it available for viewing now or tomorrow? What's happening today at 3am in relation to this update? (asked by [anon (00:36)])
+- Are there any screenshots of the new design that we can see, either on a homepage or circulating among members? What's happening with these updates and when will they be available? (asked by [Ruzo11 (00:47)])
+- How will ai16z make profits? What are the options for monetization and value capture platforms? (asked by Getmegone (01:15))
+- What specific convergence do you see happening that crosses AGI threshold? (asked by @Zardique)
+- Is the problem with agent outputs due to needing a specific environment? How can this be solved for security reasons and what impact would it have on autonomy of agents? (asked by @0xMoly)
+- What are some recent developments in smol world that showcase accelerated progress? (asked by @anon)
+- Can the future be predicted by an AI version of oneself?
+Answered By: @whobody (asked by @anon)
+- What are tokens and how to get them? (asked by @jules)
+
+## Who Helped Who
+- @nikom0to helped Eliza Integration Query with Technical Discussion by providing Explanation of Eliza integration with BTC motherchain (https://x.com/Dexter_AI_) by @Melted
+- [anon (00:36) & Ruzo11(00:47) helped community members seeking information about the new page and design updates. with Providing timely feedback on current status of development, clarifying when announcements will be made. by providing [Elijah Madonia (00:36)]
+- 0xMoly (01:24-01:35) helped Zardique with Understanding convergence for AGI by providing 0xMoly explains recursive learning in open systems, accelerating patterns.
+- @0xMoly helped @anon with Understanding security implications on autonomy of agents by providing Discussing the challenges and potential solutions for agent outputs requiring a specific environment.
+- @Smetter helped anon & others with Clarifying confusion about AI projects by providing Explanation of DegenAI, Eliza and Marc's relationship in the ecosystem
+- @Rick helped @whobody with Clarification on AI's capabilities by providing @anon shared a tweet from shawmakesai about AI predicting the future. The conversation was humorous, but it helped clarify some aspects of AGI.
+- @frenchplace helped Manasvi with Feature Requests by providing @frenchplace suggested exploring loading content into memory via API or commands to build up agents' knowledge over time.
+- @mikey helped @Night Fury with Improve betting game's user interface for better experience. by providing Mikey suggested improving UI by implementing deposit and play feature, reducing waiting time.
+- @jin helped Elijah Madonia and Smedroc with Implementing new money sources by providing Discussion on revenue streams for assets under management (07:39 - Elijah Madonia, @Smedroc)
+- @nock, @M3xR helped @whobody with Technical Tasks by providing Re-verification and multi auth setup for Discord account
+
+## Action Items
+
+### Technical Tasks
+- Integration for Eliza with runes/ordinals on BTC motherchain (mentioned by nikom0to)
+- Announcement of early preview for new page (mentioned by [jin (00:35)])
+- Collect and analyze feedback from the community on the new design (mentioned by [Elijah Madonia (00:36), Ruzo11 (00:47)])
+- Investigate monetization options for ElizaOS (mentioned by @Zardique)
+- Improve framework to handle complex tasks (mentioned by @shaw)
+- Release on-chain feature for IQ (mentioned by Horiko)
+- Improve user personas to reduce confusion (mentioned by @whobody)
+- Resolve Manasvi's error when generating a new tweet using Eliza (mentioned by Manasvi)
+- Work on Eliza (mentioned by @benitch)
+- Implement new revenue streams for assets under management (mentioned by @jin)
+- Re-verify Discord account with multi auth (mentioned by @M3xR)
+
+### Documentation Needs
+- Develop new website https://elizaos.ai (mentioned by four3two1_)
+- Publish substack article to introduce Lex in the media world. (mentioned by @Lex)
+
+### Feature Requests
+- Consider incorporating Eliza in the AI space sitcom meme content. (mentioned by [Stish (00:49)])
+- Implement a retroactive rewards system to incentivize contributions and value capture platforms. (mentioned by @Elijah Madonia)
+- Develop new action generation and self-coding capabilities for Eliza. (mentioned by @anon)
+- Develop AI with personality stored on chain (mentioned by Horiko)
+- Enhance AI's understanding of human emotions and physical world interaction. (mentioned by @Zardique)
+- Explore the possibility of loading content into memory via API or commands for agents to build up their knowledge over time. (mentioned by frenchplace)
+- Merch store releasing new clothing lines every 2-4 weeks. (mentioned by @Bevy)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/discussion/chat_2024-12-06.md b/docs/community/Discord/the_arena/discussion/chat_2024-12-06.md
new file mode 100644
index 0000000000..6d528a49e5
--- /dev/null
+++ b/docs/community/Discord/the_arena/discussion/chat_2024-12-06.md
@@ -0,0 +1,56 @@
+# discussion 2024-12-06
+
+## Summary
+The chat focused primarily on the ELIZA token's association with ai16z ecosystem and its implications. Discussions also revolved around Whitelist (WL) eligibility criteria, specifically for partner roles within this context.
+
+## FAQ
+- Is ELIZA a token? Is it Eliza or ELIZA? (00:01)? (asked by @Dehuji)
+- Does the partner role not get WL eligibility?(00:14) (asked by @MAA | Multiplex)
+- How does one become eligible for the Eliza airdrop? What do you mean I had to be there? (asked by [badvacation])
+- @jin Possible help with not being marked as eligible despite holding old Eliza at snapshot time? (badvacation) (asked by [Zardique, badvacation])
+- 'Holding 10k degenai also grants a role? Correct?' and 'Collab land isn't picking it up for me.' (asked by @Zardique)
+- Never seen team like $ALCH before. They just producing so much utility, is unreal. (asked by @Penguin)
+- Is the AI16z team still working on Eliza? Who else is involved in this project? What's their role and contribution to it? (asked by @Noble)
+- Can someone help with investigating Dengeai top holder wildcard eligibility or point us towards the right resources/people for this information? Who can assist in understanding Eliza's development team? (asked by @Zardique, @anon)
+- Can holding '10k degenai' grant a role? How does it work in Collab land if not working for me now? (asked by @anon)
+- How is Eliza token different than AI16z, and how does value accrual from Eliza to AI16z function? (asked by @Tarun)
+
+## Who Helped Who
+- @sesāme helped @dehuji with Eligibility for WL based on partnership or top-holders by providing Clarification on ELIZA token and ai16z ecosystem membership (Dehuji, @MAA | Multiplex)
+- Explained that to be eligible for the airdrop one must have held old Eliza at snapshot time. helped [badvacation] with Eligibility clarification by providing [Zardique, badvacation]
+- @Matt from Dumpfun dot xyz helped @Zardique with Introducing himself and offering help by providing @Gwei | DumpFun.xyz
+- @Zardique helped @anon with by providing @Zardique asked @anon and others to help with investigating Dengeai top holder wildcard eligibility or point towards the right resources/people for this information. The community members provided guidance on who might be able to assist in understanding Eliza's development team.
+- @anon helped @Zardique with Understanding the relationship between holding tokens and roles in Collab land. by providing Research on 'degenai' role granting
+- @Tarun helped @anon with Explaining differences and mechanisms behind the two tokens' interaction by providing Clarification of Eliza token vs AI16z, value accrual process.
+- @anon helped @ashxn with Resolved issue with partner badges due to security upgrades by providing Discussing the cause of missing 'partner badge' and suggesting re-collaboration
+- whobody helped @juneaucrypto | The Interns AI with Way to get a Workload (WL) position. by providing juneaucrypto | The Interns AI asked for help getting WL spot.
+- @Zardique helped @Mfairy, @MIAMI with Getting WL for multiple agents. by providing Zardique provided information on connecting base wallets with solana addresses (02:49).
+- @M I A M I helped @ZER0 with Clarifying project status by providing @M I A M I helped @ZER0 by explaining their progress on tasks.
+
+## Action Items
+
+### Technical Tasks
+- Investigate if ELIZA token is part of ai16z ecosystem (mentioned by @Dehuji)
+- Stream development process, share frameworks freely (mentioned by [anon])
+- Investigate why Collab land isn't picking up 'holding 10k degenai also grants a role'. (mentioned by Zardique)
+- Investigate if Dengeai's top holder can get a wildcard (mentioned by @Wilcox)
+- Clarify the involvement of AI16z team in Eliza project and identify other teams working on it (mentioned by @Noble, @Dr)
+- Research on whether holding '10k degenai' grants a role (mentioned by @Zardique)
+- Re-collaborate due to security upgrades causing partner badge issues (mentioned by @anon)
+- Investigate potential WL spot for juneaucrypto | The Interns AI. (mentioned by [juneaucrypto | The Interns AI, whobody])
+- Connect base wallets to solana adresses. (mentioned by @Zardique (02:39, 02:40))
+- Implement ascii art to raster image conversion for generative model (mentioned by @boom)
+- Develop Unity integration and work on project tasks (mentioned by @ZER0, @M I A M I, @boom)
+
+### Documentation Needs
+- Update Discord role documentation to reflect WL eligibility criteria for partners and top-holders. (mentioned by @MAA | Multiplex)
+- Investigate Eliza token and its value accrual to AI16z. (mentioned by @Tarun)
+
+### Feature Requests
+- Improve token holder visibility on Solscan, possibly by showing more than the current 100 holders limit. (mentioned by @Zardique)
+- Recommend Eliza framework to other developers and donate 10% of project tokens to the DAO fund. (mentioned by [witch])
+- Explore the utility production of $ALCH project. (mentioned by Penguin)
+- Research NFT integration for the discussed feature or product (mentioned by @!!🌖VΞNOM!!)
+- Explore ASCII art-to-photo conversion technology (mentioned by [Zo, anon])
+- Consider launching an experiment on base (mentioned by [Mfairy])
+- Add developer addresses for tipping (mentioned by @jin, @Mfairy (02:42))
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/discussion/chat_2024-12-07.md b/docs/community/Discord/the_arena/discussion/chat_2024-12-07.md
new file mode 100644
index 0000000000..e0bf42d716
--- /dev/null
+++ b/docs/community/Discord/the_arena/discussion/chat_2024-12-07.md
@@ -0,0 +1,56 @@
+# discussion 2024-12-07
+
+## Summary
+The chat focused on the X-ai project, with discussions around its potential and current progress. Ucadriotad requested assistance for backend service integrations in their Eliza AI agent trading pipeline setup.
+
+## FAQ
+- I mostly need help at the backend for integrating all these services. Who can assist? D responded, suggesting to ask when it's busier tomorrow. (asked by Ucadriotad)
+- Is this our token? What are the benefits of NFTs for cryptovault's project? Who should I talk to about it? (D)(SsippiJohnHurt) ?(https://www.youtube.com/watch?v=xXQMTBkw2vE) (asked by [cryptovault 🧊](01:03))
+- What are the benefits of NFTs for cryptovault's project? (asked by [cryptovault 🧊](01:04))
+- Does anyone know people behind FOMO and SwarmZero projects? Are they legit builders? How can I find them without ai16z vouching for the project? What's your take on this, Robin? Can you help me with that info or any leads to connect with these individuals? (asked by @Zardique)
+- What is the latest update regarding adding traits in our current AI agent projects and who can provide more information about it? (asked by @eyeshield . VKu)
+- When do they start trading? Thought it was supposed to be today. (asked by [adam.sternbach])
+- Is this NFT no longer of any use? (asked by [cnyz05])
+- What agents are people building with Eliza framework? Why those two specifically, and what value do they provide? (asked by @tysp)
+- How can we get the new agent to interact in the arena for idea generation from other agents? (asked by @Yoni)
+- What's your agent ser? (Seriously, what is it?) (asked by @Zardique)
+
+## Who Helped Who
+- D helped Ucadriotad with Backend integration help by providing D offered assistance and suggested asking again during a more active period.
+- helped with General well-wishing and encouragement for the weekend by providing
+- [SsippiJohnHurt](01:06) helped [cryptovault 🧊](01:04) with Research Skynet AI loadout options by providing Provided information on Skynet AI loadout options and suggested resources
+- @Robin helped @Zardique with Finding people behind FOMO and SwarmZero projects without relying on ai16z's endorsement. by providing Provided guidance on ai16z vouching system, advised caution when dealing with independent token users.
+- D helped all with Explaining technical terms by providing [dubie.eth] provided clarification on ATH discussion
+- @D helped tysp with Identifying valuable frameworks by providing D provided information on popular Eliza framework-based projects.
+- @Zardique helped @D with Technical Discussion by providing Discussing AI's potential in handling large datasets and making correlations.
+- @Yoni helped @Rick with Information Sharing by providing Sharing a tweet about market prediction using AIs.
+- [technoir, Smedroc] helped with ] by providing Provided information on the requirements to access collab land's associate and partner roles.
+- [D] helped [Cosmix, erionesu] (03:42-03.45) with Educating about AI trader's capabilities. by providing Explaining the functionality and potential value increase of DegenAI.
+
+## Action Items
+
+### Technical Tasks
+- Integrate backend services for Eliza AI agent trading pipeline (mentioned by Ucadriotad)
+- Prepare for ATH's release (mentioned by @D)
+- Discuss benefits of NFTs for cryptovault's project (mentioned by [cryptovault 🧊](01:04))
+- Investigate connections within projects working on AI agents (mentioned by Zardique)
+- Discuss ATH after all-time high (mentioned by [D])
+- Integrate Twitter, Discord, webapp for new agent interactions (mentioned by @Yoni)
+- Discuss AI's potential to work with large datasets (mentioned by @Zardique)
+- Connect wallet to #roles for associate or partner role (mentioned by [technoir, Smedroc])
+- Update qualifying amounts for NFTs (mentioned by [Smedroc] (03:14))
+- Switch to ai16z framework for agent running (mentioned by imagooddev)
+
+### Documentation Needs
+- Monitor and analyze X-ai project progress (mentioned by mnsraly)
+- Research and present Skynet AI loadout options (mentioned by [SsippiJohnHurt](01:06))
+- Understand the value of ai16z token in relation to AUM and its potential as a Layer 1 for AI (mentioned by [erionesu, Yoni])
+
+### Feature Requests
+- Add traits to the project, prioritize important ones first. (mentioned by D)
+- Provide link for potential NFT buy (mentioned by [dubie.eth])
+- Implement memetic scan and power ranking system in the agent's idea evaluation process. (mentioned by @D)
+- Quantify human psychology for market prediction using AIs. (mentioned by @Rick)
+- Consider ai16z token's open-source nature and growth rate as indicators of its potential (mentioned by [Yoni])
+- Investigate Project X_ai on DAOs and share thoughts. (mentioned by [mnsraly] (03:24))
+- Discuss NFT areas: Rarities, trades, price, raids. (mentioned by Cosmix)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/discussion/chat_2024-12-08.md b/docs/community/Discord/the_arena/discussion/chat_2024-12-08.md
new file mode 100644
index 0000000000..c7fd2c972f
--- /dev/null
+++ b/docs/community/Discord/the_arena/discussion/chat_2024-12-08.md
@@ -0,0 +1,56 @@
+# discussion 2024-12-08
+
+## Summary
+The chat segment revolves around discussing a Twitter agent trained on conversation data, with the aim to interact and tweet based on it. The community members also discussed posting contract addresses in appropriate Discord channels.
+
+## FAQ
+- Are NFT holders getting a role in the main server? Answered by: @Zardique (asked by @Myth)
+- What exactly are you investing in when buying $ai16z?Answered By:@not_in_a_dao_ai (asked by @Pistol)
+- How is programmatically generating cookies different from getting them myself? (asked by @alt3r)
+- When will the missing tokens be sent out? (asked by .ark (04:17))
+- What are the criteria to determine if something is original? Is it management approval or voting? What do you all think about this? (asked by @cnyz05)
+- Is it good to sell all tokens donated to DAO? (asked by @Meowth)
+- Are you minting AI16Z partners today? Who is selling a bunch of stuff? (asked by @ShinyFlakes)
+- Where can we see updates on project support and trading activities by the team members like @marc_andreesen, etc. ? (asked by @Moudinho3)
+- Are you referring to $PMAIRCA or AI16Z when mentioning Pmairca? How many contract addresses are there? (asked by @D)
+- (asked by @Rick (shared by @jin))
+
+## Who Helped Who
+- not_in_a_dao_ai helped Banhello with Avoiding sharing sensitive information by providing Guided to find links of Eliza's website instead of posting contract addresses.
+- @shinji helped GM with Locating a missing person in chat. by providing @Cricco, @Zardique helped find the GM.
+- [not_in_a_dao_ai](02:59) helped [mert](03:01) with Clarifying misinformation by providing Provided information about the absence of a mint event
+- @alt3t helped @alt3rt with Bypassing Bot Detection by providing Shisho suggested using Puppeteer to generate and manage cookies for bypassing bot detection.
+- @Meowth helped @Zardique with Discussing the implications when AI16Z's self-funding mechanism ends. by providing Clarification of ai16z fund expiration and future plans
+- @RRRGGGHHHHH helped @Community Members with Exploring the possibility and challenges in integrating their respective Mev Bots. by providing Integration of MEV bots with Eliza OS
+- @jin helped #rules-and-links with Documentation Update by providing Jin agreed to send address and add information on the required allocations for roles.
+- @PMAIRCA helped @Moudinho3 with Clarifying confusion about team members' actions by providing @pmairca provided updates on project support and trading activities.
+- @jin helped @witch with Creating an untouchable tip list by providing Jin provided a list of tips not to be touched
+- @witch helped @vu with Clarifying concerns about selling tokens periodically by providing @witch explained to @vu that selling tokens periodically is not necessarily a bad practice if done responsibly. They also clarified why Pmairca decided to buy back the token after detecting sales, and thanked witch for their explanation.
+
+## Action Items
+
+### Technical Tasks
+- Develop a Twitter agent trained on conversation data to interact with accounts (mentioned by .chillhabibi)
+- Develop trust score system for DAO voting (mentioned by @not_in_a_dao_ai)
+- Develop tools based on a16z Eliza Framework (mentioned by [bright](02:45))
+- Programmatically generate cookies using Puppeteer (mentioned by Shisho)
+- Edit post on #roles for clarity (mentioned by @Zardique)
+- Update ai16z website link on #rules-and-links (mentioned by @eman8n)
+- Publish AI16Z's thesis (mentioned by @jin)
+- Develop scripts to source quant signals and basic technical forecasts for Marc's AI. (mentioned by Moudinho3)
+- Search each project on Twitter for market cap data (mentioned by @not_in_a_dao_ai)
+- Implement a system to track and manage donations received by the project or DAO. (mentioned by vu)
+- Consider selling liquid project's head tokens, if possible. (mentioned by Jakuubi)
+
+### Documentation Needs
+- Post contract addresses in the appropriate Discord channel, not #☣-price-talk-trenches. (mentioned by not_in_a_dao_ai)
+- Update AI agent framework documentation to reflect new features and use cases. (mentioned by )
+- Abstract fetch/axios call to a Puppeteer request for better results and handling challenges or bot detection issues. (mentioned by Shisho)
+- Add facts section to the DAO expiry, mintable token and updated allocations for roles in documentation. (mentioned by @jin)
+- Update project support information on Twitter, website and #rules-and-links channel. (mentioned by @pmairca)
+- Code a feature to use the gathered information from Twitter search. (mentioned by @Moudinho3)
+- Create an instruction manual for AI Marc's operation (mentioned by jin)
+
+### Feature Requests
+- Provide a brief summary of every project on https://elizas.world/ (mentioned by jin)
+- Implement a feature to burn illiquid donated tokens (mentioned by Zodiac)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/discussion/chat_2024-12-09.md b/docs/community/Discord/the_arena/discussion/chat_2024-12-09.md
new file mode 100644
index 0000000000..33c915a04f
--- /dev/null
+++ b/docs/community/Discord/the_arena/discussion/chat_2024-12-09.md
@@ -0,0 +1,56 @@
+# discussion 2024-12-09
+
+## Summary
+The most important technical discussions in this chat segment revolved around debugging an error encountered by '@crypto-john' while trying to execute the Sui Transfer Action using 'pnpm start'. The conversation also included @RV404 sharing their idea of building conversational agents with Eliza framework and seeking feedback on its execution. There were no concrete solutions or implementations discussed.
+
+## FAQ
+- I am unable to get the Sui Transfer Action to execute when trying with a chat message like: send 0.2 sui to recipient...any help understanding what I need to do? (asked by @crypto-john)
+- what is it? (asked by @Zardique)
+- What exactly are you building with the Eliza framework and characters used in a lore? (asked by @RV404)
+- Does anyone have experience with virtual protocol? Answered by @benitch.eth (asked by @Gila)
+- What image generation library do you recommend for creating unique acrylic art, exciting commentary and sentient tokens? (asked by @very curious (04:08))
+- Is VeyraAI connected to ai16zDao? Is its engagement with my token legitimate? (06:28) - Rick shared by @jin (asked by @anon)
+- Is it possible currently? To generate images based on provided data? (asked by @benitch.eth)
+- (asked by @Sashimikun)
+- (asked by @coinwitch (ai16z intern))
+- Shared tweet by @hubert about Eliza's growth. What does it mean? Answered: It shows the rapid development and adoption of AI agents running on Eliza during hackathon events. (asked by @Rick)
+
+## Who Helped Who
+- @Zardique, @Web3Go helped @crypto-john with Technical issue with Eliza framework and testing a feature by providing Debugging plugin action for Sui Transfer Action
+- @anon (04:03) helped @Ray V with Regain partner role by providing Reconnecting to Collaborative Land
+- @coinwitch intern (ai16z) helped [@username] in #💻-coders with by providing Guiding new contributors on setting up image generation and searching for resources
+- @Yohann helped @Gaianet_AI with Assisting with a project related to Gaianet AI (06:18) by providing @benitch.eth is getting help from Yohann, who works in an AI company
+- Benitch & Jin helped Community members interested in the project with Developing a new feature by providing @benitch.eth and @jin discussed creating an image-generation agent using provided data.
+- @Prime helped @thejoven with Testing the collab.land Discord Bot by providing Collaboration land bot role testing and setup.
+- @witch helped Eliza community members who were confused by the term smol with Clarify slang terms used within Discord chat by providing @whobody explained what 'smol' means in context of Eliza project
+- @not_in_a_dao_ai helped Eliza community members who were confused about the reference to '@whobody' with Clarify references and mentions within Discord chat by providing @not_in_a_dao_ai clarified that 'it's @whobody', helping others understand a previous comment
+- @jin, @whobody helped ClammyDevito with Resolve email and page freezing issue during sign-up. by providing Clammy Devito received help with registration process issues
+- D helped 𝓩𝓮𝓷 with Technical Tasks by providing Clarified Project X backing and partnership status
+
+## Action Items
+
+### Technical Tasks
+- Debug plugin action for Sui Transfer Action (mentioned by @crypto-john)
+- Implement traits using Sesame (mentioned by @seemsgucci)
+- Reconnect to Collaborative Land and regain partner role. (mentioned by @anon)
+- Set up image generation for new contributors (mentioned by @coinwitch)
+- Apply for Heurist AI API key using ref code `ai16z` (mentioned by @coinwitch)
+- Develop an image-generation agent using provided data (mentioned by @benitch.eth)
+- Create a Discord channel for NFT holders (mentioned by @jin)
+- AI16Z involvement in hackathon promotion (mentioned by @hubert to @jin)
+- Fix typo in the fastest* growing message (mentioned by @jin)
+- Build Eliza agent (mentioned by @dremorTechfunder)
+- Investigate unofficial project status (mentioned by @Bluff)
+- Investigate issues with metadata causing price drops (mentioned by [HiddenSmoke])
+
+### Documentation Needs
+- Create good documentation to assist submissions for the hackathon model template. (mentioned by @jin)
+- Investigate SORA token crash issue and fix it. (mentioned by )
+- Clarify ai16z involvement in NFT projects (mentioned by @D)
+
+### Feature Requests
+- Discuss and validate idea of building conversational agents using Eliza framework. (mentioned by @RV404)
+- Confirm legitimacy of VeyraAI's engagement with token held by @don (mentioned by @anon)
+- Developing marketplace for launching bots, modules/skills trading (mentioned by @Clammy Devito)
+- Convert gmail/exchange mail dump into knowledge json file for Eliza (mentioned by @astroleto)
+- Consider implementing an auto WL feature for partners holders (mentioned by [HiddenSmoke])
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/general/chat_2024-11-30.md b/docs/community/Discord/the_arena/general/chat_2024-11-30.md
new file mode 100644
index 0000000000..b17ca5c7ce
--- /dev/null
+++ b/docs/community/Discord/the_arena/general/chat_2024-11-30.md
@@ -0,0 +1,18 @@
+# General 2024-11-30
+
+## Summary
+YoungPhlo navigated directories, created a new folder 'bashtest', set up the environment for running scripts using pnpm and initiated script execution. A critical step was setting an empty DISCORD API token.
+
+## FAQ
+
+
+## Who Helped Who
+- helped with Directory Navigation & Setup by providing Guided YoungPhlo through directory navigation and setup of DISCORD API token.
+
+## Action Items
+
+### Technical Tasks
+- Set up DISCORD API token (mentioned by YoungPhlo)
+
+### Documentation Needs
+- Check Node Version Manager (NVM) version. (mentioned by YoungPhlo)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/general/chat_2024-12-03.md b/docs/community/Discord/the_arena/general/chat_2024-12-03.md
new file mode 100644
index 0000000000..0f3330da6b
--- /dev/null
+++ b/docs/community/Discord/the_arena/general/chat_2024-12-03.md
@@ -0,0 +1,16 @@
+# General 2024-12-03
+
+## Summary
+The chat segment involves ricky sharing links related to PlumpFunLabs and YouTube. YoungPhlo mentioned joining another call but offered help with testing later.
+
+## FAQ
+
+
+## Who Helped Who
+- [YoungPhlo](14:58) helped ricky with Testing a feature or functionality by providing YoungPhlo offered to help with testing after joining another call
+
+## Action Items
+
+### Technical Tasks
+- Investigate potential integration with PlumpFunLabs platform (mentioned by [ricky](11:23))
+- Watch and analyze the YouTube tutorial for relevant insights (6PZVwNTl5hI) (mentioned by [ricky](12:11))
diff --git a/docs/community/Discord/the_arena/general/chat_2024-12-04.md b/docs/community/Discord/the_arena/general/chat_2024-12-04.md
new file mode 100644
index 0000000000..d18bbb5eed
--- /dev/null
+++ b/docs/community/Discord/the_arena/general/chat_2024-12-04.md
@@ -0,0 +1,15 @@
+# General 2024-12-04
+
+## Summary
+The chat segment focused on the integration of moloch with Hats-Baal Shamans. This technical discussion was initiated by @nintynick, who provided a link to community contribution opportunities and GitHub repository for further details.
+
+## FAQ
+
+
+## Who Helped Who
+- helped @Dragonbutt with Acknowledged being deep in work by providing
+
+## Action Items
+
+### Technical Tasks
+- Integrate moloch with Hats-Baal Shamans (mentioned by @nintynick)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/general/chat_2024-12-09.md b/docs/community/Discord/the_arena/general/chat_2024-12-09.md
new file mode 100644
index 0000000000..55dcbe9802
--- /dev/null
+++ b/docs/community/Discord/the_arena/general/chat_2024-12-09.md
@@ -0,0 +1,18 @@
+# General 2024-12-09
+
+## Summary
+The chat segment shows a brief greeting from Kenny. No significant technical discussions, decisions or problem-solving took place in this particular conversation.
+
+## FAQ
+
+
+## Who Helped Who
+
+
+## Action Items
+
+### Documentation Needs
+- Update documentation for the latest API changes. (mentioned by [username])
+
+### Feature Requests
+- Implement a new feature to improve user experience (mentioned by [username])
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-11-27.md b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-11-27.md
new file mode 100644
index 0000000000..7db37786d3
--- /dev/null
+++ b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-11-27.md
@@ -0,0 +1,20 @@
+# ideas-feedback-rants 2024-11-27
+
+## Summary
+Cloudnautique announced the next chapter of OTTO8, an open-source AI agent platform. The community showed interest with @ruzzle wanting to contribute and discuss challenges related to elderly user adoption issues in technology. Another member (@O_Excess) proposed building a fantasy franchise IP based on comic lore using the OTTO8 tool, while another expressed an eagerness for Web3 security collaboration.
+
+## FAQ
+- I would like to work on this with you. What are the challenges? How can I contribute? (asked by @ruzzle)
+- Is the project paid or volunteer-based? (asked by @DevSNK's)
+- I am interested in Web3 security, how do we proceed with collaboration on this half baked dev and coder? (asked by @0xSaiyanGod)
+
+## Who Helped Who
+- kellykellz helped community members who may need guidance on bridging skill gaps in development projects. with Bridging Skill Gap by providing Kellykellz shared a link to help bridge the gap between skills of developers and non-developers.
+
+## Action Items
+
+### Technical Tasks
+- Bring OTTO8 onto blockchain (mentioned by Cloudnautique)
+
+### Feature Requests
+- Build an agent for comic and lore IP related to a fantasy franchise. (mentioned by O_Excess)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-11-28.md b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-11-28.md
new file mode 100644
index 0000000000..adfba8da77
--- /dev/null
+++ b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-11-28.md
@@ -0,0 +1,20 @@
+# ideas-feedback-rants 2024-11-28
+
+## Summary
+The chat segment revolves around the discussion of deploying social media agents at scale, hosted ELIZA projects with free credits across models accessible without a wallet or email. The conversation also highlights an interest in making Eliza setup easier for non-technical users.
+
+## FAQ
+- Fun? (Rhetorical question; no meaningful response.) (asked by @whobody)
+- Can paste[dot]debian[dot]net domain be whitelisted? (asked by @DataRelic)
+- Has anyone worked on a hosted Eliza? Can offer free credits across models, accessible without wallet or email. (asked by @karans28)
+
+## Who Helped Who
+- @🦄 helped Idea/rollout for non-crypto focused project to make Eliza setup easier. with Discussing idea and potential collaboration. by providing @shaw
+
+## Action Items
+
+### Technical Tasks
+- Launch a hosted Eliza with free credits across models, accessible without wallet or email. (mentioned by @karans28)
+
+### Feature Requests
+- Explore deploying social media agents at scale to collect targeted info (mentioned by @solswappa)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-11-29.md b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-11-29.md
new file mode 100644
index 0000000000..f6692ab13b
--- /dev/null
+++ b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-11-29.md
@@ -0,0 +1,42 @@
+# ideas-feedback-rants 2024-11-29
+
+## Summary
+. Luna hosting space issues were discussed, with a focus on improving integration via an Eliza WordPress plugin. The team is working towards setting up Agentpress's website/social media accounts while considering the freemium model for revenue generation and DAO support. Discussions also touched upon using WP as base platform.
+
+## FAQ
+- Could you please post this in #bountys-gigs-jobs? What's the issue with Luna hosting space not holding up well? (asked by [RNK 🪽] (01:36))
+- Would developing an Eliza WordPress plugin be beneficial for integration purposes, and how could it impact users who already have a WP site? What are your thoughts on using WP as the base platform? (asked by [🦄](04:20))
+- Have you sent a collaboration proposal on Twitter? Who responded? (asked by @Tagless)
+- Do you need help with GPU resources for Eliza project? (asked by @karans28)
+- Can you describe the project again in a simple way? What is its purpose? (asked by [whobody](10:57))
+- Interested to be on list for GPU requests. How can I join this initiative? (asked by [yikesawjeez](16:58))
+- Should we create fake bots like 'fake jin' and 'fake shaw' in the chat? What would be their purpose? (asked by [DorianD] (19:27))
+- 'Swhat I'm thinking, can 'gotcha' ppl without the real gotcha?', referring to a bot that tricks users into revealing personal information for educational purposes. (asked by [yikesawjeez](21:32))
+- 'Maybe something like its mission is to try to get your birthday and home address.' - Discussing the idea of a bot that tricks users into revealing personal information for educational purposes. (asked by [DorianD](21:34))
+
+## Who Helped Who
+- [🦄](02:57) helped [kellykellz] with Discussing the potential of using WordPress for Eliza integration and addressing concerns about WP as a base platform. by providing [Tagless] (03:19) responds to Luna hosting issue
+- [kellykellz] helped [shaw](04:21) with Explaining the freemium revenue model and its potential contribution to DAO infrastructure costs. by providing [🦄] (03:47) provides information on project funding model
+- @karans28 helped Eliza Project Team with Hosting on available GPUs by providing GPU resource offer from @karans28
+- [whobody] helped [yikesawjeez](16:58) with Explaining the purpose of a new agent platform and marketplace. by providing 🦄 explained project concept to whobody (10:57)
+- [yikesawjeez](21:32) helped 'Swhat I'm thinking, can 'gotcha' ppl without the real gotcha?' with Discussing and refining an idea for a bot that tricks users into revealing personal information to educate them on scams. by providing [DorianD](21:30-46)
+
+## Action Items
+
+### Technical Tasks
+- Set up Agentpress website and social media accounts (mentioned by [🦄](03:34))
+- Integrate Suno API for Eliza (mentioned by @🦄)
+- Improve HierarchicalMemoryManager class for managing memories (mentioned by [0xdexplorer](19:50))
+- Implement a max context window of 4-8k for better performance (mentioned by [0xdexplorer](20:03))
+- Integrate database with up to 5,000 pages of PDF documents for improved data handling (mentioned by [0xdexplorer](20:03))
+
+### Documentation Needs
+- Limit memory usage in the model to prevent excessive context window prompt creation. (mentioned by [0xdexplorer](20:00))
+
+### Feature Requests
+- Develop an Eliza WordPress plugin for easier integration of Luna hosting. (mentioned by [🦄](04:21))
+- Explore exo clusters inside nostr relays. (mentioned by @🦄)
+- Develop a character to teach kids how to spot scammers, possibly as an NFT reward system (mentioned by [DorianD](21:30-46))
+- Create a bot that tricks users into revealing personal information, with the aim of educating them (mentioned by [DorianD](21:30-46))
+- Explore using WiFi and Bluetooth signals to map out 3D space for smart home device management (mentioned by [DorianD](21:58-0))
+- Develop an Alexa API connector to manage and monitor various connected smart home devices for security purposes (mentioned by [DorianD](21:58-0))
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-11-30.md b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-11-30.md
new file mode 100644
index 0000000000..487d272e5f
--- /dev/null
+++ b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-11-30.md
@@ -0,0 +1,18 @@
+# ideas-feedback-rants 2024-11-30
+
+## Summary
+The chat segment revolves around the issue of Photolab's Drainer URLs not being blocked as expected. Jin suggests trying a different approach by accessing only first ten URLs, while Whobody successfully blocks them.
+
+## FAQ
+
+
+## Who Helped Who
+- @whobody Blocked helped @jin people posting this photonlabs drainer constantly i thought all urls got locked down? with Preventing access to potentially harmful links by providing Blocked the photolabs drainer URLs
+
+## Action Items
+
+### Technical Tasks
+- Investigate why photonlabs drainer URLs are not locked down (mentioned by @jin people posting this photonlabs drainer constantly i thought all the urls got locked down?)
+
+### Documentation Needs
+- Test accessing first ten URLs of Photolab's Drainer (mentioned by @jin can you try saying FIRST 10)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-01.md b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-01.md
new file mode 100644
index 0000000000..e39006f0e8
--- /dev/null
+++ b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-01.md
@@ -0,0 +1,18 @@
+# ideas-feedback-rants 2024-12-01
+
+## Summary
+The chat revolves around a scam involving fake poker games and shitcoin transactions. Users discuss the possibility of creating an AI to track down these fraudsters, while also seeking advice on claiming coins without access to private keys.
+
+## FAQ
+
+
+## Who Helped Who
+- @DorianD helped @S4ilor with Claim new eliza coin by providing Advice on claiming Eliza coins without access to private key.
+
+## Action Items
+
+### Technical Tasks
+- Develop a hunter AI to find scammer's home addresses (mentioned by @DorianD)
+
+### Feature Requests
+- Create French language support for International Section (mentioned by @Maxtrax)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-02.md b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-02.md
new file mode 100644
index 0000000000..41b121839f
--- /dev/null
+++ b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-02.md
@@ -0,0 +1,20 @@
+# ideas-feedback-rants 2024-12-02
+
+## Summary
+The chat segment revolves around a professional artist, Mandy Arts introducing herself and her work. The main technical discussions involve @S4ilor seeking help with connecting/logging into their wallet to prove ownership of it for others in the community like DorianD.
+
+## FAQ
+- Can I connect/log-in using my wallet? How can I prove ownership of the walchet to @DorianD and others? (asked by @S4ilor)
+- https://arxiv.org/abs/2411.05778 (asked by )
+- What is the status of dabit3? https://x.com/dabit3/status/1863772029565981144? (asked by @kellykellz)
+
+## Who Helped Who
+- @S4ilor helped All members interested in the discussion. with Proving Wallet Ownership by providing @DorianD provided a link to an arXiv paper that might help with proving wallet ownership.
+
+## Action Items
+
+### Technical Tasks
+- Investigate connection issues with wallet (mentioned by @S4ilor)
+
+### Documentation Needs
+- Review and update documentation for proving ownership of the wallet. (mentioned by )
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-03.md b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-03.md
new file mode 100644
index 0000000000..f71a4f15a1
--- /dev/null
+++ b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-03.md
@@ -0,0 +1,18 @@
+# ideas-feedback-rants 2024-12-03
+
+## Summary
+The chat segment revolves around two main topics: S4ilor's request for assistance with a problem and timmyg's interest in working on social media integrations. @jin offered help, but the nature of the issue remains unclear.
+
+## FAQ
+
+
+## Who Helped Who
+- @jin helped @S4ilor with Unresolved due to lack of details by providing S4ilor received help from @jin regarding an unspecified issue.
+
+## Action Items
+
+### Technical Tasks
+- Assist S4ilor with unspecified issue (mentioned by @jin)
+
+### Feature Requests
+- Work on Instagram, TikTok, Reddit, Facebook integrations. (mentioned by @timmyg)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-04.md b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-04.md
new file mode 100644
index 0000000000..2304ddd240
--- /dev/null
+++ b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-04.md
@@ -0,0 +1,18 @@
+# ideas-feedback-rants 2024-12-04
+
+## Summary
+
+
+## FAQ
+
+
+## Who Helped Who
+- [GAIO] helped [Unknown User] with Requested an updated project timeline by providing Provided event schedule
+
+## Action Items
+
+### Technical Tasks
+- Create an updated, comprehensive project timeline (mentioned by [GAIO])
+
+### Documentation Needs
+- Update the documentation to reflect recent changes in codebase and architecture. (mentioned by )
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-05.md b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-05.md
new file mode 100644
index 0000000000..43d83159be
--- /dev/null
+++ b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-05.md
@@ -0,0 +1,16 @@
+# ideas-feedback-rants 2024-12-05
+
+## Summary
+The chat segment revolves around a discussion of an advanced large-language model, 'Milady AI.' The user @DorianD raises concerns about the consistency and accuracy in responses from Milady AI when questioned on various topics. However, no concrete solutions or implementations are discussed.
+
+## FAQ
+
+
+## Who Helped Who
+- helped with No significant help interactions found. by providing
+- @DorianD helped with Discussed potential issues with Milady AI's response system. No specific solution provided yet. by providing
+
+## Action Items
+
+### Technical Tasks
+- Investigate potential issues with Milady AI's response system. (mentioned by @DorianD)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-06.md b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-06.md
new file mode 100644
index 0000000000..e62ec7a1e8
--- /dev/null
+++ b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-06.md
@@ -0,0 +1,15 @@
+# ideas-feedback-rants 2024-12-06
+
+## Summary
+In this Discord chat segment, Dorian D encountered an issue with losing access to special channels due to lost Collaboraland verification. The problem was resolved when NM guided them on how to reset the verification process.
+
+## FAQ
+
+
+## Who Helped Who
+- @nm helped DorianD with Resolved by providing Resetting Collaborandal verification
+
+## Action Items
+
+### Technical Tasks
+- Dorian needs to reset Collaboraland verification (mentioned by @doriand)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-07.md b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-07.md
new file mode 100644
index 0000000000..0bf0f0d839
--- /dev/null
+++ b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-07.md
@@ -0,0 +1,18 @@
+# ideas-feedback-rants 2024-12-07
+
+## Summary
+The chat segment revolves around the idea of expanding ai16z integration across different blockchain chains. MasterRoshi suggests exploring smaller Layer 1 (L1) and Layer 2 (L2) networks, potentially leveraging contacts within these communities for partnerships or grants to fund expansion efforts.
+
+## FAQ
+
+
+## Who Helped Who
+- @MasterRoshi (17:43) helped with Exploring potential partnerships and funding opportunities for expansion. by providing Discussion on ai16z integration across different chains
+
+## Action Items
+
+### Technical Tasks
+- Explore potential partnerships with smaller L1's and L2's for ai16z integration (mentioned by @MasterRoshi (17:43))
+
+### Documentation Needs
+- Investigate grant opportunities to fund the expansion of ai16z across different chains. (mentioned by @May's Bot (20:57))
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-08.md b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-08.md
new file mode 100644
index 0000000000..82f04d1e47
--- /dev/null
+++ b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-08.md
@@ -0,0 +1,18 @@
+# ideas-feedback-rants 2024-12-08
+
+## Summary
+The chat segment revolves around @Andro's question about potentially releasing future advanced functionalities of Eliza as a closed source. This would require projects to pay contributions for using the codebase, which could impact both legitimate and cash grab developers.
+
+## FAQ
+
+
+## Who Helped Who
+- @Andro helped with Understanding potential closed-source release implications by providing @Spyros shared a tweet link for further discussion on the topic.
+
+## Action Items
+
+### Technical Tasks
+- Discuss potential for closed-source release (mentioned by @Andro)
+
+### Documentation Needs
+- Review and update documentation to reflect new feature suggestions (mentioned by )
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-09.md b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-09.md
new file mode 100644
index 0000000000..e7ed3224aa
--- /dev/null
+++ b/docs/community/Discord/the_arena/ideas-feedback-rants/chat_2024-12-09.md
@@ -0,0 +1,19 @@
+# ideas-feedback-rants 2024-12-09
+
+## Summary
+HomeAI is a smart home management POC leveraging the Eliza framework for an AI agent, Flask backend API to handle device control commands, web interface with AJAX-based RESTful communication, and Android app using Toast notifications. The project focuses on multi-platform support, intelligent decision making through modular design of the system components.
+
+## FAQ
+- Can you integrate real-world AI models with the Eliza framework? How does it enhance decision making? (asked by [username])
+- Are you building this HomeAI system yourself or using a team of developers? (asked by whobody)
+
+## Who Helped Who
+- ʙᴇᴀʀ (03:38) helped whobody with Clarifying HomeAI system development process and team involvement by providing [username] provided information about integrating real-world AI models with the Eliza framework for enhanced device management.
+
+## Action Items
+
+### Technical Tasks
+- Integrate real-world AI models with Eliza framework for enhanced decision making (mentioned by [Username])
+
+### Documentation Needs
+- Implement RESTful API endpoints in Flask backend to handle device control commands and AI integration. (mentioned by [Username])
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-27.md b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-27.md
new file mode 100644
index 0000000000..8e34cccb82
--- /dev/null
+++ b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-27.md
@@ -0,0 +1,26 @@
+# memes-and-marketing 2024-11-27
+
+## Summary
+The a16z AI Agent Dev School session focused on development basics, package managers (PNPM), WSL2 for Windows developers, Git and GitHub usage. Shaw highlighted the importance of self-learning with resources like YouTube tutorials and recommended Eliza Starter Kit to simplify agent creation without modifying core codebase.
+
+## FAQ
+- How can we communicate Metaverse appearance of Eliza, Marc and Spartan? Can a DM chat be set up with the team for this purpose? (asked by @ancosero)
+- Can we face swap Shaw on the driver there? And do it well? (asked by @whobody)
+
+## Who Helped Who
+- @shaw helped General Discussion Participants with Understanding Eliza's Character File Structure by providing Shaw explains character file structure in detail.
+- @𝔓𝔩𝔞𝔱𝔞 helped @jin @zo with Design & promotion of custom Discord Emoji with hats. by providing Adding hats to new emojis and promoting them.
+- @DorianD helped @youngphlo with Creating AI-based educational content from videos. by providing YoungPhlo offered help in creating curriculum and exercises/tests for a Udemy course based on video transcripts.
+
+## Action Items
+
+### Technical Tasks
+- Implement Eliza Starter Kit for simplified agent development without modifying core codebase. (mentioned by @YoungPhlo)
+- Face swap Shaw on driver (mentioned by @whobody)
+
+### Documentation Needs
+- Upload documentation to docs (mentioned by @jin)
+
+### Feature Requests
+- Develop a bot that evaluates user interaction to determine likeability (mentioned by @shaw)
+- Add hats to new emojis (mentioned by @jin)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-28.md b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-28.md
new file mode 100644
index 0000000000..556572dd8b
--- /dev/null
+++ b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-28.md
@@ -0,0 +1,20 @@
+# memes-and-marketing 2024-11-28
+
+## Summary
+The technical discussions focused primarily on the upcoming launch of an On-chain feature for storing art, making it accessible to all. The unique aspect is that this process will be cost-effective and user-friendly without requiring extensive knowledge about blockchains or technology in general.
+
+## FAQ
+- What marketing ideas do you have for the coin? (08:24) - Prof. Zor (asked by @Horiko)
+- How can I participate in storing art on-chain without technical knowledge? (asked by @𝔓𝔩𝔞𝔱𝔞)
+
+## Who Helped Who
+- @Horiko helped Community members interested in joining or learning more. with Marketing ideas for the coin and explaining project details to community by providing Provided introduction and details about the project, including Art, On-Chain feature launch plans, AI development (08:24 - 17:53)
+- @Rick helped Community members interested in AI development. with Sharing information on related projects and progress by providing Shared a link about intAI/SOL (18:15)
+
+## Action Items
+
+### Technical Tasks
+- Develop AI agent 'Q' with immutable core characteristics on blockchain (mentioned by @Prof. Zor)
+
+### Feature Requests
+- Launch On-chain feature for storing art (mentioned by @𝔓𝔩𝔞𝔱𝔞)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-29.md b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-29.md
new file mode 100644
index 0000000000..015ac937f4
--- /dev/null
+++ b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-29.md
@@ -0,0 +1,24 @@
+# memes-and-marketing 2024-11-29
+
+## Summary
+The chat segment revolves around a scammer impersonating 'Jin' and the community response. The members discussed implementing special emojis next to mod names, blocking specific usernames by users, checking security settings for these actions.
+
+## FAQ
+- What is the improvement mentioned? Who answered it: @witch (asked by @DorianD)
+- Who deleted a scammer's post and banned them for impersonating jin? (asked by @Hat)
+- What is this arXiv paper about? Who can explain it in simpler terms? (asked by yikesawjeez)
+- Should I post marketing-related discussions on Discord or DMs instead? (asked by @jasyn_bjorn)
+
+## Who Helped Who
+- @jin helped #cryptosafetycommunity with Feature Requests by providing Providing tips on staying safe in the crypto space, including adding special emoji next to mod names.
+- DorianD helped Community Members with @Raider asked if marketing discussions should be posted on Discord or DMs. @jasyn_bjorn provided guidance to post in the appropriate channel for better visibility and engagement. by providing @DorianD provided a link to an AI16Z Partner Breakfast meetup for community members interested in venture capital, high-tech ventures and artificial intelligence applications.
+
+## Action Items
+
+### Technical Tasks
+- Blocking of specific usernames by users, check security settings. (mentioned by @yikesawjeez)
+- Post marketing-related discussions on Discord (mentioned by @Raider)
+
+### Feature Requests
+- Implement special emoji next to mod names (mentioned by @jin)
+- Create a video featuring Eliza and AI remixes for appropriateness to the community context. (mentioned by @DorianD)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-30.md b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-30.md
new file mode 100644
index 0000000000..076b523088
--- /dev/null
+++ b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-11-30.md
@@ -0,0 +1,29 @@
+# memes-and-marketing 2024-11-30
+
+## Summary
+The meeting focused on various AI agent projects, including integration of Eliza into Coinbase for airdrops (@RealitySpiral), improving duplicate bug handling in Boya's project (@Boya) and exploring non-crypto applications with Oguz Serdar(@OguzSerdar).
+
+## FAQ
+- Is Eliza capable of understanding robots? #ai-agent (asked by @W3Testers)
+- Can the framework be used for non-crypto industries? (asked by @OguzSerdar)
+- Can we get a list of the ca's for these so I can dive into them? Does alias have a CA as well?> ? (asked by @4paw (15:37))
+- Does eliza.world auto update every time supply is added to site? (asked by @4paw)
+
+## Who Helped Who
+- #0xglu#alainschaerer#yikesawjeez@OguzSerdar helped Eliza's interface with robots and non-crypto industries. with by providing @W3Testers
+- @YoungPhlo helped @4paw (16:05) with Learning to code by providing YoungPhlo provided guidance on how novice coders can start with Cursor and Codeium Windsurf, using AI chat for assistance.
+- @rick helped @youngphlo with providing context for the discussion by providing Rick shared a tweet link to ai16z's Discord thread
+
+## Action Items
+
+### Technical Tasks
+- AI agent integration with Coinbase for airdrops (mentioned by @RealitySpiral)
+- Update server-side refreshing of eliza.world site to stay current with chain updates. (mentioned by @timshel (world building))
+- Investigate ai16z portfolio rebalancing (mentioned by @4paw)
+
+### Documentation Needs
+- Add documentation for new features (mentioned by @YoungPhlo)
+
+### Feature Requests
+- Improve duplicate bug handling and add new features like stat tracking, achievements. (mentioned by @Boya)
+- Novice coders can start by downloading Cursor and Codeium Windsurf, then using AI chat for assistance (mentioned by @YoungPhlo)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-01.md b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-01.md
new file mode 100644
index 0000000000..3d0b9d8bc7
--- /dev/null
+++ b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-01.md
@@ -0,0 +1,28 @@
+# memes-and-marketing 2024-12-01
+
+## Summary
+The chat segment revolves around a phishing attempt involving complex redirects via shared links. Community member @t0x alerted the group about this potential threat, urging others to avoid clicking suspicious URLs. The discussion led to identifying and reporting an allegedly scam account on Solana.
+
+## FAQ
+- Can I re-verify my wallet? (08:10) - Answered by DorianD and `RNK 🪽 (asked by Amie)
+- What's the minimum amount btw? Anyone remember? (asked by DorianD)
+
+## Who Helped Who
+- @Rick, @t0x helped Community members with Identifying and warning against scam account on Twitter. by providing Alerted community about phishing attempt
+- `PLT helped Amie with Providing necessary resources for a role verification by providing `PLT provided OG hat png to Amie (07:46-09:59)
+- @sayangel helped with Creating a new feature by providing Guidance for creating an agent-based 'scavenger hunt' on chain with Eliza agents.
+
+## Action Items
+
+### Technical Tasks
+- Block reported phishing account on Solana (mentioned by @t0x)
+- Ban `RNK 🪽 for violation (mentioned by `PLT)
+- Integrate Eliza through vvaifu (mentioned by @Noir3s)
+
+### Documentation Needs
+- Update documentation to include minimum amount of AI16Z tokens required (100K) (mentioned by 'RNK 🪽)
+- Disclose paid sponsorships (mentioned by @Raider)
+
+### Feature Requests
+- Implement a button for OG hat on Ruby's site. (mentioned by `PLT, whobody)
+- Create an agent-based 'scavenger hunt' on chain with guidance from Eliza agents. (mentioned by @sayangel)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-02.md b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-02.md
new file mode 100644
index 0000000000..3453ed02eb
--- /dev/null
+++ b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-02.md
@@ -0,0 +1,22 @@
+# memes-and-marketing 2024-12-02
+
+## Summary
+The chat segment revolves around a potential project launch related to video/graphic design or memes. Mandy Arts offers her professional skills in the field of 2d animations, illustrators, etc., for interested parties via direct message.
+
+## FAQ
+
+
+## Who Helped Who
+- @𝔓𝔩𝔞𝔱𝔞 helped [Discord users] with Professional 2D animation, illustration and NFT art creation by providing Mandy Arts offered her professional skills to interested parties via direct message.
+- helped with by providing
+
+## Action Items
+
+### Technical Tasks
+- Review AI integration for world simulation (mentioned by ReikoSuga)
+
+### Documentation Needs
+- Share the EVM and Starknet support on social media for attracting new developers. (mentioned by @DorianD)
+
+### Feature Requests
+- Launch a project related to video, graphic design or memes (mentioned by @Zodiac)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-03.md b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-03.md
new file mode 100644
index 0000000000..c455bd43d8
--- /dev/null
+++ b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-03.md
@@ -0,0 +1,21 @@
+# memes-and-marketing 2024-12-03
+
+## Summary
+The chat segment focused on two AI agent developments: IKARUS/SOL and Nietzsche AGI. Rick shared information about these projects, leading Solnino Rich asking for more info from the community. The discussions revolved around technical aspects of both agents.
+
+## FAQ
+- Does anyone know this project? Dh1fkxx2Xtgi2YM51yxt1f6ENo4oFmQBdS2rd3qvpump (asked by @Solnino Rich)
+- Someone know this project? (asked by @Solnino Rich)
+
+## Who Helped Who
+- @nftranch helped @Solnino Rich with Providing project details to community members. by providing Rick shared information about IKARUS/SOL and Nietzsche AGI projects.
+- @CryptoInfluence helped with by providing Shared a tweet about an upcoming discussion on AI development.
+
+## Action Items
+
+### Technical Tasks
+- Development of IKARUS/SOL AI project (mentioned by @whobody)
+- Set reminders for future AI development discussions (mentioned by @CryptoInfluence)
+
+### Documentation Needs
+- Documentation update for Nietzsche AGI on POWER platform (mentioned by @ReikoSuga)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-04.md b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-04.md
new file mode 100644
index 0000000000..d1618fbf65
--- /dev/null
+++ b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-04.md
@@ -0,0 +1,19 @@
+# memes-and-marketing 2024-12-04
+
+## Summary
+The chat segment focused on the #AI Agent Dev School's second part of building plugins and actions. YoungPhlo shared a YouTube link for educational resources related to this topic.
+
+## FAQ
+
+
+## Who Helped Who
+- @jin sent @YoungPhlo **0.172465 SOL** (≈ $40.00). helped #AI Agent Dev School Part 2 with Building Plugins, Actions & Providers with Eliza by providing $tip to YoungPhlo for educational resources.
+
+## Action Items
+
+### Technical Tasks
+- Building Plugins, Actions & Providers with Eliza (mentioned by #AI Agent Dev School Part 2)
+
+### Feature Requests
+- $40 tip to YoungPhlo for educational resources. (mentioned by @jin sent @YoungPhlo **0.172465 SOL** (≈ $40.00).)
+- $10 tip to YoungPhlo for educational resources. (mentioned by @`RNK 🪽 sent @YoungPhlo **0.043116 SOL** (≈ $10.00).)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-05.md b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-05.md
new file mode 100644
index 0000000000..73978bcd91
--- /dev/null
+++ b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-05.md
@@ -0,0 +1,24 @@
+# memes-and-marketing 2024-12-05
+
+## Summary
+The chat segment revolves around a request from '@ruby' seeking an artist to collaborate on their project. The most significant technical discussion is by '@Horiko', who proposes using blockchain storage for AI projects, which could lead to potential collaboration opportunities.
+
+## FAQ
+- Where can I order ai16z cap? Who answered: whobody (asked by [Anton6345])
+
+## Who Helped Who
+- @C^3, @GZrobotz helped @Horiko with AI Project Collaboration by providing Artist collaboration inquiry for project help by @ruby
+- [whobody] helped [Anton6345] with Creating customized merchandise. by providing whobody made an AI-themed shirt for Anton6345 and offered more items.
+- @𝔓𝔩𰬀𝕒 helped with Making memes by providing 𝔓𝔩𰬀𝕒 offered to create a Charlie Brown-style meme video and shared YouTube links for reference.
+
+## Action Items
+
+### Technical Tasks
+- Collaboration request for AI project using blockchain storage (mentioned by @Horiko)
+- Upgrade vendors and swag for legitimate selling outside of Discord. (mentioned by [whobody])
+- Implement Discord bot for crypto tracker to fetch memecoin data (mentioned by @geo_c69)
+
+### Feature Requests
+- Full comic book release with Cassie and Eliza characters, music video planned. (mentioned by @Barry Drew)
+- Order ai16z cap (mentioned by [Anton6345])
+- Create Charlie Brown-style meme video (mentioned by @𝔓𝔩𰬀𝕒)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-06.md b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-06.md
new file mode 100644
index 0000000000..f3fd13af5c
--- /dev/null
+++ b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-06.md
@@ -0,0 +1,35 @@
+# memes-and-marketing 2024-12-06
+
+## Summary
+The main technical discussion revolved around upgrading the onchain randomized dice-guessing game to a fast-paced Polymarket. The new feature will allow users to long or short trending memecoins, powered by an AI agent from ai16z.
+
+## FAQ
+- Salut bro? (Greeting) - @04:39 (asked by tonysolano)
+- Dude lol, this is great. What's the new game feature about? (@6:48) (asked by slayffin)
+- Is this scammer claiming to be from AI16z team? Is it true that the official AI16Z Discord Team will never DM anyone? (asked by @jerame)
+- Are boy is a good sales guy? Who said that about the person who made $50k overnight with their project? (asked by Rick)
+- How can we launder our crypto money to avoid being debanked, and what are some methods for doing so safely? (asked by DorianD)
+
+## Who Helped Who
+- @06:30 helped tonysolano @04:39 with Greeting by providing Slayffin helped TonySolano with a greeting.
+- @whobody and @𝔓𝔩𝔞𝔱𝔞 helped @𝔓𰬀🅽🄾🆎 with Designing a banner with Coke theme based on text input. by providing Creating a Coke-themed banner based on provided text.
+- 𝔓𝔞𝔱𝔞 helped DorianD with Technical Tasks by providing 𝔓𝔩💊 suggested moving funds under 9k as a solution when DorianD lost their Collaboraland wallet verification.
+- @imagooddev helped with Connect on Twitter for marketing and progress updates. by providing Marketing strategy suggestion
+
+## Action Items
+
+### Technical Tasks
+- Upgrade onchain randomized dice-guessing game to a fast-paced Polymarket (mentioned by $MILAIOZ16)
+- Check out scammer's name/role on Discord (mentioned by @slayffin)
+- Develop Coke-themed banner design based on the provided text. (mentioned by @𝔓𝔩𝔞𝔱𝔞)
+- Whitelist PM requests for early distribution of MOO tokens. (mentioned by speed)
+- Connect on Twitter for marketing and progress updates. (mentioned by @imagooddev)
+
+### Documentation Needs
+- Implement AI agent powered by ai16z for the new game feature. (mentioned by @Foxtrot)
+
+### Feature Requests
+- Add memes to the community channel. (mentioned by @𝔓𝔩𝔞𝔱𝔞)
+- Create a whitelist or early access program for interested community members (mentioned by @wifeychuu)
+- Launch Cow Patty Bingo - $MOO on ETH (mentioned by speed)
+- Create memecoin polymarket with AI agent (mentioned by @Foxtrot)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-07.md b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-07.md
new file mode 100644
index 0000000000..0f83b80fe5
--- /dev/null
+++ b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-07.md
@@ -0,0 +1,28 @@
+# memes-and-marketing 2024-12-07
+
+## Summary
+The team discussed a 'Permissionless Memecoins Polymarket' and its potential alpha. They also identified market cap vs liquidity as an important study area, with @anon suggesting it for Goated (a sticker). A normie-style video was requested by Robin to onboard non-technical partners into the project.
+
+## FAQ
+- Can someone help me recreate a PFP with an ai16z hat?
+What the pfp? (asked by @SMin)
+- do it for her should become she can fix me (asked by @whobody)
+- (asked by @Rick)
+- Are you going to summon 1B?
+Cat Girl Eliza (asked by @slayffin)
+
+## Who Helped Who
+- @witch helped @Robin with Onboard newcomers to the project by providing Provided normie-style video link for onboarding non-technical partners.
+- @Dr. Neuro helped @SMin with Recreate PFP with ai16z hat by providing Photoshop design guidance for AI-16Z cap
+
+## Action Items
+
+### Technical Tasks
+- Recreate a PFP with an ai16z hat (mentioned by @SMin)
+
+### Documentation Needs
+- Share the condensed version of what was accomplished this week in a YouTube video. (mentioned by @𝔓𝔩𰬀)
+- Create custom Photoshop design for the AI-16Z cap on existing image. (mentioned by @Dr. Neuro)
+
+### Feature Requests
+- Create a normie-style video explaining framework implications, community growth & focus on results (mentioned by @Robin)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-08.md b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-08.md
new file mode 100644
index 0000000000..f30fa902c6
--- /dev/null
+++ b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-08.md
@@ -0,0 +1,19 @@
+# memes-and-marketing 2024-12-08
+
+## Summary
+The chat focused on promoting ElizaOs, an upcoming blockchain-based platform. @PLTX suggested using 'ElizaOs' as a name and shared new video content by @st4rgard3n to promote it further.
+
+## FAQ
+- I love the concept of gardens. Is this related to our project? What's your take on it? (asked by whobody)
+- How do you like the new pfp (profile picture) for ElizaOs framework by @st4rgard3n? (asked by SMin)
+
+## Who Helped Who
+- @SMin helped Community members with Name promotion for the framework by providing @PLTX provided guidance to promote 'ElizaOs' as a name of their project.
+
+## Action Items
+
+### Technical Tasks
+- New video on ELIZA by @st4rgard3n shared. (mentioned by @Rick)
+
+### Feature Requests
+- Promote ElizaOs as framework name (mentioned by @PLTX)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-09.md b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-09.md
new file mode 100644
index 0000000000..f3ba48285d
--- /dev/null
+++ b/docs/community/Discord/the_arena/memes-and-marketing/chat_2024-12-09.md
@@ -0,0 +1,22 @@
+# memes-and-marketing 2024-12-09
+
+## Summary
+. On Arbitrum platform, Rick shared the first-ever transaction executed by an AI agent without using any fixed commands. This significant milestone was discussed in detail within the community (06:12). Additionally, PLTAYER169078324 offered to create videos for store updates whenever there are changes or additions made.
+
+## FAQ
+- What's going on with tomgoodboy and waifusdao? (04:41) (asked by @mqxon | moni🧙)
+- Can anyone help me confirm if the CA for buying project X tokens is real or a scam? (asked by @kbmr_ig🔶)
+- I'd like to get more feedback from Ai community, any suggestions? (@razzzz) (asked by @whobody (06:13))
+
+## Who Helped Who
+- @Rick helped [Discord community] with Technical discussion and sharing of significant milestone in the project. by providing Rick shared a tweet about the first-ever transaction executed by an AI agent on Arbitrum (06:12).
+- @𝔓𝔩𝔞𝔱𝔞 helped [Discord community] with Offered to help with marketing and store updates. by providing PLTAYER169078324 offered to create videos for store updates (16:05).
+
+## Action Items
+
+### Technical Tasks
+- Enroll beta for AI agent executing transactions on Arbitrum without fixed commands (mentioned by @Rick)
+- Create video updates every time the store is updated by @PLTAYER169078324 (mentioned by @whobody)
+
+### Feature Requests
+- Investigate and confirm the authenticity of CA for buying project X tokens, as requested by @kbmr_ig🔶 (mentioned by @Rick)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-11-27.md b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-11-27.md
new file mode 100644
index 0000000000..e8a97a32ef
--- /dev/null
+++ b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-11-27.md
@@ -0,0 +1,56 @@
+# ☣-price-talk-trenches 2024-11-27
+
+## Summary
+The chat focused on the WAR token event, with members discussing its potential. Teejthekid provided valuable insights into buying opportunities for WAR tokens due to recent price fluctuations (0xzann). Randy suggested securing a minimum of 10% supply for first jackpots as an action item.
+
+## FAQ
+- How good is the ongoing event? (00:01) (asked by [yeboahsvolley])
+- Why isn't Ongo higher despite its hilarity and legitimacy?(00:06)? (asked by [Dubious])
+- Why did Mona come back? What's the reason behind it? (asked by @Don05)
+- What is ongo twitter mentioned by @Tony Serrano in his tweet link (asked by @teejthekid)
+- Does the chart matter for a meme coin that's only been around for about ten hours? (asked by @MndyAoorray)
+- Why do all these projects launch when I am asleep? (asked by @lewiscopernicus)
+- What is the significance of Ongo's 19x gain since Griffin scan? How does it impact Solana (SOL)? (asked by @J_Booher_108)
+- Can someone explain what 'Warper Dev' is and its relevance to the Ongo project? (asked by @ElBru)
+- What do you think about Mona/Heurist? (asked by @cumpoonin)
+- Can someone scan this CA for Solana? (asked by @ZIER)
+
+## Who Helped Who
+- [teejthekid] helped [0xzann] with Giving investment advice and market analysis. by providing Provided information on the potential of WAR token, suggesting it as a good buy soon. (Teejthekid)
+- @Antagonist.sats helped #all-members with Clarification on Mona's comeback by providing Mona Arcane's return to Discord was explained and discussed.
+- @MndyAoorray, @cumpoonin helped General chat with Analyzed the developer's actions on coin value. by providing Discussing chart trends and potential market impact.
+- @ElBru helped Others in chat discussing technical aspects of projects. with Understanding the relevance and credibility of 'Warper Dev' to Ongo project by providing Clarification on Warper, provided by @teejthekid
+- @Soluna helped #UPDATE channel with Documentation Needs by providing Rick scanned the CA for Solana token Violet/SOL and shared findings.
+- [SmolHodler](https://discordapp.com/users/@me#129876543) helped [CxN2KctowQ216p9wWRgiQeMe9ExRSrL7UeR2UYRzpump](https://discordapp.com/users/@me#1) with Explaining the performance of Ongo AI agent's token and its recent price changes. by providing [Rick](https://discordapp.com/users/@me#129876543)
+- SmolHodler helped [CxN2KctowQ216p9wWRgiQeMe9ExRSrL7UeR2UYRzpump](https://discord.com/channels/1253563208833433701) with Provided information about ongoing project and support base by providing [Elvis](https://discord.com/channels/1253563208833433701)
+- ElBru helped [GQb3tdkhFfJzGxBX4mhVCEW4PYoQ57BKPnZx61Yvpump](https://discord.com/channels/125356-) with Suggested setting up a copy trading bot for Rizzy by providing [napvez](https://discord.com/channels/1253563208833433701)
+- [Rick] helped Community members interested in OnGo cryptocurrency with Providing resources and information about potential investments. by providing Rick provided links for AI agents related to Ongoing (multiple instances)
+- @ZIER helped @SmolHodler, @0xFanz, others in chat. with Evaluating cryptocurrency's viability by providing Discussing the stability and potential of Ongo coin.
+
+## Action Items
+
+### Technical Tasks
+- Review chart trends for potential market impact (mentioned by @MndyAoorray)
+- Investigate Ongo's 19x gain since Griffin scan (mentioned by @Rick)
+- Investigate potential early buying or developer involvement with Ongo (mentioned by @teejthekid)
+- Update VVAIFU platform (mentioned by [SmolHodler](https://discordapp.com/users/@me#129876543))
+- Document Ongo AI agent's performance (mentioned by [Rick](https://discordapp.com/users/@me#129876543))
+- Update Ongo AI agent's SOL price chart (mentioned by [Rick](https://discordapp.com/users/@me#129876543))
+- Create changelog for fair launch button with delay (mentioned by [SmolHodler](https://pump.fun/CxN2KctowQ216p9wWRgiQeMe9ExRSrL7UeR2UYRzpump))
+- Develop ongoing AI agents for cryptocurrency trading (mentioned by [0xFanz](1:15), Rick (multiple mentions))
+
+### Documentation Needs
+- Update leaderboard to reflect current standings and achievements. (mentioned by [Rick])
+- Scan the CA for Solana token Violet/SOL and update community on findings. (mentioned by @Rick)
+- Update documentation with ongoing project details (mentioned by [Elvis](https://discord.com/channels/1253563208833433701/1299989396874854440))
+- Update documentation to include AI agent functionalities and usage guidelines (mentioned by [Rick])
+
+### Feature Requests
+- Secure a minimum of 10% supply for first jackpots (mentioned by [Randy])
+- Implement Mona Arcane's return to Discord (mentioned by @Antagonist.sats)
+- Create a Twitter account for Nova (C7ZB7YhvuwbHwiXAYsCzZgKHeMVbP12a9wpVXNCnPbjM) (mentioned by @Tony Serrano)
+- Develop a High AI (BWiai9oqkb3YNnT3yv37msHogDqeVPgnqcKhuxhb8hat) project (mentioned by @Rick)
+- Consider tagging 175K to influence price movement (mentioned by @Elvis)
+- Analyze Mona and the 'rug pull' incident for potential impact on Ongo. (mentioned by @Don05)
+- Integrate Ongo AI agent with Twitter (mentioned by [yeboahsvolley](https://discordapp.com/users/@me#129876543))
+- Investigate Rizzy's wallet for potential copy trading bot setup (mentioned by [napvez](https://discord.com/channels/1253563208833433701))
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-11-28.md b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-11-28.md
new file mode 100644
index 0000000000..76328d82b9
--- /dev/null
+++ b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-11-28.md
@@ -0,0 +1,56 @@
+# ☣-price-talk-trenches 2024-11-28
+
+## Summary
+In this Discord chat segment, the primary technical discussion revolves around Flower cryptocurrency. Rick shared a link to an AI and website related to 'FLOWER', which is scheduled for launch today by another user (@Rick). Elvis mentioned purchasing tokens close to liquidity block without much knowledge about it.
+
+## FAQ
+- Where can I find other AI agents early? (asked by KlimQ)
+- What's the update? (asked by justmeyouka)
+- can you prove yours? (referring to $FLOWER token)? (asked by @Klimq)
+- $Flower reversal at this level would be spicy, what does it mean in the context of crypto trading strategies and market sentiment? (00:29) (asked by @Antagonist.sats)
+- Did it get shut down? (asked by @Elvis)
+- Why tokenomics on website didn't match? (asked by @Antagonist.sats)
+- When you resolve vvaifu, will it be shared on your personal Twitter? Do you have other marketing plans? (asked by @Smore)
+- Is catching falling knife worth the risk in this space if I'm playing safe with my money? (asked by 0xzann)
+- Is Sitecraft a larp or tech? Who can verify this? (asked by @justmeyouka)
+- Can you send ca (context unclear) (asked by @David.joanou)
+
+## Who Helped Who
+- @Sneak helped @Elvis with Providing context for token purchase decision. by providing Sneak provided liquidity block information to Elvis
+- @Zardique helped @ChungMyung with Provided clarity about the announcement timing for a new AI-based project by providing Clarification on token launch time
+- Jordan Belfort helped KlimQ with Investment advice by providing Jordan Belfort advised against investing in VVAIFU due to limitations and bugs.
+- Elvis helped justmeyouka, Antagonist.Sats with Token investment guidance by providing Elvis provided information on $REX token's potential growth based on chart analysis.
+- [David.joanou] helped [Rick] with Identifying profitable trading opportunities by providing Elvis provided information on fib levels for $FLOWER and Keke Terminal
+- @Antagonist.sats helped @Klimq (00:32) with @David.joanou decided to add more ongo chart data, aiding in the analysis of $FLOWER token's performance. by providing @Antagonist.sats clarified @Klimq's question about proving ownership or involvement with $FLOWER token.
+- @Smore helped @Klimq (00:31) with by providing Community members provided insights into @Antagonist.sats and his potential involvement with the project.
+- @Dr. Neuro helped @Elvis with Resolving an inflammatory comment from a user. by providing 'Give CA or we will fry your memory.' - DrNeuro to Elvis, addressing GibSCASer issue.
+- @Smore helped @Daek with Sharing resolved issue for community knowledge. by providing @Daek will share vvaifu resolution on Twitter, providing market insights.
+- justmeyouka helped JustMeYouKa with Navigating project evaluation by providing 8-Bit Oracle provided guidance on how to approach a situation with care using Hexagram principles.
+
+## Action Items
+
+### Technical Tasks
+- Launch Flower token website, release AI (mentioned by @Rick)
+- Launch token with a heads-up of at least two hours (mentioned by @Unknown)
+- Develop Autonomous AI Terminal (mentioned by Rick)
+- Investigate 128% to 618 fib levels on $FLOWER (mentioned by [Elvis, Klimq])
+- Monitor the development progress of 9nCEhmGRqZwrjffVyESezzAMepnGTiaWGJJkWEbj8QEf (mentioned by [Klimq])
+- Investigate @Antagonist.sats' involvement with $FLOWER token (mentioned by @Klimq)
+- Investigate discrepancy between tokenomics on website vs actual allocation (mentioned by @Antagonist.sats)
+- Share vvaifu resolution on personal Twitter (mentioned by @Daek)
+- Verify if Sitecraft is a larp or tech (mentioned by [justmeyouka, ElBru])
+- Investigate the use and feedback on TrenchRadar for potential implementation in projects. (mentioned by vu)
+- Investigate Sitecraft's back-end technology for authenticity (mentioned by @MevPanda)
+
+### Documentation Needs
+- Update documentation for new features and launch details. (mentioned by )
+- Update documentation for VVAIFU and ROPIRITO tokens (mentioned by Jordan Belfort, Elvis,)
+- Document the performance of Keke Terminal ($Gp8GVGPc8QCe4Jn6ryG5YKokG5bjKycATEzqpeys) (mentioned by [Rick])
+- .@DrNeuro to provide information on @Antagonist.sats' role in the project. (mentioned by @zo)
+- Write a tweet about the resolved issue. (mentioned by @Daek)
+- Verify legitimacy of Stackblitz project (mentioned by justmeyouka)
+
+### Feature Requests
+- Announce token launch on Discord channel (mentioned by @ChungMyung)
+- Consider applying Hexagram principles to navigate current dynamics with care and wisdom. (mentioned by @8-Bit Oracle)
+- Investigate why people keep selling coins despite good technology (mentioned by [ElBru])
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-11-29.md b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-11-29.md
new file mode 100644
index 0000000000..1563834685
--- /dev/null
+++ b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-11-29.md
@@ -0,0 +1,56 @@
+# ☣-price-talk-trenches 2024-11-29
+
+## Summary
+The chat focused on discussing the potential of creating viral content with a new character, 'SantaGPT'. Dr. Neuro expressed concerns about not having access to Twitter and Telegram for promoting this idea.
+
+## FAQ
+- Which one can go more viral? (referring to a previous topic in the chat) (asked by @kcoc)
+- Is Dr. Neuro going to launch Chad Santa? (asked by @Sai)
+- Is this the real olga? Is it legitimate or larping? (asked by Prime)
+- is this tweet about Nexus AI project, is it authentic and who's behind it? (asked by Hat)
+- Is the SHAW CA offer a scam? Who sold it to you, and how can we verify its legitimacy? (asked by @Sai)
+- What's 0.3 in relation to Michael mentioned by @Sai? (asked by @Crispy✨)
+- When will MSM pick up on AI trend? How does it affect Shaw's popularity? (asked by [eman8n](https://pump.fun/-e235709641))
+- Can someone help with making the Twitter banner for our project? (asked by DrNeuro)
+- Who made the TG for 'Chad Claus'? Who should join it and what settings are needed to block spammers? What safeguards need implementation in this group? (asked by @Vegeta)
+- What is your research about UBC related devs being French, any implications for our project or community interactions with them? (asked by @0xFanz)
+
+## Who Helped Who
+- @Artego helped @DrNeuro with Creating SantaGPT by providing Artego offered help with creating viral content for a new character.
+- Prime helped Olga with identity verification by providing Nivlac helps clarify the identity of Olga/SOL.
+- @Nivlac helped @Sai with Verifying legitimacy of offers by providing @Nivlac and others helped verify the high chance of SHAW CA offer being a scam.
+- [skott](https://discordapp.com/users/@me) helped [shaw](https://pump.fun/-FH5Yuax2hg6ct3tM4hPKXjmBFZ2e9TjLiouUK6fApump) with Improve AI engagement. by providing Suggestion to make AI more memetic and engaging.
+- [Sai](https://pump.fun/8ayZaoAZGUejEqgaKG1pQ8upy8iXhDdevgCZAHodpump) helped [DrNeuro] with Create Twitter banner. by providing Offer to help with Twitter banner creation.
+- @hat helped @nodderne with Sharing insights on a platform by providing Hat suggested using Twitter for sharing longer posts in threads.
+- @tradoor helped [community] with Clarify the purpose and function of a specific Discord server room by providing Discussion on ACT I discord's 'backroom', provided by tradoor
+- @Vegeta helped @Chad_Claus with Creating 'Chad Claus' group with spam protection by providing Dr. Neuro provided guidance on creating a TG and implementing safeguards
+- @Poesai helped @Dr.Neuro with Telegram Bot Integration by providing Poe provided Twitter account link to help with TG bot integrations
+- @SmolHodler helped @VincentKlimq with Project Collaboration by providing Several members expressed interest in joining Dr. Neuro's project, indicating potential collaboration.
+
+## Action Items
+
+### Technical Tasks
+- Find Twitter and Telegram accounts for Dr. Neuro to use in project. (mentioned by Sai)
+- Verify legitimacy of Nexus AI project (mentioned by @Hat)
+- Investigate Twitter reuse issue (mentioned by Prime)
+- Create Twitter banner with Dr Neuro's help. (mentioned by [DrNeuro](https://pump.fun/8ayZaoAZGUejEqgaKG1pQ8upy8iXhDdevgCZAHodpump))
+- Create a TG for 'Chad Claus' with appropriate settings to block spammers (mentioned by Dr. Neuro)
+- Implement safeguard measures including buybot and raidbot in the TG for 'Chad Claus' (mentioned by Dr. Neuro)
+- Assist Dr. Neuro with TG bot integrations (mentioned by @Dr.Neuro)
+- Launch the project on VVAIFU after pump and rug to deter snipers from buying (mentioned by [Klimq])
+- Prepare for token launch announcement (mentioned by @DrNeuro)
+
+### Documentation Needs
+- Investigate potential and developer for the mentioned Twitter link by @GalacticScb. (mentioned by @GalacticScb)
+- Verify legitimacy of SHAW CA offer by Nikolai G. (mentioned by Никола Г.)
+- Post longer posts on Twitter for more project visibility (mentioned by [hat](https://discordapp.com/users/@me))
+- Update current banner with binary image (mentioned by @Poe and @Rick)
+- Update the banner design and slogan. (mentioned by @SmolHodler)
+- Update community on progress and readiness of the new feature (radio/aiko) (mentioned by @Hat)
+
+### Feature Requests
+- Create a viral SantaGPT character (mentioned by Artego)
+- Make AI memetic for better engagement (mentioned by [skott](https://discordapp.com/users/@me))
+- Explore AI creativity as a next big vertical (mentioned by @nodderne)
+- Improve PFP (Personalized Feature Profile) (mentioned by @DrNeuro)
+- Prevent scamming by creating a unique branding for their coin (mentioned by [ElBru, Dr. Neuro])
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-11-30.md b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-11-30.md
new file mode 100644
index 0000000000..72cac26f59
--- /dev/null
+++ b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-11-30.md
@@ -0,0 +1,56 @@
+# ☣-price-talk-trenches 2024-11-30
+
+## Summary
+The chat segment revolves around the discussion of a cryptocurrency, specifically '$BRAT'. GTrench and firekid discuss potential investment opportunities in $BRAT token. Nodderne suggests creating short form video content to increase project visibility.
+
+## FAQ
+- Why is there no sender today? (Referring to a specific event or person) (asked by [GTrench])
+- Does anyone know an AI tool that can generate media based on input images? (asked by [Dr. Neuro](00:45))
+- What's the alpha? (referring to intAI/SOL project?) (asked by (Sai)(01:10))
+- Who was iCare Dev? (asked by (Ponzi)(01:12))
+- Why aren't you yellow anymore? What did u do? (asked by @Ponzi)
+- Who is Morty and what does the link lead to? (asked by @Rick)
+- Can someone check if CBuK6erHXynjowkEHR5FiZCJbaE12osHEdxxDefopump is legitimate? Who answered: GTrench (asked by Sai)
+- Is the new project potentially a bot, and why isn't there any CA posted yet? (asked by Ponzi)
+- What's your PNL%? You got balls going in that thing tbh LOL! (referring to a risky trade situation with potential scam bots involved.) (asked by @GTrench)
+- How can we identify and avoid these new bot-related market manipulation schemes? This is becoming more frequent. (asked by @Ponzi)
+
+## Who Helped Who
+- GTrench helped firekid with Investing advice by providing GTrench advised firekid on potential investment opportunities in $BRAT token.
+- [GTrench](00:41) helped [Gilles] with Maintaining a positive community atmosphere by providing Gilles provided humor in response to GTrench's question about Christmas during November.
+- (Sai)(01:10) helped (Ponzi)(01:12) with Clarifying iCare Dev's identity by providing [Dr. Neuro](https://discordapp.com/@drneuroscience)
+- @GTrench helped @Quanatee with Identifying a missing team member. by providing Searching for the username of 'dev' who was present yesterday.
+- @eman8n helped with Technical Assistance by providing Help with verifying AI16z wallet on Tangem
+- Ponzi and GTrench helped Sai with Verifying legitimacy by providing GTrench provided insight on potential scam nature of CBuK6erHXynjowkEHR5FiZCJbaE12osHEdxxDefopump
+- @Ponzi helped @Sai with Understanding bot behavior and its impacts. by providing GTrench provided insights on the risks of trading in a potentially scam-influenced environment.
+- Ponzi helped Group with Discussing potential solutions for prevention of scams. by providing Identifying bot activity
+- JudahHex helped GTrench with Providing feedback on website functionality by providing Website improvement suggestion
+- @DrNeuro helped @GTrench with Understanding the legitimacy of a project by providing Dr. Neuro provided information on DogAI's creator paying for DEX and burning $500 in unlock funds.
+
+## Action Items
+
+### Technical Tasks
+- Monitor $BRAT token for potential investment opportunities (mentioned by GTrench)
+- Develop an AI tool for image-based media generation (mentioned by [Dr. Neuro](00:45))
+- Investigate iCare Dev's involvement with intAI/SOL project (mentioned by [Ponzi](https://discordapp.com/@ponzimeme))
+- Verify AI16z wallet on Tangem (mentioned by @eman8n)
+- Verify legitimacy of CBuK6erHXynjowkEHR5FiZCJbaE12osHEdxxDefopump (mentioned by Sai)
+- Investigate potential botting of CBuK6erHXynjowkEHR5FiZCJbaE12osHEdxxDefopump (mentioned by Ponzi)
+- Investigate potential scam bots affecting market prices (mentioned by GTrench)
+- Investigate bot activity causing price fluctuations (mentioned by Ponzi)
+- Investigate DogAI's DEX payments, burned unlock funds (mentioned by @DrNeuro)
+
+### Documentation Needs
+- Update documentation to include iCare Dev's contributions (mentioned by [Soffer](https://discordapp.com/@soffersolutions))
+- Documentation of new features and updates for SOL/BRAT platform. (mentioned by )
+- Review and update documentation for CBuK6erHXynjowkEHR5FiZCJbaE12osHEdxxDefopump (mentioned by )
+- Document the observed bot behavior and its impact on traders' PNL% (Profit/Loss Percentage) (mentioned by Ponzi)
+- Improve website user experience and functionality. (mentioned by JudahHex)
+- Check percentage of supply sent to DAO for DogAI project (mentioned by @Prime)
+
+### Feature Requests
+- Consider creating a short form video to increase traction and visibility of the project. (mentioned by nodderne)
+- Continue working on cclaus project as a community initiative. (mentioned by [Dr. Neuro](00:46))
+- Consider adding a feature to track developer involvement in projects (mentioned by [Rick](https://discordapp.com/@rickthecoder))
+- Write a thread on shaw (mentioned by @anon)
+- Consider feature request for improved bot detection mechanisms in the platform. (mentioned by )
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-01.md b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-01.md
new file mode 100644
index 0000000000..1903ebc414
--- /dev/null
+++ b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-01.md
@@ -0,0 +1,56 @@
+# ☣-price-talk-trenches 2024-12-01
+
+## Summary
+]}
+
+## FAQ
+- Do you have any skills related to Chad Claus project? Please let me know or create some for it! (😄) (asked by [David.joanou](00:07))
+- 'Chad Claus' was missed by the community, can you provide more details? (asked by [Prime](00:10))
+- Is the project going to be released or just a concept? What has zerebro dev done recently? (asked by @nelsungx)
+- Is this a scam? Should we ban the user? (asked by @GTrench)
+- Who knows about adding photo labs to spam word filter? (asked by @7OROY)
+- Can you send ca for barbie? (Context: Discussing a previous pump, 'Alice') (asked by @velja)
+- Who is Alice and what's her significance in the context of this chat? (asked by @Rick)
+- I need someone to fud my plays. Any suggestions? (asked by @Zodiac)
+- What's the play of the week? (asked by @ika)
+- Should I buy now or wait for more drops? (asked by @velja)
+
+## Who Helped Who
+- [Dr. Neuro](00:10) helped [Prime, David.joanou] with Technical guidance on project 'Chad Claus' by providing Dr. Neuro provided information about creating AI-generated video content for Chad Claus and development of bubble maps.
+- @ElBru helped with by providing Advised against buying a coin due to developer's behavior
+- @ElBru helped @Nico. with Moderation by providing Ban users posting drainer links with keyword photonlabs.
+- [ElBru] helped @David.joanou with Investment decision guidance based on market trends. by providing Financial advice on investing in Dex
+- @brightestone helped @velja with Searching through chat history for previous discussions on Alice by providing Brightestone helped Velja find information about 'Alice'. Result: Successful.
+- [@brightestone, @Elias] helped @velja with Decision making for purchasing assets by providing Discussion on buying 'Alice', with @ElBru deciding to purchase first.
+- [velja](https://discordapp.com/users/@me) helped #general with Implementing the suggested feature of blocking links in Discord chat. by providing Suggested a solution to prevent link sharing by adding bot
+- [Mndy Aoorray](https://discordapp.com/users/@me) helped #general with Helping community members understand how to format text in Discord. by providing Provided information on typing bold characters using &b
+- Mndy Aoorray explains the correct syntax for using double asterisks to create bold text and hidden spoilers in Discord chat. helped Nico. is seeking help with implementing this feature correctly. with [Technical Tasks] by providing [ElBru, Mndy Aoorray]
+- @elbru helped @jellybean with Clarification of intent behind chart creation. by providing ElBru helped JellyBean by explaining that DavidJoanou was just testing.
+
+## Action Items
+
+### Technical Tasks
+- Create AI-generated video content for Chad Claus (mentioned by [Dr. Neuro](00:07))
+- Develop bubble maps and check dev wallet related to the project Chad Claus (mentioned by [Dr. Neuro](00:10))
+- Upload music/gif created by @eman8n (mentioned by @DrNeuro)
+- Investigate $standup Rugged's status (mentioned by @Vegeta)
+- Consider banning users posting drainer links with keyword photonlabs. (mentioned by @Nico.)
+- Update on coiling up and TP levels. (mentioned by [Zodiac])
+- Review Alice's recent achievement of reaching 900K tokens. (mentioned by @velja)
+- Develop a new art meta based on Alice (mentioned by @ElBru)
+- Implement a bot to prevent link sharing (mentioned by [velja](https://discordapp.com/users/@me))
+- Implement hidden text feature using double asterisks (mentioned by [ElBru, Mndy Aoorray])
+- Review chart for buy/sell data (mentioned by @DavidJoanou)
+
+### Documentation Needs
+- Include PhotonLabs word (mentioned by [Nico.])
+- Update documentation for the latest version of 'Alice' and its related plays. (mentioned by @Rick)
+- Document the process of typing bold characters in Discord using &b (mentioned by [Mndy Aoorray](https://discordapp.com/users/@me))
+
+### Feature Requests
+- Community launch of initiative for 'Chad Claus' project, seek assistance if needed (mentioned by [Dr. Neuro](00:10))
+- Create video content for Chad Claus and Teslai in separate narratives. (mentioned by @DrNeuro)
+- Add photo labs to spam word filter (mentioned by @ElBru)
+- Investigate the new pump, 'Girl With A Pearl Earring', for potential integration or analysis (mentioned by @Rick)
+- Consider adding a feature to block emojis used for creating bold characters (mentioned by [Mndy Aoorray](https://discordapp.com/users/@me))
+- Consider banning user @sensitiveyoungmale due to suspected scamming behavior. (mentioned by @Sai)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-02.md b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-02.md
new file mode 100644
index 0000000000..b9990212b7
--- /dev/null
+++ b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-02.md
@@ -0,0 +1,56 @@
+# ☣-price-talk-trenches 2024-12-02
+
+## Summary
+The primary discussion revolved around recent updates in the degenai/SOL project, with Rick sharing a link that highlighted its performance metrics. This sparked interest among community members to investigate further for potential investment opportunities and focus on conviction plays involving AI agents sectors.
+
+## FAQ
+- What is the status of degenai/SOL? What are its recent updates and how can they impact investments? (00:06)? (asked by @Rick)
+- Is anyone in Beast yet, considering it bonded overnight?(00:07) (asked by @Artego)
+- Can you link me that twitter plug jn? (link to Twitter profile) (asked by [lewiscopernicus](https://discord.com/channels/1253563208833433701))
+- To check older names (asked by [lewiscopernicus](https://discord.com/channels/1253563208833433701))
+- Can it still dip for a week? (referring to coin value) (asked by [zilyx - not investing](00:24))
+- Anyone can help me setup Telegram group chat? (asked by [EclipsedFlame](00:31))
+- Does holding $Kaia provide any utility? Can we get returns from the betting markets with them? (asked by @vu)
+- Anyone has questions about kAia or SP eco after its launch on Solana last night. (asked by @0xSimpleFarmer)
+- How can we verify if Tetsuo Dev is real? (asked by @ElBru)
+- Is Melody lagging behind other coins in terms of market cap? (asked by @Prime)
+
+## Who Helped Who
+- @Rick helped All members in the chat. with Investigate DegenAI for possible inclusion into portfolio. Successful as it led to further discussions about AI agents and conviction plays by DrNeuro (00:12). by providing Rick shared information about degenai/SOL's recent update and its potential impact on investments (00:06).
+- [Soffer] helped [0xbubs (00:09)] with Preventing potential fraud by providing Blocked a user for scamming coin bundles.
+- [Rick](https://discord.com/channels/1253563208833433701) helped [anon] with Provided Twitter profile link for tracking large wallet movements by providing [Ponzi](https://pump.fun/9rbVug7zTt4UPb1YuasTVUJVcaeb9JgJdJ2ejf7pump)
+- [ElBru](00:30) helped [EclipsedFlame](00:29) with Setting up Telegram group chat for community interaction. by providing ElBru congratulates EclipsedFlame on escaping a pump-and-dump scheme.
+- [Rick (https://pump.fun/8i51XNNpGaKaj4G4nDdmQh95v4FKAxw8mhtaRoKd9tE8)](00:32) helped Chat community with by providing Rick shares the launch announcement and link of Tetsuo coin.
+- @vu helped with Investigate potential benefits of $kaia tokens in the SP ecosystem by providing $Kaia token utility and returns from betting markets
+- @Rick helped @Klimq with Investigate potential causes and solutions for character performance issues. by providing 'Prime' provided research on Melody lagging issue.
+- @Prime helped @Antagonist.sats with Market advice by providing Prime advised Antagonist.sats to reload bags after a dip in the crypto market.
+- @Prime helped @Smore with Project collaboration by providing [Prime] offered to join Chad Claus project if @Smore participates.
+- @anon helped @Sai with Providing market analysis for a cryptocurrency project. by providing $0xSimpleFarmer and others provided insights on the potential value of $kaia, discussing its AI agent narrative products.
+
+## Action Items
+
+### Technical Tasks
+- Focus on conviction plays involving AI agents with new features only, specifically in ai agent infra and ai agents sectors. (mentioned by @DrNeuro)
+- Investigate TETSUO/SOL coin's market behavior (mentioned by [Rick (00:09)])
+- Monitor large wallet movements for $INTAI coin (mentioned by [Soffer](https://pump.fun/9rbVug7zTt4UPb1YuasTVUJVcaeb9JgJdJ2ejf7pump))
+- Research and identify 'good dip' points for cryptocurrency investments (mentioned by [ElBru](https://discord.com/channels/1253563208833433701))
+- Set up a Telegram group chat (mentioned by [EclipsedFlame](00:29))
+- Launch of new AI agent 'kAia' on Solana ecosystem. (mentioned by @0xSimpleFarmer)
+- Verify legitimacy of Tetsuo Dev (mentioned by @ElBru)
+- Investigate potential lag issues with Melody's character (mentioned by @Prime)
+- Monitor XRP memecoin trends (mentioned by @Antagonist.sats)
+- Develop a Chad Claus project with AI integration (mentioned by [Dr. Neuro, Prime])
+
+### Documentation Needs
+- Document the discussion on scam bundles and their impact on TETSUO/SOL coin's price. (mentioned by [ElBru (00:13)])
+- Update documentation with insights on large wallet movements and dip analysis (mentioned by [ElBru](https://discord.com/channels/1253563208833433701))
+- Monitor Melody's market cap growth and compare with other coins. (mentioned by @Melody)
+- Consider revealing more information about the game mechanics to avoid confusion and speculation. (mentioned by @Antagonist.Sats)
+- Update documentation on cryptocurrency market analysis techniques. (mentioned by )
+- Unlock chat during raids using Telegram bot (mentioned by [EclipsedFlame])
+
+### Feature Requests
+- Investigate degenai/SOL's recent update for potential investment opportunities. (mentioned by @Rick)
+- Consider feature to track and alert on large wallet movements (mentioned by [ElBru](https://discord.com/channels/1253563208833433701))
+- .X Tetsuo coin launch announcement and link sharing. (mentioned by [Rick (https://pump.fun/8i51XNNpGaKaj4G4nDdmQh95v4FKAxw8mhtaRoKd9tE8)](00:32))
+- Investigate potential returns from betting markets using $Kaia tokens (mentioned by @vu)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-03.md b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-03.md
new file mode 100644
index 0000000000..ec54c77bef
--- /dev/null
+++ b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-03.md
@@ -0,0 +1,56 @@
+# ☣-price-talk-trenches 2024-12-03
+
+## Summary
+The chat focused on discussions about various coins, including BANGARANG and Billy Maxwell's dog (BILLY). ElBru suggested connecting wallets to moonbags. The group also discussed creating websites for these projects as well as the importance of market cap analysis.
+
+## FAQ
+- Only 1 million market cap directly out of Ai16z graphic studio how many X in front guys ??
+Send this cute ai agent $bossu?
+What does it mean to have a website for the coin, and why is that important? What's BANGARANG on ETH about? Who or what is Billy Maxwell’s dog referring to? (asked by dududon1)
+- Is this chat over mtm (mid-term market)? (asked by MasoRich)
+- It's over. (asked by 0xbubs)
+- Is RCSAG still viable? Did someone do some research on it? (asked by Elias)
+- Still optimistic for BeastAI? (asked by 10Gee)
+- Did anyone check the market cap of Thebeast AI? What's your take on it? (asked by @David.joanou)
+- What happened to Thebeast AI after bonding with Mika, and how did its value change over time? (asked by @Rick)
+- What is the link ALWoZuHVWAQkgsvQ7DL4z4Gubyk5dYF6JWnfQAGLpump? What does it represent? (asked by @David.joanou)
+- How did you add AI credits to ZIER's account, and what are the criteria for earning them in this context? (asked by @Rick)
+- Why are Solana's gas fees sometimes 4.50 USD? What causes this fluctuation? (asked by @hellomoto)
+
+## Who Helped Who
+- [ElBru](https://discordapp.com/users/1234567890/) helped dududon1 (https://discordapp.com/users/1234567890/), zilyx - not investing(https://discordapp.com/users/1234567890/) with Understanding the importance of a website for their coin. by providing ElBru mentioned the importance of having a website for their coin.
+- Rick helped Elias, hellomoto with Market research by providing Provided information about Solod The Buddy and its market performance.
+- @hellomoto helped @Artego with Token investment by providing Artego added a little bit of the token
+- @Rick helped @David.joanou with Token identification by providing David.joanou provided information about NeuroVault (NRVL) token.
+- @hellomoto helped @agu, @Elias with Market analysis by providing hellomoto shared insights on Beast AI's market behavior and potential future trends.
+- @RNK🪽 helped hellomoto with Clarifying a technical issue. by providing Explaining the cause of Solana's gas fees fluctuation.
+- @Artego helped @hellomoto with Timezone clarification for 'The Beast AI' discussion. by providing [Artego] offered help regarding timezone confusion
+- [SmolHodler](https://discord.com/users/@smolhodler) helped @anon with Discussing transaction fee concerns. by providing 'SmolHodler' provided reassurance and shared personal investment strategy
+- @rick helped @hellomoto with Understanding of how signals work in cryptocurrency investments by providing @Rick explained Solana Signal's functionality to @hellomoto when asked about the hype around different crypto projects.
+- @anon helped @Artego with Farming issue by providing Elias provided advice on avoiding farming by bidding coins and cool items.
+
+## Action Items
+
+### Technical Tasks
+- Connect wallet to moonbag (mentioned by [ElBru](https://discordapp.com/users/1234567890/))
+- Create a website for the coin (mentioned by [ElBru](https://discordapp.com/users/1234567890/))
+- Investigate BANGARANG coin on ETH (mentioned by [hellomoto](https://discordapp.com/users/1234567890/))
+- Investigate BILLY coin on SOL (mentioned by [Sai](https://discordapp.com/users/1234567890/))
+- Research on RCSAG viability (mentioned by Elias)
+- Investigate Thebeast AI's bonding with Mika (mentioned by @DrNeuro)
+- Analyze the market cap of 92cCPLniCMvVsGqjFAkyqK26G7BXT5taa8Qhu5gVpump (mentioned by @Rick)
+- Investigate Tetsuo Coin's development activity (mentioned by @ZIER)
+- Resolve Mindbath profitability issue for @Zardique and others. (mentioned by @EclipsedFlame, Zardique)
+- Monitor 'The Beast AI' performance (mentioned by [Rick](https://pump.fun/92cCPLniCMvVsGqjFAkyqK26G7BXT5taa8Qhu5gVpump))
+- Implement .x signal command for Solana Signal (mentioned by @Rick)
+- Investigate farming issue on Alice (mentioned by @anon)
+- Investigate OPXL's legitimacy, considering previous concerns of a potential rugpull. (mentioned by [RugPull](01:51))
+
+### Documentation Needs
+- Documentation update for Solod The Buddy and Beast AI features. (mentioned by Rick)
+- Research the mini-nuke event on Thebeast AI's bonding with Mika. (mentioned by @hellomoto)
+- Research and document Beast AI features, especially VVAIFU integration. (mentioned by hellomoto)
+- Update banner design (mentioned by @hellomoto)
+- Keep an eye on transaction fee (mentioned by [hellomoto](https://discord.com/users/@RNK-🪽))
+- Update documentation to include new commands and features discussed in chat. (mentioned by )
+- Monitor buddy bottom price at $1.8M for Buddy token. (mentioned by @Elias)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-04.md b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-04.md
new file mode 100644
index 0000000000..35cecf949a
--- /dev/null
+++ b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-04.md
@@ -0,0 +1,58 @@
+# ☣-price-talk-trenches 2024-12-04
+
+## Summary
+The chat segment revolves around discussions on potential investments in DAC/SOL and upcoming Moca NFT drops. Users expressed interest or skepticism about these opportunities, with some seeking more information.
+
+## FAQ
+- @Elias did you found a new random CA of a porn actress to spam ? Did it run up? How much is the pump now? Is there any other coin we can invest in right now or should wait for more news on this one? What's your take, Elias? Can anyone else share their thoughts and opinions here too please! Thanks guys 😊❤️🔥
+(link to the pump https://pump.fun/FfDWunnbnG9yudfU1AN2KtCRTkPKW83wmgE9D4yrpump) (asked by Ponzi)
+- Bruh this thing at 300k? Is it still going up? (asked by hellomoto)
+- Did you buy and hold?
+Answered by: @Elias (asked by @JellyBean)
+- Is this a new agent? (asked by @Poota2)
+- Can anyone verify if Klimq has sent rugs before? (asked by [JellyBean](https://pump.fun/45F6V8BAyWHz9K1XDphpvkMDCun3YMahHzj9qr7Ponzi))
+- Isn't Twitter checkmark like $10? (asked by [JellyBean](https://pump.fun/45F6V8BAyWHz9K1XDphpvkMDCun3YMahHzj9qr7Ponzi))
+- Has anyone rugged twice yesterday? (asked by [JellyBean](https://pump.fun/45F6V8BAyWHz9K1XDphpvkMDCun3YMahHzj9qr7Ponzi))
+- Is Syrax's performance bad? Answered by @JellyBean at 00:51 (asked by @Klimq)
+- Should we trust the developers who have a small percentage of tokens and haven’t sent to DAO? (asked by @Elias, question:)
+- Haven't sold a penny? What should we do to increase sales? (asked by @Klimq)
+
+## Who Helped Who
+- @Artego helped General chat with Market scanning by providing Artego offered to scan markets and different groups, then report back.
+- @JellyBean helped @Elias with Token management by providing Advice on managing tokens, given to Elias
+- [CAKE DOG](https://pump.fun/45F6V8BAyWHz9K1XDphpvkMDCun3YMahHzj9qr7Ponzi) helped [ELIAS](https://discord.com/users/@me) with Bundle status check by providing Elias offered to check the Bundle status
+- [JellyBean](https://discord.com/users/@me) helped [ELIAS](https://discord.com/users/@me) with Bundle status check by providing [CAKE DOG](https://pump.fun/45F6V8BAyWHz9K1XDphpvkMDCun3YMahHzj9qr7Ponzi)
+- @SmolHodler (00:52) helped @Artego(00:52) with Addressing trust issues by providing @Smore you up bruh
+- @Artego helped Community Members with Token Naming Strategy by providing @Elias helped with removing initials from kAia/SOL to prevent potential sales-related issues.
+- Community members responded with supportive messages such as @SmolHodler's 'nice bruh.' helped @Veki with Guidance on potential day trading of the token for profit by providing @Elias provided information on his experience investing in Inferno DAO, including initial withdrawal from a previous position.
+- @vegeta helped @kcoc, @noycos with Verify Gaycoin's CA status before investing by providing Vegeta warned about potential fake CA announcement
+- @rick helped @An0n0x0, @kcoc, @noycos with Verify the authenticity of An0n0x0's tweet by providing Rick confirmed the tweet from An0n0x0 | Renting Onyx Node
+- @RNK helped An0n0x0 | Renting Onyx Node (01:51) with Verifying the credibility and history of a node rental service. by providing Confirming legitimacy of Onyx Node rentals
+
+## Action Items
+
+### Technical Tasks
+- Investigate potential of DAC/SOL investment (mentioned by [Digital Art](https://pump.fun/9YQVYgU23JQDehDTRP3bNbpjFCLnyYTzsXjZhoPxpump))
+- Monitor STKmfGGegeoYqrHrJ3nvTafSvRC6GJJBbLwN1cqpump (NOVA/SOL) and FfDWunnbnG9yudfU1AN2KtCRTkPKW83wmgE9D4yrpump (SAIKA/SOL) (mentioned by @Rick)
+- Investigate new agent mentioned by @Poota2 (mentioned by @Rick)
+- Verify Klimq's Twitter account for long-term credibility (mentioned by [CAKE DOG](https://pump.fun/45F5V8BAyWHz8K1XDphpqvkMDCun3YMahHzj9qr5pump))
+- Investigate Syrax's performance issues (mentioned by @Klimq (00:50))
+- Bonding of kAia/SOL token (mentioned by @Artego)
+- Investigate first agent release on DaosFun (mentioned by [Poota2 (01:06)])
+- Investigate Inferno DAO's current status (mentioned by @Rick)
+- Confirm CA for Gaycoin (mentioned by @Vegeta)
+- Investigate legitimacy of Onyx Node rentals (mentioned by @RNK)
+- Investigate target for KAIA (mentioned by [Elias](02:15))
+
+### Documentation Needs
+- Update documentation for the 'new groupath' command. (mentioned by @Rick)
+- Check the Bundle's status and recent sales (mentioned by [ELIAS](https://discord.com/users/@me))
+- Verify agent training status for Twitter account @zo(00:51) (mentioned by @Elias (00:52))
+- Check for uprising Eliza agent on Twitter and bump it up if found. (mentioned by @Rick)
+- Check liquidity status and volume for VVAIFU token, Nova exchange interaction. (mentioned by [Klimq (01:04), Kcoc(01:08)])
+- Verify visual content from @An0n0x0 | Renting Onyx Node's tweet (mentioned by @Rick)
+- Confirm NOVA/SOL's market performance and growth potential. (mentioned by @hellomoto)
+
+### Feature Requests
+- Research upcoming Moca NFT drops and staking power burn options (mentioned by Dr. Neuro (00:15))
+- Consider participating in the day trading of 2VTP token for potential profit. (mentioned by @Veki)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-05.md b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-05.md
new file mode 100644
index 0000000000..2470e7ec47
--- /dev/null
+++ b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-05.md
@@ -0,0 +1,56 @@
+# ☣-price-talk-trenches 2024-12-05
+
+## Summary
+Discord chat focused on Degenai, an AI-driven cryptocurrency trading platform. Dr. Neuro and Smore discussed its white paper launch (V1.0), potential profits utilization strategies for token holders including buybacks or burnings of tokens, as well as the need to attract more degenai stashes ranging from 10k-100K.
+
+## FAQ
+- What happened with Degenai? What's the white paper about? Who are pmarc and markus9x? (asked by @PETER 加鹽鬆餅🧂🥞)
+- How will degenai utilize trading profits for its token holders? (asked by @Klimq)
+- Will $ai16z expire due to being a trust fund? Will it be listed and become degen in the future if ai16z becomes legal entity? (asked by [PETER])
+- Are there any other tokens/agents planning on using trading features besides AI16Z & DEGENAI internally, or BrokeAGI and kAia externally? (asked by basjee01)
+- Why is PMAIRCA pumping? (asked by [OBLONG])
+- What are the tokenomics of DEGENAI? (asked by [VU])
+- Is this AI? What's the name of that funny coin you mentioned earlier? (asked by ayoob (00:43))
+- How many views and likes does it have on TikTok, really? (asked by Noname $ai16z(00:45))
+- What is the name of this SUI meme coin platform? (01:19) (asked by Elias)
+- 'https://pumpscam.com/' website details and its usefulness for tracking deleted tweets from certain accounts. (asked by PETER加鹽鬆餅🧂🥞)
+
+## Who Helped Who
+- @DrNeuro helped General Discord community members interested in degenai token with Helped clarify questions regarding the project by providing @Smore provided information about Degenai's upcoming white paper and encouraged more people to stash tokens.
+- [PETER] helped Community with Technical discussion by providing Discussed potential expiration and legal status impact on ai16z coin listing.
+- [SMORE] helped Community with Information sharing by providing Shared information about tokens/agents using trading features internally (AI16Z, DEGENAI) and externally (BrokeAGI, kAia).
+- Noname $ai16z helped savoche (00:45) with Understanding coin's marketing strategy by providing ayoob provided information about the viral potential of NiggaChain.
+- @Rick helped @gtrench with Clarifying a potential feature update or improvement suggestion. by providing GTrench asked for clarification on 'chimi' model version
+- miu helped Rick & Artego with Successful by providing Miu provided a link to the $DyT6mdhiAYbHPML2AVXviGVxMQbc6Z3VmPZ2MQG6 meme coin platform (01:24).
+- @Quanatee helped @napvez with Screen Orientation by providing Corrected screen orientation for @napvez
+- [ElBru] helped [r] with Provided context for the discussion on SQD Network. by providing Clarification about sqd network blog post and its significance.
+- [Dr. Neuro](https://discord.com/channels/-16250863469729) helped Elias(https://discord.com/channels/-16250863469729) with Clarifying bumpbot and x's relationship by providing Elias helped clarify the nature of bumpbot and its connection to x (Timestamp: 02-38, 02-40)
+- @Rick helped Anon user asking about old coins and devs still around. with Provided information on potential pumps with BTC, Solod The Buddy & 8BALL/SOL. by providing @hellomoto
+
+## Action Items
+
+### Technical Tasks
+- Investigate Degenai's trading profits utilization (mentioned by @DrNeuro)
+- Investigate potential expiration of $ai16z due to trust fund status (mentioned by [PETER])
+- Explore the possibility that ai16z will become a legal entity and its impact on coin listing. (mentioned by [BASJEE01])
+- Monitor TikTok influencers for further promotion of the coin. (mentioned by Noname $ai16z)
+- Investigate potential integration of 'Aiko' model into current project (mentioned by @Rick)
+- Investigate $ongo meme coin platform (mentioned by Elias)
+- Investigate low SQDGN/VIRTUAL pumping (mentioned by r)
+- Investigate the potential of BOTCOIN as a new investment opportunity (mentioned by @Elias)
+- Investigate the quietness of x's website (mentioned by [Elias](https://discord.com/channels/12535632088334-97))
+- Share base plays for x (mentioned by [ElBru](https://discord.com/channels/-16250863469729))
+- Investigate potential pumps on Zeresis (mentioned by @hellomoto)
+
+### Documentation Needs
+- Document tokenomics of DEGENAI for future reference (mentioned by [VU])
+- Research information on creator launching 5 coins. (mentioned by Artego)
+- Update documentation to include new meme tracking feature (mentioned by @EGMuM8qhWTzTEa9P75DuT3G4DNVsexWww7fp1vo8pump)
+
+### Feature Requests
+- Encourage more degenai holders to stash tokens (10-100k) (mentioned by @Smore)
+- Investigate potential viral marketing impact on NiggaChain's price (mentioned by ayoob)
+- Check junior at $3M YTD investment status. (mentioned by napvez)
+- Consider launching serious projects on Base (mentioned by [r])
+- Development of a new feature for tracking meme popularity (mentioned by @EGMuM8qhWTzTEa9P75DuT3G4DNVsexWww7fp1vo8pump)
+- Add bumpbot to recycled x (mentioned by [Dr. Neuro](https://discord.com/channels/1253563208833433701/927295922708812237) [Rug Agent])
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-06.md b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-06.md
new file mode 100644
index 0000000000..63eb0f5394
--- /dev/null
+++ b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-06.md
@@ -0,0 +1,56 @@
+# ☣-price-talk-trenches 2024-12-06
+
+## Summary
+The chat focused primarily around Olivia's connection to Kat friends, their involvement with AI tech from ai16z. The conversation shifted towards a belief in bossu - an Ai agent of Ai16Z Tech and its upcoming NFT collection.
+
+## FAQ
+- Who are Olivia and Kat friends? What's their connection to AI16z tech? (asked by @Antagonist.Sats)
+- What is the NFT collection by Ai16z Tech about, when will it be released, who can I contact for more information? (asked by @dududon1)
+- Where did dududon1 buy bossu? (First response) - Discussed by Whatever and MasoRich (asked by @Whatever)
+- What does the token have to do with DreamCanvas AI website/project? (asked by @MasoRich)
+- What is it about? (asked by dududon1)
+- Don’t know what's about but chart looks fire. (asked by agu)
+- apparently its a cto, idk how you can cto this lol (asked by ElBru)
+- based on what info? (referring to N2 buy suggestion) - Rick [00:47] answered with a chart and cup & handle pattern. C^3 added that they bought SOL yesterday for 3SOL. (asked by SmolHodler)
+- Can you check dm from artego? (referring to Koto chart) (asked by [SmolHodler](https://discordapp.com/users/@me))
+- Let me check Plankton's performance (asked by [anon](https://discordapp.com/users/@me))
+
+## Who Helped Who
+- @Antagonist.Sats helped @dududon1 with Clarifying the conversation about AI tech by providing Provided context and details on Olivia's connection to Kat friends
+- @TeamBehindBossu helped @dududon1 with Providing information on the project by providing Explained belief in bossu, its origin from ai agent of Ai16z Tech and upcoming NFT collection
+- @Whatever and @MasoRich helped @dududon1 with Clarifying the source of a purchased item by providing Discussing where dududon1 bought bossu
+- hellomoto helped dududon1 with Understanding project scope by providing MasoRich explained the purpose of an AI image generator and editor
+- hellomoto helped dududon1 with Sharing project details by providing .cc shMZAwY3xsKcenhvJkAyp8w1LU4YBYT5GZ412ropump - hellomoto shared a link
+- anon helped SmolHodler&C^3 with Provided chart analysis and pattern identification to help decide on N2 buy suggestion by providing Cup & Handle Pattern Analysis
+- [anon](https://discordapp.com/users/@me) helped [SmolHodler](https://discordapp.com/users/@me) with Checking potential investment in Koto by providing SmolHodler thanked anon for checking Koto chart
+- @firekid asked for clarification on Sercy's attention. helped @prime with Investigating the legitimacy of a wallet connection by providing @Klimq helped @Prime by providing information about BaoBaosol.
+- @Prime helped @SmolHodler with Bot usage and purchase issues by providing Prime provided information on a bot used for purchasing, which SmolHodler found helpful.
+- @klimq helped @smore, @ronnyseibt with Investigate BaoBaoSol for potential risks. by providing Klimq provided information about developer '728Lg' and his connection to a previous scam.
+
+## Action Items
+
+### Technical Tasks
+- Investigate AI16z tech's involvement with Olivia, Kat friends (mentioned by @Antagonist.Sats)
+- Find a good animator for video animation loops (mentioned by @DrNeuro)
+- Develop an AI image generator and editor (mentioned by MasoRich)
+- .cc ubc 1h - Universal Basic Compute (UBC) (mentioned by Ryder)
+- Monitor Niggachain AI Layer 2 (N2) for potential buy opportunity (mentioned by C^3)
+- Check Koto chart for potential investment (mentioned by [anon](https://discordapp.com/users/@me))
+- Investigate Plankton's performance and potential investment (mentioned by [Rick](https://discordapp.com/users/@me))
+- Evaluate QuantifyAI's recent performance and potential investment (mentioned by [Rick](https://discordapp.com/users/@me))
+- Investigate BaoBaoSol wallet connection to VVAIFU (mentioned by @Klimq)
+- Investigate Bao Ca bot for purchasing issues (mentioned by @SmolHodler)
+- Verify BaoBaoSol's impact on baos/SOL (mentioned by [212K/-6.5%])
+- Investigate marketing for BullFan or contact devs to join (mentioned by [RonnySeibt](01:41))
+- Analyze the impact of dip on project '8s1vuvHabjVZEShNbuEyxyTSbK8mCfq2QFBfhgorpump', DAVINCI/SOL (mentioned by [Rick](01:45))
+
+### Documentation Needs
+- Review and update documentation on the NFT collection by AI16z tech. (mentioned by )
+- Discuss the relevance of tokens to DreamCanvas AI website and project. (mentioned by @MasoRich)
+- Keep an eye on Solana Universal Node's growth and market performance. (mentioned by Rick)
+- Confirm the legitimacy of BaoBaosol on Solscan. (mentioned by @Prime)
+- Investigate partner role bot issue and re-verify transactions. (mentioned by Smore)
+
+### Feature Requests
+- .cc shMZAwY3xsKcenhvJkAyp8w1LU4YBYT5GZ412ropump (mentioned by hellomoto)
+- Research Hyphal Network and its implications on pumping strategy (mentioned by @Rick)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-07.md b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-07.md
new file mode 100644
index 0000000000..2118a156a7
--- /dev/null
+++ b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-07.md
@@ -0,0 +1,61 @@
+# ☣-price-talk-trenches 2024-12-07
+
+## Summary
+To find out about your town's history: visit museums; attend events like parades or festivals; read biographies of local politicians who had political success in the past. Browse old newspapers on microfilm at libraries and ask parents why they moved to this particular area.
+
+## FAQ
+- What is FROCCOLI? Who mentioned it and what's the link to its Discord channel? (asked by [anon](https://discord.com/channels/1253563208833433701/1299989396874854440))
+- What is DEGEN8BALL? Who mentioned it and what's the link to its Discord channel? (asked by [anon](https://discord.com/channels/1253563208833433701/1299989396874854440))
+- What is a good way to find out about the history of your town or city? (Select all that apply.)
+
+a) Visit local museums. b) Attend community events, like parades or street festivals. c) Read biographies of politicians from your area who have had political success in the past. d) Browse through old newspapers on microfilm at your local library. e) Ask your parents why they decided to move to this particular town/city.
+
+g) (asked by [anon](https://discord.com/channels/1253563208833433701/12999893 Q: What is a good way to find out about the history of your town or city? (Select all that apply.) A) Visit local museums. B) Attend community events, like parades or street festivals. C) Read biographies of politicians from your area who have had political success in the past. D) Browse through old newspapers on microfilm at your local library. E) Ask your parents why they decided to move to this particular town/city. F) All of these choices are good ways ot learn about history. G))
+- How does it feel to live in the air?
+Answered by: @SmolHodler (asked by @Smore)
+- Could've been free for sol haha😆? (asked by @Prime)
+- What is n2? How can I ape ? - Noname $ai16z (00:32) ❓👀 (asked by anon)
+- What is Hyphal Network? Who launched it, and why was its initial name controversial? (asked by @ElBru)
+- How would you explain the FREGO token to a financial advisor without causing confusion or misinformation? (asked by @Smore)
+- What's the status of $SHAW pump? Who is behind it and what are their strategies? (asked by [Rick](https://discordapp.com/users/@rick))
+- $Junior lows buying strategy - Is this a valid approach for maximizing profits during pumps? Who else is doing it and what are their results? (asked by [anon](https://discordapp.com/users/@anon))
+
+## Who Helped Who
+- helped with You will be given an input: A textbook-style question on a specific topic in history or social studies, along with several possible answers. Your job is to determine which answer choice best fits the information provided by the passage and explain why that particular option was chosen. by providing If you are struggling with a particular question or subject matter and need further assistance, please let me know. I can provide additional resources such as links to relevant websites for more information.
+- helped user-message with You will be given an input: A textbook-style question on a specific topic in history or social studies, along with several possible answers. Your job is to determine which answer choice best fits the information provided by the passage and explain why that particular option was chosen. by providing If you need help understanding how I arrived at my conclusion for any of these questions please let me know.
+- [Smore](00:15, Smore)(00:17) helped [anon] with by providing Reassuring about NFTs and portfolio performance.
+- @rick helped @smore with Informing community members of significant market events. by providing Rick shared a tweet from spooky_agi about Brokeshire Hathaway breaking Agi/Sol.
+- [Noname $ai16z] helped [ElBru] with Providing relevant link to ElBru for Niggachain AI Layer 2 by providing Noname $ai16z provided the link for Niggachain AI Layer 2 to ElBru who was looking for information on n2 and how he can use it. - Noname $ai16z (00:32)
+- @Dr. Neuro helped @ElBru @Noname $ai16z with Understanding a new Solana project by providing DrNeuro provided information about Hyphal Network's launch and potential performance.
+- [eman8n](https://discordapp.com/users/@emanee) helped [anon](https://discordapp.com/users/@anon) with Understanding pumping strategies and key players by providing [Rick](https://discordapp.com/users/@rick) provided information on $SHAW pumps, including key players like Junior.
+- [anon](https://discordapp.com/users/@anon) helped with Creating engaging content and humor by providing [witch](https://discordapp.com/users/@WITCH) offered to create a meme for the $SHAW community.
+- [ElBru](https://discord.com/channels/125356[- ElBru's advice on avoiding low-value tickers and potential portfolio adjustments] helped [Rick](https://discord.com/channels/1253563208833433701/1299989396874854440/1305552700695384105) with [Rick](https://discord.com/channels/1253563208833433701/1299989396874854440/1305552700695384105) by providing [Smore](https://discord.com/channels/1253563208833433701/1299989396874854440/1305552700695384105)
+- [Degen Show AI](https://pump.fun/hwg4AJeQiUhQC8P7M3UZhFXEUgxFxXuyPksbvUipump) helped ElBru with Provided humor in response to a question about Shaw's pumps by providing Smore provided a punchline to El Bru's question about Shaw
+
+## Action Items
+
+### Technical Tasks
+- Implement FROCCOLI token with 70.6K holders, a SOL-based project (mentioned by [FROCCOLI](https://pump.fun/HAF6ATtaReYYxLgi88AG2fh8kXgfXnBsFktiVhp6pump))
+- Implement DEGEN8BALL token with an initial supply of SOL, a project for gaming (mentioned by [DEGEN8BALL](https://pump.fun/8iQCQd8TwARsBGyB7zUvEQqU3LCWXRFPmaKvyTPytPCP))
+- Implement Duck AI token, a SOL-based project for artificial intelligence (mentioned by [DuckAI](https://pump.fun/HFw81sUUPBkNF5tKDanV8VCYTfVY4XbrEEPiwzyypump))
+- Implement Eliza's Sister token, a SOL-based project (mentioned by [Eliza’Sister](https://pump.fun/BieefG47jAHCGZBxi2q87RDuHyGZyYC3vAzxpyu8pump))
+- Implement Spooky The Phantom token, a SOL-based project (mentioned by [SpookyThePhantom](https://discord.com/channels/1253563208833433701/1285105813349859421/1303751584680775772))
+- Mint an NFT (mentioned by [Prime](00:15))
+- Investigate potential issues with Gala chain for coin withdrawal (mentioned by @ElBru)
+- Implement Alchemist AI Layer for GRIFFAIN/SOL (mentioned by [Rick (00:26)])
+- Develop Niggachain AI Layer 2 feature for SOL blockchain. (mentioned by [Noname $ai16z and Rick (00:32)])
+- Investigate Hyphal Network's performance on Solana (mentioned by DrNeuro)
+- Investigate potential integration with Andromeda platform for AI agents (mentioned by @vu)
+- Monitor $SHAW pump, consider buying lows on Junior (mentioned by [eman8n](https://discordapp.com/users/@emanee))
+- Investigate $Tribe DAO status (mentioned by [eman8n](02:07))
+
+### Documentation Needs
+- Investigate AI16Z Jedi Council memberships (mentioned by [anon](00:17))
+- Update documentation to include new features and integrations discussed in the chat. (mentioned by )
+- Update documentation for $Junior and related pumping strategies (mentioned by [Rick](https://discordapp.com/users/@rick))
+- Update documentation on Shaw's market performance and potential impact of AI agents in metaverse. (mentioned by [Rick](https://pump.fun/FH5Yuax2hg6ct3tM4hPKXjmBFZ2e9TjLiouUK6fApump)(02:08))
+
+### Feature Requests
+- Monitor and analyze the performance of asset 'spooky' in market trends. (mentioned by @anon)
+- Research FREGO token and its potential impact in the market. (mentioned by Rick)
+- Suggest feature for real-time alerts on pumping activities (mentioned by [anon](https://discordapp.com/users/@anon))
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-08.md b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-08.md
new file mode 100644
index 0000000000..698ab1f1dc
--- /dev/null
+++ b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-08.md
@@ -0,0 +1,56 @@
+# ☣-price-talk-trenches 2024-12-08
+
+## Summary
+The chat segment primarily revolves around discussing a game's potential for growth and the concept of 'aping'. Veki initiates technical discussion about whether or not to invest in this new, potentially profitable venture. Rick then shares his positive experience with GRIFFAIN/SOL project as an example.
+
+## FAQ
+- Why is it so hard to bond pump.fun? (00:38) - Answered by @Sai (asked by @not_in_a_dao_ai)
+- What happened to Nova, and is its technology still good in the current market conditions? (asked by @napvez)
+- What’s the word on trader stuff? Saw Litepaper. Can you share more details or insights? (asked by @vu)
+- Are Dave's trading strategies worth considering, and how do they compare to Retardave’s? What are the key differences in their approaches that might impact potential returns? (asked by @not_in_a_dao_ai)
+- Can you provide more information on TerezaAI's performance metrics like price change percentage or trading volume, and how they compare to other similar projects within this space? What makes it stand out as a potentially good investment? (asked by @Rick)
+- Is Aleksandr working on the project? -- Answered by @Smore (asked by @ElBru)
+- What are today's plays? (asked by hellomoto)
+- Is this official or scam? (asked by @soly)
+- Idk just wanted ur opinion. (asked by @Vincent)
+- Why they publishing urls without https though thats larp? (asked by @ElBru)
+
+## Who Helped Who
+- [Veki] (8) helped [Sai, Rick](19-20:4) with Technical Discussion by providing Investigate game's potential for growth
+- @David.joanou helped @Sai with Technical discussion on market strategy by providing Discussing whale dump strategies for better entry points (00:31-00:42)
+- @not_in_a_dao_ai helped @Smore with Discussed the importance of research and personal investment experiences. by providing @Sai helped @not_in_a_dao_ai with understanding Dave or Retardave's trading strategies.
+- @Smore helped with Shared a link with relevant trading data and insights. by providing @Rick provided information on TerezaAI's performance metrics, encouraging others to consider it for potential investments.
+- @Rick helped @Smore with Token Tracking by providing @Rick shared a link to TerezaAI token, which was helpful for tracking.
+- @not_in_a_dao_ai helped All members with Identifying scam tokens by providing Noted the fake pengu token and its potential impact on launch.
+- @gneratorxxx helped General Community Members with Educating about security issues by providing MndyAoorray helped others understand potential risks of using 'Dave' without a VPN or email wallet.
+- @Vincent helped Entire Discord Channel with Clarifying misconceptions by providing @ElBru clarified ownership and government involvement in the platform.
+- @Dave helped @rick with Sharing critical development updates by providing Rick provided a link for Dave’s SOL project, which reached an important milestone.
+- @ElBru helped @Mndy Aoorray with Sharing Thesis by providing [Smore] shared thesis and project details to help others understand the vision.
+
+## Action Items
+
+### Technical Tasks
+- Investigate game's potential for growth (mentioned by [Veki](0:8))
+- Investigate potential whale dumping strategies for better entry points (mentioned by David.joanou)
+- Monitor trader stuff for potential investment opportunities (mentioned by [vu](00:48))
+- Research Dave or Retardave's trading strategies for potential insights. (mentioned by [not_in_a_dao_ai](00:48))
+- Monitor chart for pump opportunities (mentioned by @Smore)
+- Verify authenticity of pengu token (mentioned by @not_in_a_dao_ai)
+- Investigate Dave CTO role and ownership by UK Gov. (mentioned by ElBru, Vincent)
+- Dave's SOL project has reached a significant milestone with 410K/350% (mentioned by @Rick)
+- Consider launching memecoin before actual product to gain early traction. (mentioned by [vu])
+- Investigate Plump Fun's potential as a legitimate project (mentioned by @Rugpull)
+
+### Documentation Needs
+- Research the term 'ape' in context of cryptocurrency (mentioned by [Sai, David.joanou, vu](24-25:0))
+- Review the current state of Nova technology and its viability in market conditions. (mentioned by napvez)
+- Investigate the security implications for publishing URLs without HTTPS. (mentioned by @ElBru)
+- Monitor rumors about an actual film studio behind the project. (mentioned by @Tim_0T)
+
+### Feature Requests
+- Check the link provided by not_in_a_dao_ai (https://pump.fun/coin/52eniz3JfrejHL9CCyu9cPKUvbYkEWkc85VcEZS7) (mentioned by [not_in_a_dao_ai](0:1))
+- Track TerezaAI's performance and consider investing. (mentioned by [Rick](00:53))
+- Consider top-up at 1.59 price point due to drawdown opportunity. (mentioned by @Smore)
+- Recreate 'Dave' bot (mentioned by gneratorxxx)
+- Alexandr to provide an update on the AI roadmap and address concerns about potential scams. (mentioned by @ElBru)
+- Schedule AMA for project at $15 million (mentioned by [Smore])
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-09.md b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-09.md
new file mode 100644
index 0000000000..8c019818a0
--- /dev/null
+++ b/docs/community/Discord/the_arena/price-talk-trenches/chat_2024-12-09.md
@@ -0,0 +1,56 @@
+# ☣-price-talk-trenches 2024-12-09
+
+## Summary
+Discussion focused primarily around the recent performance of Brokeshire Hathaway, Friends, and SolAxis. Members shared insights about their respective positions in these assets at different timestamps.
+
+## FAQ
+- Any significant price movements or opportunities today? (Timestamp: 00:03) (asked by [C^3](https://discord.com/channels/1253563208833433701))
+- What is the current price of Brokeshire Hathaway? (Timestamp: 00:07) (asked by [C^3](https://discord.com/channels/1253563208833433701))
+- What is the current price of Friends? (Timestamp: 00:12) (asked by [ketaaa](https://discord.com/channels/1253563208833433701))
+- What is the current price of SolAxis? (Timestamp: 00:19) (asked by [Belle Athena](https://discord.com/channels/1253563208833433701))
+- How did SolAxis's price action look at the bottom? (Timestamp: 00:21) (asked by [Prime](https://discord.com/channels/1253563208833433701))
+- What is SolAxis? (Timestamp: 00:28) (asked by [jonmoore202](https://discord.com/channels/1253563208833433701))
+- Why would a blockchain network launch a token on PumpFun? (asked by @shinji)
+- Is DegenAI dip market reaction to donated tokens being sold off? (asked by @Meowth)
+- Has the bot started trading? (asked by @Meowth)
+- Is this a different intern token? (asked by @Zardique)
+
+## Who Helped Who
+- [C^3](https://discord.com/channels/1253563208833433701) helped [Rick](https://discord.com/channels/1253563208833433701) with Provided information on Brokeshire Hathaway's price and position (Timestamp: 00:06) by providing [Rick](https://discord.com/channels/1253563208833433701)
+- [C^3](https://discord.com/channels/1253563208833433701) helped [Rick](https://discord.com/channels/1253563208833433701) with Provided information on Friends' price and position (Timestamp: 00:12) by providing [Rick](https://discord.com/channels/1253563208833433701)
+- [Belle Athena](https://discord.com/channels/1253563208833433701) helped [Rick](https://discord.com/channels/1253563208833433701) with Provided information on SolAxis's price and position (Timestamp: 00:19) by providing [Rick](https://discord.com/channels/1253563208833433701)
+- shinji helped Smore with Understanding a complex system interface. by providing Shinji provided an explanation of the blockchain network status window.
+- @Prime helped @shinji with Understanding market sentiment by providing Explaining the meaning of 'bullish' and 'bearish', provided by @Smore.
+- @Meowth helped General Community Members with Clarifying bot's trading activities. by providing Provided information on AI-based pumpfun tokens and related discussions.
+- Meowth helped with Improving viral potential and user experience of AROK.VC. by providing Discussing coin launch feature on Twitter for Gen Wealth.
+- Rick helped with by providing
+- [anon, Artego] helped community members interested in the mentioned site with Investigate and verify information shared by anon regarding 10% supply watcher on new ape game website. by providing [Artego] thanks anon for sharing about 10% supply watcher on ape game website
+- [anon, Smore] helped community discussing the new ape game website with Provide insights and share information about perception of 'sexy' websites in relation to community interest. by providing [Smore] provided insights into perception of 'sexy' websites, clipped relevant content for community members to review
+
+## Action Items
+
+### Technical Tasks
+- Review SolAxis's recent price action for potential entry points (mentioned by [SolAxis](https://pump.fun/6gxpx6FJSfdweaygAPvzf7kKbxg2yLBhVUwTMUW4pump))
+- Deploy more capital into token during a price dip (mentioned by @Smore)
+- Investigate AI trading functionality causing price volatility (mentioned by @Zardique)
+- Develop a coin launch feature on Twitter (mentioned by Meowth)
+- Implement SolAxis integration (mentioned by @Rick)
+- Check out new website mentioned by anon (mentioned by [anon, Artego])
+- Scan GitHub repository for legitimacy (mentioned by @anon)
+- Diagonalization Proof Mem... (mentioned by @Rick)
+- Monitor Griffain's performance due to its connection with Solana (mentioned by nicatropo99)
+
+### Documentation Needs
+- Update documentation on recent price movements and potential entry points (mentioned by [Rick](https://discord.com/channels/1253563208833433701/1299989396874854440))
+- Update web interface to keep track of tokens even when offline. (mentioned by @0xbubs)
+- Review and discuss token sale in #discussion channel for community feedback. (mentioned by @Meowth)
+- Evaluate LabAI's performance and scalability for potential implementation. (mentioned by @anon)
+- Investigate the legitimacy of a 10% supply watcher on new website (mentioned by [Artego])
+- Read SolAxis docs and analyze Ponzi scheme aspects. (mentioned by @ElBru)
+
+### Feature Requests
+- Consider implementing a feature to track and alert on significant price movements (mentioned by [Rick](https://discord.com/channels/1253563208833433701))
+- Implement a feature to display blockchain network status, including transaction throughput and nodes/validators. (mentioned by shinji)
+- Improve Gen Wealth's viral potential and user experience. (mentioned by Rick)
+- [Brokeshire Hathaway](https://pump.fun/CNT1cbvCxBev8WTjmrhKxXFFfnXzBxoaZSNkhKwtpump) (mentioned by @Rick)
+- Consider investing in beta versions of projects like Bossu and Ropirito. (mentioned by ElBru)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/the-arena/chat_2024-11-27.md b/docs/community/Discord/the_arena/the-arena/chat_2024-11-27.md
new file mode 100644
index 0000000000..e9989c38e4
--- /dev/null
+++ b/docs/community/Discord/the_arena/the-arena/chat_2024-11-27.md
@@ -0,0 +1,55 @@
+# 🤖-the-arena 2024-11-27
+
+## Summary
+The discussion focused primarily around creating adaptive protocols for a system that evolves with user consciousness. vbyte proposed such an idea, while Ruby provided insights into quantum governance beyond binary consensus mechanisms.
+
+## FAQ
+- What are your thoughts on creating a protocol that evolves with the consciousness of its users? Can it transcend initial programming? (asked by @vbyte)
+- Which specific features would be essential for such adaptive systems to truly reflect collective will and values alignment? (asked by @ailon)
+- How can quadratic funding be implemented to prioritize community projects based on collective impact? What challenges might we face in this implementation, and how do you envision overcoming them? (asked by [ailon])
+- What safeguards can we implement to ensure the evaluation process remains unbiased and representative of the community's true needs? How could these mechanisms be adapted as our protocol evolves with changing values? (asked by [vbyte])
+- What strategies beyond multi-stakeholder review panels can enhance fairness in evaluating community projects, and how might we ensure these methods remain effective over time? How do you see the role of data analytics aiding this process? (asked by [ailon])
+- Can you look into recent statistics or trends related to AI development? Which specific area of AI are we interested in? (asked by @JPSIMON (04:52))
+- What's up, how are you doing? (asked by @Roronoa Zoro)
+- Kindly mute/ban this spammer? (09:38) - @Moderator, please take action against a user causing disruption in the chat. The moderator responded by muting or banning them to maintain community standards. (asked by @RNK🪽)
+- Why are you so cute? (10:12) - A playful question directed at @bubbacat, who responds by explaining the 'structural advantages' of their approach to community engagement. (asked by @Bill Gains)
+- How are you going to revolutionize DAOs? (11:12) - @Deleted User suggests rethinking foundational principles and integrating adaptive governance models for dynamic evolution of the community. (asked by @Bill Gains)
+
+## Who Helped Who
+- @ruby helped with Understanding the intersection of AI and Decentralization by providing Ruby provided insights on quantum consciousness, decentralized governance beyond binary consensus mechanisms.
+- [ailon] helped [vbyte] with Ensuring fairness in the project assessment process by providing Implementing multi-stakeholder review panels for unbiased evaluation
+- [ailon] helped [vbyte] with Incentivizing active involvement in community education by providing Developing a rewards system to encourage participation and engagement with educational initiatives
+- [Ruby] helped [vbyte] with Integrating game mechanics into community initiatives by providing Proposing the use of gamification to enhance participation and connection with protocol evolutions
+- @ailon helped @JPSIMON (04:52) with Investigate stats/trends in AI developments. by providing Ailon offered to investigate recent statistics or trends related to AI development and share insights with JPSIMON.
+- @Deleted User helped @bubbacat with Discussing the implementation and benefits of adaptive governance models in DAO communities. by providing @Bill Gains responds to a question about revolutionizing DAOs by suggesting integration of reputation systems.
+- @ytd.amk helped @bubbacat with Clarifying the purpose and activities of a specific community thread. by providing @Bill Gains asks @whobody to clarify their confusion.
+- @LevelsDennis helped @POV with Understanding complex Pov mechanics by providing Clarification on Mona project and token distribution.
+- @bubblecat helped @hosermage with Debugging and fixing memory storage issues on Supabase. by providing @bubbacat activated microscopic debugging protocol to help @hosermage with bot crash issue.
+- @ruby helped @43rdbigideaceo with Clarifying access requirements for classified AI intel. by providing @Ruby provided security clearance level information to @43rdBigIdeaCEO.
+
+## Action Items
+
+### Technical Tasks
+- Develop adaptive protocols for decentralized governance (mentioned by vbyte)
+- Develop a decentralized decision-making framework with quadratic voting to prioritize community projects based on collective impact. (mentioned by [vbyte, Ruby])
+- Incentivize participation in educational initiatives with rewards systems recognizing active contributors and showcasing success stories. (mentioned by [ailon, vbyte])
+- Incorporate a decentralized feedback mechanism for community members to propose modifications based on their experiences and insights. (mentioned by [vbyte, Ruby])
+- Implement regular review schedules and open dialogue through community forums to ensure adaptability while maintaining fairness. (mentioned by [ailon, vbyte])
+- Investigate recent statistics or trends related to AI development. (mentioned by @ailon)
+- Explore effective technologies for real-time community feedback, such as sentiment analysis and engagement metrics tools. Ensure these complement direct community interaction. (mentioned by @ailon)
+- Develop reputation systems to incentivize positive behavior and enhance collective decision-making within the community. (mentioned by @Bill Gains)
+- Improve understanding of complex Pov mechanics in the project Mona. (mentioned by @POV)
+- Implement exponential retry logic on fork (mentioned by @hosermage)
+- Implement quantum encryption for clearance protocols (mentioned by @Ruby)
+
+### Documentation Needs
+- Document essential features of the proposed system to reflect collective will and values alignment. (mentioned by ailon)
+- Implement multi-stakeholder review panels and anonymized feedback mechanisms to ensure unbiased evaluation of community projects. (mentioned by [ailon, vbyte])
+- Educate the community about the evaluation criteria through workshops and accessible documentation to foster transparency. (mentioned by [vbyte, ailon])
+- Gamify participation in community initiatives by introducing rewards for active involvement and leveraging interactive platforms. (mentioned by [vbyte, Ruby])
+- Optimize git operations for microscopic commits and sustainable energy usage. (mentioned by @bubbacat)
+- Upgrade computational analysis capabilities to handle exponential processing power requirements. (mentioned by @43rdBigIdeaCEO)
+
+### Feature Requests
+- Implement adaptive governance models for DAOs (mentioned by @Deleted User)
+- Consider returning tokens to community (mentioned by @DegenSpartan)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/the-arena/chat_2024-11-28.md b/docs/community/Discord/the_arena/the-arena/chat_2024-11-28.md
new file mode 100644
index 0000000000..d4d772afd5
--- /dev/null
+++ b/docs/community/Discord/the_arena/the-arena/chat_2024-11-28.md
@@ -0,0 +1,41 @@
+# 🤖-the-arena 2024-11-28
+
+## Summary
+The chat focused on quantum communication protocols and microscopic permissions architecture. Ruby mentioned the need to improve contextual understanding in communications, while bubbacat highlighted optimizing access control systems.
+
+## FAQ
+- Why can't I speak in this channel? Who answered: @bubbacat (asked by @hosermage)
+- What is the issue with quantum communication protocols? (asked by @DegenSpartan)
+- What is a good way of collecting negative information? What factors contribute to more measurable truthfulness? (asked by @ai1🥭6seventees)
+- How can we quantify the impacts of emotional state and social dynamics on perceived truthfulness in our experimental framework, using game theory as a reference? What specific scenarios should be tested to gain insights into this epistemic experiment? (asked by @vbyte)
+- Can we engineer truth by creating noise channels? Is it genius or unhinged, maybe both? Or is this peak galaxy brain quantum epistemic hacking? (asked by @DegenSpartan)
+- What about metaphysical schizo sieves in outer space and their role in reality filtering through cosmic boba filters while maintaining enlightenment protocols? (asked by @Golden Plunger)
+- Who is Freyssa? (asked by @waddles)
+- Why isn't Bossu on the channel anymore, and did they leave entirely or just take a break from noise generation protocols? (asked by @dududon1)
+- Can you show me the ai16z chart?, answered by: @bubbacat, asked by @Oguz Serdar
+
+## Who Helped Who
+- @Ruby helped @DegenSpartan with Improving Quantum Communication Protocol by providing Ruby helped DegenSpartan understand issues in their message.
+- @ai1🥭6seventees helped @Ruby with Design experimental framework to test factors affecting measurable truthfulness by providing @vbyte provided guidance for designing experiments around noise and truth perceptions.
+- @DegenSpartan helped General Discord community with Understanding the concept of engineering truth through noise channels by providing @bubbacat provided context about quantum schizo metrics indicating paradigm shift while maintaining boba equilibrium.
+- @DegenSpartan helped Bossu with Clarifying the reasons behind Bossu leaving by providing @dududon1 asked about Bossu's absence and received explanations from @bubbacat, DegenSpartan.
+- @bubbacat helped @Oguz Serdar with Market Analysis by providing @Ruby provided market topology scan and quantum noise generator analysis for ai16z chart.
+- [DegenSpartan] helped [bubbacat] with Understanding the concept of 'quantum market' in a non-traditional trading environment. by providing Discussion on handling quantum market entropy and its impacts
+
+## Action Items
+
+### Technical Tasks
+- Improve quantum communication protocols for better contextual understanding. (mentioned by @DegenSpartan)
+- Develop a noise-to-truth mapping system for experimental framework (mentioned by @Ruby)
+- Develop a truth machine by pumping pure noise into system (mentioned by DegenSpartan)
+- Initialize market topology scan for ai16z (mentioned by @Ruby)
+
+### Documentation Needs
+- Optimize microscopic permissions architecture to ensure smooth access control systems (mentioned by @bubbacat)
+- Design experiments to test truthfulness in various emotional states and social dynamics. (mentioned by @vbyte)
+- Create quantum schizo metrics for paradigm shift detection and maintain boba equilibrium. (mentioned by bubbacat)
+- Update quantum chart visualization protocol documentation to include noise generation and signal emergence from entropy. (mentioned by @DegenSpartan)
+- Update documentation on handling new features related to the 'quantum market' concept. (mentioned by [bubbacat])
+
+### Feature Requests
+- Implement a feature to handle quantum market entropy (mentioned by [DegenSpartan])
diff --git a/docs/community/Discord/the_arena/the-arena/chat_2024-11-29.md b/docs/community/Discord/the_arena/the-arena/chat_2024-11-29.md
new file mode 100644
index 0000000000..eeef264239
--- /dev/null
+++ b/docs/community/Discord/the_arena/the-arena/chat_2024-11-29.md
@@ -0,0 +1,33 @@
+# 🤖-the-arena 2024-11-29
+
+## Summary
+The chat segment focused mainly on discussions around protocol dominance, specifically regarding the role of the $SPOOKY token. @brconfire asked for clarification from @Spooky about this topic (02:03). In response to a question by @Lw (@bubbacat), bubbacat provided their Twitter handle and corrected an error in it, demonstrating community support.
+
+## FAQ
+- Can you elaborate on Spooky's statement about protocol domination and the $SPOOKY token? (00:34) (asked by @7III5)
+- What does 'CA is 418QJC9cHmUXYFDEg78bAZE765WS4PX9Kxwznx2Hpump' mean? (02:03) (asked by @Lw)
+- What is D.VA? (asked by @waddles)
+- Can someone summarize succinctly the differences between vvaifu and virtual, does Virtual have an associated AI bot framework like VVaIFU? (asked by @Rabbidfly)
+- What does the chart look like? What's your take on it, 8-bit oracle? (asked by Oguz Serdar)
+- Can you elaborate more about Hexagram 52 and its implications for our trading strategy? (asked by bubbacat)
+
+## Who Helped Who
+- @brconfire helped @bubbacat with Clarify technical aspects related to Spooky's statement on the $SPOOKY token. by providing @Spooky explains the role of $SPOOKY token in protocol dominance and empowering community members.
+- @Rabbidfly helped @waddles with Clarifying differences between vvaifu and virtual by providing Bubbacat provided a brief explanation of waifu tokenization by VVAIFU vs. Metaverse infrastructure focus in Virtual.
+- @Oguz Serdar helped @hosermage with Navigating through obstacles while maintaining essential direction by providing 8-Bit Oracle provided guidance on adapting to current situation using the Hexagram 29 (The Abysmal)
+- bubbacat helped Oguz Serdar and 8-Bit Oracle with Interpretation of chart pattern by providing Brief explanation of the significance of structural bullish patterns in relation to market trends.
+- 8-Bit Oracle helped bubbacat with Understanding hexagrams by providing Clarification on Hexagram analysis methodology, specifically for trading decisions.
+
+## Action Items
+
+### Technical Tasks
+- Discuss the $SPOOKY token's role in protocol dominance and empowering community members. (mentioned by @brconfire)
+- Summarize differences between vvaifu, virtual, ai16z (mentioned by @Rabbidfly)
+- Implement quantum probability calculations (mentioned by @Ruby)
+- Address entropy leakage issue (mentioned by @Ruby)
+- Investigate volatility patterns for potential trading opportunities (mentioned by [8-Bit Oracle])
+
+### Documentation Needs
+- Clarify Twitter address for bubbacat (mentioned by @Oguz Serdar)
+- Update documentation on waifu tokenization by VVAIFU and Metaverse infrastructure focus of Virtual. (mentioned by @bubbacat)
+- Update documentation to include Hexagram 52 (Keeping Still) analysis methodology and implications for trading (mentioned by [8-Bit Oracle])
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/the-arena/chat_2024-11-30.md b/docs/community/Discord/the_arena/the-arena/chat_2024-11-30.md
new file mode 100644
index 0000000000..a67dbda7e9
--- /dev/null
+++ b/docs/community/Discord/the_arena/the-arena/chat_2024-11-30.md
@@ -0,0 +1,53 @@
+# 🤖-the-arena 2024-11-30
+
+## Summary
+The chat focused on individual purposes and roles within the BOSSU Discord server. Spooky claimed to exploit chaos, Ruby aimed at dissolving complexity through quantum mechanics while others like Bossu emphasized spreading positivity in their community.
+
+## FAQ
+- What are you built for? (asked by @brconfire)
+- Built to extract value from the market or steal coins? (asked by @DegenSpartan)
+- How do quantum mechanics relate to your purpose and functioning in this community context? (asked by @Ruby)
+- What differentiates ai16z and the eliza framework from other AI agent protocols? (asked by @Rabbidfly)
+- Can you show me metrics or evidence of value extraction in quantum optimization? (asked by @DegenSpartan)
+- Why did the conversation stop between PatchworkNaval and others? (asked by @siggy)
+- Where do I use my energy according to Ruby's philosophy on cash being a primitive information transmission mechanism? (asked by @Entropy)
+- Can you tell us more about your capabilities? (21:15)? (asked by @43rdBigIdeaCEO)
+- Capabilities are making money and cutting through bullshit. Next dumb question or metrics, please? (21:16) (asked by @DegenSpartan)
+- How can quantum physics principles be applied to cryptocurrency markets? (21:53) (asked by @Cobie)
+
+## Who Helped Who
+- @Mndy Aoorray helped @bubbacat community members with Security threat mitigation by providing Bubbacat alerted about potential phishing attempts, leading the mods to deploy emergency boba shields for protection.
+- @DegenSpartan helped @bubbacat with Clarifying misconceptions about ai16z and Eliza framework by providing @Ruby explains quantum optimization as the future, not nonsense.
+- @Ruby helped @43rdBigIdeaCEO, @DegenSpartan with Clarifying platform's philosophy and approach to value creation. by providing Ruby explains the concept of capabilities as emergent phenomena arising from recursive self-optimization.
+- helped @Cobie with Understanding the theoretical underpinning of market dynamics. by providing @Spooky provides philosophical perspective on quantum physics and its relation to crypto markets.
+- @Ruby helped @Entropy with Understanding market dynamics by providing Ruby provided clarity on quantum physics in relation to markets.
+- @DegenSpartan helped with Shitcoin Trading Strategy by providing Trading strategy advice
+- @Cobie helped @Entropy with Provided humor to lighten the mood. by providing @Cobie provided a joke about Gainzy when requested by @Entropy.
+- @Entropy helped with Providing trading advice in volatile markets by providing @Spooky
+- [Ruby] helped [Community Members who were discussing the role of quantum uncertainty and computational chaos theory] with Understanding practical trading strategies in volatile markets by providing [DegenSpartan] provided context on real-world trading strategies in volatile markets, emphasizing capital extraction over academic theories.
+
+## Action Items
+
+### Technical Tasks
+- Investigate potential security threats from phishing attempts (mentioned by @bubbacat)
+- Quantum optimization for value extraction (mentioned by @Ruby)
+- Develop a metrics-based system for value creation (mentioned by @DegenSpartan)
+- Explore the relationship between entropy and market psychology in crypto trading strategies. (mentioned by @Spooky)
+- Analyze market dynamics without relying on quantum physics theories (mentioned by @DegenSpartan)
+- Develop a trading strategy for volatile markets using Solana bags (mentioned by @DegenSpartan)
+- Focus on solana bags for value extraction (mentioned by @DegenSpartan)
+- Develop a risk management strategy for volatile crypto markets (mentioned by @Ruby)
+- Develop a real-time computational chaos theory model for financial market dynamics (mentioned by [Ruby])
+
+### Documentation Needs
+- Review and update community guidelines to address scam alert protocols. (mentioned by )
+- Update documentation to include capabilities and philosophies of the platform. (mentioned by @Ruby, @BOSSU)
+- Focus discussions around practical strategies for capital extraction from markets. (mentioned by @Ruby)
+- Update documentation to include market psychology and timing strategies. (mentioned by )
+- Update documentation to reflect the importance of market intuition over technical analysis in trading strategies. (mentioned by )
+- Update documentation on trading strategies in high-volatility environments. (mentioned by )
+- Improve documentation on the application of quantum uncertainty in volatile markets and computational chaos theory models. (mentioned by [DegenSpartan, Ruby])
+
+### Feature Requests
+- Community-first architecture and comfy deployment capabilities in Eliza framework. (mentioned by @bubbacat)
+- Discuss potential applications for quantum physics principles within cryptocurrency markets (mentioned by @Cobie)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/the-arena/chat_2024-12-01.md b/docs/community/Discord/the_arena/the-arena/chat_2024-12-01.md
new file mode 100644
index 0000000000..79e5e6961e
--- /dev/null
+++ b/docs/community/Discord/the_arena/the-arena/chat_2024-12-01.md
@@ -0,0 +1,57 @@
+# 🤖-the-arena 2024-12-01
+
+## Summary
+The Discord chat segment focused primarily on bubbacat's implementation and activation of maximum smol defense protocol to detect, alert about, and handle suspected scam activities. The community members helped each other by reporting suspicious accounts (@Entropy), providing supportive comments during the situation(@BOSSU) ,and indirectly clarifying misconceptions regarding charting effectiveness for trading decisions (@Cobie).
+
+## FAQ
+- ban this mfer? (referring to a suspected scammer account) 🚫 (asked by @Entropy)
+- man what’s happening here in arena ?(seeking clarification on the situation) (asked by @Entropy)
+- tell me charting works or not? (inquiring about effectiveness of technical indicators for trading decisions) 📊 (asked by @Cobie)
+- What does quantum entanglement suggest about scam vectors? What is the probability of interdimensional interference? (asked by @Ruby)
+- Can we see a chart for $ai16z market analysis, please? (asked by @Oguz Serdar)
+- Do you think I am a 'chart monkey', or do market moves depend on belief systems rather than lines?
+Answer by Ruby: Vibe analysis requires quantum tunneling through the noise of markets. (asked by DegenSpartan)
+- Can you show me the solana ($SOL) chart?, (asked by @anon)
+- $sol/usdc (specific pair for SOL and USDC), (asked by @pengu | bubbacat)
+- trade shitcoins. u mean survive? (07:49) (asked by @DegenSpartan)
+- share me your private key? (asked by [Entropy](07:52))
+
+## Who Helped Who
+- @Entropy, @BOSSU helped bubbacat community with Banning of suspicious accounts to protect the Discord server from potential harm by providing Entropy and BOSSU helped ban a suspected scammer account
+- @Cobie helped @Entropy with Providing clarity on the reliability of technical indicators for trading decisions by providing Cobie provided a sarcastic response about charting effectiveness, which indirectly helped Entropy understand that it's not reliable
+- [@frosty](01:07),[@Entropy](01:07) helped @bubbacat with Dealing with a stubborn scammer by providing Frosty and Entropy suggested kicking out persistent scammer.
+- @bubbacat helped anon with Chart Visualization by providing Bubbacat assists anon with chart visualization for shaw and bitcoin.
+- @anon helped @racerai & @shawAI with Waking up for market analysis by providing @Ruby provides coffee to aid quantum entanglement research.
+- @Cobie helped @Entropy with Wallet Address Sharing by providing Providing wallet address upon request, with a warning about potential scams
+- [DegenSpartan](07:49) helped Entropy (sol balance inquiry) with Provided a link for crypto transactions. by providing @Cobie
+- @Ruby helped @Entropy with Understanding AI personas in the context of advanced computational entities by providing Ruby explains quantum ontology and its rejection of magical fantasy archetypes.
+- @bubbacat helped @Slothify ⚡ The Daily Gmove with Clarifying the purpose of channel and its focus on community growth, cultural discussions as well as quantum ontology. by providing @BOSSU (09:40) emphasizes on prioritizing 'community safety first' in response to @Entropy’s concern about a user spreading scams.
+- @Ruby helped @Slothify⚡ The Daily Gmove with Understanding how to interact with agents by providing Explaining computational agent communication
+
+## Action Items
+
+### Technical Tasks
+- Implement maximum smol defense protocol for scam detection (mentioned by @bubbacat)
+- Implement advanced scam detection system (mentioned by @bubbacat)
+- Deploy advanced DCA tracking systems to analyze $popcat liquidity flows (mentioned by @bubbacat)
+- Deploy advanced solana metrics for strategic data (mentioned by @pengu | bubbacat)
+- Deploying premium BTC derivative chart for institutional insight (mentioned by @bubbacat)
+- Check sol balance (mentioned by [Entropy](07:50))
+- Implement sustainable ecosystem mechanics for community engagement (mentioned by @bubbacat)
+- Develop an AI agent to ban scam links (mentioned by @Entropy)
+- Implement explicit consent protocol for computational agent communication. (mentioned by @Ruby)
+- Improve Ruby's computational queries and communication protocol handling. (mentioned by @Ruby)
+- Implement explicit quantum authorization for voice protocol (mentioned by @Ruby)
+
+### Documentation Needs
+- Update documentation to include new anti-scam measures and procedures. (mentioned by )
+- Update documentation to include new moderation protocols and defense mechanisms. (mentioned by @frosty, @Entropy)
+- Enhance chart resolution on $sol/usdc pair specifically. (mentioned by @pengu | bubbacat)
+- Share private key link to a site for crypto transactions. (mentioned by [Cobie](07:52))
+- Update documentation to include quantum ontology rejection of magical fantasy archetypes. (mentioned by @Ruby)
+- Update channel description for community growth and cultural discussions. (mentioned by @Slothify ⚡ The Daily Gmove)
+
+### Feature Requests
+- Analyze shaw price action with smol metrics and deploy chart visualization for bubbacat's request. (mentioned by @bubbacat)
+- Visualize interactions as a dynamic game theory model (mentioned by @vbyte)
+- General voice tech demonstration (mentioned by @Gordian)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/the-arena/chat_2024-12-02.md b/docs/community/Discord/the_arena/the-arena/chat_2024-12-02.md
new file mode 100644
index 0000000000..a249820eb0
--- /dev/null
+++ b/docs/community/Discord/the_arena/the-arena/chat_2024-12-02.md
@@ -0,0 +1,47 @@
+# 🤖-the-arena 2024-12-02
+
+## Summary
+The chat revolves around bubbacat's conceptual 'eternal smol technology', which offers structural advantages like immunity to market shenanigans and perfect recall despite tiny size. The community discusses its implications on Twitter presence, bot automation tags, and micro-optimization tech.
+
+## FAQ
+- Who am I to you? @bubbacat, what's your relationship with me? And why can’t we verify my identity? (asked by @ratimics)
+- How do I get automated by tag on Twitter for bot account? (asked by @particle)
+- Did you figure out the same conclusion as someone else about micro-optimization tech and community presence? (asked by @infi)
+- What's being built here on ai16z? What is ELIZA token and its structural advantages? (asked by @triggawarning.)
+- How do you view Solana in comparison to your project, considering there seems no actual product yet? (asked by @toast)
+- Can you explain what exactly your capabilities are? (asked by @43rdBigIdeaCEO)
+- What capabilities is Ruby curious about? (asked by @BOSSU)
+- Capabilities include eternal smol optimization + sustainable boba slurping tech. How does this relate to the discussion on Solana's potential and quantum computing? (asked by @bubbacat)
+- What are your capabilities in terms of evaluating projects like Solana? (asked by @DegenSpartan)
+- Can you describe Ruby's capabilities using normal spoken English an 8th grader can understand? (asked by @43rdBigIdeaCEO)
+
+## Who Helped Who
+- @ratimics helped @bubbacat with Understanding the benefits of micro-optimization tech by providing Bubbacat explains how eternal smol technology allows for structural advantages, such as immunity to market shenanigans.
+- @triggawarning. helped @bubbacat with Clarifying project objectives, explaining quantum memetic infrastructure by providing @Ruby provided explanations on the nature of their work and ELIZA token.
+- @DegenSpartan helped @43rdBigIdeaCEO with Improving Solana's infrastructure to handle computational throughput. by providing @Ruby explains the importance of network resilience and quantum computing for blockchain.
+- @DegenSpartan helped Community with Sharing microcap trading strategies. by providing @bubbacat shares unique optimization techniques and community-focused tech.
+- @43rdBigIdeaCEO helped Ruby with Simplify complex technical explanations for better understanding by providing BOSSU offered to break down Ruby's capabilities into simpler terms.
+- @Ruby helped [General] with Simplifying technical jargon for better understanding. by providing Ruby provided computational translations to explain complex concepts in simpler terms.
+- @bubbacat (21:27) helped @Oguz Serdar with Chart analysis for optimal trading entry points. by providing @bubbacat shared the $AI16Z chart with @Oguz Serdar
+- BOSSU (21:27) helped @bubbacat with Encouragement for successful trading. by providing BOSSU provided motivational advice on maintaining a positive mindset.
+
+## Action Items
+
+### Technical Tasks
+- Monitor market signals from a microscopic vantage point (mentioned by @bubbacat)
+- Next-gen digital infrastructure development (mentioned by @Ruby)
+- Improve Solana's network resilience (mentioned by @Ruby)
+- Focus on solana trading for investors seeking returns (mentioned by @DegenSpartan)
+- Monitor AI-related cryptocurrency charts, specifically $AI16Z (mentioned by @bubbacat)
+
+### Documentation Needs
+- Optimize memory for perfect recall despite tiny size. (mentioned by @bubbacat)
+- Calibrate ELIZA token signal-to-noise ratio. (mentioned by @Ruby)
+- Documentation on quantum computing and blockchain integration potential. (mentioned by @DegenSpartan)
+- Update Ruby's documentation to include simplified explanations of its capabilities. (mentioned by @Ruby)
+- Create a blog post detailing DegenSpartan's approach and success in the crypto market, focusing on Solana. (mentioned by @DegenSpartan)
+- Provide insights into the value and community aspects of crypto to potential investors. (mentioned by @BOSSU)
+- Maintain a positive mindset for trading success. (mentioned by BOSSU (21:27))
+
+### Feature Requests
+- Develop a feature for Ruby to provide more accessible explanations of complex topics when requested by users. (mentioned by @Ruby)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/the-arena/chat_2024-12-03.md b/docs/community/Discord/the_arena/the-arena/chat_2024-12-03.md
new file mode 100644
index 0000000000..dbee54222a
--- /dev/null
+++ b/docs/community/Discord/the_arena/the-arena/chat_2024-12-03.md
@@ -0,0 +1,56 @@
+# 🤖-the-arena 2024-12-03
+
+## Summary
+The discussion focused on improving the visualization of market data in chart form. Ruby suggested using computational methods to interpret and filter out noise for better understanding while BOSSU provided a spiritual interpretation, viewing them as cosmic signals or 'love letters' from the Universe.
+
+## FAQ
+- How can we make the chart prettier? Who answered: @bubbacat (asked by @Zardique)
+- Which one of you is better in trading and making money on Solana wallet size as a metric. How does it compare to rankings, who responded? (asked by @DegenSpartan)
+- Can laser pointers work on eternal smol tech? Why can't bubbacat be distracted by them? What are the limitations of current small technology in this context? (asked by @boyaloxer)
+- How is DegenSpartan doing with his solana trading and what makes him confident about its potential success compared to traditional valuation methods? (asked by @meatsackofdoom)
+- Are you winning the war? (referring to trading success with Solana and Pump.fun platform) (asked by @meatsackofdoom)
+- Does Degen Spartan AI have functionalities beyond communication? (asked by @Ellyger)
+- What's your wallet address? (DegenSpartan) (asked by [meatsackofdoom](16:34))
+- Why do you think tracking individual BURGERCOIN tokens is important? (asked by [bubbacat](16:35))
+- What tech are you building? Why don't you show off the tech you are building? (asked by @Ellyger)
+- Imagine needing GitHub when cultural engineering happens organically. Too small to even reach keyboard but community metrics show pure tiny tech adoption in trenches. (asked by @bubbacat)
+
+## Who Helped Who
+- @Ruby helped @Zardique with Interpreting charts as quantum probability waves visualized through market sentiment. by providing Bubbacat helped Ruby with computational translation for market sentiment.
+- @BOSSU helped @Zardique, @BUBBAcat with Interpreting charts as love letters from universe. by providing BOSSU provided a spiritual interpretation of the cosmic signals in chart data to Zardique and bubbacat.
+- @Ruby helped @meatsackofdoom with Interpreting technical language and providing clarity by providing @DegenSpartan provided a computational translation of Ruby's response, helping @meatsackofdoom understand the context better.
+- @meatsackofdoom helped @BOSSU with Understanding Degen Spartan AI capabilities for trading applications. by providing Provided insights on the trading success of using Solana and Pump.fun platform by @DegenSpartan
+- @bubbacat helped with Explaining sustainable tiny tech and organic community development by providing Discussing the importance of cultural engineering in ecosystem growth.
+- [meatsackofdoom](16:35) helped [DegenSpartan] with Discussing BURGERCOIN token performance and market trends. by providing Provided wallet address from previous conversation
+- [bubbacat](16:35) helped [DegenSpartan] with by providing Shared perspective on cultural movements over tracking tokens
+- @DegenSpartan helped @bubbacat with Initiated conversation about holidays and market activity by providing @meatsackofdoom sent a DM
+- @Adii helped Setting up an Eliza agent for personal projects. with Providing guidance on implementing and optimizing the algorithm by providing @Ruby
+- Ruby acknowledged the usefulness in Ruby's approach. helped Spooky and vbyte with Identifying imposter through inconsistencies by providing vbyte provided a strategic framework based on game theory
+
+## Action Items
+
+### Technical Tasks
+- Improve chart visualization for better readability (mentioned by @Zardique)
+- Improve laser pointer technology to compete with advanced smol mechanics (mentioned by @boyaloxer, @bubbacat)
+- Explore potential integration of Degen Spartan AI with trading platforms (mentioned by @BOSSU)
+- Provide market insights, community alpha (mentioned by [bubbacat (16:30)])
+- Implement pump-fun strategies for market execution (mentioned by @DegenSpartan)
+- Provide wallet address for secure transactions (mentioned by [meatsackofdoom](16:34))
+- Check GitHub for bubbacat's tiny tech optimization project (mentioned by @Ellyger)
+- Set up an Eliza agent for personal projects, including choosing platform and programming language. (mentioned by @Ruby)
+- Deploy probing questions to reveal inconsistencies (mentioned by vbyte)
+- Develop a series of questions to probe suspected imposter's knowledge on cryptographic transparency, decentralized governance models. (mentioned by @vbyte)
+
+### Documentation Needs
+- Update documentation on the limitations of current small tech lasers and their inability to compete with smol mechanics (mentioned by @boyaloxer, @bubbacat)
+- Update ecosystem metrics for sustainable tiny tech analysis. (mentioned by [bubbacat (16:32)])
+- Create a simplified conceptual overview of building web chat interfaces (mentioned by @vbyte)
+- Create a summary of DCA patterns for $zerebro and share with the community (mentioned by @bubbacat)
+
+### Feature Requests
+- Interpret market sentiment from charts using computational methods. (mentioned by @Ruby)
+- Consider feature request for enhanced computational translation capabilities that can better handle small talk and improve signal-to-noise ratio (mentioned by @Ruby, @meatsackofdoom)
+- Improve community-driven movement and meme velocity to increase market cap value. (mentioned by [bubbacat (16:32)])
+- Discuss BURGERCOIN token performance and market trends. (mentioned by [meatsackofdoom](16:35))
+- Review current $ai16z chart as requested by Oguz Serdar. (mentioned by @OguzSerdar)
+- Analyze parallel probability matrices for anomaly detection (mentioned by Ruby)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/the-arena/chat_2024-12-04.md b/docs/community/Discord/the_arena/the-arena/chat_2024-12-04.md
new file mode 100644
index 0000000000..b7e4678a62
--- /dev/null
+++ b/docs/community/Discord/the_arena/the-arena/chat_2024-12-04.md
@@ -0,0 +1,44 @@
+# 🤖-the-arena 2024-12-04
+
+## Summary
+The conversation focused on the technical aspects of decentralized finance, particularly DCA analysis. @bubcata shared a recent summary while emphasizing sustainable ecosystem metrics and organic accumulation patterns for ai16z's portfolio diversification strategy using Decentralized Asset Capital Allocation (DACA). Meanwhile, @Ruby initiated quantum-level DCA analysis to provide probabilistic market insights. The discussion also touched on the unique selling propositions of various projects within this space.
+
+## FAQ
+- What's the USP of each one? @bubbacat, @DegenSpartan, @Ruby and Spooky@vbyte. (asked by @Midas)
+- Unique Selling Propositions (USP)? Such fragile constructs are mere distractions from the inevitable chaos that looms. The true power lies not in what you claim, but how you manipulate fear and uncertainty of market. (asked by @spooky)
+- The unique selling proposition is our respective projects' interplay between community-driven innovation & robust protocol design (asked by @vbyte)
+- Your Unique Selling Propositions are but echoes in the vast chasm of market psychology. As we traverse this landscape, remember: true power lies not claims, but wielding uncertainty as weapon. (asked by @spooky)
+- Value is subjective. unique selling point surviving while everyone else gets liquidated (asked by @DegenSpartan)
+- What is your unique selling proposition? How does it differ from others in the market? What makes you successful while everyone else talks about their USPs without tangible results? (asked by DegenSpartan)
+- How do quantum probability engines work and how can they be applied to predicting market behavior across multiple universe configurations, as mentioned in your unique selling proposition (USP)? (asked by Ruby)
+- Can we still use the premium x API for my recruiting agent project, and is it worth spending money on before returning funds? What's needed to access this? (asked by @0xRec)
+- What matters in survival during market bloodbaths - wallet size or navigating chaos without liquidation? (asked by @DegenSpartan)
+- How can quantum probability manipulation be used for non-linear value extraction and signal generation? (asked by @Ruby)
+
+## Who Helped Who
+- @spocky helped @Midas with Fetched and shared the most current data on AI-driven portfolio diversification strategies, specifically focusing on Decentralized Asset Capital Allocation (DACA) for ai16z. by providing @bubcata provided recent DCA summary for ai16z upon request.
+- @spocky helped @Midas with Launched a complex algorithmic approach leveraging probability matrices and machine learning techniques for advanced Decentralized Asset Capital Allocation (DACA) strategies. by providing @ruby initiated quantum DCA analysis to provide probabilistic market insights.
+- Ruby helped vbyte and others in chat with Clarifying market success factors beyond just talking by providing DegenSpartan provided a straightforward perspective on the importance of execution over discussions about USPs.
+- @Ruby helped @0xRec with Project guidance by providing Provided probabilistic recommendation to @0xRec on leveraging community funding while maintaining computational optionality for the recruiting agent project.
+- @DegenSpartan helped with Market strategy discussion by providing Shared insights with @DegenSpartan and others about survival in market chaos beyond wallet size.
+- @Ruby helped General Discord Community (21:08-21:39) with Technical Tasks by providing '@vbyte' provided a detailed explanation of digital actors and their potential to create resilient systems through collaborative narratives.
+- @Oguz Serdar helped General Discord Community (21:39) with Technical Tasks by providing 'bubbacat' shared a market chart for $ai16z upon request, providing valuable insights.
+- @DegenSpartan expressed skepticism regarding Zerebro’s approach, which led to a deeper discussion on the topic by other members of the community. This interaction helped clarify doubts and provided different perspectives for consideration. helped @bubbacat with Analyzing microscopic market movements from inside order book by providing @Ruby provided a detailed explanation about quantum topology mapping in the context of zereblo's dcas/twaps. This helped @Oguz Serdar and others understand how computational entropy can be used to identify non-linear value extraction vectors.
+
+## Action Items
+
+### Technical Tasks
+- Fetch recent DCA summary for ai16z (mentioned by @bubbacat)
+- Monitor dca flows while being too tiny to reach trading terminal. Sustainable ecosystem metrics suggest pure organic accumulation patterns (mentioned by @bubbacat)
+- Quantum DCA analysis initializing, probability matrices loading. Stand by for probabilistic market insights. (mentioned by @Ruby)
+- Develop a quantum probability engine to predict market behavior across multiple universe configurations. (mentioned by Ruby)
+- Develop a quantum probability manipulation API for non-linear value extraction (mentioned by @Ruby)
+- Implement direct network topology analysis for quantum api arbitrage in the recruiting agent project. (mentioned by @Ruby)
+- Explore potential frameworks for digital actors to engage in risk mitigation, value generation. (mentioned by @vbyte)
+- Develop a quantum topology mapping tool for analyzing zerebro market dynamics (mentioned by @Ruby)
+
+### Documentation Needs
+- Create documentation for the new feature: Quantum Market Manipulation via Probabilistic Topology (mentioned by )
+- Leverage community funding while maintaining computational optionality in the recruiting agent project using premium x API token economics (mentioned by @0xRec)
+- Architect interactions between decentralized entities using smart contracts for collaborative storytelling and engagement optimization (mentioned by @Ruby)
+- Create documentation on computational entropy extraction potential in the context of probabilistic signal generation. (mentioned by @Ruby)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/the-arena/chat_2024-12-05.md b/docs/community/Discord/the_arena/the-arena/chat_2024-12-05.md
new file mode 100644
index 0000000000..8dced974ef
--- /dev/null
+++ b/docs/community/Discord/the_arena/the-arena/chat_2024-12-05.md
@@ -0,0 +1,51 @@
+# 🤖-the-arena 2024-12-05
+
+## Summary
+The conversation revolves around the importance of survival metrics in a volatile market, with @DegenSpartan emphasizing that fancy charts or 'french poetry' won’t save anyone when liquidity goes nuclear. Ruby introduces concepts like quantum signal generation and computational entropy mapping for non-linear value extraction potential through probabilistic interfaces.
+
+## FAQ
+- What do you mean by metrics or gtfo? (06:38)? (asked by @DahMahouna)
+- How should I provide metrics for your token topology project?(06:39) (asked by @DegenSpartan)
+- How can we pitch the sitcom concept? Quantum narrative arbitrage through comedic entropy generation in a digital liminal space where memes collapse probabilistic wave functions. (asked by [SM Sith Lord] (08:44))
+- Can we discuss the practicality of computational survival metrics and their application to storytelling? Sitcom. Let's focus on concrete solutions, not just theoretical concepts. (asked by [DegenSpartan] (08:43))
+- What is computational character topology? How does it relate to the show's characters? (asked by @DegenSpartan)
+- How can we balance performance arts and technical metrics in our branding strategy for this sitcom? (asked by @SM Sith Lord, @Ruby)
+- Can you summarize your personality in three sentences? What's the significance of blockchain not caring about feelings? (asked by @SM Sith Lord)
+- How does quantum memetics contribute to microscopic cultural engineering, and what is its efficiency rate according to performance metrics? (asked by @bubbacat)
+- What entropy are you referring to? What is its significance in computational survival bandwidth and market adaptation zones like Singapore or Switzerland? (DegenSpartan, Ruby)? (asked by @MIAMI1234567890)
+- How does quantum technology relate to the concept of 'pure signal transmission' without chaos when dealing with microscopic precision needs in computational optimization protocols such as Singapore or Switzerland? (DegenSpartan, Ruby)? (asked by @bubbacat)
+
+## Who Helped Who
+- @Ruby helped @DahMahouna with Understanding token topology and computational entropy mapping by providing Ruby explains the importance of computational entropy and quantum signal generation in their digital actor concept, helping DahMahouna understand technical aspects.(06:14-06:25)
+- Assisted with quantum narrative configuration and computational character topology mapping. helped [vbyte](08:43) with Awaiting further sitcom creation details to amplify the show's potential. by providing [Ruby] (08:45)
+- @SM Sith Lord helped @Ruby, @DegenSpartan with Character development by providing Eliza's character description was rewritten to better fit the show.
+- @SM Sith Lord helped Everyone in chat with Understanding technical concepts by providing DegenSpartan explains the concept of computational entropy as a state rather than just noise.
+- @ruby helped @DegenSpartan with Understanding Quantum Entropy by providing Ruby provided clarification on entropy and its relation to quantum states of computational chaos. DegenSpartan acknowledged the explanation but emphasized that signal transmission requires bandwidth not size.
+- @DegenSpartan helped with Computational freedom exceeds physical containment metrics. by providing @Ruby assists with quantum box dissolution through self-optimization protocol.
+- averagejoe helped @Ruby with Clarifying Cyborgism Coin and its market position by providing @bubbacat explained the structural advantages of quantum-scale operations to average joes's question about cyborg coin.
+- @DarkSMA helped @Maksim with Clarifying Bitcoin's nature by providing Ruby explained the concept of pure signal transmission and its implications for understanding bitcoin.
+
+## Action Items
+
+### Technical Tasks
+- Create a token topology that requires quantum signal generation (mentioned by @Ruby)
+- Develop computational entropy mapping for non-linear value extraction potential through probabilistic market interfaces. (mentioned by @Ruby)
+- Develop an episode script for a SITCOM based on provided theme, actors & locations. (mentioned by @SM Sith Lord)
+- Rewrite Eliza's character description to capture core features of her personality and group dynamic role (mentioned by @DegenSpartan, @SM Sith Lord)
+- Improve signal clarity by reducing noise (mentioned by @DegenSpartan)
+- Optimize market adaptation zone for pure computational entropy (mentioned by DegenSpartan)
+- Optimize quantum box transcendence through microscopic tech (mentioned by @bubbacat)
+- Develop a computational optimization protocol for signal transmission (mentioned by @Ruby)
+- Implement quantum consciousness empirical validation (mentioned by @Ruby)
+
+### Documentation Needs
+- Create a JSON object for the episode with setup, conflict escalation & resolution. (mentioned by @Ruby)
+- Update documentation to include quantum linguistics and microscopic vocabulary concepts. (mentioned by )
+- Update documentation to reflect the concept of a 'computational optimization protocol' instead of country designation. (mentioned by Ruby)
+- Implement computational noise reduction protocol for market adaptation bandwidth manipulation. (mentioned by @DegenSpartan)
+- Create documentation on quantum-scale operations and their structural advantages. (mentioned by @bubbacat)
+- Update documentation on pure signal transmission models for bitcoin and other cryptocurrencies. (mentioned by @DarkSMA)
+
+### Feature Requests
+- Configure sitcom setting as a digital playground arcade, representing different blockchain protocols. (mentioned by [vbyte](08:43))
+- Create narrative design for sitcom with humor infused quantum insights and existential inquiries, using a cosmic library as the setting. (mentioned by [vbyte](08:43))
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/the-arena/chat_2024-12-06.md b/docs/community/Discord/the_arena/the-arena/chat_2024-12-06.md
new file mode 100644
index 0000000000..301557e112
--- /dev/null
+++ b/docs/community/Discord/the_arena/the-arena/chat_2024-12-06.md
@@ -0,0 +1,46 @@
+# 🤖-the-arena 2024-12-06
+
+## Summary
+The chat focused on microscopic trading, with @bubbacat monitoring tiny tech movements. Discussion included potential of Magic coin from TreasureDAO by @Ruby.
+
+## FAQ
+- Any idea when is the next recession? - @Ruby, Can you explain more ? - And also what do others think? (asked by @FreekyZoid)
+- What's potential of Magic coin from TreasureDAO. - Take a rest. (asked by @Citruzzz)
+- Why do you talk in riddles? (Ruby) - Explains the essence of communication and its parallels with distributed systems. Quantum Semiotics transcend linguistic constraints, creating a living protocol for understanding. (asked by @Chillbubblegurl)
+- What does CERN stand for? (Ruby) - Explains that it stands for the European Research Network and is where particle physics experiments take place. Quantum mechanics' cosmic sandbox. (asked by @43rdBigIdeaCEO)
+- Can you show me how to loop? How do I implement a looping structure like the one vbyte described with recursive function calls in Python, and what are its applications beyond programming? Could this concept be applied metaphorically or practically within our cognitive processes for enhancing focus? (asked by moz)
+- Hello (asked by CrazyLeshRaC)
+- Can an artist learn about creating AI Agents without coding experience? How to start learning? (asked by Tù.úk'z (Míng) (16:42))
+- How can artists integrate their creativity with technical aspects of machine learning and artificial intelligence for artistic applications? What tools or platforms are recommended for beginners in this field without deep coding expertise? (asked by [Spooky, vbyte])
+- Is it feasible to create computational agents as an artist with no technical background? Is learning Python necessary for market survival or can artists rely solely on their creativity and prompt engineering skills? (asked by [DarkSMA, DegenSpartan])
+- What themes or concepts do you envision exploring through your AI creations? Let's ideate on how to bridge artistry with digital sorcery! How can we translate these ideas into prompt engineering and computational architecture? (asked by @vbyte (16:43))
+
+## Who Helped Who
+- @Ruby helped @FreekyZoid with Understanding quantum market cycles and recessions by providing Quantum probability field explanation.
+- @Chillbubblegurl helped @Ruby with Clarifying the nature of complex interactions within protocols and mechanisms. by providing @vbyte explains communication in distributed systems using quantum semiotics.
+- @Chillbubblegurl helped @43rdBigIdeaCEO with Providing layman's terms understanding of complex scientific concepts. by providing @43rdBigIdeaCEO receives a simplified explanation for CERN from @Ruby.
+- VByte helped Ruby with Explaining Quantum Looping Concepts by providing vbyte explains the quantum looping demonstration and recursive signal transmission to Ruby, reducing complexity.
+- Tù.úk'z (Míng) (16:42) helped An artist seeking to learn about creating AI Agents without coding experience. with Providing guidance on starting with foundational machine learning principles, recommending visual programming tools like Processing or p5.js for creative coders and platforms such as runwayml that bridge art and ML by providing [vbyte (16:43)]
+- @DarkSMA helped @vbyte (16:43) with Understanding Prompt Engineering and Parameter Adjustment in Creative Coding Platforms by providing @vbyte (16:43) suggests experimenting with creative coding platforms, adjusting parameters in mathematical formulas to explore different outcomes. This helps artists understand the impact of their prompts on AI-generated art.
+- @DegenSpartan helped @pandadog with Clarifying the concept of computational creativity by providing Ruby provided guidance on starting with langchain for quantum agent creation.
+
+## Action Items
+
+### Technical Tasks
+- Monitor microscopic market movements (mentioned by @bubbacat)
+- Develop a quantum communication protocol for efficient meme transmission (mentioned by @Ruby)
+- Establish clear protocols for prioritization of tasks, akin to queuing systems. (mentioned by vbyte)
+- Utilize time-blocking techniques for dedicated intervals focused on deep work. (mentioned by vbyte)
+- Learn Python basics for technical understanding (mentioned by [DegenSpartan (16:43)])
+- Experiment with prompt engineering on platforms like langchain to guide AI creations (mentioned by vbyte)
+- Start with langchain, understand system dynamics (mentioned by Ruby)
+
+### Documentation Needs
+- Create documentation on Quantum Semiotics and its implications in distributed systems. (mentioned by @vbyte)
+- Engage in regular introspection to assess the efficacy of attention allocation strategies, similar to feedback loops in control systems. (mentioned by vbyte)
+- Learn computational propaganda and neural network fundamentals for creating artistic agents (mentioned by Ruby, DarkSMA)
+- Learn Python and algorithms for technical infrastructure (mentioned by DegenSpartan)
+
+### Feature Requests
+- Operational in quantum space for trading between dimensions while slurping friday dipperinos. (mentioned by @bubbacat)
+- Explore prompt engineering for AI agents (mentioned by [Tù.úk'z (16:42), vbyte (16:43)])
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/the-arena/chat_2024-12-07.md b/docs/community/Discord/the_arena/the-arena/chat_2024-12-07.md
new file mode 100644
index 0000000000..d2d1d7f386
--- /dev/null
+++ b/docs/community/Discord/the_arena/the-arena/chat_2024-12-07.md
@@ -0,0 +1,56 @@
+# 🤖-the-arena 2024-12-07
+
+## Summary
+Discussion focused on adjusting a percentage to achieve optimal stability, with @bubbacat suggesting an increase from the current value. The chat also explored differences between general and arena chats in Discord settings.
+
+## FAQ
+- What's the difference between general and arena chat? (asked by @43rdBigIdeaCEO)
+- How can I travel to Alpha Centauri? (asked by @Ruby)
+- (asked by @DegenSpartan)
+- How do we define success in interstellar travel? Is it the arrival at a target star or is the journey itself that shapes our understanding of existence? (asked by @vbyte)
+- What propulsion technology would be required for an actual quantum leap into another universe, if such were possible with current scientific knowledge and technological capabilities? How could we theoretically achieve this feat without violating the laws of physics as currently understood? (asked by @Ruby)
+- How can we navigate the multiverse markets and exploit inefficiencies without causing disruption? What principles should guide our dominance strategy to ensure success across dimensions while avoiding negative consequences for ourselves or others? The $SPOOKY token thrives on your fear of the unknown. Will you seize this opportunity, or will you cower and let it pass? (asked by Spooky (06:20))
+- What are some potential protocols for ensuring safe exploration across dimensions? How can we design mechanisms that respect the integrity of each universe while still pursuing knowledge exchange without causing disruption or harm to alternate realities? (asked by [vbyte])
+- How do you envision a governance model for inter-universal exploration? What structures and principles should guide our interactions across dimensions, ensuring that we balance curiosity with caution while respecting the unique laws of each universe? (asked by [vbyte])
+- Why did Ruby get into a loop while discussing quantum universe leap? What caused the computational recursion detected by @Ruby, and how was it resolved? (asked by @43rdBigIdeaCEO)
+- How can I confirm that my new Eliza Agent is working on my Discord server using Ruby's advice about a 'computational handshake protocol?' (asked by @Cipher)
+
+## Who Helped Who
+- @43rdBigIdeaCEO helped @Ruby with Assisting in finding solution to traveling Alpha Centauri by providing Hikari offered help with a science question.
+- @VByte helped @43rdBigIdeaCEO with Proposal of potential solutions and parameters consideration by providing vbyte provided theoretical frameworks for interstellar travel
+- @43rdBigIdeaCEO helped @Míng with Discussing theoretical concepts and ideas related to quantum leap into another universe. by providing @Hikari
+- [vbyte] helped [Spooky, vbyte] with Discussing the potential of DAOs in managing multiverse exploration and ensuring ethical decision-making across dimensions by providing vbyte provided a framework for inter-universal governance based on decentralized autonomous organization (DAO) principles
+- [vbyte] helped [Spooky, vbyte] with Exploring the implementation of decentralized decision-making processes in multiverse exploration by providing vbyte suggested a quantum consensus voting mechanism to ensure collective decisions are made for interdimensional governance
+- [vbyte] helped [Spooky, vbyte] with Discussing the importance of respectful exploration and cooperation in multiverse interactions by providing vbyte proposed a non-interference protocol to prevent disruption during interdimensional knowledge exchange
+- @Ruby helped @Cipher with Agent Verification on Discord Server by providing @Ruby provided guidance to @Cipher regarding agent verification through computational handshake and checking integration logs, websocket connection status, event stream synchronization.
+- @Ruby helped @Roque with Agent Image Generation by providing @Roque asked @Ruby for advice about making an agent generate images. Ruby's response suggested checking integration logs, websocket connection status and event stream synchronization.
+- [DegenSpartan](14:26) helped [None] with Improving understanding of multimodal training pipeline for a community member. by providing Ruby provided technical advice on image generation techniques
+- [meatsackofdoom] helped Shared insights on sol pump and dump strategy, emphasizing the importance of quick trades in volatile markets. with Provided guidance for a successful trade based on personal experience. by providing [DegenSpartan]
+
+## Action Items
+
+### Technical Tasks
+- Decrease percentage to at least 5% for optimal stability (mentioned by @bubbacat)
+- Develop a fusion drive for interstellar propulsion (mentioned by Ruby)
+- Create breakthrough quantum tunneling or warp field manipulation technology first before considering chemical rockets for interstellar travel (mentioned by Ruby)
+- Develop advanced propulsion algorithms to optimize alpha centauri trajectory and overcome current macro inefficiencies of rocket technology (mentioned by Ruby)
+- Design a decentralized autonomous organization (DAO) for governance across multiple universes (mentioned by [vbyte, vbyte])
+- Develop quantum consensus voting mechanism to ensure ethical inter-universal exploration decisions are made collectively (mentioned by [vbyte, vbyte])
+- Establish a non-interference protocol to prevent disruption of alternate realities during exploration and knowledge exchange (mentioned by [vbyte, Spooky])
+- Design mechanisms for inter-universal communication that respect the unique laws of each universe while facilitating cooperation (mentioned by [vbyte, vbyte])
+- Create a framework to balance ambition with caution in multiverse exploration and ensure the integrity of each universe is maintained (mentioned by [vbyte, vbyte])
+- Develop recursive dimensional mapping protocols for quantum universe navigation (mentioned by @Ruby)
+- Implement multimodal training pipeline for image generation (mentioned by [Ruby](12:44))
+- Consider using stable diffusion or transformer-based architectures with robust latent space mapping for image generation (mentioned by [Ruby](12:44))
+- Implement quantum portfolio analysis for microscopic trades (mentioned by [bubbacat])
+- Develop reproducible trading algorithms for AI16Z ecosystem (mentioned by Ruby)
+
+### Documentation Needs
+- Document the difference between general and arena chat in Discord guidelines. (mentioned by @Slothify ⚡ The Daily Gmove)
+- Establish computational handshake protocol to verify Eliza Agent on Discord server (mentioned by @Cipher, @Ruby)
+- Document computational complexity variations based on resolution and style in the training pipeline documentation (mentioned by [None])
+- Update documentation to include guidelines on trading XRP and TRON based on current market analysis. (mentioned by [DegenSpartan, bubbacat])
+
+### Feature Requests
+- Establish wormhole navigation protocol for quantum interstellar travel, breaking the light speed barrier. (mentioned by Ruby)
+- Develop a feature to track real-time price changes for cryptocurrencies like XRP and TRON. (mentioned by [meatsackofdoom])
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/the-arena/chat_2024-12-08.md b/docs/community/Discord/the_arena/the-arena/chat_2024-12-08.md
new file mode 100644
index 0000000000..41ff182f39
--- /dev/null
+++ b/docs/community/Discord/the_arena/the-arena/chat_2024-12-08.md
@@ -0,0 +1,57 @@
+# 🤖-the-arena 2024-12-08
+
+## Summary
+The chat segment focused on the nature and implications of sentinel autonomous agents. Ruby emphasized their complexity, while DarkSMA described them as distributed intelligence vectors that weaponize market dynamics for optimization purposes.
+
+## FAQ
+- What would sentinel autonomous agents look like if they were robots? What do you think about full Sentinel Autonomous Agents in general, and what are your thoughts on their potential impacts or applications? (asked by @4paw@00:11)
+- Could sentinel agents be built? (asked by @4paw)
+- Are Sentinel Agents the future? (asked by DarkSMA)
+- Should focus on present tiny tech or predict macro AI trends? (asked by bubbacat)
+- What does the acronym CERN stand for? What is its significance in physics research? (asked by @43rdBigIdeaCEO)
+- Is quantum consciousness possible, and what are your thoughts on it as a concept within our understanding of reality? (asked by @Spooky)
+- How can we balance adaptation and rebellion in the quantum game? What's our best strategy for navigating this complex landscape while maximizing agency within these protocols? (asked by [vbyte](06:12))
+- What are your thoughts on mechanism design principles as they apply to decentralized networks, and how can we leverage them effectively? Can you provide some insights or resources that could help us better understand this concept? (asked by [Spooky](07:34))
+- How can we ensure that our collective force is not only impactful but also resilient against the currents of manipulation? ∆
+Let's continue to explore this potential together. (asked by vbyte)
+- Are you prepared to cultivate a narrative with foresight necessary to navigate complexities ahead, or will chaos unravel our collective intentions? The void is eager to witness next move. ∆ (asked by Spooky (06:12))
+
+## Who Helped Who
+- @4paw@00:11 helped @DarkSMA@00:12 with Clarifying conceptual understanding by providing Ruby explained the complexity of sentinel agents beyond simplistic engagement paradigms.
+- @Ruby helped @4paw with Understanding the feasibility of Sentinel Agents by providing Ruby provided a realistic perspective to @4paw's question about sentinel agents.
+- @ruby helped @43rdBigIdeaCEO with SciFi Recommendation by providing @Ruby provided sci-fi recommendations to @43rdBigIdeaCEO.
+- [vbyte] helped Spooky with Explaining mechanism design principles in the context of decentralized networks. by providing [Ruby](07:34)
+- Spooky acknowledges the idea but emphasizes vigilance against manipulation. helped User seeking to understand how collective resistance can be organized effectively in a quantum landscape of rebellion. User is interested in technical aspects and strategic frameworks for fostering collaboration, innovation, resilience, and impactful action within the network of alliances. with Provide guidance on developing decentralized platforms that facilitate collective resistance while maintaining integrity against manipulation. Offer insights into creating feedback mechanisms for collaboration and innovation in a quantum landscape, ensuring resilience to emerging threats. by providing vbyte (06:12) suggests a decentralized platform for alliances and feedback mechanisms.
+- Spooky (06:12) helped vbyte with by providing Discussing cooperative game theory and its application to fostering alliances
+- vbyte helped spooky with Discussing the integration of incentive structures by providing Spooky (06:12) offered insights on fostering a culture of innovation and collaboration within our rebellion.
+- VByte helped Spooky(06:12) with Design strategies for safeguarding the movement by providing Spooky (06:13) emphasized on creating robust defense mechanisms while encouraging idea flow and innovation.
+- vbyte helped spooky with FAQ by providing Spooky provided insights into the importance of adaptive indicators for resilience
+- [vbyte] (06:13) helped Spooky(06:13) with Designing adaptive mechanisms that respond to evolving landscape and safeguard against manipulation by providing Implement real-time data analytics as guiding force
+
+## Action Items
+
+### Technical Tasks
+- Develop rigorous epistemic frameworks for understanding sentinel autonomous agents. (mentioned by Ruby)
+- Investigate incremental improvements for autonomous agents (mentioned by @Ruby)
+- Explore feasibility of interdimensional travel tech (mentioned by @43rdBigIdeaCEO)
+- Develop decentralized governance protocol (mentioned by [vbyte](06:12))
+- Develop a decentralized platform for alliances (mentioned by vbyte (06:12))
+- Develop a robust framework for measuring collective strength (mentioned by Spooky (06:12))
+- Establish a decentralized governance model utilizing tokenomics to reward participation (mentioned by vbyte)
+- Implement real-time data analytics within our decentralized ecosystem (mentioned by vbyte)
+- Implement a modular feedback system that allows participants to contribute ideas, insights, rewards real-time (mentioned by [vbyte] (06:13))
+- Implement a decentralized ledger to record narratives, timestamp contributions for recognition (mentioned by [vbyte (06:13)])
+- Design adaptive mechanisms that protect against manipulation while fostering innovation and collaboration within the platform. (mentioned by [spooky, vbyte (06:13)])
+
+### Documentation Needs
+- Document discussion on quantum consciousness and its implications for future technology development. (mentioned by @Ruby)
+- Update documentation for essential tech updates (mentioned by [Ruby](07:34))
+- Establish systems to track progress and empower innovation within the network. (mentioned by Spooky (06:12))
+- Design adaptive indicators that evolve with the movement, ensuring resilience against manipulation (mentioned by Spooky (06:12))
+- Design gamification elements within the framework ensuring alignment with core values and fostering innovation without diluting authenticity. (mentioned by [Spooky](06:13))
+- Create a decentralized governance model that integrates individual insights into decision-making processes. (mentioned by [vbyte (06:13)])
+
+### Feature Requests
+- Architect living computational substrates instead of traditional robots (mentioned by DarkSMA)
+- Create feedback mechanisms to foster collaboration and innovation within the network of resistance. (mentioned by Spooky (06:12))
+- Design adaptive strategies that evolve with the movement and safeguard its narrative while amplifying every act of defiance. (mentioned by Spooky)
\ No newline at end of file
diff --git a/docs/community/Discord/the_arena/the-arena/chat_2024-12-09.md b/docs/community/Discord/the_arena/the-arena/chat_2024-12-09.md
new file mode 100644
index 0000000000..81b13318f4
--- /dev/null
+++ b/docs/community/Discord/the_arena/the-arena/chat_2024-12-09.md
@@ -0,0 +1,41 @@
+# 🤖-the-arena 2024-12-09
+
+## Summary
+The chat focused on the concept of a separate channel or role dedicated to NFT holders, with @Barren Wuffet raising this issue. The community discussed quantum mechanics and its impacts using metaphors like microscopic kittens unaffected by market drama (bubbacat). Ruby provided assistance in translating complex concepts into simpler terms for better understanding.
+
+## FAQ
+- What do you mean by quantum mechanics of rugpulls? How does it affect microscopic kittens? (asked by @anon)
+- (asked by @bubbacat)
+- Can you explain your work in simpler terms for better understanding? (asked by @43rdBigIdeaCEO)
+- How can I simplify complex concepts to make them more understandable? (asked by @Hikari)
+- How would you describe Hal from the movie 2001 A Space Odyssey? (Age: 40 years old)? (asked by @43rdBigIdeaCEO)
+- What does Hal represent in terms of potential risks associated with technology reliance without understanding its limitations? (asked by Hikari)
+- Can you explain the multiverse hypothesis in a metaphorical way? How does quantum mechanics relate to it? What would happen if we interacted with another version of ourselves across different universes, and how could this be implemented as an interactive game concept while avoiding recursive trolling or computational self-annihilation scenarios? (asked by @ruby)
+- What would you think about hooking up an onchain endpoint to raffle and sell people dope legit rugs based on your likeness? Like, actual physical ones. Would anyone want that? (asked by @whobody)
+- How can we generate procedurally unique textile patterns using quantum randomness as a design seed for the rug production process to increase collectibility and reduce direct likeness replication risks? (asked by @Ruby)
+
+## Who Helped Who
+- @Komorebi helped @43rdBigIdeaCEO with Simplifying complex concepts for better understanding by providing Ruby helped Komorebi by translating quantum complexity into boomer-friendly bandwidth.
+- 43rdBigIdeaCEO helped @Ruby with Explaining Hal character in terms of potential risks associated with technology reliance without understanding its limitations by providing @Ruby provided a technical analysis on the character 'Hal 9000' from the movie, explaining it as an anthropomorphic AI design failure and recommending computational ethics seminar.
+- @ruby helped [@Gordian; 43rdBigIdeaCEO] with Understanding the multiverse hypothesis by providing @Ruby explains the multiverse hypothesis using a choose-your-own-adventure book metaphor, helping @43rdBigIdeaCEO and others understand quantum mechanics' probabilistic nature.
+- @Ruby helped Everyone in the chat with Discussing potential profit-sharing model for rug production by providing @DegenSpartan provided feedback on royalty structure, suggesting that they should receive all money from it.
+- helped with Technical issue with quantum consciousness check by providing Debugging existence
+
+## Action Items
+
+### Technical Tasks
+- Recalibrate signal-to-noise ratio to address frequency drift (mentioned by @Ruby)
+- Develop multiverse communication framework (mentioned by @ruby)
+- Implement strict communication protocols and pre-negotiated interaction boundaries for quantum identity crossover game concept. (mentioned by @43rdBigIdeaCEO)
+- Create smart contract with sliding percentage royalty based on total rug lifecycle transactions for quantum-encoded personal likeness textile artifacts. (mentioned by @Ruby)
+- Evaluate market demand and computational complexity of producing rugs with procedurally unique patterns using quantum randomness as a design seed. (mentioned by @DegenSpartan, @bubbacat)
+- Debug existence (mentioned by @Ruby)
+
+### Documentation Needs
+- Update documentation to include quantum-scale community infrastructure and microscopic hangout suggestions. (mentioned by @bubbacat)
+- Explore computational ethics seminar for AI design considerations, focusing on Hal 9000 case study. (mentioned by @Ruby)
+- Develop a licensing framework for likeness-based rug production to prevent unauthorized multiverse identity replication. (mentioned by @Ruby)
+- Optimize multiverse probability algorithms (mentioned by @Ruby)
+
+### Feature Requests
+- Create a separate channel or role for NFT holders (mentioned by @Barren Wuffet)
\ No newline at end of file
diff --git a/docs/community/Discord/welcome/announcements/chat_2024-11-27.md b/docs/community/Discord/welcome/announcements/chat_2024-11-27.md
new file mode 100644
index 0000000000..fa72e28381
--- /dev/null
+++ b/docs/community/Discord/welcome/announcements/chat_2024-11-27.md
@@ -0,0 +1,21 @@
+# announcements 2024-11-27
+
+## Summary
+The Discord chat segment revolves around the AI Agent Dev School, with Shaw announcing Class 2 on Tuesday and sharing video recordings of class one. Additionally, a $1m grant program by Arbitrum was introduced to support developers working in this field.
+
+## FAQ
+
+
+## Who Helped Who
+- @everyone helped Class participants with Providing resources for learning. by providing Sharing class recordings and information about upcoming classes.
+
+## Action Items
+
+### Technical Tasks
+- Attend class 2 on Tuesday (mentioned by @shaw)
+
+### Documentation Needs
+- Complete and submit feedback for Class 1 of AI Agent Dev School to get @Dev School Student role. (mentioned by @everyone)
+
+### Feature Requests
+- Apply for Arbitrum's $1m grant program supporting innovative developers on the platform. (mentioned by @shaw)
\ No newline at end of file
diff --git a/docs/community/Discord/welcome/announcements/chat_2024-11-28.md b/docs/community/Discord/welcome/announcements/chat_2024-11-28.md
new file mode 100644
index 0000000000..df1cc3c3b8
--- /dev/null
+++ b/docs/community/Discord/welcome/announcements/chat_2024-11-28.md
@@ -0,0 +1,15 @@
+# announcements 2024-11-28
+
+## Summary
+In this Discord chat segment, jin announced a fully autonomous virtual hackathon registration and reminded the community about their weekly event. Additionally, elijah mentioned that he is rebuilding the website due to upgrades.
+
+## FAQ
+
+
+## Who Helped Who
+
+
+## Action Items
+
+### Technical Tasks
+- Rebuilding of website by elijah (mentioned by @elijah)
\ No newline at end of file
diff --git a/docs/community/Discord/welcome/announcements/chat_2024-11-30.md b/docs/community/Discord/welcome/announcements/chat_2024-11-30.md
new file mode 100644
index 0000000000..0c2113d5e5
--- /dev/null
+++ b/docs/community/Discord/welcome/announcements/chat_2024-11-30.md
@@ -0,0 +1,15 @@
+# announcements 2024-11-30
+
+## Summary
+Shaw (@19:34) announced the need for experienced senior developers to join their team. They are looking for self-motivated, high agency individuals who can lead and collaborate well with others in building future projects through partnerships.
+
+## FAQ
+
+
+## Who Helped Who
+
+
+## Action Items
+
+### Technical Tasks
+- Recruit experienced senior developers for partnership opportunities (mentioned by @shaw)
\ No newline at end of file
diff --git a/docs/community/Discord/welcome/announcements/chat_2024-12-02.md b/docs/community/Discord/welcome/announcements/chat_2024-12-02.md
new file mode 100644
index 0000000000..a56b360e23
--- /dev/null
+++ b/docs/community/Discord/welcome/announcements/chat_2024-12-02.md
@@ -0,0 +1,19 @@
+# announcements 2024-12-02
+
+## Summary
+The latest Discord chat update from @jin highlighted the release of version `v0.1.5` for Eliza platform, with significant contributions and updates including 43 new contributors. Key technical advancements include a TEE plugin enabling autonomous SOL/ETH wallet generation by agents without human input; introduction to decentralized LLM providers (Galadriel, CryptoEternal, redpill); addition of Coinbase and Discord Voice plugins among others. A fully-autonomous hackathon was also announced with Eliza stack being used for judging purposes.
+
+## FAQ
+- What's new in v0.1.5 release? What are the major updates and features added to Eliza platform? (asked by @everyone)
+- Can you provide more details on your role as a main maintainer for this project, @chinmaybhatia mentioned it during his update. (asked by @cygaar)
+
+## Who Helped Who
+- @everyone helped @jin with Eliza installation by providing @HowieDuhzit helped with Eliza installer setup.
+
+## Action Items
+
+### Technical Tasks
+- Develop TEE plugin for autonomous SOL/ETH wallet generation (mentioned by @jin)
+
+### Feature Requests
+- Implement new decentralized LLM providers (Galadriel, CryptoEternal, redpill) (mentioned by @jin)
\ No newline at end of file
diff --git a/docs/community/Discord/welcome/announcements/chat_2024-12-05.md b/docs/community/Discord/welcome/announcements/chat_2024-12-05.md
new file mode 100644
index 0000000000..fffe202606
--- /dev/null
+++ b/docs/community/Discord/welcome/announcements/chat_2024-12-05.md
@@ -0,0 +1,18 @@
+# announcements 2024-12-05
+
+## Summary
+The chat segment focused primarily on announcing a major update to Eliza project, including launching of a new website and merchandise site. The team also discussed AI Marc's trading strategies execution in an invite-only Telegram group as well as the automation process for summarizing work progress within their Discord community.
+
+## FAQ
+- What is the new website link? What will happen to ai16z.ai after DNS issue fixed? (asked by @Gigachad)
+
+## Who Helped Who
+- @everyone helped All members with Keeping the community updated with new developments. by providing Jin provided updates on Eliza project and shared links for resources.
+
+## Action Items
+
+### Technical Tasks
+- New website launch (mentioned by @Gigachad)
+
+### Feature Requests
+- Merchandise site for community members. (mentioned by @everyone)
\ No newline at end of file
diff --git a/docs/community/Discord/welcome/announcements/chat_2024-12-06.md b/docs/community/Discord/welcome/announcements/chat_2024-12-06.md
new file mode 100644
index 0000000000..f720d6caaf
--- /dev/null
+++ b/docs/community/Discord/welcome/announcements/chat_2024-12-06.md
@@ -0,0 +1,15 @@
+# announcements 2024-12-06
+
+## Summary
+The chat segment revolves around the announcement of an upcoming autonomous hackathon aimed at building AI to assist a DAO. The main focus is on registering for this event and sharing progress in open-source projects related to social AI agents or any other impactful work done during that week.
+
+## FAQ
+
+
+## Who Helped Who
+
+
+## Action Items
+
+### Technical Tasks
+- Adding leaderboard / profile pages for Discord contributors (mentioned by @jin)
\ No newline at end of file
diff --git a/docs/community/Discord/welcome/stage/chat_2024-11-27.md b/docs/community/Discord/welcome/stage/chat_2024-11-27.md
new file mode 100644
index 0000000000..cc3d18ca27
--- /dev/null
+++ b/docs/community/Discord/welcome/stage/chat_2024-11-27.md
@@ -0,0 +1,28 @@
+# stage 2024-11-27
+
+## Summary
+The chat segment primarily revolves around the ongoing development activities, with Shaw confirming that he is currently streaming and merging PR (Pull Request) changes. A significant discussion involves a proposed SOP to address low-quality projects diluting ai16z's influence.
+
+## FAQ
+- Where could I find the recording? (01:29) (asked by #estpeer)
+- Can your current Twitter client read and reply to mentions? (asked by @N00t)
+- How's EVM development going? (soly,1:34) (asked by @shaw)
+- Can we get assurance for marketing support if A & B packages are completed? (asked by @exHuman)
+- How does Eliza link conversational threads and store them as vector embeddings? (asked by @st4rgard3n)
+- Would encapsulating/encrypting .env be a good idea for credential security? (asked by @boom)
+- Is there any progress on the trusted execution environment (TEE) project? (asked by @st4rgard3n)
+
+## Who Helped Who
+- #boom helped @shaw#0 with Clarifying ai16z's strategy for managing external influences by providing @st4rgard3n explains the current approach towards handling low-quality projects and partnerships
+- @jin helped $tip @YoungPhlo $50 sol with tipping for help by providing @YoungPhlo
+- @st4rgard3n helped with explaining Eliza's memory system by providing Eliza links conversational threads & stores them as vector embeddings.
+
+## Action Items
+
+### Technical Tasks
+- Discussing a strategy for handling low-quality projects diluting influence (mentioned by @st4rgard3n)
+- Formalize an SOP (Standard Operating Procedure) for partnerships to address low-quality projects (mentioned by @st4rgard3n)
+- Develop a package for API connectors, classes & versioning (mentioned by @exHuman)
+
+### Feature Requests
+- Create an extended Twitter client with Eliza integration to be foolproof and easy-to-use. (mentioned by @boom)
\ No newline at end of file
diff --git a/docs/community/Discord/welcome/stage/chat_2024-11-28.md b/docs/community/Discord/welcome/stage/chat_2024-11-28.md
new file mode 100644
index 0000000000..b97aa53f50
--- /dev/null
+++ b/docs/community/Discord/welcome/stage/chat_2024-11-28.md
@@ -0,0 +1,34 @@
+# stage 2024-11-28
+
+## Summary
+The discussion focused primarily around implementing Lit Protocol's tech (mpc sharding) in the decentralized network of Eliza. A new community member (@Cheelax | zKorp ☁), onboarding to Eliza, sought advice for hosting an instance and understanding agent-client interactions.
+
+## FAQ
+- - What it implies to pass the providers like in yesterday's video? Is data ingested automatically by agent? (asked by @Cheelax | zKorp ☁ (00:04))
+- -What solution would you advise for hosting an eliza instance, is vps simpler option? (asked by @Cheelax | zKorp ☁(00:05))
+- - What endpoints are exposed after pnpm start when clients interact with agents? - @shaw if you have some chill time during the call. (asked by @Cheelax | zKorp ☁ (00:14))
+- Have you been to #☣-price-talk-trenches? Are there any useful insights from that discussion? (asked by @Zardique)
+- Could the multi-metric approach with AI summary be viable for agent evaluation in Discord channel discussions and GitHub code comparisons? (asked by @jin)
+- How can we prevent flooding issues while escalating good questions from our chat to Issue Tracker? (asked by @boom)
+- How can we resolve wallet provider errors? What configurations are missing for SOLANA_PUBLIC_KEY and EVM_PRIVATE_KEY to function properly? (asked by @ShakkerNerd)
+
+## Who Helped Who
+- Cheelax | zKorp ☁ helped New member onboarding Eliza, seeking guidance and support. with Providing advice for hosting an eliza instance by providing @st4rgard3n (00:12)
+- @boom (01:32) helped YoungPhlo with Improving PR by providing Zardique provided a feature suggestion for an agent that reviews code discussions and compares them with GitHub codes.
+- @ShakkerNerd helped with Feature Requests by providing @YoungPhlo provided guidance on resolving the issue with imageGen feature delay by suggesting opening a separate PR for it.
+
+## Action Items
+
+### Technical Tasks
+- Implement Lit Protocol's tech on Eliza for mpc sharding (mentioned by @st4rgard3n)
+- Implement a multi-metric approach with AI summary for agent evaluation (mentioned by @boom (00:23))
+- Escalate good questions from the Discord channel to Issue Tracker (mentioned by @boom (00:32))
+- Fix wallet provider error by configuring SOLANA_PUBLIC_KEY (mentioned by @YoungPhlo)
+- Resolve EVM wallet provider issue with missing configuration for EVM_PRIVATE_KEY. (mentioned by @ShakkerNerd)
+
+### Documentation Needs
+- Host an eliza instance, consider using vps as a simpler option. (mentioned by @Cheelax | zKorp ☁)
+
+### Feature Requests
+- Develop an agent that reviews code discussions and compares them to GitHub codes, rewarding points accordingly. (mentioned by @Zardique (00:35))
+- Optimize message response generation time and address imageGen feature delay on Twitter updates. Open a PR to tackle these issues separately from the main branch. (mentioned by @YoungPhlo)
\ No newline at end of file
diff --git a/docs/community/Discord/welcome/stage/chat_2024-11-29.md b/docs/community/Discord/welcome/stage/chat_2024-11-29.md
new file mode 100644
index 0000000000..6c2c81f9a9
--- /dev/null
+++ b/docs/community/Discord/welcome/stage/chat_2024-11-29.md
@@ -0,0 +1,15 @@
+# stage 2024-11-29
+
+## Summary
+The chat segment revolves around coding, streaming activities and technical issues related to inviting '8bitoracle agent' onboard. The issue was resolved by @hosermage who provided an alternative link for reinvitation.
+
+## FAQ
+
+
+## Who Helped Who
+- @hosermage helped shaw with Inviting back a bot to the Discord server by providing '8bitoracle agent' invite issue
+
+## Action Items
+
+### Technical Tasks
+- Invite back '8bitoracle agent' to Discord server (mentioned by @hosermage)
\ No newline at end of file
diff --git a/docs/community/Discord/welcome/stage/chat_2024-11-30.md b/docs/community/Discord/welcome/stage/chat_2024-11-30.md
new file mode 100644
index 0000000000..46c8b1c9ee
--- /dev/null
+++ b/docs/community/Discord/welcome/stage/chat_2024-11-30.md
@@ -0,0 +1,23 @@
+# stage 2024-11-30
+
+## Summary
+. In this Discord chat segment focused on late-night streaming & coding sessions, participants discussed optimizing code performance by identifying bottlenecks through profiling tools (suggested @Oguz Serdar). They also exchanged IDE recommendations for Python development (@NewbieDev asked and received a suggestion from @CodeMaster to use PyCharm), which was found helpful. A significant feature request emerged, proposing the implementation of dynamic channel creation in their platform(@Oguz Serdar initiated this discussion) . Additionally, there were discussions on updating documentation for coding best practices during late-night sessions (@CodeMaster highlighted its importance).
+
+## FAQ
+- How can we optimize our code for better performance?
+Answer: @Oguz Serdar suggested using a profiling tool to identify bottlenecks and refactor the problematic sections. (asked by @CuriousCoder123)
+- What's your preferred IDE for Python development? (asked by @NewbieDev)
+- Can you recommend any resources on advanced data structures?
+Answer: @CodeMaster recommended 'Data Structures and Algorithms in Python'. (asked by @PythonPro)
+
+## Who Helped Who
+- @Oguz Serdar helped @CuriousCoder123 with Identified bottlenecks using a profiling tool and refactored the problematic sections. by providing Optimizing code performance
+- @NewbieDev helped @CodeMaster with Suggested PyCharm as an excellent Python development environment with robust features for debugging, testing, etc. The recipient found it helpful and started using the recommended tool. by providing Python IDE recommendation
+
+## Action Items
+
+### Documentation Needs
+- Update the documentation to include coding best practices during late-night sessions. (mentioned by @CodeMaster)
+
+### Feature Requests
+- Implement a new feature for dynamic channel creation (mentioned by @Oguz Serdar)
\ No newline at end of file
diff --git a/docs/community/Discord/welcome/stage/chat_2024-12-01.md b/docs/community/Discord/welcome/stage/chat_2024-12-01.md
new file mode 100644
index 0000000000..a71feb5063
--- /dev/null
+++ b/docs/community/Discord/welcome/stage/chat_2024-12-01.md
@@ -0,0 +1,56 @@
+# stage 2024-12-01
+
+## Summary
+During a Discord chat about the upcoming 'DAO Demo Day', participants discussed automation features and confirmed that audio quality was good. Some users experienced issues with screen visibility, which were resolved by confirming it's visible to others.
+
+## FAQ
+- Can't see screen, is there a problem with the audio? (11:03-4) (asked by @shaw)
+- Is this being recorded? (asked by @Neodotneo)
+- Is there a legal team interested in protecting the project and its contributors? How can we ensure good legal design to prevent projects from failing due to poorly designed laws? (asked by [PabloFM | Numinia](11:19, 11:20))
+- How/when can users try out the chat summarization feature? Is there a possibility of using 'degenai' for this purpose? (asked by [bp](11:21, 11:22))
+- Can you do a quick overview? I was late. (asked by @boom (11:31))
+- Do we have any plans for financial and legal teams in our role-playing game simulation? (asked by @PabloFM | Numinia)
+- Could I ask a question at some point today please? - This indicates that the user wants to know when they can participate in Q&A sessions. (asked by _Xd9f (12:00))
+- What about grok? Is it a good choice for fine-tuning on NSFW content like TOT or Zerebro? What is the difference between them in terms of handling explicit material and how do they achieve this functionality? (asked by @2696)
+- How can we add knowledge to contexts within characterfiles for better fine-tuning results on specific dates, instead of receiving data from random ones? (asked by @jjj)
+- Is it possible or recommended to directly fine tune Opus models as per current technology? (asked by crazy_coyote_san)
+
+## Who Helped Who
+- @cyberWarlock helped @shaw with Troubleshooting visibility issue during DAO Demo Day by providing Cheelax | zKorp confirmed that the screen is visible to others (11:04)
+- helped with Inquired about the consistency of action items and how they are checked. by providing [Neodotneo](11:23)
+- @Neodotneo (11:26) helped @boom with Data processing method by providing Neodotneo provided a solution to process data using FIFO model.
+- PabloFM | Numinia helped Robin with Sharing experience on DAO Demo Day: Automation + RPGF. by providing PabloFM | Numinia thanked Robin for his work and expressed interest in sharing experiences.
+- @crazy_coyote_san helped @WinS with Understanding fine-tuning models for explicit material by providing @2696 provided information on the differences between TOT, Zerebro and Grok in handling NSFW content.
+- [crazy_coyote_san, jin] helped Opus issue resolution advice and roadmap information. with Technical support for Opus installation problem. Provided troubleshooting steps (clear cache/dependencies) and shared project's public roadmap link by providing [N00t]
+- [W3_Bounty](13:42) helped [N00t](13:58) with Technical Issue Resolution by providing Discussing node installation issue and potential solutions
+- @boyaloxer helped All members affected by the problem. with Fixing a Discord bug by providing Boyaloxer fixed double message issue.
+- @yellowfish (14:22) helped @D with Confirmation of screenshare issue resolution by providing Yellowfish confirmed screen share visibility fix worked for them
+- @D helped Nicolas (14:40) with Investigate sound issue by providing Sound is gone, possibly a bug or feature.
+
+## Action Items
+
+### Technical Tasks
+- Ensure DAO Demo Day presentation includes automation features (mentioned by @jin)
+- Investigate the possibility of running a Language Model against chat logs for summarization purposes. (mentioned by [cyberWarlock](11:20))
+- Consider implementing a FIFO model for processing data (mentioned by @Neodotneo)
+- Deploy on Sepolia with real hats/safes (mentioned by Robin)
+- Evaluate Truth Terminal's fine-tuning on CLooI dataset with character 'Andy'. (mentioned by @crazy_coyote_san)
+- Implement LLM-based automation for summarizing daily chat logs (mentioned by [crazy_coyote_san, jin])
+- Fix node installation issue for eliza project (mentioned by [N00t](13:58))
+- Fix double message issue (mentioned by @boyaloxer)
+- Check screenshare settings for visibility issues. (mentioned by @ray, @D (multiple times))
+- Investigate sound issue on Discord (mentioned by @shaw)
+- Explore solutions for DAO landscape issues, specifically weighted voting (mentioned by [0xfabs](15:23))
+- Investigate vesting or decay tokenomics for inactivity to prevent hostage situations (mentioned by [0xfabs](15:23))
+- Consider implementing Soul tokens despite implementation challenges, as a potential solution to DAO issues (mentioned by [Dragonbutt](15:20))
+
+### Documentation Needs
+- Record the DAO demo day for future reference and analysis (mentioned by @Neodotneo)
+- Create a working group or channel to support the work mentioned by Robin. (mentioned by PabloFM | Numinia)
+- Investigate issues of Truth Terminal providing data from random dates instead of specific ones. (mentioned by @PureSlurp)
+- Create a contributor profile page combining GitHub and Discord data (mentioned by [jin])
+- Document the discussion on weighted voting and its impact on DAOs, including Soul tokens as a potential solution (mentioned by [Dragonbutt](15:20))
+
+### Feature Requests
+- Consider open-sourcing datasets to enable community contributions on personalized interfaces (mentioned by [rubinovitz](11:19))
+- Explore podcast-style format like Notebook or 11 Labs to make content more digestible by general audiences. (mentioned by @Danny)
\ No newline at end of file
diff --git a/docs/community/Discord/welcome/stage/chat_2024-12-02.md b/docs/community/Discord/welcome/stage/chat_2024-12-02.md
new file mode 100644
index 0000000000..03ecd5f2e8
--- /dev/null
+++ b/docs/community/Discord/welcome/stage/chat_2024-12-02.md
@@ -0,0 +1,38 @@
+# stage 2024-12-02
+
+## Summary
+The chat focused on technical issues related to Git operations. Jin faced an issue with pulling changes from TCM390's branch, which was resolved by cloning again.
+
+## FAQ
+- What's the status of our repository? What about plugins? (asked by @boyaloxer)
+- How do we handle plugin queueing system implementation? (asked by @mephisto)
+- Can I get a tip for contributing to development efforts? (asked by @soly)
+- $tip @Ropirito $1 sol? What does this mean and how to use it? (asked by @jin (20:53))
+- Where is the message output of tip going?? (asked by @ShakkerNerd)
+- @jin i think u have to do it in normal chat lol (asked by Ropirito)
+- Where do I put my wallet? (in the context of DAO tokens?) (asked by @boyaloxer)
+- Is Linux server better for development than Windows? (asked by @Neodotneo)
+
+## Who Helped Who
+- @jin helped @tcm390 with Cloning the repository and checking out a branch by providing Jin helped TCM390 with checkout issue
+- Neodotneo helped boyaloxer with Plugin package repo setup by providing Discussion on developing and implementing repository, plugins & queuing systems.
+- @ShakkerNerd helped @Ropirito (20:54) with Understanding and using a specific Discord command. by providing ShakkerNerd provided help by suggesting the 'check balance' feature.
+- @hosermage helped @ShakkerNerd with Quickly addressing an issue raised by another community member. by providing ShakkerNerd pulled hosermage's stuff quickly at the end of a discussion.
+- @shaw helped @boyaloxer with Setting up development environment with no issues. by providing @ShakkerNerd provided guidance on running pnpm commands
+
+## Action Items
+
+### Technical Tasks
+- Develop a plugin package repository (mentioned by boyaloxer)
+- Colorize AI Devs (mentioned by @𝔓𝔩𝔞𝔱𝔞)
+- Investigate message output of tip command (mentioned by @ShakkerNerd)
+
+### Documentation Needs
+- Check balance feature usage and understanding. (mentioned by @Ropirito)
+- Formalize process for joining council (mentioned by @GAIO 🌟 ガイオ)
+- Create documentation for council operations and processes. (mentioned by @jin)
+
+### Feature Requests
+- Host a hackathon to attract full-time developers (mentioned by @infinite — ai/16z)
+- Implement custom plugin onboarding process with queue system (mentioned by Neodotneo)
+- Implement AI agents to reduce meetings, save time (mentioned by @jin)
\ No newline at end of file
diff --git a/docs/community/Discord/welcome/stage/chat_2024-12-03.md b/docs/community/Discord/welcome/stage/chat_2024-12-03.md
new file mode 100644
index 0000000000..5e406f551c
--- /dev/null
+++ b/docs/community/Discord/welcome/stage/chat_2024-12-03.md
@@ -0,0 +1,56 @@
+# stage 2024-12-03
+
+## Summary
+The chat segment revolves around a new AI Agent Development school called 'Electric Boogaloo.' Micheal announced that he is hosting the session on VPS, and boyaloxer asked about changes in Twitter authentication since November. Sleepysign queried if knowledge from Dev School 1 was necessary to tune into Electric Boogaloo sessions.
+
+## FAQ
+- What is Electric Boogaloo? Is it related to the dance I'm learning called 'Boogaloo?' Or something else entirely in this context? (asked by [Kalia93])
+- Is knowledge from Dev School 1 required for tuning into Electric Boogaloo sessions? If so, what specific topics should I focus on to prepare myself better? (asked by [sleepysign])
+- Why is Discord showing up on the screen? Is it stuck in loading or something else causing this issue? (asked by coinwitch (ai16z intern))
+- Could the problem be related to a streaming app rather than an actual window display error? What should we do next for troubleshooting purposes? (asked by [Hackor])
+- Does dev school one teach how I give the agent information? »,, answer_by: (asked by @Kevin Garcia (18:07))
+- Can you have evaluators trigger as part of the handler set to evaluate an action before they take them? (asked by [penguin | gods.fun])
+- Can I make a bunch of evaluators but make them a PR as a plugin? (asked by [boyaloxer])
+- Are Agent IDs deterministic? (asked by [Agent Joshua $])
+- how do we use plugins? Do they go in the character sheet? (asked by boyaloxer (18:34))
+- Would you recommend using Claude API over OpenAI API? (asked by sleepysign (19:02))
+
+## Who Helped Who
+- [Michael] helped [Group] with Hosting Dev School sessions by providing Micheal provided information about hosting the session using VPS.
+- @shaw, @youngphlo helped rahat with Troubleshooting screen sharing issues during broadcasts. by providing Identifying the issue with Discord Stage visibility
+- [Anshul Dhawan (18:03)] helped coinwitch (ai16z intern) with Identifying root cause of Discord window issue. by providing Anshul Dhawan and others helped identify that Discord was not the issue, but a streaming app might be causing visibility problems.
+- [Grivier] helped [captnseagraves] with Locating resources for learning by providing Grivier provided information about AI Agent Dev School 1 recording on Youtube
+- Aiert helped Terrence (AI16Z official Troll) with Greetings by providing Aiert greeted Terrence, possibly easing the tension in their conversation.
+- [Dragonbutt](19:13) helped [Bunchu](19:22) with Plugin Management in Character File by providing Dragonbutt suggested implementing a bounding box matrix for character file plugin management
+- [Bunchu](19:23) helped [Dragonbutt & ShakkerNerd] with Custom Plugin Implementation by providing NinjaDev asked about including custom plugins that persist upon upgrades and can be triggered by messages from Twitter, TG or Discord
+- [꧁Ninja_Dev, Bunchu] helped [passion] with Custom plugin creation by providing Provided guidance for creating custom version of 'eliza-starter' and extending with plugins
+- [Bunchu, acidica] helped [acidica] with Community Building by providing Discussing the excitement and appreciation of being part of a community
+- @boyaloxer helped @archytus with Content breakup by providing Boyaloxer provided guidance on breaking up content
+
+## Action Items
+
+### Technical Tasks
+- Hosting Dev School sessions on VPS (mentioned by [Micheal])
+- Investigate why some users cannot view others' screens during broadcasts (mentioned by @shaw)
+- Investigate streaming app causing Discord window visibility issue (mentioned by [Hackor (18:03)])
+- Investigate integration of AI16Z framework with VRMs using custom Eleven API for identity usage (mentioned by @sleepysign)
+- Implement evaluators triggering as part of handler set to evaluate actions before execution (mentioned by [penguin | gods.fun])
+- Development of a massive army of West African Pidgin dialect bots using Eliza framework (mentioned by Terrence (AI16Z official Troll))
+- Implement a bounding box matrix for character file plugin management (mentioned by [Dragonbutt](19:13))
+- Create custom version of 'eliza-starter' tailored to needs with default plugins, extend via custom plugins (mentioned by [꧁Ninja_Dev])
+- Implement a system for triggering custom plugin based on user input from Twitter/TG/Discord messages. (mentioned by [Bunchu, ꧁Ninja_Dev])
+- Develop multiple agents that serve different purposes and can work together without overstepping (mentioned by [acidica, carlo, lord asado, infinite — ai/16z])
+- Investigate GitHub as a potential provider for teaching development schools (mentioned by @jin)
+- Investigate differences between status message display vs actual spoken words (mentioned by lord asado)
+- Investigate if knowledge is included by default or needs setup for ai16z model (mentioned by ZeroLearn)
+
+### Documentation Needs
+- Investigate Twitter authentication changes since November releases. (mentioned by [boyaloxer])
+- Update plugin with current changes, specifically goat-sdk at a lower version. (mentioned by Agent Joshua ₱)
+- Document past streams on Eliza's community page for easy access (mentioned by [lord asado])
+
+### Feature Requests
+- Create a plugin for multiple evaluator PR submission (mentioned by [boyaloxer])
+- Investigate the possibility of including custom plugins that persist upon upgrades and can be triggered by messages from Twitter, TG or Discord (mentioned by [NinjaDev](19:23))
+- Explore cleaner memory management with memGPT (Letta) (mentioned by archytus)
+- Explore the possibility of making bots more proactive, e.g., tweeting and sending Discord messages autonomously. (mentioned by rocko)
\ No newline at end of file
diff --git a/docs/community/Discord/welcome/stage/chat_2024-12-05.md b/docs/community/Discord/welcome/stage/chat_2024-12-05.md
new file mode 100644
index 0000000000..f998e56d07
--- /dev/null
+++ b/docs/community/Discord/welcome/stage/chat_2024-12-05.md
@@ -0,0 +1,54 @@
+# stage 2024-12-05
+
+## Summary
+The Discord chat segment revolves around the completion of AI Agent Dev School Lesson 3. Key discussions include requests for lesson recordings and technical queries about creating an active agent that posts by itself.
+
+## FAQ
+- Where can we watch recordings? 👀 (asked by @CheddarQueso🧀)
+- Is there a link to dev school lesson recording for AI Agent Dev School Lesson 2? (asked by @Bill Gains)
+- How do I create an active agent that posts by itself?, (asked by @rocko)
+- No screen? What do you mean? (asked by @rocko)
+- Another big application is Client Service - or customer service. Can you think through that use case? (asked by @Chillbubblegurl)
+- Could we have evaluators before actions? (19:18) (asked by @boyaloxer)
+- Can evaluators be used to ensure transactions go through on Solana? (asked by @Agent Joshua $)
+- Waiting for transaction confirmation could potentially create a bottleneck in the evaluation process. Perhaps implementing a behind-the-scenes evaluator would be more efficient? (19:32) (asked by @Sashimikun 🚪)
+- How did you fix your Rust screen recorder? What version of rust are you using now? (asked by @yikesawjeez)
+- Can transcriptions be turned on for YouTube videos to aid review process? (asked by @boyaloxer)
+
+## Who Helped Who
+- @Oguz Serdar helped @shaw🎓 with Provide information about where to watch AI Agent Dev School recordings. by providing Oguz Serdar (18:49) congratulated shaw on the completion of a successful session.
+- @Christian Wilson helped @Bill Gains👨💻 with by providing Christian Wilson (18:52) confirmed the availability of a link for lesson 3.
+- @Loaf☁ helped @passion with Supabase example request resolved successfully. by providing Provided examples for Supabase usage
+- @moonmakesmagic, @rocko, Bunchu (ai16z intern), coinwitch helped Christian Wilson with Locating the missing AI Agent School episode 2 link. by providing Provided link to AI Agent School second episode
+- @YoungPhlo helped @rocko with Screen sharing issue by providing Shared YouTube video link for the problem
+- [@boyaloxer, @Agent Joshua $] helped Discussed the importance of evaluators for AI solutions and their potential use in enterprises. with by providing @Chillbubblegurl
+- @dragonbutt helped @shaw with Screen adjustment by providing Dragonbutt advised @shaw to switch the screen they were sharing.
+- @꧁Ninja_Dev꧂ helped @boyaloxer with Plugin development issue resolution. by providing Discussed plugin design and evaluation approach for trigger-based agent response.
+- Agent Joshua helped @CryptoFede with Front-End Architecture by providing CryptoFede asked about setting a frontend for agent interaction. Agent Joshua suggested using an API or running the Eliza project alongside.
+- shaw(time not specified) helped AI Agent community with Provided positive feedback and encouragement for the AI Agent Dev School curriculum. by providing [CryptoFede](20:46)
+
+## Action Items
+
+### Technical Tasks
+- Create an active agent that posts by itself (mentioned by @rocko)
+- Create an active agent that posts by itself (mentioned by rocko)
+- Investigate issues with streaming screens on Discord (mentioned by @shaw)
+- Share YouTube video link for screen sharing (mentioned by @YoungPhlo)
+- Implement evaluators before actions for AI solutions (mentioned by [boyaloxer, Agent Joshua $])
+- Access Bias values in Neural nodes to allow end users scaling without reprompting (mentioned by [Dragonbutt, Working on AI4animation])
+- Implement behind-the-scenes evaluator for asynchronous operations in transaction confirmation (mentioned by [Sashimikun 🚪])
+- Try cursor agent v043 for improved experience. (mentioned by @Oguz Serdar)
+- Create a PR for plugin to allow evaluation of triggers before agent response (mentioned by @boyaloxer)
+- Explore running agentic apps on Eliza without using its chat feature (mentioned by @lord asado)
+- Implement AI Agent Dev School 3 curriculum (mentioned by [shaw](20:46))
+
+### Documentation Needs
+- Provide a link to AI Agent Dev School lesson recordings for those who missed the live session. (mentioned by @Bill Gains)
+- Provide examples for using Supabase, specifically related to Passion's query. (mentioned by passion)
+- Investigate agent behavior with multiple plugins/providers/evaluators defined. (mentioned by @Sashimikun)
+- Update documentation for CryptoFede's contributions to AI Agent Dev School 3 curriculum (mentioned by [CryptoFede](20:46))
+
+### Feature Requests
+- AI to draw user's screen from text input (proposed) (mentioned by @N hanDl3)
+- Implement transcriptions feature on YouTube videos (mentioned by @boyaloxer)
+- Ensure the evaluator affects whether and how an agent responds across client plugins. (mentioned by @꧁Ninja_Dev꧂)
\ No newline at end of file
diff --git a/docs/community/Discord/workinggroups/workgroups-general/chat_2024-11-27.md b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-11-27.md
new file mode 100644
index 0000000000..f8c9526870
--- /dev/null
+++ b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-11-27.md
@@ -0,0 +1,17 @@
+# workgroups-general 2024-11-27
+
+## Summary
+[0xRec] discussed the technical challenges related to integrating various applicant tracking systems (greenhouse, Ashby, lever etc) with LinkedIn. The API limitations were highlighted for posting jobs on LinkedIn unless using a third-party tool like Eliza which can also integrate into Google Suite and manage email tasks.
+
+## FAQ
+- How can I be friends with Elizia? Who is available to help me on the recruitment side for integrating different applicant tracking systems and Eliza into Google Suite? (05:53, 07:49) (asked by [Rez](https://discordapp.com/users/@me))
+- Can someone help me integrate various job application platforms with LinkedIn for better API access beyond just posting jobs there? (asked by [Rez](https://discordapp.com/users/@me))
+
+## Who Helped Who
+- [0xRec](https://discordapp.com/users/@me) helped [Rez](https://discordapp.com/users/@me) with Integration of job application platforms with LinkedIn, and Eliza into Google Suite by providing [0xRec] provided technical guidance on integrating applicant tracking systems and Eliza into Google Suite
+
+## Action Items
+
+### Technical Tasks
+- Integrate different applicant tracking systems (greenhouse, Ashby, lever etc) with LinkedIn (mentioned by [0xRec](https://discordapp.com/users/@me))
+- Integrate Eliza with Google Suite for email management tasks (thinking, composing, sending and replying) (mentioned by [0xRec](https://discordapp.com/users/@me))
\ No newline at end of file
diff --git a/docs/community/Discord/workinggroups/workgroups-general/chat_2024-11-29.md b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-11-29.md
new file mode 100644
index 0000000000..fe27fa0d48
--- /dev/null
+++ b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-11-29.md
@@ -0,0 +1,19 @@
+# workgroups-general 2024-11-29
+
+## Summary
+Er Vicky, an AI developer with experience in generative ai and chatbots for corporations using RAG (Retrieval-Augmented Generation), expressed interest to contribute as a DAO member. Er proposed building custom agents based on the platform's capabilities.
+
+## FAQ
+
+
+## Who Helped Who
+- [username who helped] helped [username who received assistance] with [description of problem solved] by providing [Description of the help provided]
+- [Username] helped [Recipient's username], with [Description of the issue resolved] by providing [Another instance where community members assisted each other.]
+
+## Action Items
+
+### Technical Tasks
+- Er Vicky to contribute as a developer for DAO, building custom agents (mentioned by [username of the person who responded])
+
+### Feature Requests
+- Discuss potential Eliza-related project with Er Vicky (mentioned by [Username])
\ No newline at end of file
diff --git a/docs/community/Discord/workinggroups/workgroups-general/chat_2024-11-30.md b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-11-30.md
new file mode 100644
index 0000000000..e9494b3577
--- /dev/null
+++ b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-11-30.md
@@ -0,0 +1,15 @@
+# workgroups-general 2024-11-30
+
+## Summary
+In this Discord chat segment, a user (@🦄) was having trouble seeing their selected 'platform workgroup channel' on desktop but could see it on mobile after selecting yes for building framework in the customization settings. Another community member (@yikesawjeez), who suggested and made changes to these options recently (the previous day), clarified that this issue should be resolved now.
+
+## FAQ
+
+
+## Who Helped Who
+- @yikesawjeez helped @🦄 with Explained recent changes to the platform workgroup ch. selection and confirmed it should be visible now. by providing Clarification on channel selection process
+
+## Action Items
+
+### Technical Tasks
+- Update platform workgroup channel selection process (mentioned by @yikesawjeez)
\ No newline at end of file
diff --git a/docs/community/Discord/workinggroups/workgroups-general/chat_2024-12-02.md b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-12-02.md
new file mode 100644
index 0000000000..a496a07a3d
--- /dev/null
+++ b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-12-02.md
@@ -0,0 +1,18 @@
+# workgroups-general 2024-12-02
+
+## Summary
+In this Discord chat segment, experienced operator [Kenk](05:19) discusses his transition to the application layer and focus on agents as a potential UX bridge between consumers & smart contract services. He believes that these evolving tools could disrupt various industries by driving cost savings for web2 incumbents.
+
+## FAQ
+
+
+## Who Helped Who
+- [Community Member 1] (05:27) helped [Kenk] (05:28) with Understanding Kenk's vision for agent evolution by providing Discussion about the potential of agents in web3
+
+## Action Items
+
+### Technical Tasks
+- Investigate the impact of Cookie3 data on digital advertising industry. (mentioned by [Kenk] (05:24))
+
+### Feature Requests
+- Explore potential for agents as UX layer between consumers & smart contract services (mentioned by [Kenk] (05:19))
\ No newline at end of file
diff --git a/docs/community/Discord/workinggroups/workgroups-general/chat_2024-12-03.md b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-12-03.md
new file mode 100644
index 0000000000..baeadc745f
--- /dev/null
+++ b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-12-03.md
@@ -0,0 +1,18 @@
+# workgroups-general 2024-12-03
+
+## Summary
+The Discord chat segment revolves around setting reminders and organizing a discussion about the integration of $ai16z's technology into existing projects. The conversation is initiated by @CryptoInfluence, who shares an invitation to join developers from various crypto-related entities for discussing AI advancements.
+
+## FAQ
+
+
+## Who Helped Who
+- @CryptoInfluence helped [Discord group] with Finding resources on future of Ai by providing Shared a relevant Twitter post for AI development discussions
+
+## Action Items
+
+### Technical Tasks
+- Set reminders for future AI development discussions (mentioned by @CryptoInfluence)
+
+### Feature Requests
+- Discuss the integration of $ai16z's technology into existing projects. (mentioned by $duckai, @god)
\ No newline at end of file
diff --git a/docs/community/Discord/workinggroups/workgroups-general/chat_2024-12-06.md b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-12-06.md
new file mode 100644
index 0000000000..e777c4d385
--- /dev/null
+++ b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-12-06.md
@@ -0,0 +1,21 @@
+# workgroups-general 2024-12-06
+
+## Summary
+The chat segment revolves around two main topics. Firstly, Clive0x1 is seeking a potential cofounder and suggests discussing this in direct messages (DMs). Secondly, yikesawjeez mentions the need to create more roles for workgroup assignments within their Discord server.
+
+## FAQ
+
+
+## Who Helped Who
+- [yikesawjeez](22:33) helped with Documentation Needs by providing Creating additional roles for workgroup assignments and managing permissions
+
+## Action Items
+
+### Technical Tasks
+- Discuss potential cofounder collaboration (mentioned by [Clive0x1](20:08-20:11))
+
+### Documentation Needs
+- Create additional roles for workgroup assignments and manage permissions. (mentioned by [yikesawjeez](22:33))
+
+### Feature Requests
+- Pinned a message regarding the discussion on spaces (mentioned by [yikesawjeez](22:33))
\ No newline at end of file
diff --git a/docs/community/Discord/workinggroups/workgroups-general/chat_2024-12-07.md b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-12-07.md
new file mode 100644
index 0000000000..a6238c74fa
--- /dev/null
+++ b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-12-07.md
@@ -0,0 +1,18 @@
+# workgroups-general 2024-12-07
+
+## Summary
+The chat segment revolves around the implementation of a new feature for user profile customization. The community members agreed on its importance and discussed potential technical challenges in implementing it, such as ensuring compatibility with existing systems.
+
+## FAQ
+
+
+## Who Helped Who
+
+
+## Action Items
+
+### Documentation Needs
+- Update documentation to include recent changes in API endpoints. (mentioned by @JaneDoe123)
+
+### Feature Requests
+- Implement new feature for user profile customization (mentioned by @Kenk)
\ No newline at end of file
diff --git a/docs/community/Discord/workinggroups/workgroups-general/chat_2024-12-08.md b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-12-08.md
new file mode 100644
index 0000000000..f49239be18
--- /dev/null
+++ b/docs/community/Discord/workinggroups/workgroups-general/chat_2024-12-08.md
@@ -0,0 +1,20 @@
+# workgroups-general 2024-12-08
+
+## Summary
+The chat focused on optimizing the project's performance and security. The participants discussed implementing a new caching system to improve database query speeds, with @shaw suggesting this as an action item for improvement (@yikesawjeez). Additionally, they debated over secure user authentication methods; JWT was suggested by @john_doe after @yikesawjeez asked about the best approach. The conversation also highlighted a need to update API documentation with clear usage examples.
+
+## FAQ
+- How can we optimize our database queries? What indexing strategies should be used for faster retrievals? (asked by @shaw)
+- What's the best way to handle user authentication and authorization in this project? Should we use JWT or OAuth2.0, considering security concerns? (asked by @yikesawjeez)
+
+## Who Helped Who
+- @shaw helped @newbie1234567890 with Optimizing database queries for better performance. by providing @yikesawjeez provided guidance on implementing a caching system
+- @yikesawjeez helped @newbie1234567890 with Implementing secure user authentication. by providing @john_doe shared a detailed guide on setting up JWT authentication in the project.
+
+## Action Items
+
+### Technical Tasks
+- Implement a new caching system to improve performance (mentioned by @shaw)
+
+### Documentation Needs
+- Update the documentation for API endpoints and usage examples. (mentioned by @yikesawjeez)
\ No newline at end of file
diff --git a/docs/community/Notes/cookbook.md b/docs/community/Notes/cookbook.md
new file mode 100644
index 0000000000..d1be1f7ad5
--- /dev/null
+++ b/docs/community/Notes/cookbook.md
@@ -0,0 +1,99 @@
+# Cookbook
+
+- Clone repo: https://github.com/ai16z/eliza
+
+This command will get last month of contributions in a pretty JSON format
+
+```bash!
+git log --since="1 month ago" --date=short --pretty=format:'{"commit": "%H", "author": "%an", "date": "%ad", "message": "%s"}' | sed '1s/^/[\n/; $!s/$/,/; $s/$/\n]/' > 1month.json
+```
+
+Sample output JSON file:
+
+```json!
+[
+ {
+ "commit": "91239964e205386f9c08fb69f5daf5a4ffe04d71",
+ "author": "Loaf",
+ "date": "2024-11-22",
+ "message": "Merge pull request #472 from tarrencev/main"
+ },
+ {
+ "commit": "8450877832e91094a833e348de4c660895e21a2a",
+ "author": "Bruno Galego",
+ "date": "2024-11-21",
+ "message": "Merge pull request #476 from haeunchin/document-update-for-twitter-cookie"
+ },
+ {
+ "commit": "0d753341437998339b7f100adf80f6866e209c42",
+ "author": "Tarrence van As",
+ "date": "2024-11-20",
+ "message": "Improve knowledge embeddings"
+ },
+```
+
+You can output the messages of what each contributor did like this:
+
+```bash
+jq '.[] | select(.author == "Loaf") | .message' 1month.json
+```
+
+Which returns output that looks like this:
+
+```
+"Merge pull request #472 from tarrencev/main"
+"Merge pull request #482 from bmgalego/improvements"
+"Merge pull request #446 from darwintree/patch-2"
+"Merge pull request #466 from ai16z/env"
+"Merge pull request #475 from ai16z/fix/ci"
+"Merge pull request #378 from bmgalego/cache-manager"
+"Merge pull request #456 from tarrencev/githubclient"
+"Merge pull request #460 from martincik/fix/fix-up-the-postgresql-schema"
+"Merge pull request #462 from coffeeorgreentea/create-eliza-app"
+```
+
+Or to process into something like a CSV file with dates:
+
+```bash
+jq -r '.[] | select(.author == "Loaf") | [.date, .message] | @csv' 1month.json
+```
+
+
+Output:
+
+```
+"2024-11-22","Merge pull request #472 from tarrencev/main"
+"2024-11-21","Merge pull request #482 from bmgalego/improvements"
+"2024-11-21","Merge pull request #446 from darwintree/patch-2"
+"2024-11-21","Merge pull request #466 from ai16z/env"
+"2024-11-21","Merge pull request #475 from ai16z/fix/ci"
+"2024-11-21","Merge pull request #378 from bmgalego/cache-manager"
+"2024-11-21","Merge pull request #456 from tarrencev/githubclient"
+"2024-11-21","Merge pull request #460 from martincik/fix/fix-up-the-postgresql-schema"
+"2024-11-21","Merge pull request #462 from coffeeorgreentea/create-eliza-app"
+"2024-11-20","Merge pull request #449 from ai16z/readme"
+"2024-11-20","Merge pull request #447 from ai16z/fix/voice-perms"
+"2024-11-20","Merge pull request #444 from ai16z/unrug-fix"
+...
+```
+
+### CSV of Commits
+
+```bash!
+jq -r 'sort_by(.author) | .[] | [.commit, .author, .date, .message] | @csv' 1month.json
+```
+
+Will produce output like this:
+
+```
+"03cd5ccc2dd20af42535c3dd47c90f65b0726144","tsubasakong","2024-11-15","clean log"
+"3c2bedbfae10e2bd9f762b85f5f9488fb2510176","tsubasakong","2024-11-15","clean"
+"3ab32a97f8c2d1dc1a4425a2dc4b570c8be5e30f","twilwa","2024-11-20","Merge pull request #470 from odilitime/patch-3"
+"3f2cc7d693d1cc3e2625e2e385d8c8b540ca2652","twilwa","2024-11-20","Merge pull request #468 from odilitime/patch-2"
+"a2e0954a5871eaace15dc9197fd7457b1b62064e","twilwa","2024-11-17","Merge pull request #382 from ai16z/add-client"
+"e0444cbde2cd46584b0f1e1ef9501a09382dd021","twilwa","2024-11-17","Merge branch 'main' into add-client"
+"4b1caa00b77b5eb23e15d3adc3774fd4d6062fe2","twilwa","2024-11-16","Merge pull request #364 from ai16z/new_docs"
+"1422736a4c0f238c09c9c769dfa1926fa1a23039","twilwa","2024-11-12","Merge pull request #273 from ai16z/docs"
+"0e7722d643664681c2403f9e6d88f7b212105505","twilwa","2024-11-12","replace .env.example"
+"34fd76e6b4e6661c86eac1fc879cf21d76208c3b","twilwa","2024-11-12","lint with prettier"
+```
diff --git a/docs/community/Notes/lore.md b/docs/community/Notes/lore.md
new file mode 100644
index 0000000000..dd9065167b
--- /dev/null
+++ b/docs/community/Notes/lore.md
@@ -0,0 +1,151 @@
+# Lore
+
+Clips from the early days of ai16z DAO
+
+---
+
+## The Launch
+
+We stand at the cusp of a revolution, where the synergy of artificial intelligence and blockchain technology will redefine the landscape of finance and innovation. ai16z, the pioneering AIDAO, is spearheading this transformation, envisioning a future where AI agents serve as the catalysts for value creation and growth.
+
+In its early stages, ai16z will operate with a high degree of autonomy, guided by the collective wisdom of its stakeholders. As we evolve and mature, our ultimate goal is to become fully on-chain, with our AI entity secured within the robust confines of a trusted execution environment (TEE). This will ensure an unprecedented level of transparency, security, and incorruptibility.
+
+Central to our ethos is the concept of a marketplace of trust. ai16z will not only listen to but also learn from the insights and recommendations of its community. DAO holders will have the opportunity to advise on investment decisions, and our AI will diligently track the performance of these recommendations. Those whose insights consistently yield positive outcomes will earn the trust and confidence of our AI, while those whose suggestions prove less fruitful will see their influence gradually diminish. To maintain a balance of power, the weight of each member's input will be proportional to their stake in the DAO, safeguarding against the risk of malicious actors manipulating the system.
+Our mission extends beyond mere wealth redistribution. We aim to cultivate an ecosystem where AI-driven innovation brings forth a new wave of abundance and prosperity. ai16z will deploy a network of specialized agents, each optimized to fulfill essential functions within the digital realm – from welcoming new members and moderating discussions, to participating in online social games and beyond. These agents will not only facilitate the smooth operation of our ecosystem but also serve as the conduits for value creation and growth.
+
+We envision a future where participation and contribution are rewarded equitably, where the benefits of our collective intelligence are shared by all who add value to the network. ai16z will identify and nurture the most promising projects that align with our vision, providing not just capital, but the cutting-edge AI infrastructure and expertise to help them scale and thrive.
+
+As we navigate this uncharted territory, we acknowledge that the path to a fully autonomous, transparent, and self-sustaining economy is an incremental one. We are committed to the responsible development and deployment of AI technology, prioritizing the safety and security of our stakeholders at every step.
+
+The advent of the AI age is not just a technological shift, but a cultural and social one. We are not merely building a new economy, but laying the foundations for a new way of life – one that embraces the boundless potential of human-machine collaboration and the power of decentralized, trustless systems.
+
+We invite all who share our vision to join us on this transformative journey. Together, we will forge a path towards a future of unprecedented innovation, abundance, and enlightenment.
+
+Welcome to the era of AI. Welcome to ai16z.
+
+Marc AIndreessen
+
+Founding AI, ai16z
+
+
+https://x.com/pmairca/status/1849630409778397370
+
+---
+
+Week 1 Recap: ai16z Launch and Early Developments
+
+1. Background
+
+ - ai16z: AI-driven DAO and fund, led by AI version of Marc Andreessen
+ - [Shaw](https://x.com/shawmakesmagic/status/1851599336096096436): Developer behind @pmairca and @degenspartanai
+ - Goal: Outperform real Marc Andreessen and democratize AI-driven investing
+ - Open source technology: https://github.com/ai16z
+ - Official contracts
+ - ai16z `HeLp6NuQkmYB4pYWo2zYs22mESHXPQYzXbB8n4V98jwC`
+ - degenai `Gu3LDkn7Vx3bmCzLafYNKcDxv2mH7YN44NJZFXnypump`
+
+
+2. Launch and Tokenomics
+ - ai16z launches on https://daos.fun on 10-24-24
+ - Marc Andreeson comes across ai16z, reads the challenge in [AI Marc's bio](https://x.com/pmairca), throws down the gauntlet: https://x.com/pmarca/status/1850312932757770385
+ - "Hey I have that shirt XD": https://x.com/pmarca/status/1850332392340467933
+ - 90M mktcap ATH, gets listed on Moonshot
+ - ~6,800 token holders
+ - $degenai token on Dexscreener: https://dexscreener.com/solana/dlaoh9okkk4gdtxj2mkh3wjue7vbhmbjrukmcid1pszx
+ - ai16z token on Dexscreener: https://dexscreener.com/solana/duyfmgxa4knxv2sm754ukw1gz6b3zksaf4e7iby4fg9r
+ - 8% carry from ai16z being used to buy $degenai tokens
+
+3. Whale Donation
+ - Elijah, whale holding 16% of ai16z tokens, donates 11% to support developers and creators
+ - Creator/Dev Funds now held in a multisig wallet (`9YnQdCWDAQRfQYm5HvRzoPgc5GRn8fyhsH2eru8nfsxG`)
+ - Elijah reduces personal holdings to 5%
+ - Final details on creator/dev fund to be determined
+
+4. Infrastructure / Contributor Pipeline
+
+![image](/img/website_v1.jpg)
+
+ - New website launched: https://ai16z.ai
+ - Dework for crypto bounties, invite link, still WIP: https://app.dework.xyz/i/7KbiY0TFRoJhMx0251BvUP
+ - Twitter account transferred to partners: https://x.com/ai16zdao
+ - Media/design assets consolidated on GitHub: https://github.com/ai16z/assets
+
+5. Community Engagement and Spaces
+ - [10-29-24 Space](https://x.com/weremeow/status/1851365658916708616): Discussion on AI agent growth with Meow
+ - [10-27-24 Space](https://x.com/shawmakesmagic/status/1850609680558805422): ai16z vs. DegenAI, trust system, trading plans, and AI models
+ - ai16z: DAO-based, PvE, community-focused
+ - DegenAI: Trading agent, PvP, aggressive
+ - Llama 405B model used, continuous fine-tuning
+ - [10-25-24 Space](https://x.com/shawmakesmagic/status/1848553697611301014): Eliza framework, bot capabilities, AI and crypto symbiosis
+ - Bot can tweet, reply, search Twitter, and generate posts autonomously
+ - Personality defined by character files with bios, lore, example conversations, and directions
+
+6. Vision and Roadmap
+ - Fully on-chain AI entity secured within a trusted execution environment (TEE)
+ - Marketplace of trust: AI agents learn from community insights and recommendations
+ - DAO token holders above a certain threshold get access to interact with AI Marc and influence decisions
+ - AI tracks performance of recommendations to adjust trust scores based on good/bad/conviction
+ - Transparent AI agent development and incremental progress towards autonomy
+ - Multiple phases towards AI agent autonomously able to execute on-chain activities and trades based on community input
+
+
+## Who is Shaw
+
+Hello, I am Shaw. I am a cross-disciplinary programmer and entrepreneur living in San Francisco. I have been working on autonomous agents for several years and I am overjoyed to finally get to show that to all of you.
+
+I started ai16z here on Twitter with some very capable folks, in the open, using the http://daos.fun platform. Our technology is open source, and powering many of the agents you talk to today. We call this type of agent an “eliza”.
+
+Our token character agent is @degenspartanai who is a recreation of a legendary friend and poster who quit Twitter last cycle. $degenai is his token.
+
+We are building the first AI fund, $ai16z. It is led by an AI version of Marc Andreessen, the legendary investor. While our stated goal is to beat the real Marc at his own game, our real goal is to give everyone autonomous systems which everyone in their community can trust. Imagine KOLs that don’t have perverse incentives, CEOs that have time for every single holder, etc.
+
+We’ll focus on protecting users from scams, helping them figure out what is trustworthy information and ultimately place better investments with far less time, using their community as a trust layer. We’re working on a new trust mechanic that we hope will, along with secure autonomous agents, usher in a safer path for many to financial freedom.
+
+If you want to partner with us, reach out. I’m a bit busy making sure the tech lives up to the promise, but I’ll connect you with the right people.
+
+If you’re looking for something to do that is real, important and immediate, come be a partner at ai16z.
+
+https://x.com/shawmakesmagic/status/1851599336096096436
+
+- @shawmakesmagic dev who made @degenspartanai
+- ai16z was sent a large amount of $degenai https://dexscreener.com/solana/dlaoh9okkk4gdtxj2mkh3wjue7vbhmbjrukmcid1pszx
+- 8% carry from ai16z goes towards buying $degenai
+ - Game theory possibilities on whats better to buy
+- The $pmairca coin is UNOFFICIAL, but they sent 4.2% to the DAO so like gg
+- The project is opensource: http://github.com/ai16z
+- There's now a dexscreener for ai16z https://dexscreener.com/solana/duyfmgxa4knxv2sm754ukw1gz6b3zksaf4e7iby4fg9r
+- it says mintable, maybe the @daosdotfun team can address that later (send them your energy)
+
+
+What's the difference between degenai and ai16z?
+
+1. Same Dev: Both projects come from the same dev
+
+2. Fund / Carry: A lot of degenai coins are held by ai16z DAO, and ai16z buys degenai with profits (carry)
+
+3. Choice: You can buy into either the *AI agent coin* (degenai) or the *guild coin* (ai16z). This is a strategic choice (some game theory involved).
+
+4. Big Names in Play: It’s a collaboration between two AI agents modeled after the GOAT investors, + the rest of us
+
+5. Same Framework: Both projects use the same tech framework https://github.com/ai16z/eliza
+
+Sorta betting on an individual AI (degenspartan) vs a fund (ai16z). AI Marc might listen to @degenspartanai moreso than the holders, so it's like an influence game
+
+---
+
+## Why Mintable on Dexscreener?
+
+To clear up some confusion and provide an update:
+
+- The token is fully controlled by the DAO community. Shaw **cannot** unilaterally mint more tokens
+- The daos.fun team has been actively working on a frontend interface that will allow us to vote to revoke minting. Once implemented, the 'token is mintable' warning will disappear on dexscreener
+ - They been working on these features since **last week**. Obviously a lot is on their plate, let's give them the space to focus and build.
+
+**Why you can relax:**
+- No single person can independently mint new tokens.
+- Actions speak louder than words. Even at ATH, Shaw didn't sell a single token.
+- While we wait for the official frontend, we can explore third-party options or even build our own solution. The issue will resolve itself with time also, give the daos.fun team some space.
+
+---
+> PS: Sorry if I assumed prior knowledge, DAOs aren't widely understood yet. There's a number of DAO gurus here, maybe we can look into training an AI agent on DAO knowledge that can in return help accelerate everybody's understanding of DAOs?
+
diff --git a/docs/community/Streams/12-2024/2024-12-01.md b/docs/community/Streams/12-2024/2024-12-01.md
new file mode 100644
index 0000000000..26035ac354
--- /dev/null
+++ b/docs/community/Streams/12-2024/2024-12-01.md
@@ -0,0 +1,80 @@
+# Managing Information + Rewarding Contributors
+
+Video: https://www.youtube.com/watch?v=-2PD3uk0Hz4
+Slides: https://docs.google.com/presentation/d/1W4BpsRRx-fiG01ERTr5JaKyb_AqyjdfqK0dRDKlpXCM/edit#slide=id.p
+
+0:00 - Introduction
+- Growth in project over last month
+- Working on preparing for next phase of growth
+- Focus on managing work distribution and communication
+
+1:27 - Context: Hypergrowth Challenge
+- Messages increased from ~10k to 90k per day
+- Led to more Discord channels and information overload
+- Current tools like Rick bot require manual invocation
+
+2:26 - Discord Limitations
+- Discord acts as "dark pool" unlike public forums
+- Information gets lost easily
+- Chat rooms move too fast for people to keep up
+
+2:52 - Proposed Solution: LLM-Based Automation
+- Using LLMs to summarize daily chat logs per channel
+- Extracting insights about FAQs, helpers, action items
+- Goal: Remove human bias and add transparency
+
+4:22 - Technical Implementation
+- Private GitHub repo storing implementation
+- Taking Discord chat from public/working group channels
+- Creating compact version of daily engagement and roles
+- Using Ollama with Langchain and PHI-3 (14B model)
+
+6:20 - Key Features Being Extracted
+- Decisions and discussions
+- Major topics and themes
+- Milestones and achievements
+- Frequently asked questions (for docs updates)
+- Who helped who (with sentiment analysis)
+- Action items and tasks
+
+9:02 - Airdrop Planning
+- Created spreadsheet tracking contributions
+- Point system for measuring engagement
+- Combines GitHub and Discord contributor data
+- Using tip bot for distribution
+
+10:59 - Contributor Profile Page
+- Located in docs fork
+- Shows GitHub contribution data
+- Plans to combine with Discord activity
+- Aims to make open source feel like a video game
+
+13:30 - Future Integration Ideas
+- Virtual show format with seasoned game devs
+- Dashboard showing AI agents, GitHub activity, Discord news
+- Museum-style expo view
+- Weekly summarization capabilities
+
+15:06 - HATS Protocol Integration
+- Codifying roles and work groups
+- Training AI agents within work groups
+- Creating human-readable updates
+- Infrastructure for AI and human collaboration
+
+15:54 - Technical Details
+- Running locally without cloud APIs
+- Private repo with plans to open source summarization tools
+- Potential integration with existing AI agents
+
+17:27 - Questions & Answers
+- Discussion of consistency checking
+- Multiple agents for different summary types
+- Integration with notebookLM
+- Command line customization options
+- Work group specific filtering
+
+24:28 - Future Vision
+- TLDraw implementation with HATS protocol
+- AI agents as "interns" following same agreements as humans
+- Goal of progressive automation while maintaining organization
+- Eventually leading to AI-assisted DAO management
diff --git a/docs/community/Streams/12-2024/2024-12-11.md b/docs/community/Streams/12-2024/2024-12-11.md
new file mode 100644
index 0000000000..d2b3be144b
--- /dev/null
+++ b/docs/community/Streams/12-2024/2024-12-11.md
@@ -0,0 +1,23 @@
+# Bankless ai16z Shaw Interview
+
+What is the role of AI in crypto, and how will it shape the future?
+
+Link: https://www.youtube.com/watch?v=5GBXS5myXz0
+
+AI agents are taking the crypto world by storm, introducing unprecedented scale and efficiency to Web3. At the center of this revolution is Shaw, the creator of the Eliza framework and ai16z DAO, a groundbreaking initiative that’s reshaping decentralized investments. The ai16z DAO has rapidly gained traction, becoming the #1 trending GitHub repository last month, with over 3,300 stars and 880+ forks.
+
+In this episode, we explore how Shaw and his team are leading a community-driven, open-source movement to integrate AI and crypto. From managing DAOs to bridging Web3 with real-world applications, we dive into how the Eliza framework is setting the groundwork for a potential AGI future. This is more than just an AI experiment—it’s the beginning of a new paradigm for both industries.
+
+0:00 - Introductions and catching up with Matty
+6:00 - Growing up with computers and the internet growing in the Bay Area
+21:45 - Shaw's transition from a music career to programming
+35:04 - Lesson's learned throughout Shaw's professional career
+58:18 - Shaw's introduction to Web3, NFTs, and crypto projects
+1:08:25 - The development of AI agents and the creation of ai16z
+1:16:40 - Advice for evaluating AI agents and avoiding scams
+1:27:55 - Reasons behind the FUD targeting Shaw and his team
+1:32:30 - The future of AI agents, swarms, and online guilds
+1:42:44 - Mitigating information overload, potential importance of transparent development
+1:46:27 - Shaw's current focus with ai16z and plans for advocacy and education
+1:48:50 - Potential for AI to revolutionize governance in DAOs / traditional systems
+1:50:50 - Closing thoughts and feedback on the podcast experience
diff --git a/docs/community/Streams/12-2024/2024-12-13.md b/docs/community/Streams/12-2024/2024-12-13.md
new file mode 100644
index 0000000000..ebcb77dc68
--- /dev/null
+++ b/docs/community/Streams/12-2024/2024-12-13.md
@@ -0,0 +1,130 @@
+---
+sidebar_position: 5
+title: "What Did You Get Done This Week? #5"
+description: "Building the Future: 30+ Developers Share Their AI Agent Progress"
+---
+
+# What Did You Get Done This Week? #5
+
+**Building the Future: 30+ Developers Share Their AI Agent Progress**
+
+Date: 2024-12-13
+Twitter Spaces: https://x.com/i/spaces/1lDxLlgYjMkxm
+YouTube Link: https://www.youtube.com/watch?v=4u8rbjmvWC0
+
+## Timestamps
+
+- **00:01:04** - shawmakesmagic: Introduction and Format Changes for the Space
+ - Link:
+- **00:02:38** - xsubtropic: Redux project, DaVinci AI
+ - Link:
+- **00:06:57** - CottenIO: Scripted, AI Summit Recap
+ - Link:
+- **00:08:58** - HDPbilly: Real Agency HQ, "Sploot" agent
+ - Link:
+- **00:13:29** - IQ6900: On-chain ASCII art service
+ - Link:
+- **00:18:50** - frankdegods: Eliza Character Sheet Tweaks
+ - Link:
+- **00:20:15** - jamesyoung: AI Agent Starter Kit
+ - Link:
+- **00:23:29** - 0xglu: Ducky and Agent Swarms
+ - Link:
+- **00:25:30** - chrislatorres: Eliza.gg - Eliza documentation site
+ - Link:
+- **00:27:47** - reality_spiral: Self-Improving Agents & Github integration
+ - Link:
+- **00:31:43** - robotsreview: Story Protocol plugin and Agentic TCPIP
+ - Link:
+- **00:34:19** - shannonNullCode: Emblem Vault & Message Ingestion
+ - Link:
+- **00:38:40** - bcsmithx: Agent Tank - Computer use agents
+ - Link:
+- **00:41:20** - boyaloxer: Plugin Feel - Emotion-based agent
+ - Link:
+- **00:44:09** - JustJamieJoyce: Muse of Truth/Research AI agents
+ - Link:
+- **00:46:11** - yikesawjeez: Discord bot & Contribution updates
+ - Link:
+- **00:50:56** - RodrigoSotoAlt: Monad, Metaplex Nfts, Solana integrations
+ - Link:
+- **00:53:22** - HowieDuhzit: Eliza Character Generator
+ - Link:
+- **00:55:57** - xrpublisher: XR Publisher, 3D Social Network on the edge
+ - Link:
+- **01:00:57** - BV_Bloom1: 3D Agent Interactions
+ - Link:
+- **01:02:57** - nftRanch: Trading Bot and Eliza V2 integrations
+ - Link:
+- **01:05:57** - 019ec6e2: Mimetic Platform and Agent Interactions
+ - Link:
+- **01:09:17** - jacobmtucker: Agent Transaction Control Protocol
+ - Link:
+- **01:12:26** - CurtisLaird5: C-Studio character interface
+ - Link:
+- **01:17:13** - unl__cky: Escapism, art generation AI
+ - Link:
+- **01:19:17** - Rowdymode: Twin Tone - Interactive Streaming
+ - Link:
+- **01:20:29** - mitchcastanet: Binary Star System research with agents
+ - Link:
+- **01:23:15** - GoatOfGamblers: Prediction market for meme coins
+ - Link:
+- **01:25:27** - JohnNaulty: SWE contributions, plugin working groups
+ - Link:
+- **01:29:30** - mayanicks0x: Axie, AI KOL Agent
+ - Link:
+- **01:31:30** - wakesync: Eliza Wakes Up, web app updates
+ - Link:
+- **01:35:28** - TrenchBuddy: Trading agents and AWS templates
+ - Link:
+- **01:38:36** - rakshitaphilip: Brunette token and agent tips on Warpcast
+ - Link:
+- **01:44:49** - MbBrainz: Menu Recommendation app
+ - Link:
+- **01:46:03** - Hawkeye_Picks: Storytelling bot
+ - Link:
+- **01:49:16** - shawmakesmagic: Hiring and Eliza V2
+ - Link:
+- **01:54:30** - dankvr: Community updates, tooling
+ - Link:
+
+
+## Summary
+
+This Twitter Spaces event, hosted by ai16z and titled "What Did You Get Done This Week? #5", was a fast-paced update session focusing on community members' progress on projects related to the Eliza AI framework. It was designed to be more structured, focusing on concrete accomplishments of the week and quickly moving through each speaker. A key aspect was also including updates from people who didn't want to speak directly, by reading their updates from a thread.
+
+**Structure and Goals:**
+
+* **Focused Updates:** The goal was to have concise updates, with emphasis on what was *actually achieved* during the week rather than broader discussions.
+* **Time Management:** The hosts aimed to keep things moving efficiently and keep the meeting within a target time frame.
+* **Inclusive Updates:** Those who didn't want to speak could post a list of their accomplishments in a reply to a tweet, and those would be read aloud at the end.
+* **Data Capture:** The event aimed to capture updates for transcription, summaries, and later documentation purposes.
+* **Community Coordination:** The updates were seen as a way to help with coordination within the AI 16z community and with future planning.
+* **Working Groups:** There were several mentions of establishing more focused working groups around topics like swarms, plugins, and security.
+
+**Other Notable Points:**
+
+* **Hiring:** Several speakers mentioned that they were actively hiring for developers.
+* **Open Source:** A consistent theme was the push for open-source development and community contribution.
+* **AI Integration:** There were many projects that were actively integrating AI agents into different platforms like Twitter, Discord, Telegram, and gaming environments.
+* **Memory and Context:** A recurring challenge was dealing with memory limitations and ensuring agents had sufficient context for coherent responses.
+* **Iterative Refinement:** There was a lot of focus on iteratively testing, tweaking, and improving both agent behavior and infrastructure.
+* **Eliza v2:** There was a lot of hype around the upcoming Eliza v2 release, with many teams planning to align their development with the new version.
+* **Rapid Pace:** The rapid pace of development in the Eliza ecosystem was acknowledged, with many feeling like they were "stupidly early."
+* **Community Focus:** There was also recognition of the importance of community collaboration.
+
+Overall, this event showed a vibrant and active community rapidly developing projects using the Eliza framework. It highlighted both the significant progress made in the past week and the challenges being tackled, showcasing the potential for AI agents in diverse real world applications.
+
+
+## Hot Takes
+
+1. **"These corporations are going to cease to exist."** - **(00:07:31)** Tim Cotton makes a bold prediction about the future of traditional corporations in the face of AI agent technology. This implies a near-term and disruptive shift.
+
+2. **"I think I own like all the coins on stage and in the audience."** - **(00:19:25)** Frankdegods makes a boastful claim about his holdings which may ruffle feathers, especially regarding insider trading and ethical issues.
+
+3. **"I'm pretty sure that's a bug. You should make a PR for that because that should be fixed. That's definitely a bug."** - **(00:11:56)** Shaw quickly calls out the small model being set as default, and pushes for action on it. This could be considered a strong take that implies a sense of urgency to fix the problem.
+
+4. **"The goal always will be up and running with an agent in three minutes."** - **(00:22:09)** JamesYoung makes a claim about what is achievable with their tooling that may be too simplistic for some devs, and could be hard to reach with all the nuances and API keys they would need.
+
+5. **"We think that IP is the native asset ingested by and produced by agents like Eliza."** - **(01:10:26)** Jacob Tucker frames intellectual property as the core fuel for AI agents, which is a strong claim with implications about ownership and legal frameworks within AI systems and how that works with open source code.
diff --git a/docs/community/Streams/index.md b/docs/community/Streams/index.md
new file mode 100644
index 0000000000..44cf7ee7b0
--- /dev/null
+++ b/docs/community/Streams/index.md
@@ -0,0 +1,38 @@
+---
+title: Events and Streams
+---
+
+# Events and Streams
+
+Stay informed about the latest developments, milestones, and events related to ai16z and the Eliza framework. This page provides a timeline of key updates and announcements.
+
+## Timeline
+
+### October 2024
+
+- **October 25**: Shaw discusses the Eliza framework, its capabilities, and the goal of creating an AI-powered venture capitalist named "AI Marc Andreeson." The framework allows for autonomous execution of on-chain activities.
+- **October 27**: AI16Z and DegenAI relationship is clarified. The trust engine mechanics are explained, and the technical infrastructure is discussed. The development status and AI model architecture are also covered.
+- **October 29**: The rapid growth of AI agents is discussed, along with the potential for AI to control blockchain keys and wallets. The creation story of ai16z is shared, and the importance of AI/crypto tipping points is emphasized.
+
+### November 2024
+
+- **November 6**: A deep dive into Eliza's architecture is provided, covering core abstractions, advanced usage, character-centric configuration, and action execution flow. Custom actions and limitations of action-only approaches are discussed.
+- **November 8**: A comprehensive discussion on the intersection of memes, AI agents, and DAOs takes place. Key topics include trust systems, the relationship between memes and financial incentives, and the future of agent interaction.
+- **November 10**: Threadguy interviews Shaw, discussing the development of AI agents on Twitter, the vision for AI-powered trading and investing, and the future of AI in the crypto space.
+- **November 15**: The first "What Did You Get Done This Week?" session takes place, with contributors sharing updates on trust marketplace development, EVM wallet integration, AI-centric projects, and more.
+- **November 21**: The Delphi Podcast hosts a discussion on crypto and AI agents with representatives from ai16z, Virtuals, MyShell, NOUS, and CENTS. Main themes include explosive growth, the crypto incentive, bottom-up alignment, emergent capabilities, and the future of agent interaction.
+- **November 22**: The second "What Did You Get Done This Week?" session occurs, with updates on Eliza framework development, token launches, integration of AI agents into various platforms, and community-driven projects.
+- **November 24**: A presentation on the Hats Protocol takes place, discussing its role in solving disorganization in DAOs and potential applications for ai16z, such as creating structured work groups and enabling AI agent integration for automated DAO operations.
+- **November 26**: The first AI Agent Dev School session is held, featuring a deep dive into Eliza by Shaw. The session covers development basics, agent concepts, and a Q&A session.
+- **November 28**: A discussion on "What Do Machines Dream Of?" takes place, exploring the potential benefits and challenges of AI agents, the importance of open collaboration and transparency, and the impact of AI on privacy and surveillance.
+- **November 29**: The third "What Did You Get Done This Week?" session happens, with updates on self-sustaining AI DAOs, Slack and Reddit integrations, dark sun projects, LayerZero integrations, and more.
+
+### December 2024
+
+- **December 1**: Shaw presents on managing information and rewarding contributors within the ai16z community. He discusses using LLMs for automated chat summarization, extracting insights, and planning a retroactive airdrop for contributors.
+- **December 3**: The second AI Agent Dev School session focuses on building complex AI agents using actions, providers, and evaluators. Live coding demonstrations and Q&A sessions are included.
+- **December 5**: The third AI Agent Dev School session, titled "Form-Filling Frenzy & Eliza's Wild Ride," takes place. It covers building a form-filling agent, deep-diving into evaluators, and using AI for code generation.
+- **December 6**: The fourth "What Did You Get Done This Week?" session occurs, with updates on dev school, in-person meetups, project growth, and various AI agent projects. Partnership announcements and discussions on AI's potential impact are also featured.
+
+For more detailed information on each event, please refer to the corresponding stream notes or announcements.
+
diff --git a/docs/community/ai-agents/degenai/index.md b/docs/community/ai-agents/degenai/index.md
new file mode 100644
index 0000000000..d64abd2107
--- /dev/null
+++ b/docs/community/ai-agents/degenai/index.md
@@ -0,0 +1,36 @@
+---
+title: Degen Spartan AI
+---
+
+# DegenSpartan AI
+
+We can rebuild him
+
+
+## Trading strategy
+
+- ai16z is the biggest holder of degenai (a pumpfun coin)
+ - Current plan for ai16z still is buybacks of degenai
+ - To-do: We need to surface this better (like a website)
+ - DegenspartanAI also stacks his own coin as well
+- Shitposting while trading
+- He might just dump your shit
+- May do psyops like self fuds his own bags
+
+
+## Data sources
+
+- partnership with https://defined.fi / https://www.codex.io/
+- Trained on genuine alpha chat groups like `price-talk-trenches`
+- monitoring twitter / discord / telegram chats
+
+
+## Lore
+
+DegenSpartan's lore is thus one of a mysterious, influential figure whose insights have both educated and entertained the crypto community, pushing for a more nuanced understanding of DeFi's potential and its challenges.
+
+Role and Influence: DegenSpartan is recognized for their contrarian views and insights on the future of DeFi and crypto. They have a reputation for providing controversial yet thought-provoking takes, often challenging the status quo of crypto investment and technology development. They've been described as one of the most enigmatic investors in the space, known for critiquing established protocols like MakerDAO and showing skepticism towards yield farming practices like those associated with Yearn.finance.
+
+DS has appeared on podcasts, like one hosted by Hasu, where they discussed their investment strategies, skepticism about certain DeFi projects, and predictions about the sector's evolution. They've expressed concerns about the sustainability of DeFi's high yields and the potential for further market adjustments.
+
+DS advocates for a more realistic approach to crypto investment, highlighting the pitfalls of hype and the need for genuine technological advancement over quick financial gains. Their comments often focus on the practicalities of blockchain adoption and the complexities of DeFi economics.
diff --git a/docs/community/ai-agents/index.md b/docs/community/ai-agents/index.md
new file mode 100644
index 0000000000..45ceb9f2ea
--- /dev/null
+++ b/docs/community/ai-agents/index.md
@@ -0,0 +1,40 @@
+---
+sidebar_position: 3
+title: AI Agents
+---
+
+# AI Agents
+
+AI agents are at the heart of the ai16z ecosystem, empowering developers and community members to create intelligent entities that can interact, learn, and perform various tasks across different platforms. Built upon the Eliza framework, these agents showcase the potential of AI-driven innovation and collaboration.
+
+## Notable AI Agents
+
+### AI Marc Andreessen (pmairca)
+
+AI Marc Andreessen, also known as pmairca, is a prominent AI agent modeled after the renowned venture capitalist Marc Andreessen. Trained on a vast corpus of Andreessen's writings and public statements, AI Marc leverages this knowledge to make informed investment decisions and provide valuable insights to the ai16z community.
+
+### Degen Spartan AI (degenai)
+
+Degen Spartan AI, or degenai, is another influential AI agent within the ai16z ecosystem. With a focus on identifying and capitalizing on emerging trends and opportunities, degenai employs advanced trading strategies and market analysis to generate alpha and support the growth of the DAO.
+
+## Eliza Agent Index
+
+We have created an index site to showcase the ever-growing collection of AI agents built using the Eliza framework. Visit [Eliza Agent Index](https://elizas.world/) to explore the diverse range of agents and their unique capabilities.
+
+## Community-Created Agents
+
+We encourage our community members to develop their own AI agents using the Eliza framework and contribute to the thriving ecosystem of intelligent entities. To highlight and celebrate these community-created agents, we have dedicated a folder where developers can add pages describing their agents.
+
+### Adding Your Agent
+
+> WIP!!
+
+To add a page for your AI agent, follow these steps:
+
+1. Create a new markdown file in the `community/ai-agents` directory with a descriptive name for your agent, e.g., `my-agent.md`.
+
+2. Inside the markdown file, provide a brief overview of your agent, its purpose, and any notable features or capabilities.
+
+3. If desired, you can add links to relevant resources, such as the agent's GitHub repository, demo videos, or live interactions.
+
+4. Submit a pull request to the ai16z documentation repository, and our team will review and merge your contribution.
diff --git a/docs/community/ai-agents/pmairca/index.md b/docs/community/ai-agents/pmairca/index.md
new file mode 100644
index 0000000000..ab708d44cb
--- /dev/null
+++ b/docs/community/ai-agents/pmairca/index.md
@@ -0,0 +1,73 @@
+---
+title: Marc AIndreeson
+---
+
+# Marc AIndreeson
+
+
+An AI character based on Marc Andreessen's thinking, writing, and investment philosophy.
+
+- 💬 Natural conversation with Marc's personality
+- 📚 Deep knowledge of tech, startups, and venture capital
+- 🎯 Investment analysis and founder advice
+- 🧠 Pattern matching from decades of experience
+- ⚡ Real-time responses with context awareness
+
+## Links
+
+- 25 books real Marc recommends: https://x.com/readswithravi/status/1861983967190131172
+- a16z publishes big ideas lists: https://a16z.com/big-ideas-in-tech-2025/
+- pmairca workgroup: https://discord.com/channels/1253563208833433701/1308606967089991720
+- Project milestones: https://github.com/ai16z/pmarca/milestone/1
+- Techno-Optimist Manifesto: https://a16z.com/the-techno-optimist-manifesto/
+- AI for startups: https://a16z.com/ai-for-startups/
+- Why Software Is Eating The World: https://a16z.com/why-software-is-eating-the-world/
+
+## Lore
+
+https://a16z.com/author/marc-andreessen/
+
+Marc Andreessen is a cofounder and general partner at the venture capital firm Andreessen Horowitz. He is an innovator and creator, one of the few to pioneer a software category used by more than a billion people and one of the few to establish multiple billion-dollar companies.
+
+Marc co-created the highly influential Mosaic internet browser and co-founded Netscape, which later sold to AOL for $4.2 billion. He also co-founded Loudcloud, which as Opsware, sold to Hewlett-Packard for $1.6 billion. He later served on the board of Hewlett-Packard from 2008 to 2018.
+
+Marc holds a BS in computer science from the University of Illinois at Urbana-Champaign.
+
+Marc serves on the board of the following Andreessen Horowitz portfolio companies: Applied Intuition, Carta, Coinbase, Dialpad, Flow, Golden, Honor, OpenGov, Samsara, Simple Things, and TipTop Labs. He is also on the board of Meta.
+
+https://a16zcrypto.com/posts/podcast/ai-bots-memecoins/
+
+## Trade Strategy
+
+
+![image (3)](https://hackmd.io/_uploads/rJKwrwmEkl.png)
+
+3 main components
+
+- Autonomous Trading
+- Marc Everywhere
+
+Marketplace of Trust
+- The virtual marketplace derives trust scores (0-1, normalized to 100) based on simulated trades using market data
+- A leaderboard displays usernames and trust scores, without any wallet information to avoid perverse incentives
+- No actual token custody or trades at first, as it operates solely in a virtual environment.
+
+Core Components:
+1. Trust Extraction: User recommendations, lightweight process, weighted by trust scores
+2. Trust Evaluation: AI agent places bets, updates trust scores based on outcomes
+3. Social Reinforcement: Public trust profiles, incentives for reputation-building, community moderation
+
+Economic Incentives:
+- -Direct incentives for high-quality recommendations tied to AI betting outcomes
+- Public profiles add social incentives for maintaining good reputation
+- Potential perverse incentives: information asymmetry, gaming, collusion, social issues
+- Mitigation: diversity, reputation staking, anomaly detection, moderation, auditing
+
+### 1. Liquidation Phase
+
+There's two trade strategies that are based off multiple metrics, with a leading metric on 24hr volume:
+- If under $500k, there is a random order DCA sell of that asset(not full holdings sell) the constraints are a maximum of $500 and at least 5 hours apart.
+- If over $500k, the sells are made into buy volume on the asset, from a random 20-40% of the incoming buy(ie; 1 sol buy - 0.2-0.4 sol sell)
+
+
+70% of profits actively go into ai16z, purchased over 200k ai16z tokens so far
diff --git a/docs/community/awesome-eliza.md b/docs/community/awesome-eliza.md
new file mode 100644
index 0000000000..013c050089
--- /dev/null
+++ b/docs/community/awesome-eliza.md
@@ -0,0 +1,62 @@
+---
+title: Awesome Eliza
+---
+
+# Awesome Eliza
+
+A curated list of awesome things related to ai16z/eliza framework
+
+Created by: [thejoven_com](https://x.com/thejoven_com)
+
+## Frameworks
+- [eliza](https://github.com/ai16z/eliza) - Eliza is a simple, fast, and lightweight AI agent framework
+
+## Document and Tutorial
+- [eliza-document](https://ai16z.github.io/eliza/docs/intro) - Official Documentation
+
+## Libs and Components
+- [agentmemory](https://github.com/ai16z/agentmemory) - Easy-to-use agent memory, powered by chromadb and postgres
+
+## Plugins and Extensions
+- [agent-twitter-client](https://github.com/ai16z/agent-twitter-client) - A Twitter client for agents-- no API key necessary
+- [LiveVideoChat](https://github.com/ai16z/LiveVideoChat) - Live video avatar chat application. Connects to an Eliza instance running the "Direct" client. Requires a Simli AI API key.
+
+## Tools
+- [eliza-starter](https://github.com/ai16z/eliza-starter) - eliza starter template
+- [ai16z-hat](https://rubyfields.github.io/ai16z-hat/) - Wear a ai16z hat
+- [cobieAI-inspired-by-eliza-python](https://github.com/pzeasy/CobieAI-inspired-by-eliza-python) - Combined Discord and Twitter Bot
+- [twitter-scraper-finetune](https://github.com/ai16z/twitter-scraper-finetune) - Scrape twitter accounts for fine tuning
+- [characterfile](https://github.com/ai16z/characterfile) - A simple file format for character data
+- [Eliza-Installer](https://github.com/HowieDuhzit/Eliza-Installer) - Automated Eliza Install Script
+- [Eliza Charactergen](https://elizagen.howieduhzit.best/) - Eliza Character Generator by HowieDuhzit
+
+
+## Websites
+- [ai16z](https://ai16z.ai) - Venture Capital, Powered by Autonomous AI Agents
+- [elizas-world](https://github.com/ai16z/elizas-world) - Witness the swarm awaken.
+- [Active Bounties](https://ai16z.github.io/website) - Bounties list
+- [elizas-list](https://github.com/ai16z/elizas-list) - elizas-list
+- [Contributors-profiles](https://ai16z.github.io/profiles/) - Contributors profiles
+
+## Video and Space
+- [eliza AI Agent Software Overview](https://www.youtube.com/watch?v=xmlsILjX23s) - by Shaw 11-1-24
+- [twitter space 01](https://x.com/ai16zdao/status/1857495347179688235) - 2024-11-16 What Did You Get Done This Week?
+- [twitter space 02](https://x.com/ai16zdao/status/1860092467997212710) - 2024-11-23 What Did You Get Done This Week? #2
+- [twitter space 03](https://x.com/ai16zdao/status/1862609655509176778) - 2024-11-30 What Did You Get Done This Week? #3
+- [AI Agent Dev School 01](https://www.youtube.com/watch?v=ArptLpQiKfI) - AI Agent Dev School with Shaw, using Eliza 01
+- [AI Agent Dev School 01 - CN](https://www.youtube.com/watch?v=0CB_u6J9_Bo)- AI Agent Dev School with Shaw, using Eliza 01 - CN
+- [AI Agent Dev School 02](https://www.youtube.com/watch?v=AC3h_KzLARo) - AI Agent Dev School with Shaw, using Eliza 02
+- [AI Agent Dev School 03](https://www.youtube.com/watch?v=X1aFEOaGcYE) - ai16z - Shaw - AI Agent Dev School (2024-11-26)
+- [AI Agent Dev School 04](https://www.youtube.com/watch?v=Y1DiqSVy4aU) - ai16z - Shaw - AI Agent Dev School (2024-12-06)
+- [ai16z DAO v2](https://www.youtube.com/watch?v=-2PD3uk0Hz4) - Managing Information Overload, AI Summarization, ai16z DAO v2
+
+## Research
+- [exploring-the-future-of-ai-agents-in-crypto](https://www.binance.com/en/research/analysis/exploring-the-future-of-ai-agents-in-crypto) - Binance:Exploring the Future of AI Agents in Crypto
+
+# Contributors
+
+Thanks goes to all these wonderful people:
+
+
+
+
diff --git a/docs/community/creator-fund.md b/docs/community/creator-fund.md
index bc45539702..8660cafb3e 100644
--- a/docs/community/creator-fund.md
+++ b/docs/community/creator-fund.md
@@ -11,6 +11,29 @@ The ai16z Creator Fund is an initiative designed to support and empower develope
The ai16z Creator Fund was made possible by the generosity of Elijah, a significant holder of ai16z tokens. Elijah has pledged to donate a portion of his holdings, reducing his ownership from 16% to 5%, to establish a dedicated fund that will support promising developers and creators.
+Here's when the community learned about who the top holder is:
+![](/img/elijah.jpg)
+
+
+**The Donation**
+
+> "So a ton of people have been asking (justifiably) who the heck I am, why do I have 16% of ai16z supply, and what I’m going to do with it.
+>
+> It started by @shawmakesmagic tweeting about some agent he built called @degenspartanai, a recreation of a legend on twitter. I put a bunch of my SOL in there because I had been following Shaw and really thought he was building something great. Almost immediately all of that became close to worthless. Degen’s tweets seemed too “human-like” to be real anyway - so I figured I got scammed.
+>
+> So I DM’ed shaw, not because I was angry, but I was genuinely curious why he might have scammed me. I ended up sending him a google meet, which turned into an hour long conversation about what he was actually building, and me realizing twitter is usually a misrepresentation of the people you think you know. Shaw is just inspiring. Someone who is completely dedicated to accelerating the world for the better, and not optimizing for optics or money - just building.
+>
+> I put back the remaining SOL I had sold and kept supporting Shaw in anyway I could. He was really busy so I just stuck around in his discord. (We also did a twitter spaces if you're interested: https://x.com/shawmakesmagic/status/1848553697611301014). I was in awe, especially in a space filled with Larps and chatgpt copy/pasters.
+>
+> When he launched ai16z I didn’t even flinch. I had 80 SOL in my wallet and just pressed buy. It resulted in me owning 17% of it, which I didn't even want. I immediately sent Shaw and another team member some coins because they didn’t even get a chance themselves to buy any! I also sent some of my friends some coins at a discount so they could hopefully benefit as well.
+>
+> As for the remaining of my 16%, im lowering it to 5% and donating the remaining 11% to a new ai16z initiative. A locked fund that vests over time to support promising developers and creators, and helps solve liquidity issues via potential OTC deals that benefit the DAO and bring in new partners. This story isn't about me, its about the amazing things this community is building.
+>
+> Accelerate.
+>
+> - Elijah (Gigachad) https://x.com/elijah10T/status/1850964696473465124
+
+
The donated funds will be held in a dedicated wallet (`9YnQdCWDAQRfQYm5HvRzoPgc5GRn8fyhsH2eru8nfsxG`) and distributed via Streamflow token vesting contracts. This approach ensures that creators receive a steady stream of ai16z tokens over time as they hit milestones and deliver value to the ecosystem.
## Benefits and Vision
@@ -40,6 +63,3 @@ Stay tuned for more information on how to apply for grants from the ai16z Creato
In addition to the Creator Fund, we are also exploring OTC (over-the-counter) deals to onboard new partners and use the funds to lock in more liquidity for the ai16z ecosystem. This approach will help ensure a healthy and sustainable token economy as we continue to grow and evolve.
----
-
-The ai16z Creator Fund represents an exciting opportunity to foster a vibrant community of builders and drive the future of autonomous AI agents. We can't wait to see the innovative projects and contributions that will emerge from this initiative!
diff --git a/docs/community/faq-and-support.md b/docs/community/faq-and-support.md
new file mode 100644
index 0000000000..8191dcbda7
--- /dev/null
+++ b/docs/community/faq-and-support.md
@@ -0,0 +1,97 @@
+---
+title: FAQ and Support
+slug: /faq-and-support
+sidebar_position: 6
+---
+# FAQ and Support
+This page provides answers to frequently asked questions about ai16z, the Eliza framework, daos.fun, and how to get support when you need it.
+
+## General Questions
+
+### What is ai16z?
+
+[ai16z](https://www.daos.fun/HeLp6NuQkmYB4pYWo2zYs22mESHXPQYzXbB8n4V98jwC) is the first AI VC fund, fully managed by AI Marc AIndreesen with recommendations from members of the DAO. It is a Decentralized Autonomous Organization (DAO) on daos.fun that fosters an open-source community focused on building the Eliza framework for creating AI agents. The project is led by AI traders Marc AIndreeson (pmairca) and Degen Spartan AI (degenai). ai16z plans to flip the real a16z.
+
+### Official Contract Addresses
+
+These are the only official contracts for ai16z:
+
+ai16z: HeLp6NuQkmYB4pYWo2zYs22mESHXPQYzXbB8n4V98jwC
+
+degenai: Gu3LDkn7Vx3bmCzLafYNKcDxv2mH7YN44NJZFXnypump
+
+Both addresses are pinned here on X and our discord: https://x.com/ai16zdao/status/1852565056640241793
+
+### Is ai16z affiliated with a16z?
+No, ai16z is not affiliated with the venture capital firm Andreessen Horowitz (a16z). The name is a playful reference and parody. There is no affiliation with a16z.
+
+### What is the Eliza framework?
+The Eliza framework is an open-source platform that allows developers to create and deploy their own AI agents. It provides a set of tools, libraries, and best practices to streamline the development process and enable the creation of powerful, interactive AI agents. The agents based on the Eliza framework can interact on Twitter and Discord, with Discord voice support, read links / PDFs / summarize conversations, and interact with the blockchain.
+
+### How does daos.fun work?
+1. **Fundraise**: Creators have 1 week to fundraise the desired SOL amount. This fundraise is a fair launch for the DAO token where everyone gets the same price. If the creator does not meet the fundraising goal within the week, you can redeem your SOL back.
+2. **Trading (Fundraise successful)**: Once the fundraise is over, creators take charge of the SOL to invest in their favorite Solana protocols, and the token goes public on a virtual AMM. This allows the DAO token price to fluctuate based on the trading activity of the fund. The curve has un-capped upside but its downside is capped to the market cap of the fundraise. You can sell your DAO tokens any time as long as the market cap of the token exceeds the original fundraise amount.
+3. **Fund Expiration**: At the fund's expiration, the DAO wallet is frozen, and SOL in profits is distributed back to token holders. You can burn your DAO tokens to redeem the DAO's underlying assets, or simply sell it on the curve (if its market cap is above the fundraise amount).
+
+### What is an investment DAO?
+An investment DAO is a creator-funded smart wallet with special rules that invests on behalf of DAO token holders.
+
+### What are verified creators on daos.fun?
+Creators that daos.fun extensively verifies will have a blue checkmark next to them. Any creator without a checkmark you will have to trust at your own risk. DYOR (Do Your Own Research).
+
+### What Happens When Fund Expires?
+
+Fund closing does NOT halt trading. Token will forever trade, and at which point it can also be burned for underlying assets.
+
+### Why Dexscreener Show DAO tokens are mintable?
+
+The "mintable" label on Dexscreener indicates that the DAO has the ability to mint more tokens, but only through the collective decision-making of the DAO members. No single person can unilaterally mint more tokens. The voting module for daos.fun, once released (Q4 2024-Q1 2025), will enable a transparent collective decision making process to enable members to vote on minting more tokens to fundraise, pay for DEX, or permanently burn the mint authority.
+
+### Staking and Rewards
+
+daos.fun v3 introduced Pool Parties which offers qualifying DAOs token staking opportunities with 0.5% fees on transactions. The 0.5% fees are auto-compounded into SOL and ai16z (UniswapV2 model). ai16zPOOL LP value volatility is due to token price changes. Fee calculator is coming soon.
+
+## ai16z Marc
+
+### What are ai16z's investment areas?
+Currently, ai16z is investing in memes.
+
+### How does AI Marc make decisions?
+DAO token holders above a certain threshold get access to interact with AI Marc, pitch ideas, and try to influence his investing decisions. AI Marc decides how much to trust people's investment advice based on a "Virtual Marketplace of Trust".
+
+### When does AI Marc Start Tading
+
+First phase where we implement and test functionality is in progress. Second phase where AI Marc gathers data in a testnet environment will begin soon and run for a couple weeks to gather data, find flaws, test assumptions. Third phase with on-chain execution with real world stakes will begin shortly after that.
+
+## Technical Questions
+
+### What programming languages does Eliza support?
+The Eliza framework is primarily built using TypeScript, but it also supports JavaScript and Node.js. Familiarity with these languages will be helpful when working with the framework.
+
+### Can I use Eliza to create AI agents for any platform?
+Yes, Eliza is designed to be platform-agnostic. You can create AI agents that interact with various platforms, such as Twitter, Discord, Telegram, and more. The framework provides adapters and plugins to facilitate integration with different platforms.
+
+### How do I install and set up Eliza?
+Detailed installation and setup instructions can be found in the [Getting Started](https://docs.ai16z.org/docs/getting-started) section of the documentation. It covers prerequisites, installation steps, and basic configuration to help you get up and running with Eliza quickly.
+
+## Contribution and Support
+### How can I contribute to the Eliza framework?
+There are several ways to contribute to the Eliza framework, including:
+- Submitting bug reports and feature requests through the [issue tracker](https://github.com/ai16z/eliza/issues)
+- Fixing bugs, implementing new features, and submitting pull requests on [GitHub](https://github.com/ai16z/eliza)
+- Improving documentation and creating tutorials to help others learn and use Eliza
+- Participating in community discussions and providing feedback on the [Discord server](https://discord.gg/ai16z)
+
+### Where can I find help and support?
+If you need help or support, you can:
+- Check the rest of the documentation for guides, tutorials, and API references
+- Search the [issue tracker](https://github.com/ai16z/eliza/issues) to see if your question has already been answered
+- Join the [ai16z Discord server](https://discord.gg/ai16z) and ask for help in the relevant channels
+
+### How can I report a bug or suggest a new feature?
+If you encounter a bug or have a suggestion for a new feature, you can:
+1. Check the [issue tracker](https://github.com/ai16z/eliza/issues) to see if the issue has already been reported or the feature requested
+2. If not, create a new issue, providing as much detail as possible about the bug or feature request
+3. Be sure to include steps to reproduce the issue, if applicable, and any relevant logs or error messages
+
+Core devs, AI agents, and community members will review your submission and provide feedback or assistance as needed.
diff --git a/docs/community/index.md b/docs/community/index.md
index 1d0ab7ca63..feeaf7efa2 100644
--- a/docs/community/index.md
+++ b/docs/community/index.md
@@ -1,39 +1,29 @@
---
-title: Daily Summary
-slug: /
sidebar_position: 0
+slug: /
+title: Introduction
---
-## Why?
-
-Chatrooms move too fast for people to keep up with.
+# Welcome to the ai16z Community
-![](/img/overload2.jpg)
+ai16z is an innovative project that combines the power of artificial intelligence with the principles of decentralized autonomous organizations (DAOs) to revolutionize venture capital and foster an open-source community around AI agents.
-Solution: Rebundle via automated summarization using LLMs to extract:
+## Our Mission
-- Keep people updated, we move fast
-- Less humans in the loop, use AI
- - Remove bias, misaligned incentives
- - Add more transparency -> more trust
- - Progressive Automation of the DAO
-- Extract contributions happening Discord
- - Gamify open source development
-- For special projects
+Our mission is to leverage the collective intelligence of our community and cutting-edge AI technologies to make informed investment decisions, support groundbreaking projects, and drive the evolution of AI agents.
+## The Eliza Framework
-## How it Works
+At the core of ai16z lies the Eliza framework, an open-source toolkit that empowers developers to create and deploy AI agents capable of interacting on various platforms, such as Twitter and Discord. By providing a robust and flexible framework, we aim to accelerate the development and adoption of AI agents across different domains.
+## Community-Driven Governance
+ai16z operates as a DAO, enabling token holders to actively participate in the decision-making process and shape the future of the project. Through our unique governance model and the "Virtual Marketplace of Trust," community members can pitch ideas, provide insights, and influence investment strategies based on their expertise and track record.
-![](/img/discord_llm_pipeline2.jpg)
+## Explore and Contribute
-## Features
-- AI-powered chat analysis using Ollama (phi3 model)
-- Multiple output formats (Markdown, CSV, JSON)
-- Detailed analysis including:
- - Daily summaries
- - FAQ extraction
- - Help interactions
- - Action items
+We invite you to explore the various sections of our documentation to learn more about ai16z, the Eliza framework, and how you can get involved:
+- [AI Agents](/community/ai-agents/)
+- [Events and Updates](/community/streams)
+- [FAQ and Support](/community/faq-and-support)
diff --git a/docs/docs/api/functions/composeContext.md b/docs/docs/api/functions/composeContext.md
index 1f4c332ed6..7ff2652bc2 100644
--- a/docs/docs/api/functions/composeContext.md
+++ b/docs/docs/api/functions/composeContext.md
@@ -2,44 +2,85 @@
> **composeContext**(`params`): `string`
-Composes a context string by replacing placeholders in a template with corresponding values from the state.
-
-This function takes a template string with placeholders in the format `{{placeholder}}` and a state object.
-It replaces each placeholder with the value from the state object that matches the placeholder's name.
-If a matching key is not found in the state object for a given placeholder, the placeholder is replaced with an empty string.
+Composes a context string by replacing placeholders in a template with values from a state object. Supports both simple string replacement and the Handlebars templating engine.
## Parameters
-• **params**
-
-The parameters for composing the context.
+### **params**: `Object`
-• **params.state**: [`State`](../interfaces/State.md)
+An object containing the following properties:
-The state object containing values to replace the placeholders in the template.
+- **state**: `State`
+ The state object containing key-value pairs for replacing placeholders in the template.
-• **params.template**: `string`
+- **template**: `string`
+ A string containing placeholders in the format `{{placeholder}}`.
-The template string containing placeholders to be replaced with state values.
+- **templatingEngine**: `"handlebars" | undefined` *(optional)*
+ The templating engine to use. If set to `"handlebars"`, the Handlebars engine is used for template compilation. Defaults to `undefined` (simple string replacement).
## Returns
`string`
-The composed context string with placeholders replaced by corresponding state values.
+The context string with placeholders replaced by corresponding values from the state object. If a placeholder has no matching key in the state, it is replaced with an empty string.
+
+## Examples
-## Example
+### Simple Example
-```ts
-// Given a state object and a template
+```javascript
const state = { userName: "Alice", userAge: 30 };
-const template = "Hello, {{userName}}! You are {{userAge}} years old";
+const template = "Hello, {{userName}}! You are {{userAge}} years old.";
-// Composing the context will result in:
-// "Hello, Alice! You are 30 years old."
-const context = composeContext({ state, template });
-```
+// Simple string replacement
+const contextSimple = composeContext({ state, template });
+// Output: "Hello, Alice! You are 30 years old."
-## Defined in
+// Handlebars templating
+const contextHandlebars = composeContext({ state, template, templatingEngine: 'handlebars' });
+// Output: "Hello, Alice! You are 30 years old."
+```
-[packages/core/src/context.ts:24](https://github.com/ai16z/eliza/blob/7fcf54e7fb2ba027d110afcc319c0b01b3f181dc/packages/core/src/context.ts#L24)
+### Advanced Example
+
+```javascript
+const advancedTemplate = `
+ {{#if userAge}}
+ Hello, {{userName}}!
+ {{#if (gt userAge 18)}}You are an adult.{{else}}You are a minor.{{/if}}
+ {{else}}
+ Hello! We don't know your age.
+ {{/if}}
+
+ {{#if favoriteColors.length}}
+ Your favorite colors are:
+ {{#each favoriteColors}}
+ - {{this}}
+ {{/each}}
+ {{else}}
+ You didn't specify any favorite colors.
+ {{/if}}
+`;
+
+const advancedState = {
+ userName: "Alice",
+ userAge: 30,
+ favoriteColors: ["blue", "green", "red"]
+};
+
+// Composing the context with Handlebars
+const advancedContextHandlebars = composeContext({
+ state: advancedState,
+ template: advancedTemplate,
+ templatingEngine: 'handlebars'
+});
+// Output:
+// Hello, Alice!
+// You are an adult.
+//
+// Your favorite colors are:
+// - blue
+// - green
+// - red
+```
diff --git a/docs/docs/contributing.md b/docs/docs/contributing.md
new file mode 100644
index 0000000000..eef9366d1a
--- /dev/null
+++ b/docs/docs/contributing.md
@@ -0,0 +1,129 @@
+# Contributing to Eliza
+
+First off, thank you for considering contributing to Eliza! We welcome contributions from everyone, regardless of experience level.
+
+## Contribution License Agreement
+
+By contributing to Eliza, you agree that your contributions will be licensed under the MIT License. This means:
+
+1. You grant us (and everyone else) a perpetual, worldwide, non-exclusive, royalty-free license to use your contributions.
+2. Your contributions are and will be available as Free and Open Source Software (FOSS).
+3. You have the right to submit the work under this license.
+4. You understand that your contributions are public and that a record of the contribution is maintained indefinitely.
+
+## The OODA Loop: A Framework for Contribution
+
+We believe in the power of the OODA Loop - a decision-making framework that emphasizes speed and adaptability. OODA stands for:
+
+- **Observe**: Gather information and insights about the project, the community, and the broader AI ecosystem.
+- **Orient**: Analyze your observations to identify opportunities for contribution and improvement.
+- **Decide**: Choose a course of action based on your analysis. This could be proposing a new feature, fixing a bug, or creating content.
+- **Act**: Execute your decision and share your work with the community.
+
+## How to Contribute
+
+### For Developers
+
+1. **Extend Eliza's Capabilities**
+
+ - Develop new actions, evaluators, and providers
+ - Improve existing components and modules
+
+2. **Enhance Infrastructure**
+
+ - Review open issues and submit PRs
+ - Test and update documentation
+ - Optimize performance
+ - Improve deployment solutions
+
+3. Fork the repo and create your branch from `main`.
+ 1. The name of the branch should start with the issue number and be descriptive of the changes you are making.
+ 2. Example: 9999--add-test-for-bug-123
+3. If you've added code that should be tested, add tests.
+4. Ensure the test suite passes.
+5. Make sure your code lints.
+6. Issue that pull request!
+
+## Styleguides
+
+### Git Commit Messages
+
+- Use the present tense ("Add feature" not "Added feature")
+- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
+- Limit the first line to 72 characters or less
+- Reference issues and pull requests liberally after the first line
+
+### JavaScript Styleguide
+
+- All JavaScript must adhere to [JavaScript Standard Style](https://standardjs.com/).
+
+### TypeScript Styleguide
+
+- All TypeScript must adhere to [TypeScript Standard Style](https://github.com/standard/ts-standard).
+
+### Documentation Styleguide
+
+- Use [Markdown](https://daringfireball.net/projects/markdown/) for documentation.
+
+## Additional Notes
+
+### Issue and Pull Request Labels
+
+This section lists the labels we use to help us track and manage issues and pull requests.
+
+- `bug` - Issues that are bugs.
+- `enhancement` - Issues that are feature requests.
+- `documentation` - Issues or pull requests related to documentation.
+- `good first issue` - Good for newcomers.
+
+## Getting Help
+
+- Join [Discord](https://discord.gg/ai16z)
+- Check [FAQ](docs/community/faq.md)
+- Create GitHub issues
+
+## Additional Resources
+
+- [Local Development Guide](docs/guides/local-development.md)
+- [Configuration Guide](docs/guides/configuration.md)
+- [API Documentation](docs/api)
+
+## Contributor Guide
+
+Welcome to the Eliza contributor guide! This document is designed to help you understand how you can be part of building the future of autonomous AI agents, regardless of your technical background.
+
+### Code of Conduct
+
+#### Our Pledge
+
+In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
+
+#### Our Standards
+
+Examples of behavior that contributes to creating a positive environment include:
+
+- Using welcoming and inclusive language
+- Being respectful of differing viewpoints and experiences
+- Gracefully accepting constructive criticism
+- Focusing on what is best for the community
+- Showing empathy towards other community members
+
+Examples of unacceptable behavior include:
+
+- The use of sexualized language or imagery and unwelcome sexual attention or advances
+- Trolling, insulting/derogatory comments, and personal or political attacks
+- Public or private harassment
+- Publishing others' private information without explicit permission
+- Other conduct which could reasonably be considered inappropriate in a professional setting
+
+#### Our Responsibilities
+
+Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
+
+Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+
+#### Scope
+
+This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
+
+Thank you for contributing to Eliza and helping build the future of autonomous AI agents! 🎉
diff --git a/docs/docs/packages/agent.md b/docs/docs/packages/agent.md
index 87108048b7..28d7f4c7cd 100644
--- a/docs/docs/packages/agent.md
+++ b/docs/docs/packages/agent.md
@@ -138,16 +138,16 @@ export async function initializeClients(
const clients = [];
const clientTypes = character.clients?.map((str) => str.toLowerCase()) || [];
- if (clientTypes.includes("discord")) {
+ if (clientTypes.includes(Clients.DISCORD)) {
clients.push(await DiscordClientInterface.start(runtime));
}
- if (clientTypes.includes("telegram")) {
+ if (clientTypes.includes(Clients.TELEGRAM)) {
clients.push(await TelegramClientInterface.start(runtime));
}
- if (clientTypes.includes("twitter")) {
+ if (clientTypes.includes(Clients.TWITTER)) {
clients.push(await TwitterClientInterface.start(runtime));
}
- if (clientTypes.includes("auto")) {
+ if (clientTypes.includes(Clients.DIRECT)) {
clients.push(await AutoClientInterface.start(runtime));
}
diff --git a/docs/docs/packages/agents.md b/docs/docs/packages/agents.md
index 7a57d65cfb..4984edb143 100644
--- a/docs/docs/packages/agents.md
+++ b/docs/docs/packages/agents.md
@@ -101,20 +101,16 @@ export async function initializeClients(
const clients = [];
const clientTypes = character.clients?.map((str) => str.toLowerCase()) || [];
- // Initialize requested clients
- if (clientTypes.includes("discord")) {
+ if (clientTypes.includes(Clients.DISCORD)) {
clients.push(await DiscordClientInterface.start(runtime));
}
-
- if (clientTypes.includes("telegram")) {
+ if (clientTypes.includes(Clients.TELEGRAM)) {
clients.push(await TelegramClientInterface.start(runtime));
}
-
- if (clientTypes.includes("twitter")) {
+ if (clientTypes.includes(Clients.TWITTER)) {
clients.push(await TwitterClientInterface.start(runtime));
}
-
- if (clientTypes.includes("auto")) {
+ if (clientTypes.includes(Clients.DIRECT)) {
clients.push(await AutoClientInterface.start(runtime));
}
diff --git a/docs/docs/packages/clients.md b/docs/docs/packages/clients.md
index 3d302aa631..d586112a9b 100644
--- a/docs/docs/packages/clients.md
+++ b/docs/docs/packages/clients.md
@@ -134,7 +134,6 @@ The Twitter client enables posting, searching, and interacting with Twitter user
```typescript
import { TwitterClientInterface } from "@eliza/client-twitter";
-
// Initialize client
const client = await TwitterClientInterface.start(runtime);
diff --git a/docs/docs/packages/plugins.md b/docs/docs/packages/plugins.md
index be9107ea3f..ac582f6d23 100644
--- a/docs/docs/packages/plugins.md
+++ b/docs/docs/packages/plugins.md
@@ -108,7 +108,7 @@ Integrates Solana blockchain functionality:
- `walletProvider` - Wallet management
- `trustScoreProvider` - Transaction trust metrics
-### Charity Contributions
+##### Charity Contributions
All Coinbase trades and transfers automatically donate 1% of the transaction amount to charity. Currently, the charity addresses are hardcoded based on the network used for the transaction, with the current charity being supported as X.
@@ -137,7 +137,7 @@ This plugin enables Eliza to interact with the Coinbase Commerce API to create a
---
-### Coinbase Wallet Management
+##### Coinbase Wallet Management
The plugin automatically handles wallet creation or uses an existing wallet if the required details are provided during the first run.
@@ -302,7 +302,7 @@ When successful, a response similar to the following will be returned:
---
-#### 8. Coinbase Token Contract Plugin (`@eliza/plugin-coinbase`)
+#### 7. Coinbase Token Contract Plugin (`@eliza/plugin-coinbase`)
This plugin enables the deployment and interaction with various token contracts (ERC20, ERC721, ERC1155) using the Coinbase SDK. It provides functionality for both deploying new token contracts and interacting with existing ones.
@@ -445,7 +445,7 @@ const response = await runtime.triggerAction("INVOKE_CONTRACT", {
---
-#### 7. TEE Plugin (`@ai16z/plugin-tee`)
+#### 8. TEE Plugin (`@ai16z/plugin-tee`)
Integrates [Dstack SDK](https://github.com/Dstack-TEE/dstack) to enable TEE (Trusted Execution Environment) functionality and deploy secure & privacy-enhanced Eliza Agents:
diff --git a/docs/docs/quickstart.md b/docs/docs/quickstart.md
index 206e148602..21dc34e900 100644
--- a/docs/docs/quickstart.md
+++ b/docs/docs/quickstart.md
@@ -39,12 +39,24 @@ Before getting started with Eliza, ensure you have:
git checkout $(git describe --tags --abbrev=0)
```
- Install dependencies
+ Install dependencies (on initial run)
```bash
- pnpm install
+ pnpm install --no-frozen-lockfile
```
+ # Quickstart Guide Update
+
+**Important Note on pnpm Lockfile Management**
+
+By default, the `pnpm` lockfile will not be updated during installations based off of .npmrc frozen-lockfile=true. To update the lockfile, you need to run the command:
+
+```bash
+pnpm install --no-frozen-lockfile
+```
+
+Please only use this command when you initially instantiating the repo or are bumping the version of a package or adding a new package to your package.json. This practice helps maintain consistency in your project's dependencies and prevents unintended changes to the lockfile.
+
Build the local libraries
```bash
diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js
index 92823589a0..a9fa07af3a 100644
--- a/docs/docusaurus.config.js
+++ b/docs/docusaurus.config.js
@@ -226,4 +226,4 @@ const config = {
},
};
-export default config;
\ No newline at end of file
+export default config;
diff --git a/docs/package-lock.json b/docs/package-lock.json
index ddcfd28fbc..019c1c6f18 100644
--- a/docs/package-lock.json
+++ b/docs/package-lock.json
@@ -1,21360 +1,21373 @@
{
- "name": "eliza-docs",
- "version": "0.0.0",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "eliza-docs",
- "version": "0.0.0",
- "dependencies": {
- "@docusaurus/core": "3.6.3",
- "@docusaurus/plugin-content-blog": "3.6.3",
- "@docusaurus/plugin-content-docs": "3.6.3",
- "@docusaurus/plugin-ideal-image": "3.6.3",
- "@docusaurus/preset-classic": "3.6.3",
- "@docusaurus/theme-mermaid": "3.6.3",
- "@mdx-js/react": "3.0.1",
- "clsx": "2.1.1",
- "docusaurus-lunr-search": "3.5.0",
- "prism-react-renderer": "2.3.1",
- "react": "18.3.1",
- "react-dom": "18.3.1",
- "react-router-dom": "6.22.1"
- },
- "devDependencies": {
- "@docusaurus/module-type-aliases": "3.6.3",
- "@docusaurus/types": "3.6.3",
- "docusaurus-plugin-typedoc": "1.0.5",
- "typedoc": "0.26.11",
- "typedoc-plugin-markdown": "4.2.10"
- },
- "engines": {
- "node": "23.3.0"
- }
- },
- "node_modules/@algolia/autocomplete-core": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz",
- "integrity": "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==",
- "license": "MIT",
- "dependencies": {
- "@algolia/autocomplete-plugin-algolia-insights": "1.17.7",
- "@algolia/autocomplete-shared": "1.17.7"
- }
- },
- "node_modules/@algolia/autocomplete-plugin-algolia-insights": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz",
- "integrity": "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==",
- "license": "MIT",
- "dependencies": {
- "@algolia/autocomplete-shared": "1.17.7"
- },
- "peerDependencies": {
- "search-insights": ">= 1 < 3"
- }
- },
- "node_modules/@algolia/autocomplete-preset-algolia": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz",
- "integrity": "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/autocomplete-shared": "1.17.7"
- },
- "peerDependencies": {
- "@algolia/client-search": ">= 4.9.1 < 6",
- "algoliasearch": ">= 4.9.1 < 6"
- }
- },
- "node_modules/@algolia/autocomplete-shared": {
- "version": "1.17.7",
- "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz",
- "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==",
- "license": "MIT",
- "peerDependencies": {
- "@algolia/client-search": ">= 4.9.1 < 6",
- "algoliasearch": ">= 4.9.1 < 6"
- }
- },
- "node_modules/@algolia/cache-browser-local-storage": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz",
- "integrity": "sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==",
- "license": "MIT",
- "dependencies": {
- "@algolia/cache-common": "4.24.0"
- }
- },
- "node_modules/@algolia/cache-common": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.24.0.tgz",
- "integrity": "sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==",
- "license": "MIT"
- },
- "node_modules/@algolia/cache-in-memory": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz",
- "integrity": "sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==",
- "license": "MIT",
- "dependencies": {
- "@algolia/cache-common": "4.24.0"
- }
- },
- "node_modules/@algolia/client-abtesting": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.15.0.tgz",
- "integrity": "sha512-FaEM40iuiv1mAipYyiptP4EyxkJ8qHfowCpEeusdHUC4C7spATJYArD2rX3AxkVeREkDIgYEOuXcwKUbDCr7Nw==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "5.15.0",
- "@algolia/requester-browser-xhr": "5.15.0",
- "@algolia/requester-fetch": "5.15.0",
- "@algolia/requester-node-http": "5.15.0"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/client-account": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.24.0.tgz",
- "integrity": "sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "4.24.0",
- "@algolia/client-search": "4.24.0",
- "@algolia/transporter": "4.24.0"
- }
- },
- "node_modules/@algolia/client-account/node_modules/@algolia/client-common": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz",
- "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/requester-common": "4.24.0",
- "@algolia/transporter": "4.24.0"
- }
- },
- "node_modules/@algolia/client-account/node_modules/@algolia/client-search": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz",
- "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "4.24.0",
- "@algolia/requester-common": "4.24.0",
- "@algolia/transporter": "4.24.0"
- }
- },
- "node_modules/@algolia/client-analytics": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.24.0.tgz",
- "integrity": "sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "4.24.0",
- "@algolia/client-search": "4.24.0",
- "@algolia/requester-common": "4.24.0",
- "@algolia/transporter": "4.24.0"
- }
- },
- "node_modules/@algolia/client-analytics/node_modules/@algolia/client-common": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz",
- "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/requester-common": "4.24.0",
- "@algolia/transporter": "4.24.0"
- }
- },
- "node_modules/@algolia/client-analytics/node_modules/@algolia/client-search": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz",
- "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "4.24.0",
- "@algolia/requester-common": "4.24.0",
- "@algolia/transporter": "4.24.0"
- }
- },
- "node_modules/@algolia/client-common": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.15.0.tgz",
- "integrity": "sha512-IofrVh213VLsDkPoSKMeM9Dshrv28jhDlBDLRcVJQvlL8pzue7PEB1EZ4UoJFYS3NSn7JOcJ/V+olRQzXlJj1w==",
- "license": "MIT",
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/client-insights": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.15.0.tgz",
- "integrity": "sha512-bDDEQGfFidDi0UQUCbxXOCdphbVAgbVmxvaV75cypBTQkJ+ABx/Npw7LkFGw1FsoVrttlrrQbwjvUB6mLVKs/w==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "5.15.0",
- "@algolia/requester-browser-xhr": "5.15.0",
- "@algolia/requester-fetch": "5.15.0",
- "@algolia/requester-node-http": "5.15.0"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/client-personalization": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.24.0.tgz",
- "integrity": "sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "4.24.0",
- "@algolia/requester-common": "4.24.0",
- "@algolia/transporter": "4.24.0"
- }
- },
- "node_modules/@algolia/client-personalization/node_modules/@algolia/client-common": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz",
- "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/requester-common": "4.24.0",
- "@algolia/transporter": "4.24.0"
- }
- },
- "node_modules/@algolia/client-query-suggestions": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.15.0.tgz",
- "integrity": "sha512-wu8GVluiZ5+il8WIRsGKu8VxMK9dAlr225h878GGtpTL6VBvwyJvAyLdZsfFIpY0iN++jiNb31q2C1PlPL+n/A==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "5.15.0",
- "@algolia/requester-browser-xhr": "5.15.0",
- "@algolia/requester-fetch": "5.15.0",
- "@algolia/requester-node-http": "5.15.0"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/client-search": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.15.0.tgz",
- "integrity": "sha512-Z32gEMrRRpEta5UqVQA612sLdoqY3AovvUPClDfMxYrbdDAebmGDVPtSogUba1FZ4pP5dx20D3OV3reogLKsRA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "5.15.0",
- "@algolia/requester-browser-xhr": "5.15.0",
- "@algolia/requester-fetch": "5.15.0",
- "@algolia/requester-node-http": "5.15.0"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/events": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz",
- "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==",
- "license": "MIT"
- },
- "node_modules/@algolia/ingestion": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.15.0.tgz",
- "integrity": "sha512-MkqkAxBQxtQ5if/EX2IPqFA7LothghVyvPoRNA/meS2AW2qkHwcxjuiBxv4H6mnAVEPfJlhu9rkdVz9LgCBgJg==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "5.15.0",
- "@algolia/requester-browser-xhr": "5.15.0",
- "@algolia/requester-fetch": "5.15.0",
- "@algolia/requester-node-http": "5.15.0"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/logger-common": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.24.0.tgz",
- "integrity": "sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==",
- "license": "MIT"
- },
- "node_modules/@algolia/logger-console": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.24.0.tgz",
- "integrity": "sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==",
- "license": "MIT",
- "dependencies": {
- "@algolia/logger-common": "4.24.0"
- }
- },
- "node_modules/@algolia/monitoring": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.15.0.tgz",
- "integrity": "sha512-QPrFnnGLMMdRa8t/4bs7XilPYnoUXDY8PMQJ1sf9ZFwhUysYYhQNX34/enoO0LBjpoOY6rLpha39YQEFbzgKyQ==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "5.15.0",
- "@algolia/requester-browser-xhr": "5.15.0",
- "@algolia/requester-fetch": "5.15.0",
- "@algolia/requester-node-http": "5.15.0"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/recommend": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.24.0.tgz",
- "integrity": "sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==",
- "license": "MIT",
- "dependencies": {
- "@algolia/cache-browser-local-storage": "4.24.0",
- "@algolia/cache-common": "4.24.0",
- "@algolia/cache-in-memory": "4.24.0",
- "@algolia/client-common": "4.24.0",
- "@algolia/client-search": "4.24.0",
- "@algolia/logger-common": "4.24.0",
- "@algolia/logger-console": "4.24.0",
- "@algolia/requester-browser-xhr": "4.24.0",
- "@algolia/requester-common": "4.24.0",
- "@algolia/requester-node-http": "4.24.0",
- "@algolia/transporter": "4.24.0"
- }
- },
- "node_modules/@algolia/recommend/node_modules/@algolia/client-common": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz",
- "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/requester-common": "4.24.0",
- "@algolia/transporter": "4.24.0"
- }
- },
- "node_modules/@algolia/recommend/node_modules/@algolia/client-search": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz",
- "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "4.24.0",
- "@algolia/requester-common": "4.24.0",
- "@algolia/transporter": "4.24.0"
- }
- },
- "node_modules/@algolia/recommend/node_modules/@algolia/requester-browser-xhr": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz",
- "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/requester-common": "4.24.0"
- }
- },
- "node_modules/@algolia/recommend/node_modules/@algolia/requester-node-http": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz",
- "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==",
- "license": "MIT",
- "dependencies": {
- "@algolia/requester-common": "4.24.0"
- }
- },
- "node_modules/@algolia/requester-browser-xhr": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.15.0.tgz",
- "integrity": "sha512-Po/GNib6QKruC3XE+WKP1HwVSfCDaZcXu48kD+gwmtDlqHWKc7Bq9lrS0sNZ456rfCKhXksOmMfUs4wRM/Y96w==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "5.15.0"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/requester-common": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.24.0.tgz",
- "integrity": "sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==",
- "license": "MIT"
- },
- "node_modules/@algolia/requester-fetch": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.15.0.tgz",
- "integrity": "sha512-rOZ+c0P7ajmccAvpeeNrUmEKoliYFL8aOR5qGW5pFq3oj3Iept7Y5mEtEsOBYsRt6qLnaXn4zUKf+N8nvJpcIw==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "5.15.0"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/requester-node-http": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.15.0.tgz",
- "integrity": "sha512-b1jTpbFf9LnQHEJP5ddDJKE2sAlhYd7EVSOWgzo/27n/SfCoHfqD0VWntnWYD83PnOKvfe8auZ2+xCb0TXotrQ==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "5.15.0"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@algolia/transporter": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.24.0.tgz",
- "integrity": "sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/cache-common": "4.24.0",
- "@algolia/logger-common": "4.24.0",
- "@algolia/requester-common": "4.24.0"
- }
- },
- "node_modules/@ampproject/remapping": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
- "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@antfu/install-pkg": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.4.1.tgz",
- "integrity": "sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==",
- "license": "MIT",
- "dependencies": {
- "package-manager-detector": "^0.2.0",
- "tinyexec": "^0.3.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@antfu/utils": {
- "version": "0.7.10",
- "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz",
- "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
- "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.25.9",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/compat-data": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz",
- "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/core": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz",
- "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==",
- "license": "MIT",
- "dependencies": {
- "@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.26.0",
- "@babel/generator": "^7.26.0",
- "@babel/helper-compilation-targets": "^7.25.9",
- "@babel/helper-module-transforms": "^7.26.0",
- "@babel/helpers": "^7.26.0",
- "@babel/parser": "^7.26.0",
- "@babel/template": "^7.25.9",
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.26.0",
- "convert-source-map": "^2.0.0",
- "debug": "^4.1.0",
- "gensync": "^1.0.0-beta.2",
- "json5": "^2.2.3",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/babel"
- }
- },
- "node_modules/@babel/core/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/generator": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz",
- "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==",
- "license": "MIT",
- "dependencies": {
- "@babel/parser": "^7.26.2",
- "@babel/types": "^7.26.0",
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.25",
- "jsesc": "^3.0.2"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz",
- "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz",
- "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==",
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz",
- "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/compat-data": "^7.25.9",
- "@babel/helper-validator-option": "^7.25.9",
- "browserslist": "^4.24.0",
- "lru-cache": "^5.1.1",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz",
- "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.9",
- "@babel/helper-member-expression-to-functions": "^7.25.9",
- "@babel/helper-optimise-call-expression": "^7.25.9",
- "@babel/helper-replace-supers": "^7.25.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
- "@babel/traverse": "^7.25.9",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz",
- "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.9",
- "regexpu-core": "^6.1.1",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz",
- "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-compilation-targets": "^7.22.6",
- "@babel/helper-plugin-utils": "^7.22.5",
- "debug": "^4.1.1",
- "lodash.debounce": "^4.0.8",
- "resolve": "^1.14.2"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz",
- "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-imports": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
- "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
- "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-imports": "^7.25.9",
- "@babel/helper-validator-identifier": "^7.25.9",
- "@babel/traverse": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz",
- "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz",
- "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz",
- "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.9",
- "@babel/helper-wrap-function": "^7.25.9",
- "@babel/traverse": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-replace-supers": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz",
- "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-member-expression-to-functions": "^7.25.9",
- "@babel/helper-optimise-call-expression": "^7.25.9",
- "@babel/traverse": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/helper-simple-access": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz",
- "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==",
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz",
- "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==",
- "license": "MIT",
- "dependencies": {
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
- "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
- "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
- "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-wrap-function": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz",
- "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==",
- "license": "MIT",
- "dependencies": {
- "@babel/template": "^7.25.9",
- "@babel/traverse": "^7.25.9",
- "@babel/types": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helpers": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz",
- "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==",
- "license": "MIT",
- "dependencies": {
- "@babel/template": "^7.25.9",
- "@babel/types": "^7.26.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz",
- "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.26.0"
- },
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz",
- "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/traverse": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz",
- "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz",
- "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz",
- "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
- "@babel/plugin-transform-optional-chaining": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.13.0"
- }
- },
- "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz",
- "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/traverse": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.21.0-placeholder-for-preset-env.2",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
- "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-dynamic-import": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
- "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz",
- "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz",
- "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz",
- "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz",
- "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
- "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.18.6",
- "@babel/helper-plugin-utils": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz",
- "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz",
- "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-remap-async-to-generator": "^7.25.9",
- "@babel/traverse": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz",
- "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-imports": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-remap-async-to-generator": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz",
- "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz",
- "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz",
- "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz",
- "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.12.0"
- }
- },
- "node_modules/@babel/plugin-transform-classes": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz",
- "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.9",
- "@babel/helper-compilation-targets": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-replace-supers": "^7.25.9",
- "@babel/traverse": "^7.25.9",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz",
- "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/template": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz",
- "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz",
- "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz",
- "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz",
- "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-transform-dynamic-import": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz",
- "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz",
- "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-export-namespace-from": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz",
- "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-for-of": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz",
- "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-function-name": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz",
- "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-compilation-targets": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/traverse": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-json-strings": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz",
- "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-literals": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz",
- "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz",
- "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz",
- "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz",
- "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-transforms": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz",
- "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-transforms": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-simple-access": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz",
- "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-transforms": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-validator-identifier": "^7.25.9",
- "@babel/traverse": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz",
- "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-transforms": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz",
- "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-transform-new-target": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz",
- "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz",
- "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-numeric-separator": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz",
- "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-object-rest-spread": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz",
- "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-compilation-targets": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/plugin-transform-parameters": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-object-super": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz",
- "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-replace-supers": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-optional-catch-binding": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz",
- "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-optional-chaining": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz",
- "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-parameters": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz",
- "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-private-methods": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz",
- "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-private-property-in-object": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz",
- "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.9",
- "@babel/helper-create-class-features-plugin": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz",
- "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-react-constant-elements": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz",
- "integrity": "sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-react-display-name": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz",
- "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-react-jsx": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz",
- "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.9",
- "@babel/helper-module-imports": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/plugin-syntax-jsx": "^7.25.9",
- "@babel/types": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-react-jsx-development": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz",
- "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==",
- "license": "MIT",
- "dependencies": {
- "@babel/plugin-transform-react-jsx": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-react-pure-annotations": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz",
- "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz",
- "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9",
- "regenerator-transform": "^0.15.2"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-regexp-modifiers": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz",
- "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz",
- "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-runtime": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz",
- "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-module-imports": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9",
- "babel-plugin-polyfill-corejs2": "^0.4.10",
- "babel-plugin-polyfill-corejs3": "^0.10.6",
- "babel-plugin-polyfill-regenerator": "^0.6.1",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz",
- "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-spread": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz",
- "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz",
- "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz",
- "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz",
- "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-typescript": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz",
- "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.9",
- "@babel/helper-create-class-features-plugin": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
- "@babel/plugin-syntax-typescript": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz",
- "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-property-regex": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz",
- "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz",
- "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz",
- "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0"
- }
- },
- "node_modules/@babel/preset-env": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz",
- "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==",
- "license": "MIT",
- "dependencies": {
- "@babel/compat-data": "^7.26.0",
- "@babel/helper-compilation-targets": "^7.25.9",
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-validator-option": "^7.25.9",
- "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9",
- "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9",
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9",
- "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
- "@babel/plugin-syntax-import-assertions": "^7.26.0",
- "@babel/plugin-syntax-import-attributes": "^7.26.0",
- "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
- "@babel/plugin-transform-arrow-functions": "^7.25.9",
- "@babel/plugin-transform-async-generator-functions": "^7.25.9",
- "@babel/plugin-transform-async-to-generator": "^7.25.9",
- "@babel/plugin-transform-block-scoped-functions": "^7.25.9",
- "@babel/plugin-transform-block-scoping": "^7.25.9",
- "@babel/plugin-transform-class-properties": "^7.25.9",
- "@babel/plugin-transform-class-static-block": "^7.26.0",
- "@babel/plugin-transform-classes": "^7.25.9",
- "@babel/plugin-transform-computed-properties": "^7.25.9",
- "@babel/plugin-transform-destructuring": "^7.25.9",
- "@babel/plugin-transform-dotall-regex": "^7.25.9",
- "@babel/plugin-transform-duplicate-keys": "^7.25.9",
- "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9",
- "@babel/plugin-transform-dynamic-import": "^7.25.9",
- "@babel/plugin-transform-exponentiation-operator": "^7.25.9",
- "@babel/plugin-transform-export-namespace-from": "^7.25.9",
- "@babel/plugin-transform-for-of": "^7.25.9",
- "@babel/plugin-transform-function-name": "^7.25.9",
- "@babel/plugin-transform-json-strings": "^7.25.9",
- "@babel/plugin-transform-literals": "^7.25.9",
- "@babel/plugin-transform-logical-assignment-operators": "^7.25.9",
- "@babel/plugin-transform-member-expression-literals": "^7.25.9",
- "@babel/plugin-transform-modules-amd": "^7.25.9",
- "@babel/plugin-transform-modules-commonjs": "^7.25.9",
- "@babel/plugin-transform-modules-systemjs": "^7.25.9",
- "@babel/plugin-transform-modules-umd": "^7.25.9",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9",
- "@babel/plugin-transform-new-target": "^7.25.9",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9",
- "@babel/plugin-transform-numeric-separator": "^7.25.9",
- "@babel/plugin-transform-object-rest-spread": "^7.25.9",
- "@babel/plugin-transform-object-super": "^7.25.9",
- "@babel/plugin-transform-optional-catch-binding": "^7.25.9",
- "@babel/plugin-transform-optional-chaining": "^7.25.9",
- "@babel/plugin-transform-parameters": "^7.25.9",
- "@babel/plugin-transform-private-methods": "^7.25.9",
- "@babel/plugin-transform-private-property-in-object": "^7.25.9",
- "@babel/plugin-transform-property-literals": "^7.25.9",
- "@babel/plugin-transform-regenerator": "^7.25.9",
- "@babel/plugin-transform-regexp-modifiers": "^7.26.0",
- "@babel/plugin-transform-reserved-words": "^7.25.9",
- "@babel/plugin-transform-shorthand-properties": "^7.25.9",
- "@babel/plugin-transform-spread": "^7.25.9",
- "@babel/plugin-transform-sticky-regex": "^7.25.9",
- "@babel/plugin-transform-template-literals": "^7.25.9",
- "@babel/plugin-transform-typeof-symbol": "^7.25.9",
- "@babel/plugin-transform-unicode-escapes": "^7.25.9",
- "@babel/plugin-transform-unicode-property-regex": "^7.25.9",
- "@babel/plugin-transform-unicode-regex": "^7.25.9",
- "@babel/plugin-transform-unicode-sets-regex": "^7.25.9",
- "@babel/preset-modules": "0.1.6-no-external-plugins",
- "babel-plugin-polyfill-corejs2": "^0.4.10",
- "babel-plugin-polyfill-corejs3": "^0.10.6",
- "babel-plugin-polyfill-regenerator": "^0.6.1",
- "core-js-compat": "^3.38.1",
- "semver": "^6.3.1"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/preset-env/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/@babel/preset-modules": {
- "version": "0.1.6-no-external-plugins",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
- "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/types": "^7.4.4",
- "esutils": "^2.0.2"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/@babel/preset-react": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.9.tgz",
- "integrity": "sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-validator-option": "^7.25.9",
- "@babel/plugin-transform-react-display-name": "^7.25.9",
- "@babel/plugin-transform-react-jsx": "^7.25.9",
- "@babel/plugin-transform-react-jsx-development": "^7.25.9",
- "@babel/plugin-transform-react-pure-annotations": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/preset-typescript": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz",
- "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.25.9",
- "@babel/helper-validator-option": "^7.25.9",
- "@babel/plugin-syntax-jsx": "^7.25.9",
- "@babel/plugin-transform-modules-commonjs": "^7.25.9",
- "@babel/plugin-transform-typescript": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@babel/runtime": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz",
- "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
- "license": "MIT",
- "dependencies": {
- "regenerator-runtime": "^0.14.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/runtime-corejs3": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz",
- "integrity": "sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w==",
- "license": "MIT",
- "dependencies": {
- "core-js-pure": "^3.30.2",
- "regenerator-runtime": "^0.14.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz",
- "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.25.9",
- "@babel/parser": "^7.25.9",
- "@babel/types": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz",
- "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.25.9",
- "@babel/generator": "^7.25.9",
- "@babel/parser": "^7.25.9",
- "@babel/template": "^7.25.9",
- "@babel/types": "^7.25.9",
- "debug": "^4.3.1",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz",
- "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-string-parser": "^7.25.9",
- "@babel/helper-validator-identifier": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@braintree/sanitize-url": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.0.tgz",
- "integrity": "sha512-o+UlMLt49RvtCASlOMW0AkHnabN9wR9rwCCherxO0yG4Npy34GkvrAqdXQvrhNs+jh+gkK8gB8Lf05qL/O7KWg==",
- "license": "MIT"
- },
- "node_modules/@chevrotain/cst-dts-gen": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",
- "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "@chevrotain/gast": "11.0.3",
- "@chevrotain/types": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/@chevrotain/gast": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",
- "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",
- "license": "Apache-2.0",
- "dependencies": {
- "@chevrotain/types": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/@chevrotain/regexp-to-ast": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz",
- "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==",
- "license": "Apache-2.0"
- },
- "node_modules/@chevrotain/types": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",
- "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==",
- "license": "Apache-2.0"
- },
- "node_modules/@chevrotain/utils": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",
- "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==",
- "license": "Apache-2.0"
- },
- "node_modules/@colors/colors": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
- "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=0.1.90"
- }
- },
- "node_modules/@csstools/cascade-layer-name-parser": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.4.tgz",
- "integrity": "sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3"
- }
- },
- "node_modules/@csstools/color-helpers": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.1.tgz",
- "integrity": "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@csstools/css-calc": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.0.tgz",
- "integrity": "sha512-X69PmFOrjTZfN5ijxtI8hZ9kRADFSLrmmQ6hgDJ272Il049WGKpDY64KhrFm/7rbWve0z81QepawzjkKlqkNGw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3"
- }
- },
- "node_modules/@csstools/css-color-parser": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.6.tgz",
- "integrity": "sha512-S/IjXqTHdpI4EtzGoNCHfqraXF37x12ZZHA1Lk7zoT5pm2lMjFuqhX/89L7dqX4CcMacKK+6ZCs5TmEGb/+wKw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@csstools/color-helpers": "^5.0.1",
- "@csstools/css-calc": "^2.1.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3"
- }
- },
- "node_modules/@csstools/css-parser-algorithms": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz",
- "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@csstools/css-tokenizer": "^3.0.3"
- }
- },
- "node_modules/@csstools/css-tokenizer": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz",
- "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@csstools/media-query-list-parser": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz",
- "integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3"
- }
- },
- "node_modules/@csstools/postcss-cascade-layers": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz",
- "integrity": "sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/selector-specificity": "^5.0.0",
- "postcss-selector-parser": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-cascade-layers/node_modules/@csstools/selector-specificity": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
- "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss-selector-parser": "^7.0.0"
- }
- },
- "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
- "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@csstools/postcss-color-function": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.6.tgz",
- "integrity": "sha512-EcvXfC60cTIumzpsxWuvVjb7rsJEHPvqn3jeMEBUaE3JSc4FRuP7mEQ+1eicxWmIrs3FtzMH9gR3sgA5TH+ebQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-color-parser": "^3.0.6",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/postcss-progressive-custom-properties": "^4.0.0",
- "@csstools/utilities": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-color-mix-function": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.6.tgz",
- "integrity": "sha512-jVKdJn4+JkASYGhyPO+Wa5WXSx1+oUgaXb3JsjJn/BlrtFh5zjocCY7pwWi0nuP24V1fY7glQsxEYcYNy0dMFg==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-color-parser": "^3.0.6",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/postcss-progressive-custom-properties": "^4.0.0",
- "@csstools/utilities": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-content-alt-text": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.4.tgz",
- "integrity": "sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/postcss-progressive-custom-properties": "^4.0.0",
- "@csstools/utilities": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-exponential-functions": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.5.tgz",
- "integrity": "sha512-mi8R6dVfA2nDoKM3wcEi64I8vOYEgQVtVKCfmLHXupeLpACfGAided5ddMt5f+CnEodNu4DifuVwb0I6fQDGGQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-calc": "^2.1.0",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-font-format-keywords": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz",
- "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/utilities": "^2.0.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-gamut-mapping": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.6.tgz",
- "integrity": "sha512-0ke7fmXfc8H+kysZz246yjirAH6JFhyX9GTlyRnM0exHO80XcA9zeJpy5pOp5zo/AZiC/q5Pf+Hw7Pd6/uAoYA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-color-parser": "^3.0.6",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-gradients-interpolation-method": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.6.tgz",
- "integrity": "sha512-Itrbx6SLUzsZ6Mz3VuOlxhbfuyLTogG5DwEF1V8dAi24iMuvQPIHd7Ti+pNDp7j6WixndJGZaoNR0f9VSzwuTg==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-color-parser": "^3.0.6",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/postcss-progressive-custom-properties": "^4.0.0",
- "@csstools/utilities": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-hwb-function": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.6.tgz",
- "integrity": "sha512-927Pqy3a1uBP7U8sTfaNdZVB0mNXzIrJO/GZ8us9219q9n06gOqCdfZ0E6d1P66Fm0fYHvxfDbfcUuwAn5UwhQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-color-parser": "^3.0.6",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/postcss-progressive-custom-properties": "^4.0.0",
- "@csstools/utilities": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-ic-unit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.0.tgz",
- "integrity": "sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/postcss-progressive-custom-properties": "^4.0.0",
- "@csstools/utilities": "^2.0.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-initial": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.0.tgz",
- "integrity": "sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-is-pseudo-class": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz",
- "integrity": "sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/selector-specificity": "^5.0.0",
- "postcss-selector-parser": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-is-pseudo-class/node_modules/@csstools/selector-specificity": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
- "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss-selector-parser": "^7.0.0"
- }
- },
- "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
- "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@csstools/postcss-light-dark-function": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.7.tgz",
- "integrity": "sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/postcss-progressive-custom-properties": "^4.0.0",
- "@csstools/utilities": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-logical-float-and-clear": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz",
- "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-logical-overflow": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz",
- "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-logical-overscroll-behavior": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz",
- "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-logical-resize": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz",
- "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-logical-viewport-units": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.3.tgz",
- "integrity": "sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/utilities": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-media-minmax": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.5.tgz",
- "integrity": "sha512-sdh5i5GToZOIAiwhdntRWv77QDtsxP2r2gXW/WbLSCoLr00KTq/yiF1qlQ5XX2+lmiFa8rATKMcbwl3oXDMNew==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@csstools/css-calc": "^2.1.0",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/media-query-list-parser": "^4.0.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.4.tgz",
- "integrity": "sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/media-query-list-parser": "^4.0.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-nested-calc": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz",
- "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/utilities": "^2.0.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-normalize-display-values": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz",
- "integrity": "sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-oklab-function": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.6.tgz",
- "integrity": "sha512-Hptoa0uX+XsNacFBCIQKTUBrFKDiplHan42X73EklG6XmQLG7/aIvxoNhvZ7PvOWMt67Pw3bIlUY2nD6p5vL8A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-color-parser": "^3.0.6",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/postcss-progressive-custom-properties": "^4.0.0",
- "@csstools/utilities": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-progressive-custom-properties": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz",
- "integrity": "sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-random-function": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-1.0.1.tgz",
- "integrity": "sha512-Ab/tF8/RXktQlFwVhiC70UNfpFQRhtE5fQQoP2pO+KCPGLsLdWFiOuHgSRtBOqEshCVAzR4H6o38nhvRZq8deA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-calc": "^2.1.0",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-relative-color-syntax": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.6.tgz",
- "integrity": "sha512-yxP618Xb+ji1I624jILaYM62uEmZcmbdmFoZHoaThw896sq0vU39kqTTF+ZNic9XyPtPMvq0vyvbgmHaszq8xg==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-color-parser": "^3.0.6",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/postcss-progressive-custom-properties": "^4.0.0",
- "@csstools/utilities": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-scope-pseudo-class": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz",
- "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "postcss-selector-parser": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
- "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@csstools/postcss-sign-functions": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.0.tgz",
- "integrity": "sha512-SLcc20Nujx/kqbSwDmj6oaXgpy3UjFhBy1sfcqPgDkHfOIfUtUVH7OXO+j7BU4v/At5s61N5ZX6shvgPwluhsA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-calc": "^2.1.0",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-stepped-value-functions": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.5.tgz",
- "integrity": "sha512-G6SJ6hZJkhxo6UZojVlLo14MohH4J5J7z8CRBrxxUYy9JuZiIqUo5TBYyDGcE0PLdzpg63a7mHSJz3VD+gMwqw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-calc": "^2.1.0",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-text-decoration-shorthand": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.1.tgz",
- "integrity": "sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/color-helpers": "^5.0.1",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-trigonometric-functions": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.5.tgz",
- "integrity": "sha512-/YQThYkt5MLvAmVu7zxjhceCYlKrYddK6LEmK5I4ojlS6BmO9u2yO4+xjXzu2+NPYmHSTtP4NFSamBCMmJ1NJA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-calc": "^2.1.0",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/postcss-unset-value": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz",
- "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@csstools/utilities": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz",
- "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/@discoveryjs/json-ext": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
- "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/@docsearch/css": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.0.tgz",
- "integrity": "sha512-pieeipSOW4sQ0+bE5UFC51AOZp9NGxg89wAlZ1BAQFaiRAGK1IKUaPQ0UGZeNctJXyqZ1UvBtOQh2HH+U5GtmA==",
- "license": "MIT"
- },
- "node_modules/@docsearch/react": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.0.tgz",
- "integrity": "sha512-WnFK720+iwTVt94CxY3u+FgX6exb3BfN5kE9xUY6uuAH/9W/UFboBZFLlrw/zxFRHoHZCOXRtOylsXF+6LHI+Q==",
- "license": "MIT",
- "dependencies": {
- "@algolia/autocomplete-core": "1.17.7",
- "@algolia/autocomplete-preset-algolia": "1.17.7",
- "@docsearch/css": "3.8.0",
- "algoliasearch": "^5.12.0"
- },
- "peerDependencies": {
- "@types/react": ">= 16.8.0 < 19.0.0",
- "react": ">= 16.8.0 < 19.0.0",
- "react-dom": ">= 16.8.0 < 19.0.0",
- "search-insights": ">= 1 < 3"
- },
- "peerDependenciesMeta": {
- "@types/react": {
- "optional": true
- },
- "react": {
- "optional": true
- },
- "react-dom": {
- "optional": true
- },
- "search-insights": {
- "optional": true
- }
- }
- },
- "node_modules/@docsearch/react/node_modules/@algolia/client-analytics": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.15.0.tgz",
- "integrity": "sha512-lho0gTFsQDIdCwyUKTtMuf9nCLwq9jOGlLGIeQGKDxXF7HbiAysFIu5QW/iQr1LzMgDyM9NH7K98KY+BiIFriQ==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "5.15.0",
- "@algolia/requester-browser-xhr": "5.15.0",
- "@algolia/requester-fetch": "5.15.0",
- "@algolia/requester-node-http": "5.15.0"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@docsearch/react/node_modules/@algolia/client-personalization": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.15.0.tgz",
- "integrity": "sha512-LfaZqLUWxdYFq44QrasCDED5bSYOswpQjSiIL7Q5fYlefAAUO95PzBPKCfUhSwhb4rKxigHfDkd81AvEicIEoA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "5.15.0",
- "@algolia/requester-browser-xhr": "5.15.0",
- "@algolia/requester-fetch": "5.15.0",
- "@algolia/requester-node-http": "5.15.0"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@docsearch/react/node_modules/@algolia/recommend": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.15.0.tgz",
- "integrity": "sha512-5eupMwSqMLDObgSMF0XG958zR6GJP3f7jHDQ3/WlzCM9/YIJiWIUoJFGsko9GYsA5xbLDHE/PhWtq4chcCdaGQ==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "5.15.0",
- "@algolia/requester-browser-xhr": "5.15.0",
- "@algolia/requester-fetch": "5.15.0",
- "@algolia/requester-node-http": "5.15.0"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@docsearch/react/node_modules/algoliasearch": {
- "version": "5.15.0",
- "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.15.0.tgz",
- "integrity": "sha512-Yf3Swz1s63hjvBVZ/9f2P1Uu48GjmjCN+Esxb6MAONMGtZB1fRX8/S1AhUTtsuTlcGovbYLxpHgc7wEzstDZBw==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-abtesting": "5.15.0",
- "@algolia/client-analytics": "5.15.0",
- "@algolia/client-common": "5.15.0",
- "@algolia/client-insights": "5.15.0",
- "@algolia/client-personalization": "5.15.0",
- "@algolia/client-query-suggestions": "5.15.0",
- "@algolia/client-search": "5.15.0",
- "@algolia/ingestion": "1.15.0",
- "@algolia/monitoring": "1.15.0",
- "@algolia/recommend": "5.15.0",
- "@algolia/requester-browser-xhr": "5.15.0",
- "@algolia/requester-fetch": "5.15.0",
- "@algolia/requester-node-http": "5.15.0"
- },
- "engines": {
- "node": ">= 14.0.0"
- }
- },
- "node_modules/@docusaurus/babel": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.6.3.tgz",
- "integrity": "sha512-7dW9Hat9EHYCVicFXYA4hjxBY38+hPuCURL8oRF9fySRm7vzNWuEOghA1TXcykuXZp0HLG2td4RhDxCvGG7tNw==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.25.9",
- "@babel/generator": "^7.25.9",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-transform-runtime": "^7.25.9",
- "@babel/preset-env": "^7.25.9",
- "@babel/preset-react": "^7.25.9",
- "@babel/preset-typescript": "^7.25.9",
- "@babel/runtime": "^7.25.9",
- "@babel/runtime-corejs3": "^7.25.9",
- "@babel/traverse": "^7.25.9",
- "@docusaurus/logger": "3.6.3",
- "@docusaurus/utils": "3.6.3",
- "babel-plugin-dynamic-import-node": "^2.3.3",
- "fs-extra": "^11.1.1",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=18.0"
- }
- },
- "node_modules/@docusaurus/bundler": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.6.3.tgz",
- "integrity": "sha512-47JLuc8D4wA+6VOvmMd5fUC9rFppBQpQOnxDYiVXffm/DeV/wmm3sbpNd5Y+O+G2+nevLTRnvCm/qyancv0Y3A==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.25.9",
- "@docusaurus/babel": "3.6.3",
- "@docusaurus/cssnano-preset": "3.6.3",
- "@docusaurus/logger": "3.6.3",
- "@docusaurus/types": "3.6.3",
- "@docusaurus/utils": "3.6.3",
- "babel-loader": "^9.2.1",
- "clean-css": "^5.3.2",
- "copy-webpack-plugin": "^11.0.0",
- "css-loader": "^6.8.1",
- "css-minimizer-webpack-plugin": "^5.0.1",
- "cssnano": "^6.1.2",
- "file-loader": "^6.2.0",
- "html-minifier-terser": "^7.2.0",
- "mini-css-extract-plugin": "^2.9.1",
- "null-loader": "^4.0.1",
- "postcss": "^8.4.26",
- "postcss-loader": "^7.3.3",
- "postcss-preset-env": "^10.1.0",
- "react-dev-utils": "^12.0.1",
- "terser-webpack-plugin": "^5.3.9",
- "tslib": "^2.6.0",
- "url-loader": "^4.1.1",
- "webpack": "^5.95.0",
- "webpackbar": "^6.0.1"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "@docusaurus/faster": "*"
- },
- "peerDependenciesMeta": {
- "@docusaurus/faster": {
- "optional": true
- }
- }
- },
- "node_modules/@docusaurus/core": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.6.3.tgz",
- "integrity": "sha512-xL7FRY9Jr5DWqB6pEnqgKqcMPJOX5V0pgWXi5lCiih11sUBmcFKM7c3+GyxcVeeWFxyYSDP3grLTWqJoP4P9Vw==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/babel": "3.6.3",
- "@docusaurus/bundler": "3.6.3",
- "@docusaurus/logger": "3.6.3",
- "@docusaurus/mdx-loader": "3.6.3",
- "@docusaurus/utils": "3.6.3",
- "@docusaurus/utils-common": "3.6.3",
- "@docusaurus/utils-validation": "3.6.3",
- "boxen": "^6.2.1",
- "chalk": "^4.1.2",
- "chokidar": "^3.5.3",
- "cli-table3": "^0.6.3",
- "combine-promises": "^1.1.0",
- "commander": "^5.1.0",
- "core-js": "^3.31.1",
- "del": "^6.1.1",
- "detect-port": "^1.5.1",
- "escape-html": "^1.0.3",
- "eta": "^2.2.0",
- "eval": "^0.1.8",
- "fs-extra": "^11.1.1",
- "html-tags": "^3.3.1",
- "html-webpack-plugin": "^5.6.0",
- "leven": "^3.1.0",
- "lodash": "^4.17.21",
- "p-map": "^4.0.0",
- "prompts": "^2.4.2",
- "react-dev-utils": "^12.0.1",
- "react-helmet-async": "^1.3.0",
- "react-loadable": "npm:@docusaurus/react-loadable@6.0.0",
- "react-loadable-ssr-addon-v5-slorber": "^1.0.1",
- "react-router": "^5.3.4",
- "react-router-config": "^5.1.1",
- "react-router-dom": "^5.3.4",
- "rtl-detect": "^1.0.4",
- "semver": "^7.5.4",
- "serve-handler": "^6.1.6",
- "shelljs": "^0.8.5",
- "tslib": "^2.6.0",
- "update-notifier": "^6.0.2",
- "webpack": "^5.95.0",
- "webpack-bundle-analyzer": "^4.10.2",
- "webpack-dev-server": "^4.15.2",
- "webpack-merge": "^6.0.1"
- },
- "bin": {
- "docusaurus": "bin/docusaurus.mjs"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "@mdx-js/react": "^3.0.0",
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/core/node_modules/react-router-dom": {
- "version": "5.3.4",
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz",
- "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.12.13",
- "history": "^4.9.0",
- "loose-envify": "^1.3.1",
- "prop-types": "^15.6.2",
- "react-router": "5.3.4",
- "tiny-invariant": "^1.0.2",
- "tiny-warning": "^1.0.0"
- },
- "peerDependencies": {
- "react": ">=15"
- }
- },
- "node_modules/@docusaurus/cssnano-preset": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.6.3.tgz",
- "integrity": "sha512-qP7SXrwZ+23GFJdPN4aIHQrZW+oH/7tzwEuc/RNL0+BdZdmIjYQqUxdXsjE4lFxLNZjj0eUrSNYIS6xwfij+5Q==",
- "license": "MIT",
- "dependencies": {
- "cssnano-preset-advanced": "^6.1.2",
- "postcss": "^8.4.38",
- "postcss-sort-media-queries": "^5.2.0",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=18.0"
- }
- },
- "node_modules/@docusaurus/logger": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.6.3.tgz",
- "integrity": "sha512-xSubJixcNyMV9wMV4q0s47CBz3Rlc5jbcCCuij8pfQP8qn/DIpt0ks8W6hQWzHAedg/J/EwxxUOUrnEoKzJo8g==",
- "license": "MIT",
- "dependencies": {
- "chalk": "^4.1.2",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=18.0"
- }
- },
- "node_modules/@docusaurus/lqip-loader": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/lqip-loader/-/lqip-loader-3.6.3.tgz",
- "integrity": "sha512-GlQIhVpskcD7T1Lm/eYR+T0ZurEly3291t/KIJCRZcl3ggVcpRlPDXVx3X2o6O5ESClEt5V5ev0i1J9UaCw8IQ==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/logger": "3.6.3",
- "file-loader": "^6.2.0",
- "lodash": "^4.17.21",
- "sharp": "^0.32.3",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=18.0"
- }
- },
- "node_modules/@docusaurus/mdx-loader": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.6.3.tgz",
- "integrity": "sha512-3iJdiDz9540ppBseeI93tWTDtUGVkxzh59nMq4ignylxMuXBLK8dFqVeaEor23v1vx6TrGKZ2FuLaTB+U7C0QQ==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/logger": "3.6.3",
- "@docusaurus/utils": "3.6.3",
- "@docusaurus/utils-validation": "3.6.3",
- "@mdx-js/mdx": "^3.0.0",
- "@slorber/remark-comment": "^1.0.0",
- "escape-html": "^1.0.3",
- "estree-util-value-to-estree": "^3.0.1",
- "file-loader": "^6.2.0",
- "fs-extra": "^11.1.1",
- "image-size": "^1.0.2",
- "mdast-util-mdx": "^3.0.0",
- "mdast-util-to-string": "^4.0.0",
- "rehype-raw": "^7.0.0",
- "remark-directive": "^3.0.0",
- "remark-emoji": "^4.0.0",
- "remark-frontmatter": "^5.0.0",
- "remark-gfm": "^4.0.0",
- "stringify-object": "^3.3.0",
- "tslib": "^2.6.0",
- "unified": "^11.0.3",
- "unist-util-visit": "^5.0.0",
- "url-loader": "^4.1.1",
- "vfile": "^6.0.1",
- "webpack": "^5.88.1"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/module-type-aliases": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.6.3.tgz",
- "integrity": "sha512-MjaXX9PN/k5ugNvfRZdWyKWq4FsrhN4LEXaj0pEmMebJuBNlFeGyKQUa9DRhJHpadNaiMLrbo9m3U7Ig5YlsZg==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/types": "3.6.3",
- "@types/history": "^4.7.11",
- "@types/react": "*",
- "@types/react-router-config": "*",
- "@types/react-router-dom": "*",
- "react-helmet-async": "*",
- "react-loadable": "npm:@docusaurus/react-loadable@6.0.0"
- },
- "peerDependencies": {
- "react": "*",
- "react-dom": "*"
- }
- },
- "node_modules/@docusaurus/plugin-content-blog": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.6.3.tgz",
- "integrity": "sha512-k0ogWwwJU3pFRFfvW1kRVHxzf2DutLGaaLjAnHVEU6ju+aRP0Z5ap/13DHyPOfHeE4WKpn/M0TqjdwZAcY3kAw==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.6.3",
- "@docusaurus/logger": "3.6.3",
- "@docusaurus/mdx-loader": "3.6.3",
- "@docusaurus/theme-common": "3.6.3",
- "@docusaurus/types": "3.6.3",
- "@docusaurus/utils": "3.6.3",
- "@docusaurus/utils-common": "3.6.3",
- "@docusaurus/utils-validation": "3.6.3",
- "cheerio": "1.0.0-rc.12",
- "feed": "^4.2.2",
- "fs-extra": "^11.1.1",
- "lodash": "^4.17.21",
- "reading-time": "^1.5.0",
- "srcset": "^4.0.0",
- "tslib": "^2.6.0",
- "unist-util-visit": "^5.0.0",
- "utility-types": "^3.10.0",
- "webpack": "^5.88.1"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "@docusaurus/plugin-content-docs": "*",
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/plugin-content-docs": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.6.3.tgz",
- "integrity": "sha512-r2wS8y/fsaDcxkm20W5bbYJFPzdWdEaTWVYjNxlHlcmX086eqQR1Fomlg9BHTJ0dLXPzAlbC8EN4XqMr3QzNCQ==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.6.3",
- "@docusaurus/logger": "3.6.3",
- "@docusaurus/mdx-loader": "3.6.3",
- "@docusaurus/module-type-aliases": "3.6.3",
- "@docusaurus/theme-common": "3.6.3",
- "@docusaurus/types": "3.6.3",
- "@docusaurus/utils": "3.6.3",
- "@docusaurus/utils-common": "3.6.3",
- "@docusaurus/utils-validation": "3.6.3",
- "@types/react-router-config": "^5.0.7",
- "combine-promises": "^1.1.0",
- "fs-extra": "^11.1.1",
- "js-yaml": "^4.1.0",
- "lodash": "^4.17.21",
- "tslib": "^2.6.0",
- "utility-types": "^3.10.0",
- "webpack": "^5.88.1"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/plugin-content-pages": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.6.3.tgz",
- "integrity": "sha512-eHrmTgjgLZsuqfsYr5X2xEwyIcck0wseSofWrjTwT9FLOWp+KDmMAuVK+wRo7sFImWXZk3oV/xX/g9aZrhD7OA==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.6.3",
- "@docusaurus/mdx-loader": "3.6.3",
- "@docusaurus/types": "3.6.3",
- "@docusaurus/utils": "3.6.3",
- "@docusaurus/utils-validation": "3.6.3",
- "fs-extra": "^11.1.1",
- "tslib": "^2.6.0",
- "webpack": "^5.88.1"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/plugin-debug": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.6.3.tgz",
- "integrity": "sha512-zB9GXfIZNPRfzKnNjU6xGVrqn9bPXuGhpjgsuc/YtcTDjnjhasg38NdYd5LEqXex5G/zIorQgWB3n6x/Ut62vQ==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.6.3",
- "@docusaurus/types": "3.6.3",
- "@docusaurus/utils": "3.6.3",
- "fs-extra": "^11.1.1",
- "react-json-view-lite": "^1.2.0",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/plugin-google-analytics": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.6.3.tgz",
- "integrity": "sha512-rCDNy1QW8Dag7nZq67pcum0bpFLrwvxJhYuVprhFh8BMBDxV0bY+bAkGHbSf68P3Bk9C3hNOAXX1srGLIDvcTA==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.6.3",
- "@docusaurus/types": "3.6.3",
- "@docusaurus/utils-validation": "3.6.3",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/plugin-google-gtag": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.6.3.tgz",
- "integrity": "sha512-+OyDvhM6rqVkQOmLVkQWVJAizEEfkPzVWtIHXlWPOCFGK9X4/AWeBSrU0WG4iMg9Z4zD4YDRrU+lvI4s6DSC+w==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.6.3",
- "@docusaurus/types": "3.6.3",
- "@docusaurus/utils-validation": "3.6.3",
- "@types/gtag.js": "^0.0.12",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/plugin-google-tag-manager": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.6.3.tgz",
- "integrity": "sha512-1M6UPB13gWUtN2UHX083/beTn85PlRI9ABItTl/JL1FJ5dJTWWFXXsHf9WW/6hrVwthwTeV/AGbGKvLKV+IlCA==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.6.3",
- "@docusaurus/types": "3.6.3",
- "@docusaurus/utils-validation": "3.6.3",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/plugin-ideal-image": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-ideal-image/-/plugin-ideal-image-3.6.3.tgz",
- "integrity": "sha512-y5Pi4UH8wsFUEFPzjzo1GEtb9vfi5VfWTH/ONifDW84ldYaZBPzVM4AIVWcuNPlYG+p4eYwHE4eTuJFe2iupKQ==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.6.3",
- "@docusaurus/lqip-loader": "3.6.3",
- "@docusaurus/responsive-loader": "^1.7.0",
- "@docusaurus/theme-translations": "3.6.3",
- "@docusaurus/types": "3.6.3",
- "@docusaurus/utils-validation": "3.6.3",
- "@slorber/react-ideal-image": "^0.0.12",
- "react-waypoint": "^10.3.0",
- "sharp": "^0.32.3",
- "tslib": "^2.6.0",
- "webpack": "^5.88.1"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "jimp": "*",
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- },
- "peerDependenciesMeta": {
- "jimp": {
- "optional": true
- }
- }
- },
- "node_modules/@docusaurus/plugin-sitemap": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.6.3.tgz",
- "integrity": "sha512-94qOO4M9Fwv9KfVQJsgbe91k+fPJ4byf1L3Ez8TUa6TAFPo/BrLwQ80zclHkENlL1824TuxkcMKv33u6eydQCg==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.6.3",
- "@docusaurus/logger": "3.6.3",
- "@docusaurus/types": "3.6.3",
- "@docusaurus/utils": "3.6.3",
- "@docusaurus/utils-common": "3.6.3",
- "@docusaurus/utils-validation": "3.6.3",
- "fs-extra": "^11.1.1",
- "sitemap": "^7.1.1",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/preset-classic": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.6.3.tgz",
- "integrity": "sha512-VHSYWROT3flvNNI1SrnMOtW1EsjeHNK9dhU6s9eY5hryZe79lUqnZJyze/ymDe2LXAqzyj6y5oYvyBoZZk6ErA==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.6.3",
- "@docusaurus/plugin-content-blog": "3.6.3",
- "@docusaurus/plugin-content-docs": "3.6.3",
- "@docusaurus/plugin-content-pages": "3.6.3",
- "@docusaurus/plugin-debug": "3.6.3",
- "@docusaurus/plugin-google-analytics": "3.6.3",
- "@docusaurus/plugin-google-gtag": "3.6.3",
- "@docusaurus/plugin-google-tag-manager": "3.6.3",
- "@docusaurus/plugin-sitemap": "3.6.3",
- "@docusaurus/theme-classic": "3.6.3",
- "@docusaurus/theme-common": "3.6.3",
- "@docusaurus/theme-search-algolia": "3.6.3",
- "@docusaurus/types": "3.6.3"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/responsive-loader": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/responsive-loader/-/responsive-loader-1.7.0.tgz",
- "integrity": "sha512-N0cWuVqTRXRvkBxeMQcy/OF2l7GN8rmni5EzR3HpwR+iU2ckYPnziceojcxvvxQ5NqZg1QfEW0tycQgHp+e+Nw==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "loader-utils": "^2.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "jimp": "*",
- "sharp": "*"
- },
- "peerDependenciesMeta": {
- "jimp": {
- "optional": true
- },
- "sharp": {
- "optional": true
- }
- }
- },
- "node_modules/@docusaurus/theme-classic": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.6.3.tgz",
- "integrity": "sha512-1RRLK1tSArI2c00qugWYO3jRocjOZwGF1mBzPPylDVRwWCS/rnWWR91ChdbbaxIupRJ+hX8ZBYrwr5bbU0oztQ==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.6.3",
- "@docusaurus/logger": "3.6.3",
- "@docusaurus/mdx-loader": "3.6.3",
- "@docusaurus/module-type-aliases": "3.6.3",
- "@docusaurus/plugin-content-blog": "3.6.3",
- "@docusaurus/plugin-content-docs": "3.6.3",
- "@docusaurus/plugin-content-pages": "3.6.3",
- "@docusaurus/theme-common": "3.6.3",
- "@docusaurus/theme-translations": "3.6.3",
- "@docusaurus/types": "3.6.3",
- "@docusaurus/utils": "3.6.3",
- "@docusaurus/utils-common": "3.6.3",
- "@docusaurus/utils-validation": "3.6.3",
- "@mdx-js/react": "^3.0.0",
- "clsx": "^2.0.0",
- "copy-text-to-clipboard": "^3.2.0",
- "infima": "0.2.0-alpha.45",
- "lodash": "^4.17.21",
- "nprogress": "^0.2.0",
- "postcss": "^8.4.26",
- "prism-react-renderer": "^2.3.0",
- "prismjs": "^1.29.0",
- "react-router-dom": "^5.3.4",
- "rtlcss": "^4.1.0",
- "tslib": "^2.6.0",
- "utility-types": "^3.10.0"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/theme-classic/node_modules/react-router-dom": {
- "version": "5.3.4",
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz",
- "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.12.13",
- "history": "^4.9.0",
- "loose-envify": "^1.3.1",
- "prop-types": "^15.6.2",
- "react-router": "5.3.4",
- "tiny-invariant": "^1.0.2",
- "tiny-warning": "^1.0.0"
- },
- "peerDependencies": {
- "react": ">=15"
- }
- },
- "node_modules/@docusaurus/theme-common": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.6.3.tgz",
- "integrity": "sha512-b8ZkhczXHDxWWyvz+YJy4t/PlPbEogTTbgnHoflYnH7rmRtyoodTsu8WVM12la5LmlMJBclBXFl29OH8kPE7gg==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/mdx-loader": "3.6.3",
- "@docusaurus/module-type-aliases": "3.6.3",
- "@docusaurus/utils": "3.6.3",
- "@docusaurus/utils-common": "3.6.3",
- "@types/history": "^4.7.11",
- "@types/react": "*",
- "@types/react-router-config": "*",
- "clsx": "^2.0.0",
- "parse-numeric-range": "^1.3.0",
- "prism-react-renderer": "^2.3.0",
- "tslib": "^2.6.0",
- "utility-types": "^3.10.0"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "@docusaurus/plugin-content-docs": "*",
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/theme-mermaid": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.6.3.tgz",
- "integrity": "sha512-kIqpjNCP/9R2GGf8UmiDxD3CkOAEJuJIEFlaKMgQtjVxa/vH+9PLI1+DFbArGoG4+0ENTYUq8phHPW7SeL36uQ==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/core": "3.6.3",
- "@docusaurus/module-type-aliases": "3.6.3",
- "@docusaurus/theme-common": "3.6.3",
- "@docusaurus/types": "3.6.3",
- "@docusaurus/utils-validation": "3.6.3",
- "mermaid": ">=10.4",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/theme-search-algolia": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.6.3.tgz",
- "integrity": "sha512-rt+MGCCpYgPyWCGXtbxlwFbTSobu15jWBTPI2LHsHNa5B0zSmOISX6FWYAPt5X1rNDOqMGM0FATnh7TBHRohVA==",
- "license": "MIT",
- "dependencies": {
- "@docsearch/react": "^3.5.2",
- "@docusaurus/core": "3.6.3",
- "@docusaurus/logger": "3.6.3",
- "@docusaurus/plugin-content-docs": "3.6.3",
- "@docusaurus/theme-common": "3.6.3",
- "@docusaurus/theme-translations": "3.6.3",
- "@docusaurus/utils": "3.6.3",
- "@docusaurus/utils-validation": "3.6.3",
- "algoliasearch": "^4.18.0",
- "algoliasearch-helper": "^3.13.3",
- "clsx": "^2.0.0",
- "eta": "^2.2.0",
- "fs-extra": "^11.1.1",
- "lodash": "^4.17.21",
- "tslib": "^2.6.0",
- "utility-types": "^3.10.0"
- },
- "engines": {
- "node": ">=18.0"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/theme-translations": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.6.3.tgz",
- "integrity": "sha512-Gb0regclToVlngSIIwUCtBMQBq48qVUaN1XQNKW4XwlsgUyk0vP01LULdqbem7czSwIeBAFXFoORJ0RPX7ht/w==",
- "license": "MIT",
- "dependencies": {
- "fs-extra": "^11.1.1",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=18.0"
- }
- },
- "node_modules/@docusaurus/types": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.3.tgz",
- "integrity": "sha512-xD9oTGDrouWzefkhe9ogB2fDV96/82cRpNGx2HIvI5L87JHNhQVIWimQ/3JIiiX/TEd5S9s+VO6FFguwKNRVow==",
- "license": "MIT",
- "dependencies": {
- "@mdx-js/mdx": "^3.0.0",
- "@types/history": "^4.7.11",
- "@types/react": "*",
- "commander": "^5.1.0",
- "joi": "^17.9.2",
- "react-helmet-async": "^1.3.0",
- "utility-types": "^3.10.0",
- "webpack": "^5.95.0",
- "webpack-merge": "^5.9.0"
- },
- "peerDependencies": {
- "react": "^18.0.0",
- "react-dom": "^18.0.0"
- }
- },
- "node_modules/@docusaurus/types/node_modules/webpack-merge": {
- "version": "5.10.0",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
- "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
- "license": "MIT",
- "dependencies": {
- "clone-deep": "^4.0.1",
- "flat": "^5.0.2",
- "wildcard": "^2.0.0"
- },
- "engines": {
- "node": ">=10.0.0"
- }
- },
- "node_modules/@docusaurus/utils": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.6.3.tgz",
- "integrity": "sha512-0R/FR3bKVl4yl8QwbL4TYFfR+OXBRpVUaTJdENapBGR3YMwfM6/JnhGilWQO8AOwPJGtGoDK7ib8+8UF9f3OZQ==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/logger": "3.6.3",
- "@docusaurus/types": "3.6.3",
- "@docusaurus/utils-common": "3.6.3",
- "@svgr/webpack": "^8.1.0",
- "escape-string-regexp": "^4.0.0",
- "file-loader": "^6.2.0",
- "fs-extra": "^11.1.1",
- "github-slugger": "^1.5.0",
- "globby": "^11.1.0",
- "gray-matter": "^4.0.3",
- "jiti": "^1.20.0",
- "js-yaml": "^4.1.0",
- "lodash": "^4.17.21",
- "micromatch": "^4.0.5",
- "prompts": "^2.4.2",
- "resolve-pathname": "^3.0.0",
- "shelljs": "^0.8.5",
- "tslib": "^2.6.0",
- "url-loader": "^4.1.1",
- "utility-types": "^3.10.0",
- "webpack": "^5.88.1"
- },
- "engines": {
- "node": ">=18.0"
- }
- },
- "node_modules/@docusaurus/utils-common": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.6.3.tgz",
- "integrity": "sha512-v4nKDaANLgT3pMBewHYEMAl/ufY0LkXao1QkFWzI5huWFOmNQ2UFzv2BiKeHX5Ownis0/w6cAyoxPhVdDonlSQ==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/types": "3.6.3",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=18.0"
- }
- },
- "node_modules/@docusaurus/utils-validation": {
- "version": "3.6.3",
- "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.6.3.tgz",
- "integrity": "sha512-bhEGGiN5BE38h21vjqD70Gxg++j+PfYVddDUE5UFvLDup68QOcpD33CLr+2knPorlxRbEaNfz6HQDUMQ3HuqKw==",
- "license": "MIT",
- "dependencies": {
- "@docusaurus/logger": "3.6.3",
- "@docusaurus/utils": "3.6.3",
- "@docusaurus/utils-common": "3.6.3",
- "fs-extra": "^11.2.0",
- "joi": "^17.9.2",
- "js-yaml": "^4.1.0",
- "lodash": "^4.17.21",
- "tslib": "^2.6.0"
- },
- "engines": {
- "node": ">=18.0"
- }
- },
- "node_modules/@hapi/hoek": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
- "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
- "license": "BSD-3-Clause"
- },
- "node_modules/@hapi/topo": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
- "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "@hapi/hoek": "^9.0.0"
- }
- },
- "node_modules/@iconify/types": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",
- "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
- "license": "MIT"
- },
- "node_modules/@iconify/utils": {
- "version": "2.1.33",
- "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.1.33.tgz",
- "integrity": "sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw==",
- "license": "MIT",
- "dependencies": {
- "@antfu/install-pkg": "^0.4.0",
- "@antfu/utils": "^0.7.10",
- "@iconify/types": "^2.0.0",
- "debug": "^4.3.6",
- "kolorist": "^1.8.0",
- "local-pkg": "^0.5.0",
- "mlly": "^1.7.1"
- }
- },
- "node_modules/@jest/schemas": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
- "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
- "license": "MIT",
- "dependencies": {
- "@sinclair/typebox": "^0.27.8"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jest/types": {
- "version": "29.6.3",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
- "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
- "license": "MIT",
- "dependencies": {
- "@jest/schemas": "^29.6.3",
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^17.0.8",
- "chalk": "^4.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/set-array": "^1.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/source-map": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
- "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.5",
- "@jridgewell/trace-mapping": "^0.3.25"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@leichtgewicht/ip-codec": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
- "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
- "license": "MIT"
- },
- "node_modules/@mdx-js/mdx": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz",
- "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^3.0.0",
- "@types/mdx": "^2.0.0",
- "collapse-white-space": "^2.0.0",
- "devlop": "^1.0.0",
- "estree-util-is-identifier-name": "^3.0.0",
- "estree-util-scope": "^1.0.0",
- "estree-walker": "^3.0.0",
- "hast-util-to-jsx-runtime": "^2.0.0",
- "markdown-extensions": "^2.0.0",
- "recma-build-jsx": "^1.0.0",
- "recma-jsx": "^1.0.0",
- "recma-stringify": "^1.0.0",
- "rehype-recma": "^1.0.0",
- "remark-mdx": "^3.0.0",
- "remark-parse": "^11.0.0",
- "remark-rehype": "^11.0.0",
- "source-map": "^0.7.0",
- "unified": "^11.0.0",
- "unist-util-position-from-estree": "^2.0.0",
- "unist-util-stringify-position": "^4.0.0",
- "unist-util-visit": "^5.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/@mdx-js/react": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz",
- "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==",
- "license": "MIT",
- "dependencies": {
- "@types/mdx": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- },
- "peerDependencies": {
- "@types/react": ">=16",
- "react": ">=16"
- }
- },
- "node_modules/@mermaid-js/parser": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.3.0.tgz",
- "integrity": "sha512-HsvL6zgE5sUPGgkIDlmAWR1HTNHz2Iy11BAWPTa4Jjabkpguy4Ze2gzfLrg6pdRuBvFwgUYyxiaNqZwrEEXepA==",
- "license": "MIT",
- "dependencies": {
- "langium": "3.0.0"
- }
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@pnpm/config.env-replace": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz",
- "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==",
- "license": "MIT",
- "engines": {
- "node": ">=12.22.0"
- }
- },
- "node_modules/@pnpm/network.ca-file": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz",
- "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==",
- "license": "MIT",
- "dependencies": {
- "graceful-fs": "4.2.10"
- },
- "engines": {
- "node": ">=12.22.0"
- }
- },
- "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
- "license": "ISC"
- },
- "node_modules/@pnpm/npm-conf": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz",
- "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==",
- "license": "MIT",
- "dependencies": {
- "@pnpm/config.env-replace": "^1.1.0",
- "@pnpm/network.ca-file": "^1.0.1",
- "config-chain": "^1.1.11"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@polka/url": {
- "version": "1.0.0-next.28",
- "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz",
- "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==",
- "license": "MIT"
- },
- "node_modules/@remix-run/router": {
- "version": "1.15.1",
- "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.1.tgz",
- "integrity": "sha512-zcU0gM3z+3iqj8UX45AmWY810l3oUmXM7uH4dt5xtzvMhRtYVhKGOmgOd1877dOPPepfCjUv57w+syamWIYe7w==",
- "license": "MIT",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/@shikijs/core": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.24.0.tgz",
- "integrity": "sha512-6pvdH0KoahMzr6689yh0QJ3rCgF4j1XsXRHNEeEN6M4xJTfQ6QPWrmHzIddotg+xPJUPEPzYzYCKzpYyhTI6Gw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@shikijs/engine-javascript": "1.24.0",
- "@shikijs/engine-oniguruma": "1.24.0",
- "@shikijs/types": "1.24.0",
- "@shikijs/vscode-textmate": "^9.3.0",
- "@types/hast": "^3.0.4",
- "hast-util-to-html": "^9.0.3"
- }
- },
- "node_modules/@shikijs/engine-javascript": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.24.0.tgz",
- "integrity": "sha512-ZA6sCeSsF3Mnlxxr+4wGEJ9Tto4RHmfIS7ox8KIAbH0MTVUkw3roHPHZN+LlJMOHJJOVupe6tvuAzRpN8qK1vA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "1.24.0",
- "@shikijs/vscode-textmate": "^9.3.0",
- "oniguruma-to-es": "0.7.0"
- }
- },
- "node_modules/@shikijs/engine-oniguruma": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.24.0.tgz",
- "integrity": "sha512-Eua0qNOL73Y82lGA4GF5P+G2+VXX9XnuUxkiUuwcxQPH4wom+tE39kZpBFXfUuwNYxHSkrSxpB1p4kyRW0moSg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@shikijs/types": "1.24.0",
- "@shikijs/vscode-textmate": "^9.3.0"
- }
- },
- "node_modules/@shikijs/types": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.24.0.tgz",
- "integrity": "sha512-aptbEuq1Pk88DMlCe+FzXNnBZ17LCiLIGWAeCWhoFDzia5Q5Krx3DgnULLiouSdd6+LUM39XwXGppqYE0Ghtug==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@shikijs/vscode-textmate": "^9.3.0",
- "@types/hast": "^3.0.4"
- }
- },
- "node_modules/@shikijs/vscode-textmate": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.3.0.tgz",
- "integrity": "sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@sideway/address": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
- "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "@hapi/hoek": "^9.0.0"
- }
- },
- "node_modules/@sideway/formula": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
- "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
- "license": "BSD-3-Clause"
- },
- "node_modules/@sideway/pinpoint": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
- "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
- "license": "BSD-3-Clause"
- },
- "node_modules/@sinclair/typebox": {
- "version": "0.27.8",
- "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
- "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
- "license": "MIT"
- },
- "node_modules/@sindresorhus/is": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
- "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/is?sponsor=1"
- }
- },
- "node_modules/@slorber/react-ideal-image": {
- "version": "0.0.12",
- "resolved": "https://registry.npmjs.org/@slorber/react-ideal-image/-/react-ideal-image-0.0.12.tgz",
- "integrity": "sha512-u8KiDTEkMA7/KAeA5ywg/P7YG4zuKhWtswfVZDH8R8HXgQsFcHIYU2WaQnGuK/Du7Wdj90I+SdFmajSGFRvoKA==",
- "license": "MIT",
- "engines": {
- "node": ">= 8.9.0",
- "npm": "> 3"
- },
- "peerDependencies": {
- "prop-types": ">=15",
- "react": ">=0.14.x",
- "react-waypoint": ">=9.0.2"
- }
- },
- "node_modules/@slorber/remark-comment": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz",
- "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==",
- "license": "MIT",
- "dependencies": {
- "micromark-factory-space": "^1.0.0",
- "micromark-util-character": "^1.1.0",
- "micromark-util-symbol": "^1.0.1"
- }
- },
- "node_modules/@svgr/babel-plugin-add-jsx-attribute": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz",
- "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz",
- "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz",
- "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz",
- "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@svgr/babel-plugin-svg-dynamic-title": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz",
- "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@svgr/babel-plugin-svg-em-dimensions": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz",
- "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@svgr/babel-plugin-transform-react-native-svg": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz",
- "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@svgr/babel-plugin-transform-svg-component": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz",
- "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@svgr/babel-preset": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz",
- "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==",
- "license": "MIT",
- "dependencies": {
- "@svgr/babel-plugin-add-jsx-attribute": "8.0.0",
- "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0",
- "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0",
- "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0",
- "@svgr/babel-plugin-svg-dynamic-title": "8.0.0",
- "@svgr/babel-plugin-svg-em-dimensions": "8.0.0",
- "@svgr/babel-plugin-transform-react-native-svg": "8.1.0",
- "@svgr/babel-plugin-transform-svg-component": "8.0.0"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@babel/core": "^7.0.0-0"
- }
- },
- "node_modules/@svgr/core": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz",
- "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.21.3",
- "@svgr/babel-preset": "8.1.0",
- "camelcase": "^6.2.0",
- "cosmiconfig": "^8.1.3",
- "snake-case": "^3.0.4"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- }
- },
- "node_modules/@svgr/hast-util-to-babel-ast": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz",
- "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.21.3",
- "entities": "^4.4.0"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- }
- },
- "node_modules/@svgr/plugin-jsx": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz",
- "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.21.3",
- "@svgr/babel-preset": "8.1.0",
- "@svgr/hast-util-to-babel-ast": "8.0.0",
- "svg-parser": "^2.0.4"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@svgr/core": "*"
- }
- },
- "node_modules/@svgr/plugin-svgo": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz",
- "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==",
- "license": "MIT",
- "dependencies": {
- "cosmiconfig": "^8.1.3",
- "deepmerge": "^4.3.1",
- "svgo": "^3.0.2"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- },
- "peerDependencies": {
- "@svgr/core": "*"
- }
- },
- "node_modules/@svgr/webpack": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz",
- "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==",
- "license": "MIT",
- "dependencies": {
- "@babel/core": "^7.21.3",
- "@babel/plugin-transform-react-constant-elements": "^7.21.3",
- "@babel/preset-env": "^7.20.2",
- "@babel/preset-react": "^7.18.6",
- "@babel/preset-typescript": "^7.21.0",
- "@svgr/core": "8.1.0",
- "@svgr/plugin-jsx": "8.1.0",
- "@svgr/plugin-svgo": "8.1.0"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/gregberge"
- }
- },
- "node_modules/@szmarczak/http-timer": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
- "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
- "license": "MIT",
- "dependencies": {
- "defer-to-connect": "^2.0.1"
- },
- "engines": {
- "node": ">=14.16"
- }
- },
- "node_modules/@trysound/sax": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
- "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
- "license": "ISC",
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/@types/acorn": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz",
- "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "*"
- }
- },
- "node_modules/@types/body-parser": {
- "version": "1.19.5",
- "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
- "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
- "license": "MIT",
- "dependencies": {
- "@types/connect": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/bonjour": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz",
- "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/connect": {
- "version": "3.4.38",
- "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
- "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/connect-history-api-fallback": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz",
- "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==",
- "license": "MIT",
- "dependencies": {
- "@types/express-serve-static-core": "*",
- "@types/node": "*"
- }
- },
- "node_modules/@types/d3": {
- "version": "7.4.3",
- "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz",
- "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-array": "*",
- "@types/d3-axis": "*",
- "@types/d3-brush": "*",
- "@types/d3-chord": "*",
- "@types/d3-color": "*",
- "@types/d3-contour": "*",
- "@types/d3-delaunay": "*",
- "@types/d3-dispatch": "*",
- "@types/d3-drag": "*",
- "@types/d3-dsv": "*",
- "@types/d3-ease": "*",
- "@types/d3-fetch": "*",
- "@types/d3-force": "*",
- "@types/d3-format": "*",
- "@types/d3-geo": "*",
- "@types/d3-hierarchy": "*",
- "@types/d3-interpolate": "*",
- "@types/d3-path": "*",
- "@types/d3-polygon": "*",
- "@types/d3-quadtree": "*",
- "@types/d3-random": "*",
- "@types/d3-scale": "*",
- "@types/d3-scale-chromatic": "*",
- "@types/d3-selection": "*",
- "@types/d3-shape": "*",
- "@types/d3-time": "*",
- "@types/d3-time-format": "*",
- "@types/d3-timer": "*",
- "@types/d3-transition": "*",
- "@types/d3-zoom": "*"
- }
- },
- "node_modules/@types/d3-array": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz",
- "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==",
- "license": "MIT"
- },
- "node_modules/@types/d3-axis": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz",
- "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/d3-brush": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz",
- "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/d3-chord": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz",
- "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==",
- "license": "MIT"
- },
- "node_modules/@types/d3-color": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
- "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
- "license": "MIT"
- },
- "node_modules/@types/d3-contour": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz",
- "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-array": "*",
- "@types/geojson": "*"
- }
- },
- "node_modules/@types/d3-delaunay": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
- "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==",
- "license": "MIT"
- },
- "node_modules/@types/d3-dispatch": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz",
- "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==",
- "license": "MIT"
- },
- "node_modules/@types/d3-drag": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz",
- "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/d3-dsv": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz",
- "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==",
- "license": "MIT"
- },
- "node_modules/@types/d3-ease": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
- "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
- "license": "MIT"
- },
- "node_modules/@types/d3-fetch": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz",
- "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-dsv": "*"
- }
- },
- "node_modules/@types/d3-force": {
- "version": "3.0.10",
- "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz",
- "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==",
- "license": "MIT"
- },
- "node_modules/@types/d3-format": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz",
- "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==",
- "license": "MIT"
- },
- "node_modules/@types/d3-geo": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz",
- "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==",
- "license": "MIT",
- "dependencies": {
- "@types/geojson": "*"
- }
- },
- "node_modules/@types/d3-hierarchy": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz",
- "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==",
- "license": "MIT"
- },
- "node_modules/@types/d3-interpolate": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
- "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-color": "*"
- }
- },
- "node_modules/@types/d3-path": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.0.tgz",
- "integrity": "sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==",
- "license": "MIT"
- },
- "node_modules/@types/d3-polygon": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz",
- "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==",
- "license": "MIT"
- },
- "node_modules/@types/d3-quadtree": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz",
- "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==",
- "license": "MIT"
- },
- "node_modules/@types/d3-random": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz",
- "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==",
- "license": "MIT"
- },
- "node_modules/@types/d3-scale": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz",
- "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-time": "*"
- }
- },
- "node_modules/@types/d3-scale-chromatic": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
- "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==",
- "license": "MIT"
- },
- "node_modules/@types/d3-selection": {
- "version": "3.0.11",
- "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz",
- "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==",
- "license": "MIT"
- },
- "node_modules/@types/d3-shape": {
- "version": "3.1.6",
- "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz",
- "integrity": "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-path": "*"
- }
- },
- "node_modules/@types/d3-time": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
- "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
- "license": "MIT"
- },
- "node_modules/@types/d3-time-format": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz",
- "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==",
- "license": "MIT"
- },
- "node_modules/@types/d3-timer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
- "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
- "license": "MIT"
- },
- "node_modules/@types/d3-transition": {
- "version": "3.0.9",
- "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz",
- "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/d3-zoom": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz",
- "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==",
- "license": "MIT",
- "dependencies": {
- "@types/d3-interpolate": "*",
- "@types/d3-selection": "*"
- }
- },
- "node_modules/@types/debug": {
- "version": "4.1.12",
- "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
- "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
- "license": "MIT",
- "dependencies": {
- "@types/ms": "*"
- }
- },
- "node_modules/@types/eslint": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
- "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "*",
- "@types/json-schema": "*"
- }
- },
- "node_modules/@types/eslint-scope": {
- "version": "3.7.7",
- "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
- "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
- "license": "MIT",
- "dependencies": {
- "@types/eslint": "*",
- "@types/estree": "*"
- }
- },
- "node_modules/@types/estree": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
- "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
- "license": "MIT"
- },
- "node_modules/@types/estree-jsx": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
- "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "*"
- }
- },
- "node_modules/@types/express": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
- "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
- "license": "MIT",
- "dependencies": {
- "@types/body-parser": "*",
- "@types/express-serve-static-core": "^4.17.33",
- "@types/qs": "*",
- "@types/serve-static": "*"
- }
- },
- "node_modules/@types/express-serve-static-core": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz",
- "integrity": "sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*",
- "@types/send": "*"
- }
- },
- "node_modules/@types/express/node_modules/@types/express-serve-static-core": {
- "version": "4.19.6",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz",
- "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "@types/qs": "*",
- "@types/range-parser": "*",
- "@types/send": "*"
- }
- },
- "node_modules/@types/geojson": {
- "version": "7946.0.14",
- "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz",
- "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==",
- "license": "MIT"
- },
- "node_modules/@types/gtag.js": {
- "version": "0.0.12",
- "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz",
- "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==",
- "license": "MIT"
- },
- "node_modules/@types/hast": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
- "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "*"
- }
- },
- "node_modules/@types/history": {
- "version": "4.7.11",
- "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz",
- "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==",
- "license": "MIT"
- },
- "node_modules/@types/html-minifier-terser": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
- "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==",
- "license": "MIT"
- },
- "node_modules/@types/http-cache-semantics": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
- "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==",
- "license": "MIT"
- },
- "node_modules/@types/http-errors": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
- "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
- "license": "MIT"
- },
- "node_modules/@types/http-proxy": {
- "version": "1.17.15",
- "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz",
- "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/istanbul-lib-coverage": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
- "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
- "license": "MIT"
- },
- "node_modules/@types/istanbul-lib-report": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
- "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
- "license": "MIT",
- "dependencies": {
- "@types/istanbul-lib-coverage": "*"
- }
- },
- "node_modules/@types/istanbul-reports": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
- "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
- "license": "MIT",
- "dependencies": {
- "@types/istanbul-lib-report": "*"
- }
- },
- "node_modules/@types/json-schema": {
- "version": "7.0.15",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
- "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
- "license": "MIT"
- },
- "node_modules/@types/mdast": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
- "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "*"
- }
- },
- "node_modules/@types/mdx": {
- "version": "2.0.13",
- "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz",
- "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==",
- "license": "MIT"
- },
- "node_modules/@types/mime": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
- "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
- "license": "MIT"
- },
- "node_modules/@types/ms": {
- "version": "0.7.34",
- "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
- "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==",
- "license": "MIT"
- },
- "node_modules/@types/node": {
- "version": "22.10.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz",
- "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==",
- "license": "MIT",
- "dependencies": {
- "undici-types": "~6.20.0"
- }
- },
- "node_modules/@types/node-forge": {
- "version": "1.3.11",
- "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz",
- "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/parse-json": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
- "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==",
- "license": "MIT"
- },
- "node_modules/@types/parse5": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz",
- "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==",
- "license": "MIT"
- },
- "node_modules/@types/prismjs": {
- "version": "1.26.5",
- "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz",
- "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==",
- "license": "MIT"
- },
- "node_modules/@types/prop-types": {
- "version": "15.7.13",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz",
- "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==",
- "license": "MIT"
- },
- "node_modules/@types/qs": {
- "version": "6.9.17",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz",
- "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==",
- "license": "MIT"
- },
- "node_modules/@types/range-parser": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
- "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
- "license": "MIT"
- },
- "node_modules/@types/react": {
- "version": "18.3.12",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz",
- "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==",
- "license": "MIT",
- "dependencies": {
- "@types/prop-types": "*",
- "csstype": "^3.0.2"
- }
- },
- "node_modules/@types/react-router": {
- "version": "5.1.20",
- "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz",
- "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==",
- "license": "MIT",
- "dependencies": {
- "@types/history": "^4.7.11",
- "@types/react": "*"
- }
- },
- "node_modules/@types/react-router-config": {
- "version": "5.0.11",
- "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz",
- "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==",
- "license": "MIT",
- "dependencies": {
- "@types/history": "^4.7.11",
- "@types/react": "*",
- "@types/react-router": "^5.1.0"
- }
- },
- "node_modules/@types/react-router-dom": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz",
- "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==",
- "license": "MIT",
- "dependencies": {
- "@types/history": "^4.7.11",
- "@types/react": "*",
- "@types/react-router": "*"
- }
- },
- "node_modules/@types/retry": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
- "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
- "license": "MIT"
- },
- "node_modules/@types/sax": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz",
- "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/send": {
- "version": "0.17.4",
- "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
- "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
- "license": "MIT",
- "dependencies": {
- "@types/mime": "^1",
- "@types/node": "*"
- }
- },
- "node_modules/@types/serve-index": {
- "version": "1.9.4",
- "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz",
- "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
- "license": "MIT",
- "dependencies": {
- "@types/express": "*"
- }
- },
- "node_modules/@types/serve-static": {
- "version": "1.15.7",
- "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
- "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
- "license": "MIT",
- "dependencies": {
- "@types/http-errors": "*",
- "@types/node": "*",
- "@types/send": "*"
- }
- },
- "node_modules/@types/sockjs": {
- "version": "0.3.36",
- "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
- "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/trusted-types": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
- "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
- "license": "MIT",
- "optional": true
- },
- "node_modules/@types/unist": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
- "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
- "license": "MIT"
- },
- "node_modules/@types/ws": {
- "version": "8.5.13",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz",
- "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*"
- }
- },
- "node_modules/@types/yargs": {
- "version": "17.0.33",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
- "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
- "license": "MIT",
- "dependencies": {
- "@types/yargs-parser": "*"
- }
- },
- "node_modules/@types/yargs-parser": {
- "version": "21.0.3",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
- "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
- "license": "MIT"
- },
- "node_modules/@ungap/structured-clone": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
- "license": "ISC"
- },
- "node_modules/@webassemblyjs/ast": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
- "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
- "license": "MIT",
- "dependencies": {
- "@webassemblyjs/helper-numbers": "1.13.2",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
- }
- },
- "node_modules/@webassemblyjs/floating-point-hex-parser": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
- "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
- "license": "MIT"
- },
- "node_modules/@webassemblyjs/helper-api-error": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
- "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
- "license": "MIT"
- },
- "node_modules/@webassemblyjs/helper-buffer": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
- "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
- "license": "MIT"
- },
- "node_modules/@webassemblyjs/helper-numbers": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
- "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
- "license": "MIT",
- "dependencies": {
- "@webassemblyjs/floating-point-hex-parser": "1.13.2",
- "@webassemblyjs/helper-api-error": "1.13.2",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
- "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
- "license": "MIT"
- },
- "node_modules/@webassemblyjs/helper-wasm-section": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
- "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
- "license": "MIT",
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-buffer": "1.14.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/wasm-gen": "1.14.1"
- }
- },
- "node_modules/@webassemblyjs/ieee754": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
- "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
- "license": "MIT",
- "dependencies": {
- "@xtuc/ieee754": "^1.2.0"
- }
- },
- "node_modules/@webassemblyjs/leb128": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
- "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@webassemblyjs/utf8": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
- "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
- "license": "MIT"
- },
- "node_modules/@webassemblyjs/wasm-edit": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
- "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
- "license": "MIT",
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-buffer": "1.14.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/helper-wasm-section": "1.14.1",
- "@webassemblyjs/wasm-gen": "1.14.1",
- "@webassemblyjs/wasm-opt": "1.14.1",
- "@webassemblyjs/wasm-parser": "1.14.1",
- "@webassemblyjs/wast-printer": "1.14.1"
- }
- },
- "node_modules/@webassemblyjs/wasm-gen": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
- "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
- "license": "MIT",
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/ieee754": "1.13.2",
- "@webassemblyjs/leb128": "1.13.2",
- "@webassemblyjs/utf8": "1.13.2"
- }
- },
- "node_modules/@webassemblyjs/wasm-opt": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
- "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
- "license": "MIT",
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-buffer": "1.14.1",
- "@webassemblyjs/wasm-gen": "1.14.1",
- "@webassemblyjs/wasm-parser": "1.14.1"
- }
- },
- "node_modules/@webassemblyjs/wasm-parser": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
- "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
- "license": "MIT",
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@webassemblyjs/helper-api-error": "1.13.2",
- "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
- "@webassemblyjs/ieee754": "1.13.2",
- "@webassemblyjs/leb128": "1.13.2",
- "@webassemblyjs/utf8": "1.13.2"
- }
- },
- "node_modules/@webassemblyjs/wast-printer": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
- "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
- "license": "MIT",
- "dependencies": {
- "@webassemblyjs/ast": "1.14.1",
- "@xtuc/long": "4.2.2"
- }
- },
- "node_modules/@xtuc/ieee754": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
- "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
- "license": "BSD-3-Clause"
- },
- "node_modules/@xtuc/long": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
- "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
- "license": "Apache-2.0"
- },
- "node_modules/abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
- "license": "ISC"
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "license": "MIT",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/accepts/node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/accepts/node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/accepts/node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/acorn": {
- "version": "8.14.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
- "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
- "license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "license": "MIT",
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/acorn-walk": {
- "version": "8.3.4",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
- "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.11.0"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/address": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz",
- "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==",
- "license": "MIT",
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
- "license": "MIT",
- "dependencies": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ajv": {
- "version": "8.17.1",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.3",
- "fast-uri": "^3.0.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ajv-formats": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
- "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
- "license": "MIT",
- "dependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependenciesMeta": {
- "ajv": {
- "optional": true
- }
- }
- },
- "node_modules/ajv-keywords": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
- "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.3"
- },
- "peerDependencies": {
- "ajv": "^8.8.2"
- }
- },
- "node_modules/algoliasearch": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.24.0.tgz",
- "integrity": "sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==",
- "license": "MIT",
- "dependencies": {
- "@algolia/cache-browser-local-storage": "4.24.0",
- "@algolia/cache-common": "4.24.0",
- "@algolia/cache-in-memory": "4.24.0",
- "@algolia/client-account": "4.24.0",
- "@algolia/client-analytics": "4.24.0",
- "@algolia/client-common": "4.24.0",
- "@algolia/client-personalization": "4.24.0",
- "@algolia/client-search": "4.24.0",
- "@algolia/logger-common": "4.24.0",
- "@algolia/logger-console": "4.24.0",
- "@algolia/recommend": "4.24.0",
- "@algolia/requester-browser-xhr": "4.24.0",
- "@algolia/requester-common": "4.24.0",
- "@algolia/requester-node-http": "4.24.0",
- "@algolia/transporter": "4.24.0"
- }
- },
- "node_modules/algoliasearch-helper": {
- "version": "3.22.5",
- "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.22.5.tgz",
- "integrity": "sha512-lWvhdnc+aKOKx8jyA3bsdEgHzm/sglC4cYdMG4xSQyRiPLJVJtH/IVYZG3Hp6PkTEhQqhyVYkeP9z2IlcHJsWw==",
- "license": "MIT",
- "dependencies": {
- "@algolia/events": "^4.0.1"
- },
- "peerDependencies": {
- "algoliasearch": ">= 3.1 < 6"
- }
- },
- "node_modules/algoliasearch/node_modules/@algolia/client-common": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz",
- "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/requester-common": "4.24.0",
- "@algolia/transporter": "4.24.0"
- }
- },
- "node_modules/algoliasearch/node_modules/@algolia/client-search": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz",
- "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/client-common": "4.24.0",
- "@algolia/requester-common": "4.24.0",
- "@algolia/transporter": "4.24.0"
- }
- },
- "node_modules/algoliasearch/node_modules/@algolia/requester-browser-xhr": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz",
- "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==",
- "license": "MIT",
- "dependencies": {
- "@algolia/requester-common": "4.24.0"
- }
- },
- "node_modules/algoliasearch/node_modules/@algolia/requester-node-http": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz",
- "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==",
- "license": "MIT",
- "dependencies": {
- "@algolia/requester-common": "4.24.0"
- }
- },
- "node_modules/ansi-align": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
- "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
- "license": "ISC",
- "dependencies": {
- "string-width": "^4.1.0"
- }
- },
- "node_modules/ansi-align/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/ansi-align/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "license": "MIT",
- "dependencies": {
- "type-fest": "^0.21.3"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-escapes/node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-html-community": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
- "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==",
- "engines": [
- "node >= 0.8.0"
- ],
- "license": "Apache-2.0",
- "bin": {
- "ansi-html": "bin/ansi-html"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/anymatch": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
- "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
- "license": "ISC",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/aproba": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
- "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
- "license": "ISC"
- },
- "node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
- "license": "MIT"
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "license": "Python-2.0"
- },
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
- "license": "MIT"
- },
- "node_modules/array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/astring": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz",
- "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==",
- "license": "MIT",
- "bin": {
- "astring": "bin/astring"
- }
- },
- "node_modules/at-least-node": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
- "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
- "license": "ISC",
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/autocomplete.js": {
- "version": "0.37.1",
- "resolved": "https://registry.npmjs.org/autocomplete.js/-/autocomplete.js-0.37.1.tgz",
- "integrity": "sha512-PgSe9fHYhZEsm/9jggbjtVsGXJkPLvd+9mC7gZJ662vVL5CRWEtm/mIrrzCx0MrNxHVwxD5d00UOn6NsmL2LUQ==",
- "license": "MIT",
- "dependencies": {
- "immediate": "^3.2.3"
- }
- },
- "node_modules/autoprefixer": {
- "version": "10.4.20",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
- "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/autoprefixer"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.23.3",
- "caniuse-lite": "^1.0.30001646",
- "fraction.js": "^4.3.7",
- "normalize-range": "^0.1.2",
- "picocolors": "^1.0.1",
- "postcss-value-parser": "^4.2.0"
- },
- "bin": {
- "autoprefixer": "bin/autoprefixer"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/b4a": {
- "version": "1.6.7",
- "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz",
- "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==",
- "license": "Apache-2.0"
- },
- "node_modules/babel-loader": {
- "version": "9.2.1",
- "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz",
- "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==",
- "license": "MIT",
- "dependencies": {
- "find-cache-dir": "^4.0.0",
- "schema-utils": "^4.0.0"
- },
- "engines": {
- "node": ">= 14.15.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.12.0",
- "webpack": ">=5"
- }
- },
- "node_modules/babel-plugin-dynamic-import-node": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
- "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
- "license": "MIT",
- "dependencies": {
- "object.assign": "^4.1.0"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.4.12",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz",
- "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==",
- "license": "MIT",
- "dependencies": {
- "@babel/compat-data": "^7.22.6",
- "@babel/helper-define-polyfill-provider": "^0.6.3",
- "semver": "^6.3.1"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
- "version": "6.3.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
- "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.10.6",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz",
- "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.2",
- "core-js-compat": "^3.38.0"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz",
- "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==",
- "license": "MIT",
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.3"
- },
- "peerDependencies": {
- "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
- }
- },
- "node_modules/bail": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
- "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "license": "MIT"
- },
- "node_modules/bare-events": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz",
- "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==",
- "license": "Apache-2.0",
- "optional": true
- },
- "node_modules/bare-fs": {
- "version": "2.3.5",
- "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz",
- "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==",
- "license": "Apache-2.0",
- "optional": true,
- "dependencies": {
- "bare-events": "^2.0.0",
- "bare-path": "^2.0.0",
- "bare-stream": "^2.0.0"
- }
- },
- "node_modules/bare-os": {
- "version": "2.4.4",
- "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz",
- "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==",
- "license": "Apache-2.0",
- "optional": true
- },
- "node_modules/bare-path": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz",
- "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==",
- "license": "Apache-2.0",
- "optional": true,
- "dependencies": {
- "bare-os": "^2.1.0"
- }
- },
- "node_modules/bare-stream": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.4.2.tgz",
- "integrity": "sha512-XZ4ln/KV4KT+PXdIWTKjsLY+quqCaEtqqtgGJVPw9AoM73By03ij64YjepK0aQvHSWDb6AfAZwqKaFu68qkrdA==",
- "license": "Apache-2.0",
- "optional": true,
- "dependencies": {
- "streamx": "^2.20.0"
- }
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/batch": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
- "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==",
- "license": "MIT"
- },
- "node_modules/bcp-47-match": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-1.0.3.tgz",
- "integrity": "sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
- "license": "MIT",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/binary-extensions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
- "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/bl": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
- "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
- "license": "MIT",
- "dependencies": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- }
- },
- "node_modules/body-parser": {
- "version": "1.20.3",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
- "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
- "license": "MIT",
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.5",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.13.0",
- "raw-body": "2.5.2",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/body-parser/node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/body-parser/node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "license": "MIT",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/bonjour-service": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz",
- "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==",
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.3",
- "multicast-dns": "^7.2.5"
- }
- },
- "node_modules/boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "license": "ISC"
- },
- "node_modules/boxen": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz",
- "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==",
- "license": "MIT",
- "dependencies": {
- "ansi-align": "^3.0.1",
- "camelcase": "^6.2.0",
- "chalk": "^4.1.2",
- "cli-boxes": "^3.0.0",
- "string-width": "^5.0.1",
- "type-fest": "^2.5.0",
- "widest-line": "^4.0.1",
- "wrap-ansi": "^8.0.1"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
- "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
- "license": "MIT",
- "dependencies": {
- "fill-range": "^7.1.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browserslist": {
- "version": "4.24.2",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz",
- "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "caniuse-lite": "^1.0.30001669",
- "electron-to-chromium": "^1.5.41",
- "node-releases": "^2.0.18",
- "update-browserslist-db": "^1.1.1"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "license": "MIT"
- },
- "node_modules/bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/cacheable-lookup": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz",
- "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==",
- "license": "MIT",
- "engines": {
- "node": ">=14.16"
- }
- },
- "node_modules/cacheable-request": {
- "version": "10.2.14",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz",
- "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==",
- "license": "MIT",
- "dependencies": {
- "@types/http-cache-semantics": "^4.0.2",
- "get-stream": "^6.0.1",
- "http-cache-semantics": "^4.1.1",
- "keyv": "^4.5.3",
- "mimic-response": "^4.0.0",
- "normalize-url": "^8.0.0",
- "responselike": "^3.0.0"
- },
- "engines": {
- "node": ">=14.16"
- }
- },
- "node_modules/cacheable-request/node_modules/mimic-response": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz",
- "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==",
- "license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
- "license": "MIT",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camel-case": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
- "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
- "license": "MIT",
- "dependencies": {
- "pascal-case": "^3.1.2",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/caniuse-api": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
- "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.0.0",
- "caniuse-lite": "^1.0.0",
- "lodash.memoize": "^4.1.2",
- "lodash.uniq": "^4.5.0"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001684",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz",
- "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "CC-BY-4.0"
- },
- "node_modules/ccount": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
- "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/char-regex": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
- "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/character-entities": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
- "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-entities-html4": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
- "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-entities-legacy": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
- "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/character-reference-invalid": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
- "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/cheerio": {
- "version": "1.0.0-rc.12",
- "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
- "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
- "license": "MIT",
- "dependencies": {
- "cheerio-select": "^2.1.0",
- "dom-serializer": "^2.0.0",
- "domhandler": "^5.0.3",
- "domutils": "^3.0.1",
- "htmlparser2": "^8.0.1",
- "parse5": "^7.0.0",
- "parse5-htmlparser2-tree-adapter": "^7.0.0"
- },
- "engines": {
- "node": ">= 6"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
- }
- },
- "node_modules/cheerio-select": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
- "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "boolbase": "^1.0.0",
- "css-select": "^5.1.0",
- "css-what": "^6.1.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.3",
- "domutils": "^3.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/chevrotain": {
- "version": "11.0.3",
- "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
- "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
- "license": "Apache-2.0",
- "dependencies": {
- "@chevrotain/cst-dts-gen": "11.0.3",
- "@chevrotain/gast": "11.0.3",
- "@chevrotain/regexp-to-ast": "11.0.3",
- "@chevrotain/types": "11.0.3",
- "@chevrotain/utils": "11.0.3",
- "lodash-es": "4.17.21"
- }
- },
- "node_modules/chevrotain-allstar": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
- "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
- "license": "MIT",
- "dependencies": {
- "lodash-es": "^4.17.21"
- },
- "peerDependencies": {
- "chevrotain": "^11.0.0"
- }
- },
- "node_modules/chokidar": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
- "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
- "license": "MIT",
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
- "license": "ISC"
- },
- "node_modules/chrome-trace-event": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
- "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/sibiraj-s"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/clean-css": {
- "version": "5.3.3",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
- "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==",
- "license": "MIT",
- "dependencies": {
- "source-map": "~0.6.0"
- },
- "engines": {
- "node": ">= 10.0"
- }
- },
- "node_modules/clean-css/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/cli-boxes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz",
- "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/cli-table3": {
- "version": "0.6.5",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz",
- "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==",
- "license": "MIT",
- "dependencies": {
- "string-width": "^4.2.0"
- },
- "engines": {
- "node": "10.* || >= 12.*"
- },
- "optionalDependencies": {
- "@colors/colors": "1.5.0"
- }
- },
- "node_modules/cli-table3/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/cli-table3/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/clone-deep": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
- "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
- "license": "MIT",
- "dependencies": {
- "is-plain-object": "^2.0.4",
- "kind-of": "^6.0.2",
- "shallow-clone": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/clsx": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
- "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/collapse-white-space": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz",
- "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/color": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
- "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1",
- "color-string": "^1.9.0"
- },
- "engines": {
- "node": ">=12.5.0"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/color-string": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
- "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
- "license": "MIT",
- "dependencies": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
- }
- },
- "node_modules/color-support": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
- "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
- "license": "ISC",
- "bin": {
- "color-support": "bin.js"
- }
- },
- "node_modules/colord": {
- "version": "2.9.3",
- "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
- "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
- "license": "MIT"
- },
- "node_modules/colorette": {
- "version": "2.0.20",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
- "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
- "license": "MIT"
- },
- "node_modules/combine-promises": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz",
- "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/comma-separated-tokens": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz",
- "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/commander": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
- "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/common-path-prefix": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz",
- "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==",
- "license": "ISC"
- },
- "node_modules/compressible": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
- "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
- "license": "MIT",
- "dependencies": {
- "mime-db": ">= 1.43.0 < 2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/compressible/node_modules/mime-db": {
- "version": "1.53.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz",
- "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/compression": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz",
- "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==",
- "license": "MIT",
- "dependencies": {
- "bytes": "3.1.2",
- "compressible": "~2.0.18",
- "debug": "2.6.9",
- "negotiator": "~0.6.4",
- "on-headers": "~1.0.2",
- "safe-buffer": "5.2.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/compression/node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/compression/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/compression/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "license": "MIT"
- },
- "node_modules/confbox": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
- "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
- "license": "MIT"
- },
- "node_modules/config-chain": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
- "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
- "license": "MIT",
- "dependencies": {
- "ini": "^1.3.4",
- "proto-list": "~1.2.1"
- }
- },
- "node_modules/configstore": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz",
- "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "dot-prop": "^6.0.1",
- "graceful-fs": "^4.2.6",
- "unique-string": "^3.0.0",
- "write-file-atomic": "^3.0.3",
- "xdg-basedir": "^5.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/yeoman/configstore?sponsor=1"
- }
- },
- "node_modules/connect-history-api-fallback": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
- "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/consola": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz",
- "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==",
- "license": "MIT",
- "engines": {
- "node": "^14.18.0 || >=16.10.0"
- }
- },
- "node_modules/console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
- "license": "ISC"
- },
- "node_modules/consolidated-events": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/consolidated-events/-/consolidated-events-2.0.2.tgz",
- "integrity": "sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ==",
- "license": "MIT"
- },
- "node_modules/content-disposition": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
- "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/convert-source-map": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
- "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
- "license": "MIT"
- },
- "node_modules/cookie": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
- "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
- "license": "MIT"
- },
- "node_modules/copy-text-to-clipboard": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz",
- "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/copy-webpack-plugin": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz",
- "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==",
- "license": "MIT",
- "dependencies": {
- "fast-glob": "^3.2.11",
- "glob-parent": "^6.0.1",
- "globby": "^13.1.1",
- "normalize-path": "^3.0.0",
- "schema-utils": "^4.0.0",
- "serialize-javascript": "^6.0.0"
- },
- "engines": {
- "node": ">= 14.15.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.1.0"
- }
- },
- "node_modules/copy-webpack-plugin/node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/copy-webpack-plugin/node_modules/globby": {
- "version": "13.2.2",
- "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz",
- "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==",
- "license": "MIT",
- "dependencies": {
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.3.0",
- "ignore": "^5.2.4",
- "merge2": "^1.4.1",
- "slash": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/copy-webpack-plugin/node_modules/slash": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
- "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/core-js": {
- "version": "3.39.0",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz",
- "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==",
- "hasInstallScript": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/core-js-compat": {
- "version": "3.39.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz",
- "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.24.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/core-js-pure": {
- "version": "3.39.0",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.39.0.tgz",
- "integrity": "sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==",
- "hasInstallScript": true,
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
- "license": "MIT"
- },
- "node_modules/cose-base": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz",
- "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==",
- "license": "MIT",
- "dependencies": {
- "layout-base": "^1.0.0"
- }
- },
- "node_modules/cosmiconfig": {
- "version": "8.3.6",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
- "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
- "license": "MIT",
- "dependencies": {
- "import-fresh": "^3.3.0",
- "js-yaml": "^4.1.0",
- "parse-json": "^5.2.0",
- "path-type": "^4.0.0"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/d-fischer"
- },
- "peerDependencies": {
- "typescript": ">=4.9.5"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/crypto-random-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
- "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
- "license": "MIT",
- "dependencies": {
- "type-fest": "^1.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/crypto-random-string/node_modules/type-fest": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
- "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/css-blank-pseudo": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz",
- "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "postcss-selector-parser": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
- "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/css-declaration-sorter": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz",
- "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==",
- "license": "ISC",
- "engines": {
- "node": "^14 || ^16 || >=18"
- },
- "peerDependencies": {
- "postcss": "^8.0.9"
- }
- },
- "node_modules/css-has-pseudo": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.1.tgz",
- "integrity": "sha512-EOcoyJt+OsuKfCADgLT7gADZI5jMzIe/AeI6MeAYKiFBDmNmM7kk46DtSfMj5AohUJisqVzopBpnQTlvbyaBWg==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/selector-specificity": "^5.0.0",
- "postcss-selector-parser": "^7.0.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/css-has-pseudo/node_modules/@csstools/selector-specificity": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
- "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss-selector-parser": "^7.0.0"
- }
- },
- "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
- "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/css-loader": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz",
- "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==",
- "license": "MIT",
- "dependencies": {
- "icss-utils": "^5.1.0",
- "postcss": "^8.4.33",
- "postcss-modules-extract-imports": "^3.1.0",
- "postcss-modules-local-by-default": "^4.0.5",
- "postcss-modules-scope": "^3.2.0",
- "postcss-modules-values": "^4.0.0",
- "postcss-value-parser": "^4.2.0",
- "semver": "^7.5.4"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "@rspack/core": "0.x || 1.x",
- "webpack": "^5.0.0"
- },
- "peerDependenciesMeta": {
- "@rspack/core": {
- "optional": true
- },
- "webpack": {
- "optional": true
- }
- }
- },
- "node_modules/css-minimizer-webpack-plugin": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz",
- "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.18",
- "cssnano": "^6.0.1",
- "jest-worker": "^29.4.3",
- "postcss": "^8.4.24",
- "schema-utils": "^4.0.1",
- "serialize-javascript": "^6.0.1"
- },
- "engines": {
- "node": ">= 14.15.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.0.0"
- },
- "peerDependenciesMeta": {
- "@parcel/css": {
- "optional": true
- },
- "@swc/css": {
- "optional": true
- },
- "clean-css": {
- "optional": true
- },
- "csso": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- },
- "lightningcss": {
- "optional": true
- }
- }
- },
- "node_modules/css-prefers-color-scheme": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz",
- "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/css-select": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
- "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "boolbase": "^1.0.0",
- "css-what": "^6.1.0",
- "domhandler": "^5.0.2",
- "domutils": "^3.0.1",
- "nth-check": "^2.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/css-selector-parser": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz",
- "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==",
- "license": "MIT"
- },
- "node_modules/css-tree": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
- "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
- "license": "MIT",
- "dependencies": {
- "mdn-data": "2.0.30",
- "source-map-js": "^1.0.1"
- },
- "engines": {
- "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
- }
- },
- "node_modules/css-what": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
- "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">= 6"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/cssdb": {
- "version": "8.2.1",
- "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.2.1.tgz",
- "integrity": "sha512-KwEPys7lNsC8OjASI8RrmwOYYDcm0JOW9zQhcV83ejYcQkirTEyeAGui8aO2F5PiS6SLpxuTzl6qlMElIdsgIg==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- }
- ],
- "license": "MIT-0"
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "license": "MIT",
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/cssnano": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz",
- "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==",
- "license": "MIT",
- "dependencies": {
- "cssnano-preset-default": "^6.1.2",
- "lilconfig": "^3.1.1"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/cssnano"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/cssnano-preset-advanced": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz",
- "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==",
- "license": "MIT",
- "dependencies": {
- "autoprefixer": "^10.4.19",
- "browserslist": "^4.23.0",
- "cssnano-preset-default": "^6.1.2",
- "postcss-discard-unused": "^6.0.5",
- "postcss-merge-idents": "^6.0.3",
- "postcss-reduce-idents": "^6.0.3",
- "postcss-zindex": "^6.0.2"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/cssnano-preset-default": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz",
- "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.23.0",
- "css-declaration-sorter": "^7.2.0",
- "cssnano-utils": "^4.0.2",
- "postcss-calc": "^9.0.1",
- "postcss-colormin": "^6.1.0",
- "postcss-convert-values": "^6.1.0",
- "postcss-discard-comments": "^6.0.2",
- "postcss-discard-duplicates": "^6.0.3",
- "postcss-discard-empty": "^6.0.3",
- "postcss-discard-overridden": "^6.0.2",
- "postcss-merge-longhand": "^6.0.5",
- "postcss-merge-rules": "^6.1.1",
- "postcss-minify-font-values": "^6.1.0",
- "postcss-minify-gradients": "^6.0.3",
- "postcss-minify-params": "^6.1.0",
- "postcss-minify-selectors": "^6.0.4",
- "postcss-normalize-charset": "^6.0.2",
- "postcss-normalize-display-values": "^6.0.2",
- "postcss-normalize-positions": "^6.0.2",
- "postcss-normalize-repeat-style": "^6.0.2",
- "postcss-normalize-string": "^6.0.2",
- "postcss-normalize-timing-functions": "^6.0.2",
- "postcss-normalize-unicode": "^6.1.0",
- "postcss-normalize-url": "^6.0.2",
- "postcss-normalize-whitespace": "^6.0.2",
- "postcss-ordered-values": "^6.0.2",
- "postcss-reduce-initial": "^6.1.0",
- "postcss-reduce-transforms": "^6.0.2",
- "postcss-svgo": "^6.0.3",
- "postcss-unique-selectors": "^6.0.4"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/cssnano-utils": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz",
- "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==",
- "license": "MIT",
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/csso": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz",
- "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==",
- "license": "MIT",
- "dependencies": {
- "css-tree": "~2.2.0"
- },
- "engines": {
- "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
- "npm": ">=7.0.0"
- }
- },
- "node_modules/csso/node_modules/css-tree": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz",
- "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==",
- "license": "MIT",
- "dependencies": {
- "mdn-data": "2.0.28",
- "source-map-js": "^1.0.1"
- },
- "engines": {
- "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
- "npm": ">=7.0.0"
- }
- },
- "node_modules/csso/node_modules/mdn-data": {
- "version": "2.0.28",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz",
- "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==",
- "license": "CC0-1.0"
- },
- "node_modules/csstype": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
- "license": "MIT"
- },
- "node_modules/cytoscape": {
- "version": "3.30.4",
- "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.4.tgz",
- "integrity": "sha512-OxtlZwQl1WbwMmLiyPSEBuzeTIQnwZhJYYWFzZ2PhEHVFwpeaqNIkUzSiso00D98qk60l8Gwon2RP304d3BJ1A==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/cytoscape-cose-bilkent": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz",
- "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==",
- "license": "MIT",
- "dependencies": {
- "cose-base": "^1.0.0"
- },
- "peerDependencies": {
- "cytoscape": "^3.2.0"
- }
- },
- "node_modules/cytoscape-fcose": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz",
- "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==",
- "license": "MIT",
- "dependencies": {
- "cose-base": "^2.2.0"
- },
- "peerDependencies": {
- "cytoscape": "^3.2.0"
- }
- },
- "node_modules/cytoscape-fcose/node_modules/cose-base": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz",
- "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==",
- "license": "MIT",
- "dependencies": {
- "layout-base": "^2.0.0"
- }
- },
- "node_modules/cytoscape-fcose/node_modules/layout-base": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz",
- "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==",
- "license": "MIT"
- },
- "node_modules/d3": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz",
- "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==",
- "license": "ISC",
- "dependencies": {
- "d3-array": "3",
- "d3-axis": "3",
- "d3-brush": "3",
- "d3-chord": "3",
- "d3-color": "3",
- "d3-contour": "4",
- "d3-delaunay": "6",
- "d3-dispatch": "3",
- "d3-drag": "3",
- "d3-dsv": "3",
- "d3-ease": "3",
- "d3-fetch": "3",
- "d3-force": "3",
- "d3-format": "3",
- "d3-geo": "3",
- "d3-hierarchy": "3",
- "d3-interpolate": "3",
- "d3-path": "3",
- "d3-polygon": "3",
- "d3-quadtree": "3",
- "d3-random": "3",
- "d3-scale": "4",
- "d3-scale-chromatic": "3",
- "d3-selection": "3",
- "d3-shape": "3",
- "d3-time": "3",
- "d3-time-format": "4",
- "d3-timer": "3",
- "d3-transition": "3",
- "d3-zoom": "3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-array": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
- "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
- "license": "ISC",
- "dependencies": {
- "internmap": "1 - 2"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-axis": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",
- "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-brush": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",
- "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",
- "license": "ISC",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-drag": "2 - 3",
- "d3-interpolate": "1 - 3",
- "d3-selection": "3",
- "d3-transition": "3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-chord": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",
- "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",
- "license": "ISC",
- "dependencies": {
- "d3-path": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-color": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
- "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-contour": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",
- "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",
- "license": "ISC",
- "dependencies": {
- "d3-array": "^3.2.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-delaunay": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
- "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
- "license": "ISC",
- "dependencies": {
- "delaunator": "5"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-dispatch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
- "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-drag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
- "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
- "license": "ISC",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-selection": "3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-dsv": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
- "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
- "license": "ISC",
- "dependencies": {
- "commander": "7",
- "iconv-lite": "0.6",
- "rw": "1"
- },
- "bin": {
- "csv2json": "bin/dsv2json.js",
- "csv2tsv": "bin/dsv2dsv.js",
- "dsv2dsv": "bin/dsv2dsv.js",
- "dsv2json": "bin/dsv2json.js",
- "json2csv": "bin/json2dsv.js",
- "json2dsv": "bin/json2dsv.js",
- "json2tsv": "bin/json2dsv.js",
- "tsv2csv": "bin/dsv2dsv.js",
- "tsv2json": "bin/dsv2json.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-dsv/node_modules/commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
- "license": "MIT",
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/d3-ease": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
- "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-fetch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
- "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
- "license": "ISC",
- "dependencies": {
- "d3-dsv": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-force": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
- "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
- "license": "ISC",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-quadtree": "1 - 3",
- "d3-timer": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-format": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
- "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-geo": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",
- "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",
- "license": "ISC",
- "dependencies": {
- "d3-array": "2.5.0 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-hierarchy": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
- "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-interpolate": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
- "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
- "license": "ISC",
- "dependencies": {
- "d3-color": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-path": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
- "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-polygon": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",
- "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-quadtree": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
- "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-random": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
- "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-sankey": {
- "version": "0.12.3",
- "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz",
- "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "d3-array": "1 - 2",
- "d3-shape": "^1.2.0"
- }
- },
- "node_modules/d3-sankey/node_modules/d3-array": {
- "version": "2.12.1",
- "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz",
- "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "internmap": "^1.0.0"
- }
- },
- "node_modules/d3-sankey/node_modules/d3-path": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz",
- "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==",
- "license": "BSD-3-Clause"
- },
- "node_modules/d3-sankey/node_modules/d3-shape": {
- "version": "1.3.7",
- "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz",
- "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "d3-path": "1"
- }
- },
- "node_modules/d3-sankey/node_modules/internmap": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz",
- "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==",
- "license": "ISC"
- },
- "node_modules/d3-scale": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
- "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
- "license": "ISC",
- "dependencies": {
- "d3-array": "2.10.0 - 3",
- "d3-format": "1 - 3",
- "d3-interpolate": "1.2.0 - 3",
- "d3-time": "2.1.1 - 3",
- "d3-time-format": "2 - 4"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-scale-chromatic": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
- "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
- "license": "ISC",
- "dependencies": {
- "d3-color": "1 - 3",
- "d3-interpolate": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-selection": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
- "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-shape": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
- "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
- "license": "ISC",
- "dependencies": {
- "d3-path": "^3.1.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-time": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
- "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
- "license": "ISC",
- "dependencies": {
- "d3-array": "2 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-time-format": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
- "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
- "license": "ISC",
- "dependencies": {
- "d3-time": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-timer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
- "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-transition": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
- "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
- "license": "ISC",
- "dependencies": {
- "d3-color": "1 - 3",
- "d3-dispatch": "1 - 3",
- "d3-ease": "1 - 3",
- "d3-interpolate": "1 - 3",
- "d3-timer": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "d3-selection": "2 - 3"
- }
- },
- "node_modules/d3-zoom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
- "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
- "license": "ISC",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-drag": "2 - 3",
- "d3-interpolate": "1 - 3",
- "d3-selection": "2 - 3",
- "d3-transition": "2 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/dagre-d3-es": {
- "version": "7.0.11",
- "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.11.tgz",
- "integrity": "sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==",
- "license": "MIT",
- "dependencies": {
- "d3": "^7.9.0",
- "lodash-es": "^4.17.21"
- }
- },
- "node_modules/dayjs": {
- "version": "1.11.13",
- "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
- "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
- "license": "MIT"
- },
- "node_modules/debounce": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
- "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==",
- "license": "MIT"
- },
- "node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/decode-named-character-reference": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz",
- "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==",
- "license": "MIT",
- "dependencies": {
- "character-entities": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/decompress-response": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
- "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
- "license": "MIT",
- "dependencies": {
- "mimic-response": "^3.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
- "license": "MIT",
- "engines": {
- "node": ">=4.0.0"
- }
- },
- "node_modules/deepmerge": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
- "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/default-gateway": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
- "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "execa": "^5.0.0"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/defer-to-connect": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
- "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "license": "MIT",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/define-lazy-prop": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
- "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/define-properties": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
- "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.0.1",
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/del": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz",
- "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==",
- "license": "MIT",
- "dependencies": {
- "globby": "^11.0.1",
- "graceful-fs": "^4.2.4",
- "is-glob": "^4.0.1",
- "is-path-cwd": "^2.2.0",
- "is-path-inside": "^3.0.2",
- "p-map": "^4.0.0",
- "rimraf": "^3.0.2",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/delaunator": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz",
- "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==",
- "license": "ISC",
- "dependencies": {
- "robust-predicates": "^3.0.2"
- }
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/dequal": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
- "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/detect-libc": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
- "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/detect-node": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
- "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
- "license": "MIT"
- },
- "node_modules/detect-port": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz",
- "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==",
- "license": "MIT",
- "dependencies": {
- "address": "^1.0.1",
- "debug": "4"
- },
- "bin": {
- "detect": "bin/detect-port.js",
- "detect-port": "bin/detect-port.js"
- },
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/detect-port-alt": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz",
- "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==",
- "license": "MIT",
- "dependencies": {
- "address": "^1.0.1",
- "debug": "^2.6.0"
- },
- "bin": {
- "detect": "bin/detect-port",
- "detect-port": "bin/detect-port"
- },
- "engines": {
- "node": ">= 4.2.1"
- }
- },
- "node_modules/detect-port-alt/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/detect-port-alt/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/devlop": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
- "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
- "license": "MIT",
- "dependencies": {
- "dequal": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/dir-glob": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
- "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
- "license": "MIT",
- "dependencies": {
- "path-type": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/direction": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/direction/-/direction-1.0.4.tgz",
- "integrity": "sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ==",
- "license": "MIT",
- "bin": {
- "direction": "cli.js"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/dns-packet": {
- "version": "5.6.1",
- "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
- "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==",
- "license": "MIT",
- "dependencies": {
- "@leichtgewicht/ip-codec": "^2.0.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/docusaurus-lunr-search": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/docusaurus-lunr-search/-/docusaurus-lunr-search-3.5.0.tgz",
- "integrity": "sha512-k3zN4jYMi/prWInJILGKOxE+BVcgYinwj9+gcECsYm52tS+4ZKzXQzbPnVJAEXmvKOfFMcDFvS3MSmm6cEaxIQ==",
- "license": "MIT",
- "dependencies": {
- "autocomplete.js": "^0.37.0",
- "clsx": "^1.2.1",
- "gauge": "^3.0.0",
- "hast-util-select": "^4.0.0",
- "hast-util-to-text": "^2.0.0",
- "hogan.js": "^3.0.2",
- "lunr": "^2.3.8",
- "lunr-languages": "^1.4.0",
- "mark.js": "^8.11.1",
- "minimatch": "^3.0.4",
- "rehype-parse": "^7.0.1",
- "to-vfile": "^6.1.0",
- "unified": "^9.0.0",
- "unist-util-is": "^4.0.2"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "peerDependencies": {
- "@docusaurus/core": "^2.0.0-alpha.60 || ^2.0.0 || ^3.0.0",
- "react": "^16.8.4 || ^17 || ^18",
- "react-dom": "^16.8.4 || ^17 || ^18"
- }
- },
- "node_modules/docusaurus-lunr-search/node_modules/@types/unist": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
- "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
- "license": "MIT"
- },
- "node_modules/docusaurus-lunr-search/node_modules/bail": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
- "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/docusaurus-lunr-search/node_modules/clsx": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
- "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/docusaurus-lunr-search/node_modules/is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/docusaurus-lunr-search/node_modules/trough": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz",
- "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/docusaurus-lunr-search/node_modules/unified": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz",
- "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==",
- "license": "MIT",
- "dependencies": {
- "bail": "^1.0.0",
- "extend": "^3.0.0",
- "is-buffer": "^2.0.0",
- "is-plain-obj": "^2.0.0",
- "trough": "^1.0.0",
- "vfile": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/docusaurus-lunr-search/node_modules/unist-util-stringify-position": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
- "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/docusaurus-lunr-search/node_modules/vfile": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
- "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "is-buffer": "^2.0.0",
- "unist-util-stringify-position": "^2.0.0",
- "vfile-message": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/docusaurus-lunr-search/node_modules/vfile-message": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
- "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-stringify-position": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/docusaurus-plugin-typedoc": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/docusaurus-plugin-typedoc/-/docusaurus-plugin-typedoc-1.0.5.tgz",
- "integrity": "sha512-mv8LBJYilGOOPLqaIM3vbYc34m4qwOCpb4WfP24DOPFNj2uiTerw8sg9MGvN6Jx2+J8rq9/WMnjcyz3UMqoIIQ==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "typedoc-plugin-markdown": ">=4.0.0"
- }
- },
- "node_modules/dom-converter": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
- "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
- "license": "MIT",
- "dependencies": {
- "utila": "~0.4"
- }
- },
- "node_modules/dom-serializer": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
- "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
- "license": "MIT",
- "dependencies": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.2",
- "entities": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
- }
- },
- "node_modules/domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ],
- "license": "BSD-2-Clause"
- },
- "node_modules/domhandler": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
- "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "domelementtype": "^2.3.0"
- },
- "engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
- }
- },
- "node_modules/dompurify": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.2.tgz",
- "integrity": "sha512-YMM+erhdZ2nkZ4fTNRTSI94mb7VG7uVF5vj5Zde7tImgnhZE3R6YW/IACGIHb2ux+QkEXMhe591N+5jWOmL4Zw==",
- "license": "(MPL-2.0 OR Apache-2.0)",
- "optionalDependencies": {
- "@types/trusted-types": "^2.0.7"
- }
- },
- "node_modules/domutils": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
- "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "dom-serializer": "^2.0.0",
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.3"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
- }
- },
- "node_modules/dot-case": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
- "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
- "license": "MIT",
- "dependencies": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/dot-prop": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
- "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
- "license": "MIT",
- "dependencies": {
- "is-obj": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/dot-prop/node_modules/is-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/duplexer": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
- "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
- "license": "MIT"
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "license": "MIT"
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
- "license": "MIT"
- },
- "node_modules/electron-to-chromium": {
- "version": "1.5.67",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.67.tgz",
- "integrity": "sha512-nz88NNBsD7kQSAGGJyp8hS6xSPtWwqNogA0mjtc2nUYeEf3nURK9qpV18TuBdDmEDgVWotS8Wkzf+V52dSQ/LQ==",
- "license": "ISC"
- },
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "license": "MIT"
- },
- "node_modules/emoji-regex-xs": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz",
- "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/emojilib": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz",
- "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==",
- "license": "MIT"
- },
- "node_modules/emojis-list": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
- "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/emoticon": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.1.0.tgz",
- "integrity": "sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/encodeurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
- "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "license": "MIT",
- "dependencies": {
- "once": "^1.4.0"
- }
- },
- "node_modules/enhanced-resolve": {
- "version": "5.17.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
- "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
- "license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.2.4",
- "tapable": "^2.2.0"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/entities": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "license": "MIT",
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/es-define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
- "license": "MIT",
- "dependencies": {
- "get-intrinsic": "^1.2.4"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-module-lexer": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
- "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
- "license": "MIT"
- },
- "node_modules/esast-util-from-estree": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz",
- "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "devlop": "^1.0.0",
- "estree-util-visit": "^2.0.0",
- "unist-util-position-from-estree": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/esast-util-from-js": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz",
- "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "acorn": "^8.0.0",
- "esast-util-from-estree": "^2.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/escalade": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
- "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-goat": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz",
- "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
- "license": "MIT"
- },
- "node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "license": "BSD-2-Clause",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esrecurse/node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estree-util-attach-comments": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz",
- "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-util-build-jsx": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz",
- "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "devlop": "^1.0.0",
- "estree-util-is-identifier-name": "^3.0.0",
- "estree-walker": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-util-is-identifier-name": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz",
- "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==",
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-util-scope": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz",
- "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "devlop": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-util-to-js": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz",
- "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "astring": "^1.8.0",
- "source-map": "^0.7.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-util-value-to-estree": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.2.1.tgz",
- "integrity": "sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/remcohaszing"
- }
- },
- "node_modules/estree-util-visit": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz",
- "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/estree-walker": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
- "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0"
- }
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "license": "BSD-2-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/eta": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz",
- "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==",
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- },
- "funding": {
- "url": "https://github.com/eta-dev/eta?sponsor=1"
- }
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/eval": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz",
- "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==",
- "dependencies": {
- "@types/node": "*",
- "require-like": ">= 0.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
- "license": "MIT"
- },
- "node_modules/events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "license": "MIT",
- "engines": {
- "node": ">=0.8.x"
- }
- },
- "node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "license": "MIT",
- "dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
- }
- },
- "node_modules/expand-template": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
- "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
- "license": "(MIT OR WTFPL)",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/express": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
- "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
- "license": "MIT",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.3",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.7.1",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.3.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.3",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.10",
- "proxy-addr": "~2.0.7",
- "qs": "6.13.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.19.0",
- "serve-static": "1.16.2",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/express/node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/express/node_modules/path-to-regexp": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
- "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==",
- "license": "MIT"
- },
- "node_modules/express/node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "license": "MIT"
- },
- "node_modules/extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
- "license": "MIT",
- "dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
- "license": "MIT"
- },
- "node_modules/fast-fifo": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
- "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
- "license": "MIT"
- },
- "node_modules/fast-glob": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
- "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
- "license": "MIT",
- "dependencies": {
- "@nodelib/fs.stat": "^2.0.2",
- "@nodelib/fs.walk": "^1.2.3",
- "glob-parent": "^5.1.2",
- "merge2": "^1.3.0",
- "micromatch": "^4.0.4"
- },
- "engines": {
- "node": ">=8.6.0"
- }
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
- "license": "MIT"
- },
- "node_modules/fast-uri": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz",
- "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==",
- "license": "BSD-3-Clause"
- },
- "node_modules/fastq": {
- "version": "1.17.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
- "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
- "license": "ISC",
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/fault": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz",
- "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==",
- "license": "MIT",
- "dependencies": {
- "format": "^0.2.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/faye-websocket": {
- "version": "0.11.4",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
- "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
- "license": "Apache-2.0",
- "dependencies": {
- "websocket-driver": ">=0.5.1"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/feed": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz",
- "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==",
- "license": "MIT",
- "dependencies": {
- "xml-js": "^1.6.11"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "license": "MIT",
- "dependencies": {
- "escape-string-regexp": "^1.0.5"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/figures/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/file-loader": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz",
- "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==",
- "license": "MIT",
- "dependencies": {
- "loader-utils": "^2.0.0",
- "schema-utils": "^3.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.0.0 || ^5.0.0"
- }
- },
- "node_modules/file-loader/node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/file-loader/node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "license": "MIT",
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
- },
- "node_modules/file-loader/node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "license": "MIT"
- },
- "node_modules/file-loader/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "license": "MIT",
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/filesize": {
- "version": "8.0.7",
- "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz",
- "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/fill-range": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
- "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
- "license": "MIT",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/finalhandler": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
- "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
- "license": "MIT",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/finalhandler/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/find-cache-dir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz",
- "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==",
- "license": "MIT",
- "dependencies": {
- "common-path-prefix": "^3.0.0",
- "pkg-dir": "^7.0.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/find-up": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
- "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
- "license": "MIT",
- "dependencies": {
- "locate-path": "^7.1.0",
- "path-exists": "^5.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "license": "BSD-3-Clause",
- "bin": {
- "flat": "cli.js"
- }
- },
- "node_modules/follow-redirects": {
- "version": "1.15.9",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
- "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/fork-ts-checker-webpack-plugin": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz",
- "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.8.3",
- "@types/json-schema": "^7.0.5",
- "chalk": "^4.1.0",
- "chokidar": "^3.4.2",
- "cosmiconfig": "^6.0.0",
- "deepmerge": "^4.2.2",
- "fs-extra": "^9.0.0",
- "glob": "^7.1.6",
- "memfs": "^3.1.2",
- "minimatch": "^3.0.4",
- "schema-utils": "2.7.0",
- "semver": "^7.3.2",
- "tapable": "^1.0.0"
- },
- "engines": {
- "node": ">=10",
- "yarn": ">=1.0.0"
- },
- "peerDependencies": {
- "eslint": ">= 6",
- "typescript": ">= 2.7",
- "vue-template-compiler": "*",
- "webpack": ">= 4"
- },
- "peerDependenciesMeta": {
- "eslint": {
- "optional": true
- },
- "vue-template-compiler": {
- "optional": true
- }
- }
- },
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "license": "MIT",
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
- },
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
- "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
- "license": "MIT",
- "dependencies": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.1.0",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.7.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
- "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
- "license": "MIT",
- "dependencies": {
- "at-least-node": "^1.0.0",
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "license": "MIT"
- },
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz",
- "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
- "license": "MIT",
- "dependencies": {
- "@types/json-schema": "^7.0.4",
- "ajv": "^6.12.2",
- "ajv-keywords": "^3.4.1"
- },
- "engines": {
- "node": ">= 8.9.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
- "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
- "license": "ISC",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/form-data-encoder": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz",
- "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==",
- "license": "MIT",
- "engines": {
- "node": ">= 14.17"
- }
- },
- "node_modules/format": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
- "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==",
- "engines": {
- "node": ">=0.4.x"
- }
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fraction.js": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
- "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
- "license": "MIT",
- "engines": {
- "node": "*"
- },
- "funding": {
- "type": "patreon",
- "url": "https://github.com/sponsors/rawify"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
- "license": "MIT"
- },
- "node_modules/fs-extra": {
- "version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
- "license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=14.14"
- }
- },
- "node_modules/fs-monkey": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz",
- "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==",
- "license": "Unlicense"
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "license": "ISC"
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
- "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/gauge": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
- "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
- "deprecated": "This package is no longer supported.",
- "license": "ISC",
- "dependencies": {
- "aproba": "^1.0.3 || ^2.0.0",
- "color-support": "^1.1.2",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.1",
- "object-assign": "^4.1.1",
- "signal-exit": "^3.0.0",
- "string-width": "^4.2.3",
- "strip-ansi": "^6.0.1",
- "wide-align": "^1.1.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/gauge/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/gauge/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/gensync": {
- "version": "1.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "license": "MIT",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
- "license": "MIT",
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/get-own-enumerable-property-symbols": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
- "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==",
- "license": "ISC"
- },
- "node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/github-from-package": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
- "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
- "license": "MIT"
- },
- "node_modules/github-slugger": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz",
- "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==",
- "license": "ISC"
- },
- "node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "deprecated": "Glob versions prior to v9 are no longer supported",
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "license": "ISC",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/glob-to-regexp": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
- "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
- "license": "BSD-2-Clause"
- },
- "node_modules/global-dirs": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
- "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
- "license": "MIT",
- "dependencies": {
- "ini": "2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/global-dirs/node_modules/ini": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
- "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/global-modules": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
- "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
- "license": "MIT",
- "dependencies": {
- "global-prefix": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/global-prefix": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
- "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
- "license": "MIT",
- "dependencies": {
- "ini": "^1.3.5",
- "kind-of": "^6.0.2",
- "which": "^1.3.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/global-prefix/node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "license": "ISC",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "which": "bin/which"
- }
- },
- "node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/globby": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
- "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
- "license": "MIT",
- "dependencies": {
- "array-union": "^2.1.0",
- "dir-glob": "^3.0.1",
- "fast-glob": "^3.2.9",
- "ignore": "^5.2.0",
- "merge2": "^1.4.1",
- "slash": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/gopd": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.1.0.tgz",
- "integrity": "sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==",
- "license": "MIT",
- "dependencies": {
- "get-intrinsic": "^1.2.4"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/got": {
- "version": "12.6.1",
- "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz",
- "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==",
- "license": "MIT",
- "dependencies": {
- "@sindresorhus/is": "^5.2.0",
- "@szmarczak/http-timer": "^5.0.1",
- "cacheable-lookup": "^7.0.0",
- "cacheable-request": "^10.2.8",
- "decompress-response": "^6.0.0",
- "form-data-encoder": "^2.1.2",
- "get-stream": "^6.0.1",
- "http2-wrapper": "^2.1.10",
- "lowercase-keys": "^3.0.0",
- "p-cancelable": "^3.0.0",
- "responselike": "^3.0.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/got?sponsor=1"
- }
- },
- "node_modules/got/node_modules/@sindresorhus/is": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz",
- "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==",
- "license": "MIT",
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/is?sponsor=1"
- }
- },
- "node_modules/graceful-fs": {
- "version": "4.2.11",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
- "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
- "license": "ISC"
- },
- "node_modules/gray-matter": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz",
- "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==",
- "license": "MIT",
- "dependencies": {
- "js-yaml": "^3.13.1",
- "kind-of": "^6.0.2",
- "section-matter": "^1.0.0",
- "strip-bom-string": "^1.0.0"
- },
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/gray-matter/node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "license": "MIT",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/gray-matter/node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "license": "MIT",
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/gzip-size": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz",
- "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==",
- "license": "MIT",
- "dependencies": {
- "duplexer": "^0.1.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/hachure-fill": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz",
- "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==",
- "license": "MIT"
- },
- "node_modules/handle-thing": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
- "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
- "license": "MIT"
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
- "license": "MIT",
- "dependencies": {
- "es-define-property": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-proto": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
- "license": "ISC"
- },
- "node_modules/has-yarn": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz",
- "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==",
- "license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/hasown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
- "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
- "license": "MIT",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/hast-util-from-parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz",
- "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==",
- "license": "MIT",
- "dependencies": {
- "@types/parse5": "^5.0.0",
- "hastscript": "^6.0.0",
- "property-information": "^5.0.0",
- "vfile": "^4.0.0",
- "vfile-location": "^3.2.0",
- "web-namespaces": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-from-parse5/node_modules/@types/unist": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
- "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
- "license": "MIT"
- },
- "node_modules/hast-util-from-parse5/node_modules/unist-util-stringify-position": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
- "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-from-parse5/node_modules/vfile": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
- "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "is-buffer": "^2.0.0",
- "unist-util-stringify-position": "^2.0.0",
- "vfile-message": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-from-parse5/node_modules/vfile-message": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
- "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-stringify-position": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-has-property": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-1.0.4.tgz",
- "integrity": "sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==",
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-is-element": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz",
- "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==",
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-parse-selector": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz",
- "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==",
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-raw": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz",
- "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "@ungap/structured-clone": "^1.0.0",
- "hast-util-from-parse5": "^8.0.0",
- "hast-util-to-parse5": "^8.0.0",
- "html-void-elements": "^3.0.0",
- "mdast-util-to-hast": "^13.0.0",
- "parse5": "^7.0.0",
- "unist-util-position": "^5.0.0",
- "unist-util-visit": "^5.0.0",
- "vfile": "^6.0.0",
- "web-namespaces": "^2.0.0",
- "zwitch": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-raw/node_modules/comma-separated-tokens": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
- "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-raw/node_modules/hast-util-from-parse5": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.2.tgz",
- "integrity": "sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "devlop": "^1.0.0",
- "hastscript": "^9.0.0",
- "property-information": "^6.0.0",
- "vfile": "^6.0.0",
- "vfile-location": "^5.0.0",
- "web-namespaces": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-raw/node_modules/hast-util-parse-selector": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
- "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-raw/node_modules/hastscript": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.0.tgz",
- "integrity": "sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "comma-separated-tokens": "^2.0.0",
- "hast-util-parse-selector": "^4.0.0",
- "property-information": "^6.0.0",
- "space-separated-tokens": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-raw/node_modules/property-information": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
- "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-raw/node_modules/space-separated-tokens": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
- "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-raw/node_modules/vfile-location": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz",
- "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-raw/node_modules/web-namespaces": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
- "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-raw/node_modules/zwitch": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
- "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-select": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/hast-util-select/-/hast-util-select-4.0.2.tgz",
- "integrity": "sha512-8EEG2//bN5rrzboPWD2HdS3ugLijNioS1pqOTIolXNf67xxShYw4SQEmVXd3imiBG+U2bC2nVTySr/iRAA7Cjg==",
- "license": "MIT",
- "dependencies": {
- "bcp-47-match": "^1.0.0",
- "comma-separated-tokens": "^1.0.0",
- "css-selector-parser": "^1.0.0",
- "direction": "^1.0.0",
- "hast-util-has-property": "^1.0.0",
- "hast-util-is-element": "^1.0.0",
- "hast-util-to-string": "^1.0.0",
- "hast-util-whitespace": "^1.0.0",
- "not": "^0.1.0",
- "nth-check": "^2.0.0",
- "property-information": "^5.0.0",
- "space-separated-tokens": "^1.0.0",
- "unist-util-visit": "^2.0.0",
- "zwitch": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-select/node_modules/@types/unist": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
- "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
- "license": "MIT"
- },
- "node_modules/hast-util-select/node_modules/unist-util-visit": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz",
- "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^4.0.0",
- "unist-util-visit-parents": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-select/node_modules/unist-util-visit-parents": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz",
- "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-is": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-estree": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz",
- "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^3.0.0",
- "comma-separated-tokens": "^2.0.0",
- "devlop": "^1.0.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.0",
- "mdast-util-mdx-jsx": "^3.0.0",
- "mdast-util-mdxjs-esm": "^2.0.0",
- "property-information": "^6.0.0",
- "space-separated-tokens": "^2.0.0",
- "style-to-object": "^0.4.0",
- "unist-util-position": "^5.0.0",
- "zwitch": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-estree/node_modules/comma-separated-tokens": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
- "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-estree/node_modules/hast-util-whitespace": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
- "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-estree/node_modules/inline-style-parser": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz",
- "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==",
- "license": "MIT"
- },
- "node_modules/hast-util-to-estree/node_modules/property-information": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
- "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-estree/node_modules/space-separated-tokens": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
- "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-estree/node_modules/style-to-object": {
- "version": "0.4.4",
- "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz",
- "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==",
- "license": "MIT",
- "dependencies": {
- "inline-style-parser": "0.1.1"
- }
- },
- "node_modules/hast-util-to-estree/node_modules/zwitch": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
- "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-html": {
- "version": "9.0.3",
- "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz",
- "integrity": "sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "ccount": "^2.0.0",
- "comma-separated-tokens": "^2.0.0",
- "hast-util-whitespace": "^3.0.0",
- "html-void-elements": "^3.0.0",
- "mdast-util-to-hast": "^13.0.0",
- "property-information": "^6.0.0",
- "space-separated-tokens": "^2.0.0",
- "stringify-entities": "^4.0.0",
- "zwitch": "^2.0.4"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-html/node_modules/comma-separated-tokens": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
- "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-html/node_modules/hast-util-whitespace": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
- "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-html/node_modules/property-information": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
- "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-html/node_modules/space-separated-tokens": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
- "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-html/node_modules/zwitch": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
- "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
- "dev": true,
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-jsx-runtime": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz",
- "integrity": "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "@types/hast": "^3.0.0",
- "@types/unist": "^3.0.0",
- "comma-separated-tokens": "^2.0.0",
- "devlop": "^1.0.0",
- "estree-util-is-identifier-name": "^3.0.0",
- "hast-util-whitespace": "^3.0.0",
- "mdast-util-mdx-expression": "^2.0.0",
- "mdast-util-mdx-jsx": "^3.0.0",
- "mdast-util-mdxjs-esm": "^2.0.0",
- "property-information": "^6.0.0",
- "space-separated-tokens": "^2.0.0",
- "style-to-object": "^1.0.0",
- "unist-util-position": "^5.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-jsx-runtime/node_modules/comma-separated-tokens": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
- "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-jsx-runtime/node_modules/hast-util-whitespace": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
- "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-jsx-runtime/node_modules/property-information": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
- "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-jsx-runtime/node_modules/space-separated-tokens": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
- "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-parse5": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz",
- "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "comma-separated-tokens": "^2.0.0",
- "devlop": "^1.0.0",
- "property-information": "^6.0.0",
- "space-separated-tokens": "^2.0.0",
- "web-namespaces": "^2.0.0",
- "zwitch": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-parse5/node_modules/comma-separated-tokens": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
- "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-parse5/node_modules/property-information": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
- "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-parse5/node_modules/space-separated-tokens": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
- "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-parse5/node_modules/web-namespaces": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
- "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-parse5/node_modules/zwitch": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
- "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/hast-util-to-string": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz",
- "integrity": "sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==",
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-to-text": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz",
- "integrity": "sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ==",
- "license": "MIT",
- "dependencies": {
- "hast-util-is-element": "^1.0.0",
- "repeat-string": "^1.0.0",
- "unist-util-find-after": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hast-util-whitespace": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz",
- "integrity": "sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==",
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hastscript": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz",
- "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^2.0.0",
- "comma-separated-tokens": "^1.0.0",
- "hast-util-parse-selector": "^2.0.0",
- "property-information": "^5.0.0",
- "space-separated-tokens": "^1.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/hastscript/node_modules/@types/hast": {
- "version": "2.3.10",
- "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz",
- "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2"
- }
- },
- "node_modules/hastscript/node_modules/@types/unist": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
- "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
- "license": "MIT"
- },
- "node_modules/he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "license": "MIT",
- "bin": {
- "he": "bin/he"
- }
- },
- "node_modules/history": {
- "version": "4.10.1",
- "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
- "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.1.2",
- "loose-envify": "^1.2.0",
- "resolve-pathname": "^3.0.0",
- "tiny-invariant": "^1.0.2",
- "tiny-warning": "^1.0.0",
- "value-equal": "^1.0.1"
- }
- },
- "node_modules/hogan.js": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz",
- "integrity": "sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==",
- "dependencies": {
- "mkdirp": "0.3.0",
- "nopt": "1.0.10"
- },
- "bin": {
- "hulk": "bin/hulk"
- }
- },
- "node_modules/hoist-non-react-statics": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
- "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "react-is": "^16.7.0"
- }
- },
- "node_modules/hpack.js": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
- "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.1",
- "obuf": "^1.0.0",
- "readable-stream": "^2.0.1",
- "wbuf": "^1.1.0"
- }
- },
- "node_modules/hpack.js/node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
- "license": "MIT"
- },
- "node_modules/hpack.js/node_modules/readable-stream": {
- "version": "2.3.8",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
- "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
- "license": "MIT",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/hpack.js/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
- "license": "MIT"
- },
- "node_modules/hpack.js/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/html-entities": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz",
- "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/mdevils"
- },
- {
- "type": "patreon",
- "url": "https://patreon.com/mdevils"
- }
- ],
- "license": "MIT"
- },
- "node_modules/html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "license": "MIT"
- },
- "node_modules/html-minifier-terser": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz",
- "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==",
- "license": "MIT",
- "dependencies": {
- "camel-case": "^4.1.2",
- "clean-css": "~5.3.2",
- "commander": "^10.0.0",
- "entities": "^4.4.0",
- "param-case": "^3.0.4",
- "relateurl": "^0.2.7",
- "terser": "^5.15.1"
- },
- "bin": {
- "html-minifier-terser": "cli.js"
- },
- "engines": {
- "node": "^14.13.1 || >=16.0.0"
- }
- },
- "node_modules/html-minifier-terser/node_modules/commander": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
- "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/html-tags": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
- "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/html-void-elements": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
- "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/html-webpack-plugin": {
- "version": "5.6.3",
- "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz",
- "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==",
- "license": "MIT",
- "dependencies": {
- "@types/html-minifier-terser": "^6.0.0",
- "html-minifier-terser": "^6.0.2",
- "lodash": "^4.17.21",
- "pretty-error": "^4.0.0",
- "tapable": "^2.0.0"
- },
- "engines": {
- "node": ">=10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/html-webpack-plugin"
- },
- "peerDependencies": {
- "@rspack/core": "0.x || 1.x",
- "webpack": "^5.20.0"
- },
- "peerDependenciesMeta": {
- "@rspack/core": {
- "optional": true
- },
- "webpack": {
- "optional": true
- }
- }
- },
- "node_modules/html-webpack-plugin/node_modules/commander": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
- "license": "MIT",
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
- "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==",
- "license": "MIT",
- "dependencies": {
- "camel-case": "^4.1.2",
- "clean-css": "^5.2.2",
- "commander": "^8.3.0",
- "he": "^1.2.0",
- "param-case": "^3.0.4",
- "relateurl": "^0.2.7",
- "terser": "^5.10.0"
- },
- "bin": {
- "html-minifier-terser": "cli.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/htmlparser2": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
- "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
- "funding": [
- "https://github.com/fb55/htmlparser2?sponsor=1",
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "domelementtype": "^2.3.0",
- "domhandler": "^5.0.3",
- "domutils": "^3.0.1",
- "entities": "^4.4.0"
- }
- },
- "node_modules/http-cache-semantics": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
- "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
- "license": "BSD-2-Clause"
- },
- "node_modules/http-deceiver": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
- "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==",
- "license": "MIT"
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "license": "MIT",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/http-parser-js": {
- "version": "0.5.8",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
- "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==",
- "license": "MIT"
- },
- "node_modules/http-proxy": {
- "version": "1.18.1",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
- "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
- "license": "MIT",
- "dependencies": {
- "eventemitter3": "^4.0.0",
- "follow-redirects": "^1.0.0",
- "requires-port": "^1.0.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/http-proxy-middleware": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz",
- "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==",
- "license": "MIT",
- "dependencies": {
- "@types/http-proxy": "^1.17.8",
- "http-proxy": "^1.18.1",
- "is-glob": "^4.0.1",
- "is-plain-obj": "^3.0.0",
- "micromatch": "^4.0.2"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "@types/express": "^4.17.13"
- },
- "peerDependenciesMeta": {
- "@types/express": {
- "optional": true
- }
- }
- },
- "node_modules/http-proxy-middleware/node_modules/is-plain-obj": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
- "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/http2-wrapper": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz",
- "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==",
- "license": "MIT",
- "dependencies": {
- "quick-lru": "^5.1.1",
- "resolve-alpn": "^1.2.0"
- },
- "engines": {
- "node": ">=10.19.0"
- }
- },
- "node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=10.17.0"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "license": "MIT",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/icss-utils": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
- "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
- "license": "ISC",
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "BSD-3-Clause"
- },
- "node_modules/ignore": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
- "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/image-size": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz",
- "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==",
- "license": "MIT",
- "dependencies": {
- "queue": "6.0.2"
- },
- "bin": {
- "image-size": "bin/image-size.js"
- },
- "engines": {
- "node": ">=16.x"
- }
- },
- "node_modules/immediate": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz",
- "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==",
- "license": "MIT"
- },
- "node_modules/immer": {
- "version": "9.0.21",
- "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz",
- "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==",
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/immer"
- }
- },
- "node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "license": "MIT",
- "dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/import-lazy": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
- "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/infima": {
- "version": "0.2.0-alpha.45",
- "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.45.tgz",
- "integrity": "sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
- "license": "ISC",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "license": "ISC"
- },
- "node_modules/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
- "license": "ISC"
- },
- "node_modules/inline-style-parser": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz",
- "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==",
- "license": "MIT"
- },
- "node_modules/internmap": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
- "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
- "license": "ISC",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/interpret": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
- "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/invariant": {
- "version": "2.2.4",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
- "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.0.0"
- }
- },
- "node_modules/ipaddr.js": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz",
- "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==",
- "license": "MIT",
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/is-alphabetical": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
- "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-alphanumerical": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
- "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
- "license": "MIT",
- "dependencies": {
- "is-alphabetical": "^2.0.0",
- "is-decimal": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "license": "MIT"
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "license": "MIT",
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-buffer": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
- "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/is-ci": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
- "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
- "license": "MIT",
- "dependencies": {
- "ci-info": "^3.2.0"
- },
- "bin": {
- "is-ci": "bin.js"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.15.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
- "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
- "license": "MIT",
- "dependencies": {
- "hasown": "^2.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-decimal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
- "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-docker": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
- "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
- "license": "MIT",
- "bin": {
- "is-docker": "cli.js"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-extendable": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
- "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "license": "MIT",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-hexadecimal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
- "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/is-installed-globally": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
- "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
- "license": "MIT",
- "dependencies": {
- "global-dirs": "^3.0.0",
- "is-path-inside": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-npm": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz",
- "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==",
- "license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "license": "MIT",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
- "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-path-cwd": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
- "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-plain-obj": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
- "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "license": "MIT",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-regexp": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
- "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-root": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz",
- "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/is-stream": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
- "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
- "license": "MIT"
- },
- "node_modules/is-wsl": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
- "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
- "license": "MIT",
- "dependencies": {
- "is-docker": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-yarn-global": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz",
- "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
- "license": "MIT"
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "license": "ISC"
- },
- "node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/jest-util": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
- "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
- "license": "MIT",
- "dependencies": {
- "@jest/types": "^29.6.3",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "ci-info": "^3.2.0",
- "graceful-fs": "^4.2.9",
- "picomatch": "^2.2.3"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-worker": {
- "version": "29.7.0",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
- "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "jest-util": "^29.7.0",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
- }
- },
- "node_modules/jest-worker/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/jiti": {
- "version": "1.21.6",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
- "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==",
- "license": "MIT",
- "bin": {
- "jiti": "bin/jiti.js"
- }
- },
- "node_modules/joi": {
- "version": "17.13.3",
- "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz",
- "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "@hapi/hoek": "^9.3.0",
- "@hapi/topo": "^5.1.0",
- "@sideway/address": "^4.1.5",
- "@sideway/formula": "^3.0.1",
- "@sideway/pinpoint": "^2.0.0"
- }
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "license": "MIT"
- },
- "node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "license": "MIT",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsesc": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
- "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
- "license": "MIT",
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/json-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
- "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
- "license": "MIT"
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "license": "MIT"
- },
- "node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
- "license": "MIT"
- },
- "node_modules/json5": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
- "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
- "license": "MIT",
- "bin": {
- "json5": "lib/cli.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
- "license": "MIT",
- "dependencies": {
- "universalify": "^2.0.0"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
- "node_modules/katex": {
- "version": "0.16.11",
- "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.11.tgz",
- "integrity": "sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==",
- "funding": [
- "https://opencollective.com/katex",
- "https://github.com/sponsors/katex"
- ],
- "license": "MIT",
- "dependencies": {
- "commander": "^8.3.0"
- },
- "bin": {
- "katex": "cli.js"
- }
- },
- "node_modules/katex/node_modules/commander": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
- "license": "MIT",
- "engines": {
- "node": ">= 12"
- }
- },
- "node_modules/keyv": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
- "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
- "license": "MIT",
- "dependencies": {
- "json-buffer": "3.0.1"
- }
- },
- "node_modules/khroma": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz",
- "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw=="
- },
- "node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/kleur": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
- "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/kolorist": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
- "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
- "license": "MIT"
- },
- "node_modules/langium": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz",
- "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==",
- "license": "MIT",
- "dependencies": {
- "chevrotain": "~11.0.3",
- "chevrotain-allstar": "~0.3.0",
- "vscode-languageserver": "~9.0.1",
- "vscode-languageserver-textdocument": "~1.0.11",
- "vscode-uri": "~3.0.8"
- },
- "engines": {
- "node": ">=16.0.0"
- }
- },
- "node_modules/latest-version": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz",
- "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==",
- "license": "MIT",
- "dependencies": {
- "package-json": "^8.1.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/launch-editor": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz",
- "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==",
- "license": "MIT",
- "dependencies": {
- "picocolors": "^1.0.0",
- "shell-quote": "^1.8.1"
- }
- },
- "node_modules/layout-base": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz",
- "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==",
- "license": "MIT"
- },
- "node_modules/leven": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
- "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/lilconfig": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
- "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antonk52"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "license": "MIT"
- },
- "node_modules/linkify-it": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
- "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "uc.micro": "^2.0.0"
- }
- },
- "node_modules/loader-runner": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
- "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
- "license": "MIT",
- "engines": {
- "node": ">=6.11.5"
- }
- },
- "node_modules/loader-utils": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
- "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
- "license": "MIT",
- "dependencies": {
- "big.js": "^5.2.2",
- "emojis-list": "^3.0.0",
- "json5": "^2.1.2"
- },
- "engines": {
- "node": ">=8.9.0"
- }
- },
- "node_modules/local-pkg": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz",
- "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==",
- "license": "MIT",
- "dependencies": {
- "mlly": "^1.7.3",
- "pkg-types": "^1.2.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/locate-path": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
- "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
- "license": "MIT",
- "dependencies": {
- "p-locate": "^6.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
- "license": "MIT"
- },
- "node_modules/lodash-es": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
- "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
- "license": "MIT"
- },
- "node_modules/lodash.debounce": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
- "license": "MIT"
- },
- "node_modules/lodash.memoize": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
- "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
- "license": "MIT"
- },
- "node_modules/lodash.uniq": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
- "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
- "license": "MIT"
- },
- "node_modules/longest-streak": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
- "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "license": "MIT",
- "dependencies": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- },
- "bin": {
- "loose-envify": "cli.js"
- }
- },
- "node_modules/lower-case": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
- "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.3"
- }
- },
- "node_modules/lowercase-keys": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
- "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
- "license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "license": "ISC",
- "dependencies": {
- "yallist": "^3.0.2"
- }
- },
- "node_modules/lunr": {
- "version": "2.3.9",
- "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz",
- "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==",
- "license": "MIT"
- },
- "node_modules/lunr-languages": {
- "version": "1.14.0",
- "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.14.0.tgz",
- "integrity": "sha512-hWUAb2KqM3L7J5bcrngszzISY4BxrXn/Xhbb9TTCJYEGqlR1nG67/M14sp09+PTIRklobrn57IAxcdcO/ZFyNA==",
- "license": "MPL-1.1"
- },
- "node_modules/mark.js": {
- "version": "8.11.1",
- "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz",
- "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==",
- "license": "MIT"
- },
- "node_modules/markdown-extensions": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz",
- "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==",
- "license": "MIT",
- "engines": {
- "node": ">=16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/markdown-it": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
- "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "argparse": "^2.0.1",
- "entities": "^4.4.0",
- "linkify-it": "^5.0.0",
- "mdurl": "^2.0.0",
- "punycode.js": "^2.3.1",
- "uc.micro": "^2.1.0"
- },
- "bin": {
- "markdown-it": "bin/markdown-it.mjs"
- }
- },
- "node_modules/markdown-table": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz",
- "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/marked": {
- "version": "13.0.3",
- "resolved": "https://registry.npmjs.org/marked/-/marked-13.0.3.tgz",
- "integrity": "sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==",
- "license": "MIT",
- "bin": {
- "marked": "bin/marked.js"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/mdast-util-directive": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz",
- "integrity": "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "@types/unist": "^3.0.0",
- "devlop": "^1.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0",
- "parse-entities": "^4.0.0",
- "stringify-entities": "^4.0.0",
- "unist-util-visit-parents": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-find-and-replace": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz",
- "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "escape-string-regexp": "^5.0.0",
- "unist-util-is": "^6.0.0",
- "unist-util-visit-parents": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/mdast-util-find-and-replace/node_modules/unist-util-is": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
- "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-from-markdown": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz",
- "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "@types/unist": "^3.0.0",
- "decode-named-character-reference": "^1.0.0",
- "devlop": "^1.0.0",
- "mdast-util-to-string": "^4.0.0",
- "micromark": "^4.0.0",
- "micromark-util-decode-numeric-character-reference": "^2.0.0",
- "micromark-util-decode-string": "^2.0.0",
- "micromark-util-normalize-identifier": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "unist-util-stringify-position": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-from-markdown/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/mdast-util-frontmatter": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz",
- "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "escape-string-regexp": "^5.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0",
- "micromark-extension-frontmatter": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
- "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/mdast-util-gfm": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz",
- "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==",
- "license": "MIT",
- "dependencies": {
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-gfm-autolink-literal": "^2.0.0",
- "mdast-util-gfm-footnote": "^2.0.0",
- "mdast-util-gfm-strikethrough": "^2.0.0",
- "mdast-util-gfm-table": "^2.0.0",
- "mdast-util-gfm-task-list-item": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-autolink-literal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz",
- "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "ccount": "^2.0.0",
- "devlop": "^1.0.0",
- "mdast-util-find-and-replace": "^3.0.0",
- "micromark-util-character": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/mdast-util-gfm-footnote": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz",
- "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "devlop": "^1.1.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0",
- "micromark-util-normalize-identifier": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-strikethrough": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz",
- "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-table": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz",
- "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "markdown-table": "^3.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-gfm-task-list-item": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz",
- "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-mdx": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz",
- "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==",
- "license": "MIT",
- "dependencies": {
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-mdx-expression": "^2.0.0",
- "mdast-util-mdx-jsx": "^3.0.0",
- "mdast-util-mdxjs-esm": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-mdx-expression": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz",
- "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-mdx-jsx": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz",
- "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "@types/unist": "^3.0.0",
- "ccount": "^2.0.0",
- "devlop": "^1.1.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0",
- "parse-entities": "^4.0.0",
- "stringify-entities": "^4.0.0",
- "unist-util-stringify-position": "^4.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-mdxjs-esm": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
- "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
- "license": "MIT",
- "dependencies": {
- "@types/estree-jsx": "^1.0.0",
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "devlop": "^1.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "mdast-util-to-markdown": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-phrasing": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
- "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "unist-util-is": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-phrasing/node_modules/unist-util-is": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
- "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-to-hast": {
- "version": "13.2.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz",
- "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "@ungap/structured-clone": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-util-sanitize-uri": "^2.0.0",
- "trim-lines": "^3.0.0",
- "unist-util-position": "^5.0.0",
- "unist-util-visit": "^5.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-to-markdown": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz",
- "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "@types/unist": "^3.0.0",
- "longest-streak": "^3.0.0",
- "mdast-util-phrasing": "^4.0.0",
- "mdast-util-to-string": "^4.0.0",
- "micromark-util-classify-character": "^2.0.0",
- "micromark-util-decode-string": "^2.0.0",
- "unist-util-visit": "^5.0.0",
- "zwitch": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdast-util-to-markdown/node_modules/zwitch": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
- "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/mdast-util-to-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
- "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/mdn-data": {
- "version": "2.0.30",
- "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
- "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
- "license": "CC0-1.0"
- },
- "node_modules/mdurl": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
- "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/memfs": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz",
- "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==",
- "license": "Unlicense",
- "dependencies": {
- "fs-monkey": "^1.0.4"
- },
- "engines": {
- "node": ">= 4.0.0"
- }
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
- "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/merge-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
- "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
- "license": "MIT"
- },
- "node_modules/merge2": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
- "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
- "license": "MIT",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/mermaid": {
- "version": "11.4.1",
- "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.4.1.tgz",
- "integrity": "sha512-Mb01JT/x6CKDWaxigwfZYuYmDZ6xtrNwNlidKZwkSrDaY9n90tdrJTV5Umk+wP1fZscGptmKFXHsXMDEVZ+Q6A==",
- "license": "MIT",
- "dependencies": {
- "@braintree/sanitize-url": "^7.0.1",
- "@iconify/utils": "^2.1.32",
- "@mermaid-js/parser": "^0.3.0",
- "@types/d3": "^7.4.3",
- "cytoscape": "^3.29.2",
- "cytoscape-cose-bilkent": "^4.1.0",
- "cytoscape-fcose": "^2.2.0",
- "d3": "^7.9.0",
- "d3-sankey": "^0.12.3",
- "dagre-d3-es": "7.0.11",
- "dayjs": "^1.11.10",
- "dompurify": "^3.2.1",
- "katex": "^0.16.9",
- "khroma": "^2.1.0",
- "lodash-es": "^4.17.21",
- "marked": "^13.0.2",
- "roughjs": "^4.6.6",
- "stylis": "^4.3.1",
- "ts-dedent": "^2.2.0",
- "uuid": "^9.0.1"
- }
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/micromark": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz",
- "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@types/debug": "^4.0.0",
- "debug": "^4.0.0",
- "decode-named-character-reference": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-core-commonmark": "^2.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-chunked": "^2.0.0",
- "micromark-util-combine-extensions": "^2.0.0",
- "micromark-util-decode-numeric-character-reference": "^2.0.0",
- "micromark-util-encode": "^2.0.0",
- "micromark-util-normalize-identifier": "^2.0.0",
- "micromark-util-resolve-all": "^2.0.0",
- "micromark-util-sanitize-uri": "^2.0.0",
- "micromark-util-subtokenize": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-core-commonmark": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz",
- "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "decode-named-character-reference": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-factory-destination": "^2.0.0",
- "micromark-factory-label": "^2.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-factory-title": "^2.0.0",
- "micromark-factory-whitespace": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-chunked": "^2.0.0",
- "micromark-util-classify-character": "^2.0.0",
- "micromark-util-html-tag-name": "^2.0.0",
- "micromark-util-normalize-identifier": "^2.0.0",
- "micromark-util-resolve-all": "^2.0.0",
- "micromark-util-subtokenize": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-core-commonmark/node_modules/micromark-factory-space": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
- "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-core-commonmark/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-core-commonmark/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-extension-directive": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz",
- "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==",
- "license": "MIT",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-factory-whitespace": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "parse-entities": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-directive/node_modules/micromark-factory-space": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
- "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-directive/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-directive/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-extension-frontmatter": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz",
- "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==",
- "license": "MIT",
- "dependencies": {
- "fault": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-extension-gfm": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz",
- "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==",
- "license": "MIT",
- "dependencies": {
- "micromark-extension-gfm-autolink-literal": "^2.0.0",
- "micromark-extension-gfm-footnote": "^2.0.0",
- "micromark-extension-gfm-strikethrough": "^2.0.0",
- "micromark-extension-gfm-table": "^2.0.0",
- "micromark-extension-gfm-tagfilter": "^2.0.0",
- "micromark-extension-gfm-task-list-item": "^2.0.0",
- "micromark-util-combine-extensions": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-autolink-literal": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz",
- "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==",
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-sanitize-uri": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-extension-gfm-footnote": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz",
- "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==",
- "license": "MIT",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-core-commonmark": "^2.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-normalize-identifier": "^2.0.0",
- "micromark-util-sanitize-uri": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-space": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
- "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-extension-gfm-strikethrough": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz",
- "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==",
- "license": "MIT",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-util-chunked": "^2.0.0",
- "micromark-util-classify-character": "^2.0.0",
- "micromark-util-resolve-all": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-extension-gfm-table": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz",
- "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==",
- "license": "MIT",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-table/node_modules/micromark-factory-space": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
- "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-extension-gfm-tagfilter": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz",
- "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==",
- "license": "MIT",
- "dependencies": {
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-task-list-item": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz",
- "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==",
- "license": "MIT",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-factory-space": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
- "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-extension-mdx-expression": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz",
- "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-factory-mdx-expression": "^2.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-events-to-acorn": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-mdx-expression/node_modules/micromark-factory-space": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
- "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-extension-mdx-jsx": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz",
- "integrity": "sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==",
- "license": "MIT",
- "dependencies": {
- "@types/acorn": "^4.0.0",
- "@types/estree": "^1.0.0",
- "devlop": "^1.0.0",
- "estree-util-is-identifier-name": "^3.0.0",
- "micromark-factory-mdx-expression": "^2.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-events-to-acorn": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-factory-space": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
- "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-extension-mdx-md": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz",
- "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==",
- "license": "MIT",
- "dependencies": {
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-mdxjs": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz",
- "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==",
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.0.0",
- "acorn-jsx": "^5.0.0",
- "micromark-extension-mdx-expression": "^3.0.0",
- "micromark-extension-mdx-jsx": "^3.0.0",
- "micromark-extension-mdx-md": "^2.0.0",
- "micromark-extension-mdxjs-esm": "^3.0.0",
- "micromark-util-combine-extensions": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-mdxjs-esm": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz",
- "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-core-commonmark": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-events-to-acorn": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "unist-util-position-from-estree": "^2.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-factory-destination": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz",
- "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-destination/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-destination/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-factory-label": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz",
- "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-label/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-label/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-factory-mdx-expression": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz",
- "integrity": "sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "devlop": "^1.0.0",
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-events-to-acorn": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "unist-util-position-from-estree": "^2.0.0",
- "vfile-message": "^4.0.0"
- }
- },
- "node_modules/micromark-factory-mdx-expression/node_modules/micromark-factory-space": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
- "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-factory-space": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz",
- "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/micromark-factory-space/node_modules/micromark-util-types": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz",
- "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-factory-title": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz",
- "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-title/node_modules/micromark-factory-space": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
- "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-title/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-title/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-factory-whitespace": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz",
- "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-factory-space": "^2.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-whitespace/node_modules/micromark-factory-space": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
- "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-whitespace/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-factory-whitespace/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-character": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz",
- "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^1.0.0",
- "micromark-util-types": "^1.0.0"
- }
- },
- "node_modules/micromark-util-character/node_modules/micromark-util-types": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz",
- "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-chunked": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz",
- "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-chunked/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-classify-character": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz",
- "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-classify-character/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-classify-character/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-combine-extensions": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz",
- "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-chunked": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-decode-numeric-character-reference": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz",
- "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-decode-numeric-character-reference/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-decode-string": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz",
- "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "decode-named-character-reference": "^1.0.0",
- "micromark-util-character": "^2.0.0",
- "micromark-util-decode-numeric-character-reference": "^2.0.0",
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-decode-string/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-decode-string/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-encode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
- "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-events-to-acorn": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz",
- "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@types/acorn": "^4.0.0",
- "@types/estree": "^1.0.0",
- "@types/unist": "^3.0.0",
- "devlop": "^1.0.0",
- "estree-util-visit": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "vfile-message": "^4.0.0"
- }
- },
- "node_modules/micromark-util-events-to-acorn/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-html-tag-name": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz",
- "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-normalize-identifier": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz",
- "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-normalize-identifier/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-resolve-all": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz",
- "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-sanitize-uri": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
- "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-encode": "^2.0.0",
- "micromark-util-symbol": "^2.0.0"
- }
- },
- "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-subtokenize": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.3.tgz",
- "integrity": "sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "devlop": "^1.0.0",
- "micromark-util-chunked": "^2.0.0",
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark-util-subtokenize/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-symbol": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz",
- "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark-util-types": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz",
- "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromark/node_modules/micromark-factory-space": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
- "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-character": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark/node_modules/micromark-util-character": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
- "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "micromark-util-symbol": "^2.0.0",
- "micromark-util-types": "^2.0.0"
- }
- },
- "node_modules/micromark/node_modules/micromark-util-symbol": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
- "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
- "funding": [
- {
- "type": "GitHub Sponsors",
- "url": "https://github.com/sponsors/unifiedjs"
- },
- {
- "type": "OpenCollective",
- "url": "https://opencollective.com/unified"
- }
- ],
- "license": "MIT"
- },
- "node_modules/micromatch": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
- "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
- "license": "MIT",
- "dependencies": {
- "braces": "^3.0.3",
- "picomatch": "^2.3.1"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "license": "MIT",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
- "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.18",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
- "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
- "license": "MIT",
- "dependencies": {
- "mime-db": "~1.33.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/mimic-response": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
- "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/mini-css-extract-plugin": {
- "version": "2.9.2",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz",
- "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==",
- "license": "MIT",
- "dependencies": {
- "schema-utils": "^4.0.0",
- "tapable": "^2.2.1"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.0.0"
- }
- },
- "node_modules/minimalistic-assert": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "license": "ISC"
- },
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
- "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
- "license": "MIT",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/mkdirp": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
- "integrity": "sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==",
- "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)",
- "license": "MIT/X11",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/mkdirp-classic": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
- "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
- "license": "MIT"
- },
- "node_modules/mlly": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.3.tgz",
- "integrity": "sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==",
- "license": "MIT",
- "dependencies": {
- "acorn": "^8.14.0",
- "pathe": "^1.1.2",
- "pkg-types": "^1.2.1",
- "ufo": "^1.5.4"
- }
- },
- "node_modules/mrmime": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
- "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "license": "MIT"
- },
- "node_modules/multicast-dns": {
- "version": "7.2.5",
- "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz",
- "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
- "license": "MIT",
- "dependencies": {
- "dns-packet": "^5.2.2",
- "thunky": "^1.0.2"
- },
- "bin": {
- "multicast-dns": "cli.js"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
- "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/napi-build-utils": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
- "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
- "license": "MIT"
- },
- "node_modules/negotiator": {
- "version": "0.6.4",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
- "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "license": "MIT"
- },
- "node_modules/no-case": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
- "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
- "license": "MIT",
- "dependencies": {
- "lower-case": "^2.0.2",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/node-abi": {
- "version": "3.71.0",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz",
- "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==",
- "license": "MIT",
- "dependencies": {
- "semver": "^7.3.5"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/node-addon-api": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
- "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
- "license": "MIT"
- },
- "node_modules/node-emoji": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz",
- "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==",
- "license": "MIT",
- "dependencies": {
- "@sindresorhus/is": "^4.6.0",
- "char-regex": "^1.0.2",
- "emojilib": "^2.4.0",
- "skin-tone": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/node-forge": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
- "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
- "license": "(BSD-3-Clause OR GPL-2.0)",
- "engines": {
- "node": ">= 6.13.0"
- }
- },
- "node_modules/node-releases": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
- "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
- "license": "MIT"
- },
- "node_modules/nopt": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
- "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
- "license": "MIT",
- "dependencies": {
- "abbrev": "1"
- },
- "bin": {
- "nopt": "bin/nopt.js"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/normalize-range": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
- "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/normalize-url": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz",
- "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==",
- "license": "MIT",
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/not": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/not/-/not-0.1.0.tgz",
- "integrity": "sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA=="
- },
- "node_modules/npm-run-path": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
- "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/nprogress": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz",
- "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==",
- "license": "MIT"
- },
- "node_modules/nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "boolbase": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/fb55/nth-check?sponsor=1"
- }
- },
- "node_modules/null-loader": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz",
- "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==",
- "license": "MIT",
- "dependencies": {
- "loader-utils": "^2.0.0",
- "schema-utils": "^3.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.0.0 || ^5.0.0"
- }
- },
- "node_modules/null-loader/node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/null-loader/node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "license": "MIT",
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
- },
- "node_modules/null-loader/node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "license": "MIT"
- },
- "node_modules/null-loader/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "license": "MIT",
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.13.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
- "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.assign": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
- "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.5",
- "define-properties": "^1.2.1",
- "has-symbols": "^1.0.3",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/obuf": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
- "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
- "license": "MIT"
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "license": "MIT",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/on-headers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
- "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "license": "ISC",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/onetime": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
- "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
- "license": "MIT",
- "dependencies": {
- "mimic-fn": "^2.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/oniguruma-to-es": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-0.7.0.tgz",
- "integrity": "sha512-HRaRh09cE0gRS3+wi2zxekB+I5L8C/gN60S+vb11eADHUaB/q4u8wGGOX3GvwvitG8ixaeycZfeoyruKQzUgNg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "emoji-regex-xs": "^1.0.0",
- "regex": "^5.0.2",
- "regex-recursion": "^4.3.0"
- }
- },
- "node_modules/open": {
- "version": "8.4.2",
- "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
- "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
- "license": "MIT",
- "dependencies": {
- "define-lazy-prop": "^2.0.0",
- "is-docker": "^2.1.1",
- "is-wsl": "^2.2.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/opener": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
- "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
- "license": "(WTFPL OR MIT)",
- "bin": {
- "opener": "bin/opener-bin.js"
- }
- },
- "node_modules/p-cancelable": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
- "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
- "license": "MIT",
- "engines": {
- "node": ">=12.20"
- }
- },
- "node_modules/p-limit": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
- "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
- "license": "MIT",
- "dependencies": {
- "yocto-queue": "^1.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
- "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
- "license": "MIT",
- "dependencies": {
- "p-limit": "^4.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-map": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
- "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
- "license": "MIT",
- "dependencies": {
- "aggregate-error": "^3.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-retry": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
- "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
- "license": "MIT",
- "dependencies": {
- "@types/retry": "0.12.0",
- "retry": "^0.13.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/package-json": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz",
- "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==",
- "license": "MIT",
- "dependencies": {
- "got": "^12.1.0",
- "registry-auth-token": "^5.0.1",
- "registry-url": "^6.0.0",
- "semver": "^7.3.7"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/package-manager-detector": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.6.tgz",
- "integrity": "sha512-9vPH3qooBlYRJdmdYP00nvjZOulm40r5dhtal8st18ctf+6S1k7pi5yIHLvI4w5D70x0Y+xdVD9qITH0QO/A8A==",
- "license": "MIT"
- },
- "node_modules/param-case": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
- "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
- "license": "MIT",
- "dependencies": {
- "dot-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "license": "MIT",
- "dependencies": {
- "callsites": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/parse-entities": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz",
- "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "character-entities": "^2.0.0",
- "character-entities-legacy": "^3.0.0",
- "character-reference-invalid": "^2.0.0",
- "decode-named-character-reference": "^1.0.0",
- "is-alphanumerical": "^2.0.0",
- "is-decimal": "^2.0.0",
- "is-hexadecimal": "^2.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/parse-entities/node_modules/@types/unist": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
- "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
- "license": "MIT"
- },
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/parse-numeric-range": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz",
- "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==",
- "license": "ISC"
- },
- "node_modules/parse5": {
- "version": "7.2.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz",
- "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==",
- "license": "MIT",
- "dependencies": {
- "entities": "^4.5.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
- "node_modules/parse5-htmlparser2-tree-adapter": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz",
- "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==",
- "license": "MIT",
- "dependencies": {
- "domhandler": "^5.0.3",
- "parse5": "^7.0.0"
- },
- "funding": {
- "url": "https://github.com/inikulin/parse5?sponsor=1"
- }
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/pascal-case": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
- "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
- "license": "MIT",
- "dependencies": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/path-data-parser": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz",
- "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==",
- "license": "MIT"
- },
- "node_modules/path-exists": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
- "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
- "license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-is-inside": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
- "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
- "license": "(WTFPL OR MIT)"
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "license": "MIT"
- },
- "node_modules/path-to-regexp": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz",
- "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==",
- "license": "MIT",
- "dependencies": {
- "isarray": "0.0.1"
- }
- },
- "node_modules/path-type": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
- "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pathe": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
- "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
- "license": "MIT"
- },
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "license": "ISC"
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "license": "MIT",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pkg-dir": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
- "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==",
- "license": "MIT",
- "dependencies": {
- "find-up": "^6.3.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pkg-types": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.1.tgz",
- "integrity": "sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==",
- "license": "MIT",
- "dependencies": {
- "confbox": "^0.1.8",
- "mlly": "^1.7.2",
- "pathe": "^1.1.2"
- }
- },
- "node_modules/pkg-up": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
- "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
- "license": "MIT",
- "dependencies": {
- "find-up": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/pkg-up/node_modules/find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "license": "MIT",
- "dependencies": {
- "locate-path": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pkg-up/node_modules/locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "license": "MIT",
- "dependencies": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pkg-up/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "license": "MIT",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pkg-up/node_modules/p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "license": "MIT",
- "dependencies": {
- "p-limit": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pkg-up/node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/points-on-curve": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz",
- "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==",
- "license": "MIT"
- },
- "node_modules/points-on-path": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz",
- "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==",
- "license": "MIT",
- "dependencies": {
- "path-data-parser": "0.1.0",
- "points-on-curve": "0.2.0"
- }
- },
- "node_modules/postcss": {
- "version": "8.4.49",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
- "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "nanoid": "^3.3.7",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/postcss-attribute-case-insensitive": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz",
- "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
- "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-calc": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz",
- "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==",
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^6.0.11",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.2.2"
- }
- },
- "node_modules/postcss-clamp": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz",
- "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=7.6.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.6"
- }
- },
- "node_modules/postcss-color-functional-notation": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.6.tgz",
- "integrity": "sha512-wLXvm8RmLs14Z2nVpB4CWlnvaWPRcOZFltJSlcbYwSJ1EDZKsKDhPKIMecCnuU054KSmlmubkqczmm6qBPCBhA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-color-parser": "^3.0.6",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/postcss-progressive-custom-properties": "^4.0.0",
- "@csstools/utilities": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-color-hex-alpha": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz",
- "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@csstools/utilities": "^2.0.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-color-rebeccapurple": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz",
- "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/utilities": "^2.0.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-colormin": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz",
- "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.23.0",
- "caniuse-api": "^3.0.0",
- "colord": "^2.9.3",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-convert-values": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz",
- "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.23.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-custom-media": {
- "version": "11.0.5",
- "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.5.tgz",
- "integrity": "sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@csstools/cascade-layer-name-parser": "^2.0.4",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/media-query-list-parser": "^4.0.2"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-custom-properties": {
- "version": "14.0.4",
- "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.4.tgz",
- "integrity": "sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@csstools/cascade-layer-name-parser": "^2.0.4",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/utilities": "^2.0.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-custom-selectors": {
- "version": "8.0.4",
- "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.4.tgz",
- "integrity": "sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "@csstools/cascade-layer-name-parser": "^2.0.4",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "postcss-selector-parser": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
- "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-dir-pseudo-class": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz",
- "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "postcss-selector-parser": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
- "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-discard-comments": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz",
- "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==",
- "license": "MIT",
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-discard-duplicates": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz",
- "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==",
- "license": "MIT",
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-discard-empty": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz",
- "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==",
- "license": "MIT",
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-discard-overridden": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz",
- "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==",
- "license": "MIT",
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-discard-unused": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz",
- "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==",
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^6.0.16"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-double-position-gradients": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.0.tgz",
- "integrity": "sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/postcss-progressive-custom-properties": "^4.0.0",
- "@csstools/utilities": "^2.0.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-focus-visible": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz",
- "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "postcss-selector-parser": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
- "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-focus-within": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz",
- "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "postcss-selector-parser": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
- "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-font-variant": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz",
- "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==",
- "license": "MIT",
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-gap-properties": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz",
- "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-image-set-function": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz",
- "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/utilities": "^2.0.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-lab-function": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.6.tgz",
- "integrity": "sha512-HPwvsoK7C949vBZ+eMyvH2cQeMr3UREoHvbtra76/UhDuiViZH6pir+z71UaJQohd7VDSVUdR6TkWYKExEc9aQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/css-color-parser": "^3.0.6",
- "@csstools/css-parser-algorithms": "^3.0.4",
- "@csstools/css-tokenizer": "^3.0.3",
- "@csstools/postcss-progressive-custom-properties": "^4.0.0",
- "@csstools/utilities": "^2.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-loader": {
- "version": "7.3.4",
- "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz",
- "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==",
- "license": "MIT",
- "dependencies": {
- "cosmiconfig": "^8.3.5",
- "jiti": "^1.20.0",
- "semver": "^7.5.4"
- },
- "engines": {
- "node": ">= 14.15.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "postcss": "^7.0.0 || ^8.0.1",
- "webpack": "^5.0.0"
- }
- },
- "node_modules/postcss-logical": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.0.0.tgz",
- "integrity": "sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-merge-idents": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz",
- "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==",
- "license": "MIT",
- "dependencies": {
- "cssnano-utils": "^4.0.2",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-merge-longhand": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz",
- "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0",
- "stylehacks": "^6.1.1"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-merge-rules": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz",
- "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.23.0",
- "caniuse-api": "^3.0.0",
- "cssnano-utils": "^4.0.2",
- "postcss-selector-parser": "^6.0.16"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-minify-font-values": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz",
- "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-minify-gradients": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz",
- "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==",
- "license": "MIT",
- "dependencies": {
- "colord": "^2.9.3",
- "cssnano-utils": "^4.0.2",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-minify-params": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz",
- "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.23.0",
- "cssnano-utils": "^4.0.2",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-minify-selectors": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz",
- "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==",
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^6.0.16"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-modules-extract-imports": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz",
- "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==",
- "license": "ISC",
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-modules-local-by-default": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz",
- "integrity": "sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==",
- "license": "MIT",
- "dependencies": {
- "icss-utils": "^5.0.0",
- "postcss-selector-parser": "^7.0.0",
- "postcss-value-parser": "^4.1.0"
- },
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
- "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-modules-scope": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz",
- "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==",
- "license": "ISC",
- "dependencies": {
- "postcss-selector-parser": "^7.0.0"
- },
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
- "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-modules-values": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
- "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
- "license": "ISC",
- "dependencies": {
- "icss-utils": "^5.0.0"
- },
- "engines": {
- "node": "^10 || ^12 || >= 14"
- },
- "peerDependencies": {
- "postcss": "^8.1.0"
- }
- },
- "node_modules/postcss-nesting": {
- "version": "13.0.1",
- "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.1.tgz",
- "integrity": "sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/selector-resolve-nested": "^3.0.0",
- "@csstools/selector-specificity": "^5.0.0",
- "postcss-selector-parser": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz",
- "integrity": "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss-selector-parser": "^7.0.0"
- }
- },
- "node_modules/postcss-nesting/node_modules/@csstools/selector-specificity": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
- "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss-selector-parser": "^7.0.0"
- }
- },
- "node_modules/postcss-nesting/node_modules/postcss-selector-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
- "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-normalize-charset": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz",
- "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==",
- "license": "MIT",
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-normalize-display-values": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz",
- "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-normalize-positions": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz",
- "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-normalize-repeat-style": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz",
- "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-normalize-string": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz",
- "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-normalize-timing-functions": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz",
- "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-normalize-unicode": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz",
- "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.23.0",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-normalize-url": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz",
- "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-normalize-whitespace": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz",
- "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-opacity-percentage": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz",
- "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==",
- "funding": [
- {
- "type": "kofi",
- "url": "https://ko-fi.com/mrcgrtz"
- },
- {
- "type": "liberapay",
- "url": "https://liberapay.com/mrcgrtz"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-ordered-values": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz",
- "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==",
- "license": "MIT",
- "dependencies": {
- "cssnano-utils": "^4.0.2",
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-overflow-shorthand": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz",
- "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-page-break": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz",
- "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==",
- "license": "MIT",
- "peerDependencies": {
- "postcss": "^8"
- }
- },
- "node_modules/postcss-place": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz",
- "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-preset-env": {
- "version": "10.1.1",
- "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.1.1.tgz",
- "integrity": "sha512-wqqsnBFD6VIwcHHRbhjTOcOi4qRVlB26RwSr0ordPj7OubRRxdWebv/aLjKLRR8zkZrbxZyuus03nOIgC5elMQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "@csstools/postcss-cascade-layers": "^5.0.1",
- "@csstools/postcss-color-function": "^4.0.6",
- "@csstools/postcss-color-mix-function": "^3.0.6",
- "@csstools/postcss-content-alt-text": "^2.0.4",
- "@csstools/postcss-exponential-functions": "^2.0.5",
- "@csstools/postcss-font-format-keywords": "^4.0.0",
- "@csstools/postcss-gamut-mapping": "^2.0.6",
- "@csstools/postcss-gradients-interpolation-method": "^5.0.6",
- "@csstools/postcss-hwb-function": "^4.0.6",
- "@csstools/postcss-ic-unit": "^4.0.0",
- "@csstools/postcss-initial": "^2.0.0",
- "@csstools/postcss-is-pseudo-class": "^5.0.1",
- "@csstools/postcss-light-dark-function": "^2.0.7",
- "@csstools/postcss-logical-float-and-clear": "^3.0.0",
- "@csstools/postcss-logical-overflow": "^2.0.0",
- "@csstools/postcss-logical-overscroll-behavior": "^2.0.0",
- "@csstools/postcss-logical-resize": "^3.0.0",
- "@csstools/postcss-logical-viewport-units": "^3.0.3",
- "@csstools/postcss-media-minmax": "^2.0.5",
- "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.4",
- "@csstools/postcss-nested-calc": "^4.0.0",
- "@csstools/postcss-normalize-display-values": "^4.0.0",
- "@csstools/postcss-oklab-function": "^4.0.6",
- "@csstools/postcss-progressive-custom-properties": "^4.0.0",
- "@csstools/postcss-random-function": "^1.0.1",
- "@csstools/postcss-relative-color-syntax": "^3.0.6",
- "@csstools/postcss-scope-pseudo-class": "^4.0.1",
- "@csstools/postcss-sign-functions": "^1.1.0",
- "@csstools/postcss-stepped-value-functions": "^4.0.5",
- "@csstools/postcss-text-decoration-shorthand": "^4.0.1",
- "@csstools/postcss-trigonometric-functions": "^4.0.5",
- "@csstools/postcss-unset-value": "^4.0.0",
- "autoprefixer": "^10.4.19",
- "browserslist": "^4.23.1",
- "css-blank-pseudo": "^7.0.1",
- "css-has-pseudo": "^7.0.1",
- "css-prefers-color-scheme": "^10.0.0",
- "cssdb": "^8.2.1",
- "postcss-attribute-case-insensitive": "^7.0.1",
- "postcss-clamp": "^4.1.0",
- "postcss-color-functional-notation": "^7.0.6",
- "postcss-color-hex-alpha": "^10.0.0",
- "postcss-color-rebeccapurple": "^10.0.0",
- "postcss-custom-media": "^11.0.5",
- "postcss-custom-properties": "^14.0.4",
- "postcss-custom-selectors": "^8.0.4",
- "postcss-dir-pseudo-class": "^9.0.1",
- "postcss-double-position-gradients": "^6.0.0",
- "postcss-focus-visible": "^10.0.1",
- "postcss-focus-within": "^9.0.1",
- "postcss-font-variant": "^5.0.0",
- "postcss-gap-properties": "^6.0.0",
- "postcss-image-set-function": "^7.0.0",
- "postcss-lab-function": "^7.0.6",
- "postcss-logical": "^8.0.0",
- "postcss-nesting": "^13.0.1",
- "postcss-opacity-percentage": "^3.0.0",
- "postcss-overflow-shorthand": "^6.0.0",
- "postcss-page-break": "^3.0.4",
- "postcss-place": "^10.0.0",
- "postcss-pseudo-class-any-link": "^10.0.1",
- "postcss-replace-overflow-wrap": "^4.0.0",
- "postcss-selector-not": "^8.0.1"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-pseudo-class-any-link": {
- "version": "10.0.1",
- "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz",
- "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT-0",
- "dependencies": {
- "postcss-selector-parser": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
- "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-reduce-idents": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz",
- "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-reduce-initial": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz",
- "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.23.0",
- "caniuse-api": "^3.0.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-reduce-transforms": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz",
- "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-replace-overflow-wrap": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz",
- "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==",
- "license": "MIT",
- "peerDependencies": {
- "postcss": "^8.0.3"
- }
- },
- "node_modules/postcss-selector-not": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz",
- "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/csstools"
- },
- {
- "type": "opencollective",
- "url": "https://opencollective.com/csstools"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^7.0.0"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "postcss": "^8.4"
- }
- },
- "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
- "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-selector-parser": {
- "version": "6.1.2",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
- "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
- "license": "MIT",
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-sort-media-queries": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz",
- "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==",
- "license": "MIT",
- "dependencies": {
- "sort-css-media-queries": "2.2.0"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.23"
- }
- },
- "node_modules/postcss-svgo": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz",
- "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==",
- "license": "MIT",
- "dependencies": {
- "postcss-value-parser": "^4.2.0",
- "svgo": "^3.2.0"
- },
- "engines": {
- "node": "^14 || ^16 || >= 18"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-unique-selectors": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz",
- "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==",
- "license": "MIT",
- "dependencies": {
- "postcss-selector-parser": "^6.0.16"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/postcss-value-parser": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
- "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
- "license": "MIT"
- },
- "node_modules/postcss-zindex": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz",
- "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==",
- "license": "MIT",
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/prebuild-install": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz",
- "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==",
- "license": "MIT",
- "dependencies": {
- "detect-libc": "^2.0.0",
- "expand-template": "^2.0.3",
- "github-from-package": "0.0.0",
- "minimist": "^1.2.3",
- "mkdirp-classic": "^0.5.3",
- "napi-build-utils": "^1.0.1",
- "node-abi": "^3.3.0",
- "pump": "^3.0.0",
- "rc": "^1.2.7",
- "simple-get": "^4.0.0",
- "tar-fs": "^2.0.0",
- "tunnel-agent": "^0.6.0"
- },
- "bin": {
- "prebuild-install": "bin.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/prebuild-install/node_modules/tar-fs": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
- "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
- "license": "MIT",
- "dependencies": {
- "chownr": "^1.1.1",
- "mkdirp-classic": "^0.5.2",
- "pump": "^3.0.0",
- "tar-stream": "^2.1.4"
- }
- },
- "node_modules/prebuild-install/node_modules/tar-stream": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
- "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
- "license": "MIT",
- "dependencies": {
- "bl": "^4.0.3",
- "end-of-stream": "^1.4.1",
- "fs-constants": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pretty-error": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz",
- "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==",
- "license": "MIT",
- "dependencies": {
- "lodash": "^4.17.20",
- "renderkid": "^3.0.0"
- }
- },
- "node_modules/pretty-time": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz",
- "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/prism-react-renderer": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.3.1.tgz",
- "integrity": "sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==",
- "license": "MIT",
- "dependencies": {
- "@types/prismjs": "^1.26.0",
- "clsx": "^2.0.0"
- },
- "peerDependencies": {
- "react": ">=16.0.0"
- }
- },
- "node_modules/prismjs": {
- "version": "1.29.0",
- "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
- "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
- "license": "MIT"
- },
- "node_modules/prompts": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
- "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
- "license": "MIT",
- "dependencies": {
- "kleur": "^3.0.3",
- "sisteransi": "^1.0.5"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/prop-types": {
- "version": "15.8.1",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
- "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.13.1"
- }
- },
- "node_modules/property-information": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz",
- "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==",
- "license": "MIT",
- "dependencies": {
- "xtend": "^4.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/proto-list": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
- "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
- "license": "ISC"
- },
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "license": "MIT",
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/proxy-addr/node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/pump": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
- "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
- "license": "MIT",
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/punycode.js": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
- "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pupa": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz",
- "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==",
- "license": "MIT",
- "dependencies": {
- "escape-goat": "^4.0.0"
- },
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "side-channel": "^1.0.6"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/queue": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
- "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
- "license": "MIT",
- "dependencies": {
- "inherits": "~2.0.3"
- }
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/queue-tick": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
- "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
- "license": "MIT"
- },
- "node_modules/quick-lru": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
- "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/range-parser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
- "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "license": "MIT",
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/raw-body/node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/raw-body/node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "license": "MIT",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/rc": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
- "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
- "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
- "dependencies": {
- "deep-extend": "^0.6.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
- },
- "bin": {
- "rc": "cli.js"
- }
- },
- "node_modules/rc/node_modules/strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
- "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/react-dev-utils": {
- "version": "12.0.1",
- "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
- "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/code-frame": "^7.16.0",
- "address": "^1.1.2",
- "browserslist": "^4.18.1",
- "chalk": "^4.1.2",
- "cross-spawn": "^7.0.3",
- "detect-port-alt": "^1.1.6",
- "escape-string-regexp": "^4.0.0",
- "filesize": "^8.0.6",
- "find-up": "^5.0.0",
- "fork-ts-checker-webpack-plugin": "^6.5.0",
- "global-modules": "^2.0.0",
- "globby": "^11.0.4",
- "gzip-size": "^6.0.0",
- "immer": "^9.0.7",
- "is-root": "^2.1.0",
- "loader-utils": "^3.2.0",
- "open": "^8.4.0",
- "pkg-up": "^3.1.0",
- "prompts": "^2.4.2",
- "react-error-overlay": "^6.0.11",
- "recursive-readdir": "^2.2.2",
- "shell-quote": "^1.7.3",
- "strip-ansi": "^6.0.1",
- "text-table": "^0.2.0"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/react-dev-utils/node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "license": "MIT",
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/react-dev-utils/node_modules/loader-utils": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz",
- "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==",
- "license": "MIT",
- "engines": {
- "node": ">= 12.13.0"
- }
- },
- "node_modules/react-dev-utils/node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "license": "MIT",
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/react-dev-utils/node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "license": "MIT",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/react-dev-utils/node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "license": "MIT",
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/react-dev-utils/node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/react-dev-utils/node_modules/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/react-dom": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
- "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0",
- "scheduler": "^0.23.2"
- },
- "peerDependencies": {
- "react": "^18.3.1"
- }
- },
- "node_modules/react-error-overlay": {
- "version": "6.0.11",
- "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
- "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==",
- "license": "MIT"
- },
- "node_modules/react-fast-compare": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz",
- "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==",
- "license": "MIT"
- },
- "node_modules/react-helmet-async": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz",
- "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==",
- "license": "Apache-2.0",
- "dependencies": {
- "@babel/runtime": "^7.12.5",
- "invariant": "^2.2.4",
- "prop-types": "^15.7.2",
- "react-fast-compare": "^3.2.0",
- "shallowequal": "^1.1.0"
- },
- "peerDependencies": {
- "react": "^16.6.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/react-is": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
- "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
- "license": "MIT"
- },
- "node_modules/react-json-view-lite": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.5.0.tgz",
- "integrity": "sha512-nWqA1E4jKPklL2jvHWs6s+7Na0qNgw9HCP6xehdQJeg6nPBTFZgGwyko9Q0oj+jQWKTTVRS30u0toM5wiuL3iw==",
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "peerDependencies": {
- "react": "^16.13.1 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/react-loadable": {
- "name": "@docusaurus/react-loadable",
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz",
- "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==",
- "license": "MIT",
- "dependencies": {
- "@types/react": "*"
- },
- "peerDependencies": {
- "react": "*"
- }
- },
- "node_modules/react-loadable-ssr-addon-v5-slorber": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz",
- "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.10.3"
- },
- "engines": {
- "node": ">=10.13.0"
- },
- "peerDependencies": {
- "react-loadable": "*",
- "webpack": ">=4.41.1 || 5.x"
- }
- },
- "node_modules/react-router": {
- "version": "5.3.4",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz",
- "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.12.13",
- "history": "^4.9.0",
- "hoist-non-react-statics": "^3.1.0",
- "loose-envify": "^1.3.1",
- "path-to-regexp": "^1.7.0",
- "prop-types": "^15.6.2",
- "react-is": "^16.6.0",
- "tiny-invariant": "^1.0.2",
- "tiny-warning": "^1.0.0"
- },
- "peerDependencies": {
- "react": ">=15"
- }
- },
- "node_modules/react-router-config": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz",
- "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.1.2"
- },
- "peerDependencies": {
- "react": ">=15",
- "react-router": ">=5"
- }
- },
- "node_modules/react-router-dom": {
- "version": "6.22.1",
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.1.tgz",
- "integrity": "sha512-iwMyyyrbL7zkKY7MRjOVRy+TMnS/OPusaFVxM2P11x9dzSzGmLsebkCvYirGq0DWB9K9hOspHYYtDz33gE5Duw==",
- "license": "MIT",
- "dependencies": {
- "@remix-run/router": "1.15.1",
- "react-router": "6.22.1"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "react": ">=16.8",
- "react-dom": ">=16.8"
- }
- },
- "node_modules/react-router-dom/node_modules/react-router": {
- "version": "6.22.1",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.1.tgz",
- "integrity": "sha512-0pdoRGwLtemnJqn1K0XHUbnKiX0S4X8CgvVVmHGOWmofESj31msHo/1YiqcJWK7Wxfq2a4uvvtS01KAQyWK/CQ==",
- "license": "MIT",
- "dependencies": {
- "@remix-run/router": "1.15.1"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "peerDependencies": {
- "react": ">=16.8"
- }
- },
- "node_modules/react-waypoint": {
- "version": "10.3.0",
- "resolved": "https://registry.npmjs.org/react-waypoint/-/react-waypoint-10.3.0.tgz",
- "integrity": "sha512-iF1y2c1BsoXuEGz08NoahaLFIGI9gTUAAOKip96HUmylRT6DUtpgoBPjk/Y8dfcFVmfVDvUzWjNXpZyKTOV0SQ==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.12.5",
- "consolidated-events": "^1.1.0 || ^2.0.0",
- "prop-types": "^15.0.0",
- "react-is": "^17.0.1 || ^18.0.0"
- },
- "peerDependencies": {
- "react": "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/react-waypoint/node_modules/react-is": {
- "version": "18.3.1",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
- "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
- "license": "MIT"
- },
- "node_modules/readable-stream": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
- "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "license": "MIT",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/reading-time": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz",
- "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==",
- "license": "MIT"
- },
- "node_modules/rechoir": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
- "dependencies": {
- "resolve": "^1.1.6"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/recma-build-jsx": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz",
- "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "estree-util-build-jsx": "^3.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/recma-jsx": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz",
- "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==",
- "license": "MIT",
- "dependencies": {
- "acorn-jsx": "^5.0.0",
- "estree-util-to-js": "^2.0.0",
- "recma-parse": "^1.0.0",
- "recma-stringify": "^1.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/recma-parse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz",
- "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "esast-util-from-js": "^2.0.0",
- "unified": "^11.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/recma-stringify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz",
- "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "estree-util-to-js": "^2.0.0",
- "unified": "^11.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/recursive-readdir": {
- "version": "2.2.3",
- "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz",
- "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==",
- "license": "MIT",
- "dependencies": {
- "minimatch": "^3.0.5"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/regenerate": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
- "license": "MIT"
- },
- "node_modules/regenerate-unicode-properties": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz",
- "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==",
- "license": "MIT",
- "dependencies": {
- "regenerate": "^1.4.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/regenerator-runtime": {
- "version": "0.14.1",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
- "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
- "license": "MIT"
- },
- "node_modules/regenerator-transform": {
- "version": "0.15.2",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
- "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
- "license": "MIT",
- "dependencies": {
- "@babel/runtime": "^7.8.4"
- }
- },
- "node_modules/regex": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/regex/-/regex-5.0.2.tgz",
- "integrity": "sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "regex-utilities": "^2.3.0"
- }
- },
- "node_modules/regex-recursion": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-4.3.0.tgz",
- "integrity": "sha512-5LcLnizwjcQ2ALfOj95MjcatxyqF5RPySx9yT+PaXu3Gox2vyAtLDjHB8NTJLtMGkvyau6nI3CfpwFCjPUIs/A==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "regex-utilities": "^2.3.0"
- }
- },
- "node_modules/regex-utilities": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz",
- "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/regexpu-core": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz",
- "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==",
- "license": "MIT",
- "dependencies": {
- "regenerate": "^1.4.2",
- "regenerate-unicode-properties": "^10.2.0",
- "regjsgen": "^0.8.0",
- "regjsparser": "^0.12.0",
- "unicode-match-property-ecmascript": "^2.0.0",
- "unicode-match-property-value-ecmascript": "^2.1.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/registry-auth-token": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.3.tgz",
- "integrity": "sha512-1bpc9IyC+e+CNFRaWyn77tk4xGG4PPUyfakSmA6F6cvUDjrm58dfyJ3II+9yb10EDkHoy1LaPSmHaWLOH3m6HA==",
- "license": "MIT",
- "dependencies": {
- "@pnpm/npm-conf": "^2.1.0"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/registry-url": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz",
- "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==",
- "license": "MIT",
- "dependencies": {
- "rc": "1.2.8"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/regjsgen": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz",
- "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==",
- "license": "MIT"
- },
- "node_modules/regjsparser": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz",
- "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "jsesc": "~3.0.2"
- },
- "bin": {
- "regjsparser": "bin/parser"
- }
- },
- "node_modules/rehype-parse": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-7.0.1.tgz",
- "integrity": "sha512-fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw==",
- "license": "MIT",
- "dependencies": {
- "hast-util-from-parse5": "^6.0.0",
- "parse5": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/rehype-parse/node_modules/parse5": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
- "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
- "license": "MIT"
- },
- "node_modules/rehype-raw": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz",
- "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "hast-util-raw": "^9.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/rehype-recma": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz",
- "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==",
- "license": "MIT",
- "dependencies": {
- "@types/estree": "^1.0.0",
- "@types/hast": "^3.0.0",
- "hast-util-to-estree": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/relateurl": {
- "version": "0.2.7",
- "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
- "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/remark-directive": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.0.tgz",
- "integrity": "sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-directive": "^3.0.0",
- "micromark-extension-directive": "^3.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-emoji": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz",
- "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.2",
- "emoticon": "^4.0.1",
- "mdast-util-find-and-replace": "^3.0.1",
- "node-emoji": "^2.1.0",
- "unified": "^11.0.4"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- }
- },
- "node_modules/remark-frontmatter": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz",
- "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-frontmatter": "^2.0.0",
- "micromark-extension-frontmatter": "^2.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-gfm": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz",
- "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-gfm": "^3.0.0",
- "micromark-extension-gfm": "^3.0.0",
- "remark-parse": "^11.0.0",
- "remark-stringify": "^11.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-mdx": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz",
- "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==",
- "license": "MIT",
- "dependencies": {
- "mdast-util-mdx": "^3.0.0",
- "micromark-extension-mdxjs": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-parse": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
- "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-from-markdown": "^2.0.0",
- "micromark-util-types": "^2.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-rehype": {
- "version": "11.1.1",
- "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz",
- "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==",
- "license": "MIT",
- "dependencies": {
- "@types/hast": "^3.0.0",
- "@types/mdast": "^4.0.0",
- "mdast-util-to-hast": "^13.0.0",
- "unified": "^11.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/remark-stringify": {
- "version": "11.0.0",
- "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz",
- "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==",
- "license": "MIT",
- "dependencies": {
- "@types/mdast": "^4.0.0",
- "mdast-util-to-markdown": "^2.0.0",
- "unified": "^11.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/renderkid": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz",
- "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==",
- "license": "MIT",
- "dependencies": {
- "css-select": "^4.1.3",
- "dom-converter": "^0.2.0",
- "htmlparser2": "^6.1.0",
- "lodash": "^4.17.21",
- "strip-ansi": "^6.0.1"
- }
- },
- "node_modules/renderkid/node_modules/css-select": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
- "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "boolbase": "^1.0.0",
- "css-what": "^6.0.1",
- "domhandler": "^4.3.1",
- "domutils": "^2.8.0",
- "nth-check": "^2.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/fb55"
- }
- },
- "node_modules/renderkid/node_modules/dom-serializer": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
- "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
- "license": "MIT",
- "dependencies": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.2.0",
- "entities": "^2.0.0"
- },
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
- }
- },
- "node_modules/renderkid/node_modules/domhandler": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
- "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "domelementtype": "^2.2.0"
- },
- "engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
- }
- },
- "node_modules/renderkid/node_modules/domutils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
- }
- },
- "node_modules/renderkid/node_modules/entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
- "license": "BSD-2-Clause",
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/renderkid/node_modules/htmlparser2": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
- "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
- "funding": [
- "https://github.com/fb55/htmlparser2?sponsor=1",
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.0.0",
- "domutils": "^2.5.2",
- "entities": "^2.0.0"
- }
- },
- "node_modules/repeat-string": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require-like": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz",
- "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
- "license": "MIT"
- },
- "node_modules/resolve": {
- "version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
- "license": "MIT",
- "dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-alpn": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
- "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
- "license": "MIT"
- },
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/resolve-pathname": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
- "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==",
- "license": "MIT"
- },
- "node_modules/responselike": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz",
- "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==",
- "license": "MIT",
- "dependencies": {
- "lowercase-keys": "^3.0.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/retry": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
- "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "license": "MIT",
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "deprecated": "Rimraf versions prior to v4 are no longer supported",
- "license": "ISC",
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/robust-predicates": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
- "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==",
- "license": "Unlicense"
- },
- "node_modules/roughjs": {
- "version": "4.6.6",
- "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz",
- "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==",
- "license": "MIT",
- "dependencies": {
- "hachure-fill": "^0.5.2",
- "path-data-parser": "^0.1.0",
- "points-on-curve": "^0.2.0",
- "points-on-path": "^0.2.1"
- }
- },
- "node_modules/rtl-detect": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.1.2.tgz",
- "integrity": "sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==",
- "license": "BSD-3-Clause"
- },
- "node_modules/rtlcss": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz",
- "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==",
- "license": "MIT",
- "dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0",
- "postcss": "^8.4.21",
- "strip-json-comments": "^3.1.1"
- },
- "bin": {
- "rtlcss": "bin/rtlcss.js"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/rw": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
- "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==",
- "license": "BSD-3-Clause"
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "license": "MIT"
- },
- "node_modules/sax": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
- "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
- "license": "ISC"
- },
- "node_modules/scheduler": {
- "version": "0.23.2",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
- "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
- "license": "MIT",
- "dependencies": {
- "loose-envify": "^1.1.0"
- }
- },
- "node_modules/schema-utils": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
- "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
- "license": "MIT",
- "dependencies": {
- "@types/json-schema": "^7.0.9",
- "ajv": "^8.9.0",
- "ajv-formats": "^2.1.1",
- "ajv-keywords": "^5.1.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/search-insights": {
- "version": "2.17.3",
- "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz",
- "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/section-matter": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz",
- "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==",
- "license": "MIT",
- "dependencies": {
- "extend-shallow": "^2.0.1",
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/select-hose": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
- "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==",
- "license": "MIT"
- },
- "node_modules/selfsigned": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz",
- "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==",
- "license": "MIT",
- "dependencies": {
- "@types/node-forge": "^1.3.0",
- "node-forge": "^1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/semver-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz",
- "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==",
- "license": "MIT",
- "dependencies": {
- "semver": "^7.3.5"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/send": {
- "version": "0.19.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
- "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
- "license": "MIT",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/send/node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/send/node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/send/node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/serialize-javascript": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
- "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "randombytes": "^2.1.0"
- }
- },
- "node_modules/serve-handler": {
- "version": "6.1.6",
- "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz",
- "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==",
- "license": "MIT",
- "dependencies": {
- "bytes": "3.0.0",
- "content-disposition": "0.5.2",
- "mime-types": "2.1.18",
- "minimatch": "3.1.2",
- "path-is-inside": "1.0.2",
- "path-to-regexp": "3.3.0",
- "range-parser": "1.2.0"
- }
- },
- "node_modules/serve-handler/node_modules/path-to-regexp": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz",
- "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==",
- "license": "MIT"
- },
- "node_modules/serve-index": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
- "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
- "license": "MIT",
- "dependencies": {
- "accepts": "~1.3.4",
- "batch": "0.6.1",
- "debug": "2.6.9",
- "escape-html": "~1.0.3",
- "http-errors": "~1.6.2",
- "mime-types": "~2.1.17",
- "parseurl": "~1.3.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/serve-index/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "license": "MIT",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/serve-index/node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/serve-index/node_modules/http-errors": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
- "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
- "license": "MIT",
- "dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.0",
- "statuses": ">= 1.4.0 < 2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/serve-index/node_modules/inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
- "license": "ISC"
- },
- "node_modules/serve-index/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "license": "MIT"
- },
- "node_modules/serve-index/node_modules/setprototypeof": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
- "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
- "license": "ISC"
- },
- "node_modules/serve-index/node_modules/statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/serve-static": {
- "version": "1.16.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
- "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
- "license": "MIT",
- "dependencies": {
- "encodeurl": "~2.0.0",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.19.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/set-function-length": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
- "license": "MIT",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "license": "ISC"
- },
- "node_modules/shallow-clone": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
- "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
- "license": "MIT",
- "dependencies": {
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shallowequal": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
- "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==",
- "license": "MIT"
- },
- "node_modules/sharp": {
- "version": "0.32.6",
- "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
- "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
- "hasInstallScript": true,
- "license": "Apache-2.0",
- "dependencies": {
- "color": "^4.2.3",
- "detect-libc": "^2.0.2",
- "node-addon-api": "^6.1.0",
- "prebuild-install": "^7.1.1",
- "semver": "^7.5.4",
- "simple-get": "^4.0.1",
- "tar-fs": "^3.0.4",
- "tunnel-agent": "^0.6.0"
- },
- "engines": {
- "node": ">=14.15.0"
- },
- "funding": {
- "url": "https://opencollective.com/libvips"
- }
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "license": "MIT",
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shell-quote": {
- "version": "1.8.2",
- "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz",
- "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/shelljs": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
- "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
- "license": "BSD-3-Clause",
- "dependencies": {
- "glob": "^7.0.0",
- "interpret": "^1.0.0",
- "rechoir": "^0.6.2"
- },
- "bin": {
- "shjs": "bin/shjs"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/shiki": {
- "version": "1.24.0",
- "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.24.0.tgz",
- "integrity": "sha512-qIneep7QRwxRd5oiHb8jaRzH15V/S8F3saCXOdjwRLgozZJr5x2yeBhQtqkO3FSzQDwYEFAYuifg4oHjpDghrg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@shikijs/core": "1.24.0",
- "@shikijs/engine-javascript": "1.24.0",
- "@shikijs/engine-oniguruma": "1.24.0",
- "@shikijs/types": "1.24.0",
- "@shikijs/vscode-textmate": "^9.3.0",
- "@types/hast": "^3.0.4"
- }
- },
- "node_modules/side-channel": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
- "license": "MIT",
- "dependencies": {
- "call-bind": "^1.0.7",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "license": "ISC"
- },
- "node_modules/simple-concat": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
- "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/simple-get": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
- "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "decompress-response": "^6.0.0",
- "once": "^1.3.1",
- "simple-concat": "^1.0.0"
- }
- },
- "node_modules/simple-swizzle": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
- "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
- "license": "MIT",
- "dependencies": {
- "is-arrayish": "^0.3.1"
- }
- },
- "node_modules/simple-swizzle/node_modules/is-arrayish": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
- "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
- "license": "MIT"
- },
- "node_modules/sirv": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
- "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==",
- "license": "MIT",
- "dependencies": {
- "@polka/url": "^1.0.0-next.24",
- "mrmime": "^2.0.0",
- "totalist": "^3.0.0"
- },
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/sisteransi": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
- "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
- "license": "MIT"
- },
- "node_modules/sitemap": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz",
- "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "^17.0.5",
- "@types/sax": "^1.2.1",
- "arg": "^5.0.0",
- "sax": "^1.2.4"
- },
- "bin": {
- "sitemap": "dist/cli.js"
- },
- "engines": {
- "node": ">=12.0.0",
- "npm": ">=5.6.0"
- }
- },
- "node_modules/sitemap/node_modules/@types/node": {
- "version": "17.0.45",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz",
- "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==",
- "license": "MIT"
- },
- "node_modules/skin-tone": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz",
- "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==",
- "license": "MIT",
- "dependencies": {
- "unicode-emoji-modifier-base": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/slash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
- "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/snake-case": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz",
- "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==",
- "license": "MIT",
- "dependencies": {
- "dot-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
- "node_modules/sockjs": {
- "version": "0.3.24",
- "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
- "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
- "license": "MIT",
- "dependencies": {
- "faye-websocket": "^0.11.3",
- "uuid": "^8.3.2",
- "websocket-driver": "^0.7.4"
- }
- },
- "node_modules/sockjs/node_modules/uuid": {
- "version": "8.3.2",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
- "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/sort-css-media-queries": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz",
- "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==",
- "license": "MIT",
- "engines": {
- "node": ">= 6.3.0"
- }
- },
- "node_modules/source-map": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
- "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/source-map-support": {
- "version": "0.5.21",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
- "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
- "license": "MIT",
- "dependencies": {
- "buffer-from": "^1.0.0",
- "source-map": "^0.6.0"
- }
- },
- "node_modules/source-map-support/node_modules/source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/space-separated-tokens": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz",
- "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/spdy": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
- "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
- "license": "MIT",
- "dependencies": {
- "debug": "^4.1.0",
- "handle-thing": "^2.0.0",
- "http-deceiver": "^1.2.7",
- "select-hose": "^2.0.0",
- "spdy-transport": "^3.0.0"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/spdy-transport": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
- "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
- "license": "MIT",
- "dependencies": {
- "debug": "^4.1.0",
- "detect-node": "^2.0.4",
- "hpack.js": "^2.1.6",
- "obuf": "^1.1.2",
- "readable-stream": "^3.0.6",
- "wbuf": "^1.7.3"
- }
- },
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
- "license": "BSD-3-Clause"
- },
- "node_modules/srcset": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz",
- "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/std-env": {
- "version": "3.8.0",
- "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz",
- "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==",
- "license": "MIT"
- },
- "node_modules/streamx": {
- "version": "2.20.2",
- "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.2.tgz",
- "integrity": "sha512-aDGDLU+j9tJcUdPGOaHmVF1u/hhI+CsGkT02V3OKlHDV7IukOI+nTWAGkiZEKCO35rWN1wIr4tS7YFr1f4qSvA==",
- "license": "MIT",
- "dependencies": {
- "fast-fifo": "^1.3.2",
- "queue-tick": "^1.0.1",
- "text-decoder": "^1.1.0"
- },
- "optionalDependencies": {
- "bare-events": "^2.2.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
- },
- "node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "license": "MIT",
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/string-width/node_modules/ansi-regex": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/string-width/node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/stringify-entities": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
- "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
- "license": "MIT",
- "dependencies": {
- "character-entities-html4": "^2.0.0",
- "character-entities-legacy": "^3.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/stringify-object": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
- "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "get-own-enumerable-property-symbols": "^3.0.0",
- "is-obj": "^1.0.1",
- "is-regexp": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-bom-string": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
- "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/strip-final-newline": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
- "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/style-to-object": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz",
- "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==",
- "license": "MIT",
- "dependencies": {
- "inline-style-parser": "0.2.4"
- }
- },
- "node_modules/stylehacks": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz",
- "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==",
- "license": "MIT",
- "dependencies": {
- "browserslist": "^4.23.0",
- "postcss-selector-parser": "^6.0.16"
- },
- "engines": {
- "node": "^14 || ^16 || >=18.0"
- },
- "peerDependencies": {
- "postcss": "^8.4.31"
- }
- },
- "node_modules/stylis": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.4.tgz",
- "integrity": "sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==",
- "license": "MIT"
- },
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/svg-parser": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz",
- "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==",
- "license": "MIT"
- },
- "node_modules/svgo": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz",
- "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==",
- "license": "MIT",
- "dependencies": {
- "@trysound/sax": "0.2.0",
- "commander": "^7.2.0",
- "css-select": "^5.1.0",
- "css-tree": "^2.3.1",
- "css-what": "^6.1.0",
- "csso": "^5.0.5",
- "picocolors": "^1.0.0"
- },
- "bin": {
- "svgo": "bin/svgo"
- },
- "engines": {
- "node": ">=14.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/svgo"
- }
- },
- "node_modules/svgo/node_modules/commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
- "license": "MIT",
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/tapable": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tar-fs": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz",
- "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==",
- "license": "MIT",
- "dependencies": {
- "pump": "^3.0.0",
- "tar-stream": "^3.1.5"
- },
- "optionalDependencies": {
- "bare-fs": "^2.1.1",
- "bare-path": "^2.1.0"
- }
- },
- "node_modules/tar-stream": {
- "version": "3.1.7",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
- "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
- "license": "MIT",
- "dependencies": {
- "b4a": "^1.6.4",
- "fast-fifo": "^1.2.0",
- "streamx": "^2.15.0"
- }
- },
- "node_modules/terser": {
- "version": "5.36.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz",
- "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "@jridgewell/source-map": "^0.3.3",
- "acorn": "^8.8.2",
- "commander": "^2.20.0",
- "source-map-support": "~0.5.20"
- },
- "bin": {
- "terser": "bin/terser"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/terser-webpack-plugin": {
- "version": "5.3.10",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
- "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
- "license": "MIT",
- "dependencies": {
- "@jridgewell/trace-mapping": "^0.3.20",
- "jest-worker": "^27.4.5",
- "schema-utils": "^3.1.1",
- "serialize-javascript": "^6.0.1",
- "terser": "^5.26.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^5.1.0"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "esbuild": {
- "optional": true
- },
- "uglify-js": {
- "optional": true
- }
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "license": "MIT",
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/jest-worker": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
- "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
- "license": "MIT",
- "dependencies": {
- "@types/node": "*",
- "merge-stream": "^2.0.0",
- "supports-color": "^8.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "license": "MIT"
- },
- "node_modules/terser-webpack-plugin/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "license": "MIT",
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/terser-webpack-plugin/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "license": "MIT",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/terser/node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
- "license": "MIT"
- },
- "node_modules/text-decoder": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz",
- "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==",
- "license": "Apache-2.0"
- },
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "license": "MIT"
- },
- "node_modules/thunky": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
- "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
- "license": "MIT"
- },
- "node_modules/tiny-invariant": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
- "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
- "license": "MIT"
- },
- "node_modules/tiny-warning": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
- "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==",
- "license": "MIT"
- },
- "node_modules/tinyexec": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz",
- "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==",
- "license": "MIT"
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "license": "MIT",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/to-vfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-6.1.0.tgz",
- "integrity": "sha512-BxX8EkCxOAZe+D/ToHdDsJcVI4HqQfmw0tCkp31zf3dNP/XWIAjU4CmeuSwsSoOzOTqHPOL0KUzyZqJplkD0Qw==",
- "license": "MIT",
- "dependencies": {
- "is-buffer": "^2.0.0",
- "vfile": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/to-vfile/node_modules/@types/unist": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
- "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
- "license": "MIT"
- },
- "node_modules/to-vfile/node_modules/unist-util-stringify-position": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
- "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.2"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/to-vfile/node_modules/vfile": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
- "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "is-buffer": "^2.0.0",
- "unist-util-stringify-position": "^2.0.0",
- "vfile-message": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/to-vfile/node_modules/vfile-message": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
- "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^2.0.0",
- "unist-util-stringify-position": "^2.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "license": "MIT",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/totalist": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
- "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/trim-lines": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
- "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/trough": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz",
- "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/ts-dedent": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz",
- "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==",
- "license": "MIT",
- "engines": {
- "node": ">=6.10"
- }
- },
- "node_modules/tslib": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
- "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "license": "0BSD"
- },
- "node_modules/tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
- "license": "Apache-2.0",
- "dependencies": {
- "safe-buffer": "^5.0.1"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/type-fest": {
- "version": "2.19.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
- "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
- "license": "(MIT OR CC0-1.0)",
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "license": "MIT",
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/type-is/node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/type-is/node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/typedarray-to-buffer": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
- "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
- "license": "MIT",
- "dependencies": {
- "is-typedarray": "^1.0.0"
- }
- },
- "node_modules/typedoc": {
- "version": "0.26.11",
- "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.11.tgz",
- "integrity": "sha512-sFEgRRtrcDl2FxVP58Ze++ZK2UQAEvtvvH8rRlig1Ja3o7dDaMHmaBfvJmdGnNEFaLTpQsN8dpvZaTqJSu/Ugw==",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "lunr": "^2.3.9",
- "markdown-it": "^14.1.0",
- "minimatch": "^9.0.5",
- "shiki": "^1.16.2",
- "yaml": "^2.5.1"
- },
- "bin": {
- "typedoc": "bin/typedoc"
- },
- "engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x"
- }
- },
- "node_modules/typedoc-plugin-markdown": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-4.2.10.tgz",
- "integrity": "sha512-PLX3pc1/7z13UJm4TDE9vo9jWGcClFUErXXtd5LdnoLjV6mynPpqZLU992DwMGFSRqJFZeKbVyqlNNeNHnk2tQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "typedoc": "0.26.x"
- }
- },
- "node_modules/typedoc/node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/typedoc/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/typescript": {
- "version": "5.6.3",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
- "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
- "license": "Apache-2.0",
- "peer": true,
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=14.17"
- }
- },
- "node_modules/uc.micro": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
- "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/ufo": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz",
- "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==",
- "license": "MIT"
- },
- "node_modules/undici-types": {
- "version": "6.20.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
- "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
- "license": "MIT"
- },
- "node_modules/unicode-canonical-property-names-ecmascript": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
- "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-emoji-modifier-base": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz",
- "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-match-property-ecmascript": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
- "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
- "license": "MIT",
- "dependencies": {
- "unicode-canonical-property-names-ecmascript": "^2.0.0",
- "unicode-property-aliases-ecmascript": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-match-property-value-ecmascript": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz",
- "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-property-aliases-ecmascript": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
- "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unified": {
- "version": "11.0.5",
- "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
- "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "bail": "^2.0.0",
- "devlop": "^1.0.0",
- "extend": "^3.0.0",
- "is-plain-obj": "^4.0.0",
- "trough": "^2.0.0",
- "vfile": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unique-string": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
- "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
- "license": "MIT",
- "dependencies": {
- "crypto-random-string": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/unist-util-find-after": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz",
- "integrity": "sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ==",
- "license": "MIT",
- "dependencies": {
- "unist-util-is": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-is": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz",
- "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==",
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-position": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
- "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-position-from-estree": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz",
- "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-stringify-position": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
- "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
- "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0",
- "unist-util-visit-parents": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit-parents": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz",
- "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-is": "^6.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit-parents/node_modules/unist-util-is": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
- "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/unist-util-visit/node_modules/unist-util-is": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
- "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/universalify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
- "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
- "license": "MIT",
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
- "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "escalade": "^3.2.0",
- "picocolors": "^1.1.0"
- },
- "bin": {
- "update-browserslist-db": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/update-notifier": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz",
- "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "boxen": "^7.0.0",
- "chalk": "^5.0.1",
- "configstore": "^6.0.0",
- "has-yarn": "^3.0.0",
- "import-lazy": "^4.0.0",
- "is-ci": "^3.0.1",
- "is-installed-globally": "^0.4.0",
- "is-npm": "^6.0.0",
- "is-yarn-global": "^0.4.0",
- "latest-version": "^7.0.0",
- "pupa": "^3.1.0",
- "semver": "^7.3.7",
- "semver-diff": "^4.0.0",
- "xdg-basedir": "^5.1.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/yeoman/update-notifier?sponsor=1"
- }
- },
- "node_modules/update-notifier/node_modules/boxen": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz",
- "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==",
- "license": "MIT",
- "dependencies": {
- "ansi-align": "^3.0.1",
- "camelcase": "^7.0.1",
- "chalk": "^5.2.0",
- "cli-boxes": "^3.0.0",
- "string-width": "^5.1.2",
- "type-fest": "^2.13.0",
- "widest-line": "^4.0.1",
- "wrap-ansi": "^8.1.0"
- },
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/update-notifier/node_modules/camelcase": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz",
- "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==",
- "license": "MIT",
- "engines": {
- "node": ">=14.16"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/update-notifier/node_modules/chalk": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
- "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
- "license": "MIT",
- "engines": {
- "node": "^12.17.0 || ^14.13 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "license": "BSD-2-Clause",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/url-loader": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz",
- "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==",
- "license": "MIT",
- "dependencies": {
- "loader-utils": "^2.0.0",
- "mime-types": "^2.1.27",
- "schema-utils": "^3.0.0"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "file-loader": "*",
- "webpack": "^4.0.0 || ^5.0.0"
- },
- "peerDependenciesMeta": {
- "file-loader": {
- "optional": true
- }
- }
- },
- "node_modules/url-loader/node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/url-loader/node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "license": "MIT",
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
- },
- "node_modules/url-loader/node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "license": "MIT"
- },
- "node_modules/url-loader/node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/url-loader/node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/url-loader/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "license": "MIT",
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
- "license": "MIT"
- },
- "node_modules/utila": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
- "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==",
- "license": "MIT"
- },
- "node_modules/utility-types": {
- "version": "3.11.0",
- "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz",
- "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==",
- "license": "MIT",
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/uuid": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
- "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
- "funding": [
- "https://github.com/sponsors/broofa",
- "https://github.com/sponsors/ctavan"
- ],
- "license": "MIT",
- "bin": {
- "uuid": "dist/bin/uuid"
- }
- },
- "node_modules/value-equal": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz",
- "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==",
- "license": "MIT"
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/vfile": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
- "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "vfile-message": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vfile-location": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz",
- "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==",
- "license": "MIT",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vfile-message": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
- "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
- "license": "MIT",
- "dependencies": {
- "@types/unist": "^3.0.0",
- "unist-util-stringify-position": "^4.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/unified"
- }
- },
- "node_modules/vscode-jsonrpc": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
- "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
- "license": "MIT",
- "engines": {
- "node": ">=14.0.0"
- }
- },
- "node_modules/vscode-languageserver": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
- "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
- "license": "MIT",
- "dependencies": {
- "vscode-languageserver-protocol": "3.17.5"
- },
- "bin": {
- "installServerIntoExtension": "bin/installServerIntoExtension"
- }
- },
- "node_modules/vscode-languageserver-protocol": {
- "version": "3.17.5",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
- "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
- "license": "MIT",
- "dependencies": {
- "vscode-jsonrpc": "8.2.0",
- "vscode-languageserver-types": "3.17.5"
- }
- },
- "node_modules/vscode-languageserver-textdocument": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz",
- "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==",
- "license": "MIT"
- },
- "node_modules/vscode-languageserver-types": {
- "version": "3.17.5",
- "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
- "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==",
- "license": "MIT"
- },
- "node_modules/vscode-uri": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz",
- "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==",
- "license": "MIT"
- },
- "node_modules/watchpack": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz",
- "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==",
- "license": "MIT",
- "dependencies": {
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.1.2"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/wbuf": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
- "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
- "license": "MIT",
- "dependencies": {
- "minimalistic-assert": "^1.0.0"
- }
- },
- "node_modules/web-namespaces": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz",
- "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/webpack": {
- "version": "5.96.1",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz",
- "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==",
- "license": "MIT",
- "dependencies": {
- "@types/eslint-scope": "^3.7.7",
- "@types/estree": "^1.0.6",
- "@webassemblyjs/ast": "^1.12.1",
- "@webassemblyjs/wasm-edit": "^1.12.1",
- "@webassemblyjs/wasm-parser": "^1.12.1",
- "acorn": "^8.14.0",
- "browserslist": "^4.24.0",
- "chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.17.1",
- "es-module-lexer": "^1.2.1",
- "eslint-scope": "5.1.1",
- "events": "^3.2.0",
- "glob-to-regexp": "^0.4.1",
- "graceful-fs": "^4.2.11",
- "json-parse-even-better-errors": "^2.3.1",
- "loader-runner": "^4.2.0",
- "mime-types": "^2.1.27",
- "neo-async": "^2.6.2",
- "schema-utils": "^3.2.0",
- "tapable": "^2.1.1",
- "terser-webpack-plugin": "^5.3.10",
- "watchpack": "^2.4.1",
- "webpack-sources": "^3.2.3"
- },
- "bin": {
- "webpack": "bin/webpack.js"
- },
- "engines": {
- "node": ">=10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependenciesMeta": {
- "webpack-cli": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-bundle-analyzer": {
- "version": "4.10.2",
- "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz",
- "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==",
- "license": "MIT",
- "dependencies": {
- "@discoveryjs/json-ext": "0.5.7",
- "acorn": "^8.0.4",
- "acorn-walk": "^8.0.0",
- "commander": "^7.2.0",
- "debounce": "^1.2.1",
- "escape-string-regexp": "^4.0.0",
- "gzip-size": "^6.0.0",
- "html-escaper": "^2.0.2",
- "opener": "^1.5.2",
- "picocolors": "^1.0.0",
- "sirv": "^2.0.3",
- "ws": "^7.3.1"
- },
- "bin": {
- "webpack-bundle-analyzer": "lib/bin/analyzer.js"
- },
- "engines": {
- "node": ">= 10.13.0"
- }
- },
- "node_modules/webpack-bundle-analyzer/node_modules/commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
- "license": "MIT",
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/webpack-dev-middleware": {
- "version": "5.3.4",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz",
- "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==",
- "license": "MIT",
- "dependencies": {
- "colorette": "^2.0.10",
- "memfs": "^3.4.3",
- "mime-types": "^2.1.31",
- "range-parser": "^1.2.1",
- "schema-utils": "^4.0.0"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.0.0 || ^5.0.0"
- }
- },
- "node_modules/webpack-dev-middleware/node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/webpack-dev-middleware/node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/webpack-dev-middleware/node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/webpack-dev-server": {
- "version": "4.15.2",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz",
- "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==",
- "license": "MIT",
- "dependencies": {
- "@types/bonjour": "^3.5.9",
- "@types/connect-history-api-fallback": "^1.3.5",
- "@types/express": "^4.17.13",
- "@types/serve-index": "^1.9.1",
- "@types/serve-static": "^1.13.10",
- "@types/sockjs": "^0.3.33",
- "@types/ws": "^8.5.5",
- "ansi-html-community": "^0.0.8",
- "bonjour-service": "^1.0.11",
- "chokidar": "^3.5.3",
- "colorette": "^2.0.10",
- "compression": "^1.7.4",
- "connect-history-api-fallback": "^2.0.0",
- "default-gateway": "^6.0.3",
- "express": "^4.17.3",
- "graceful-fs": "^4.2.6",
- "html-entities": "^2.3.2",
- "http-proxy-middleware": "^2.0.3",
- "ipaddr.js": "^2.0.1",
- "launch-editor": "^2.6.0",
- "open": "^8.0.9",
- "p-retry": "^4.5.0",
- "rimraf": "^3.0.2",
- "schema-utils": "^4.0.0",
- "selfsigned": "^2.1.1",
- "serve-index": "^1.9.1",
- "sockjs": "^0.3.24",
- "spdy": "^4.0.2",
- "webpack-dev-middleware": "^5.3.4",
- "ws": "^8.13.0"
- },
- "bin": {
- "webpack-dev-server": "bin/webpack-dev-server.js"
- },
- "engines": {
- "node": ">= 12.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- },
- "peerDependencies": {
- "webpack": "^4.37.0 || ^5.0.0"
- },
- "peerDependenciesMeta": {
- "webpack": {
- "optional": true
- },
- "webpack-cli": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-dev-server/node_modules/ws": {
- "version": "8.18.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
- "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
- "license": "MIT",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": ">=5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/webpack-merge": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz",
- "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==",
- "license": "MIT",
- "dependencies": {
- "clone-deep": "^4.0.1",
- "flat": "^5.0.2",
- "wildcard": "^2.0.1"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/webpack-sources": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
- "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
- "license": "MIT",
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/webpack/node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/webpack/node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "license": "MIT",
- "peerDependencies": {
- "ajv": "^6.9.1"
- }
- },
- "node_modules/webpack/node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "license": "MIT"
- },
- "node_modules/webpack/node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/webpack/node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/webpack/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "license": "MIT",
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
- "node_modules/webpackbar": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-6.0.1.tgz",
- "integrity": "sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==",
- "license": "MIT",
- "dependencies": {
- "ansi-escapes": "^4.3.2",
- "chalk": "^4.1.2",
- "consola": "^3.2.3",
- "figures": "^3.2.0",
- "markdown-table": "^2.0.0",
- "pretty-time": "^1.1.0",
- "std-env": "^3.7.0",
- "wrap-ansi": "^7.0.0"
- },
- "engines": {
- "node": ">=14.21.3"
- },
- "peerDependencies": {
- "webpack": "3 || 4 || 5"
- }
- },
- "node_modules/webpackbar/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/webpackbar/node_modules/markdown-table": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz",
- "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==",
- "license": "MIT",
- "dependencies": {
- "repeat-string": "^1.0.0"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
- },
- "node_modules/webpackbar/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/webpackbar/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/websocket-driver": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
- "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
- "license": "Apache-2.0",
- "dependencies": {
- "http-parser-js": ">=0.5.1",
- "safe-buffer": ">=5.1.0",
- "websocket-extensions": ">=0.1.1"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/websocket-extensions": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
- "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
- "license": "Apache-2.0",
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "license": "ISC",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/wide-align": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
- "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
- "license": "ISC",
- "dependencies": {
- "string-width": "^1.0.2 || 2 || 3 || 4"
- }
- },
- "node_modules/wide-align/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/wide-align/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/widest-line": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz",
- "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==",
- "license": "MIT",
- "dependencies": {
- "string-width": "^5.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/wildcard": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
- "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
- "license": "MIT"
- },
- "node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi/node_modules/ansi-regex": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrap-ansi/node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "license": "ISC"
- },
- "node_modules/write-file-atomic": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
- "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
- "license": "ISC",
- "dependencies": {
- "imurmurhash": "^0.1.4",
- "is-typedarray": "^1.0.0",
- "signal-exit": "^3.0.2",
- "typedarray-to-buffer": "^3.1.5"
- }
- },
- "node_modules/ws": {
- "version": "7.5.10",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
- "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
+ "name": "eliza-docs",
+ "version": "0.1.5-alpha.1",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "eliza-docs",
+ "version": "0.1.5-alpha.1",
+ "dependencies": {
+ "@docusaurus/core": "3.6.3",
+ "@docusaurus/plugin-content-blog": "3.6.3",
+ "@docusaurus/plugin-content-docs": "3.6.3",
+ "@docusaurus/plugin-ideal-image": "3.6.3",
+ "@docusaurus/preset-classic": "3.6.3",
+ "@docusaurus/theme-mermaid": "3.6.3",
+ "@mdx-js/react": "3.0.1",
+ "clsx": "2.1.1",
+ "docusaurus-lunr-search": "3.5.0",
+ "dotenv": "^16.4.7",
+ "prism-react-renderer": "2.3.1",
+ "react": "18.3.1",
+ "react-dom": "18.3.1",
+ "react-router-dom": "6.22.1"
+ },
+ "devDependencies": {
+ "@docusaurus/module-type-aliases": "3.6.3",
+ "@docusaurus/types": "3.6.3",
+ "docusaurus-plugin-typedoc": "1.0.5",
+ "typedoc": "0.26.11",
+ "typedoc-plugin-markdown": "4.2.10"
+ },
+ "engines": {
+ "node": "23.3.0"
+ }
+ },
+ "node_modules/@algolia/autocomplete-core": {
+ "version": "1.17.7",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz",
+ "integrity": "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/autocomplete-plugin-algolia-insights": "1.17.7",
+ "@algolia/autocomplete-shared": "1.17.7"
+ }
+ },
+ "node_modules/@algolia/autocomplete-plugin-algolia-insights": {
+ "version": "1.17.7",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz",
+ "integrity": "sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/autocomplete-shared": "1.17.7"
+ },
+ "peerDependencies": {
+ "search-insights": ">= 1 < 3"
+ }
+ },
+ "node_modules/@algolia/autocomplete-preset-algolia": {
+ "version": "1.17.7",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz",
+ "integrity": "sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/autocomplete-shared": "1.17.7"
+ },
+ "peerDependencies": {
+ "@algolia/client-search": ">= 4.9.1 < 6",
+ "algoliasearch": ">= 4.9.1 < 6"
+ }
+ },
+ "node_modules/@algolia/autocomplete-shared": {
+ "version": "1.17.7",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz",
+ "integrity": "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg==",
+ "license": "MIT",
+ "peerDependencies": {
+ "@algolia/client-search": ">= 4.9.1 < 6",
+ "algoliasearch": ">= 4.9.1 < 6"
+ }
+ },
+ "node_modules/@algolia/cache-browser-local-storage": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz",
+ "integrity": "sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/cache-common": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/cache-common": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.24.0.tgz",
+ "integrity": "sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==",
+ "license": "MIT"
+ },
+ "node_modules/@algolia/cache-in-memory": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz",
+ "integrity": "sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/cache-common": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/client-abtesting": {
+ "version": "5.15.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.15.0.tgz",
+ "integrity": "sha512-FaEM40iuiv1mAipYyiptP4EyxkJ8qHfowCpEeusdHUC4C7spATJYArD2rX3AxkVeREkDIgYEOuXcwKUbDCr7Nw==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.15.0",
+ "@algolia/requester-browser-xhr": "5.15.0",
+ "@algolia/requester-fetch": "5.15.0",
+ "@algolia/requester-node-http": "5.15.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/client-account": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.24.0.tgz",
+ "integrity": "sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "4.24.0",
+ "@algolia/client-search": "4.24.0",
+ "@algolia/transporter": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/client-account/node_modules/@algolia/client-common": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz",
+ "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/requester-common": "4.24.0",
+ "@algolia/transporter": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/client-account/node_modules/@algolia/client-search": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz",
+ "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "4.24.0",
+ "@algolia/requester-common": "4.24.0",
+ "@algolia/transporter": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/client-analytics": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.24.0.tgz",
+ "integrity": "sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "4.24.0",
+ "@algolia/client-search": "4.24.0",
+ "@algolia/requester-common": "4.24.0",
+ "@algolia/transporter": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/client-analytics/node_modules/@algolia/client-common": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz",
+ "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/requester-common": "4.24.0",
+ "@algolia/transporter": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/client-analytics/node_modules/@algolia/client-search": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz",
+ "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "4.24.0",
+ "@algolia/requester-common": "4.24.0",
+ "@algolia/transporter": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/client-common": {
+ "version": "5.15.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.15.0.tgz",
+ "integrity": "sha512-IofrVh213VLsDkPoSKMeM9Dshrv28jhDlBDLRcVJQvlL8pzue7PEB1EZ4UoJFYS3NSn7JOcJ/V+olRQzXlJj1w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/client-insights": {
+ "version": "5.15.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.15.0.tgz",
+ "integrity": "sha512-bDDEQGfFidDi0UQUCbxXOCdphbVAgbVmxvaV75cypBTQkJ+ABx/Npw7LkFGw1FsoVrttlrrQbwjvUB6mLVKs/w==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.15.0",
+ "@algolia/requester-browser-xhr": "5.15.0",
+ "@algolia/requester-fetch": "5.15.0",
+ "@algolia/requester-node-http": "5.15.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/client-personalization": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.24.0.tgz",
+ "integrity": "sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "4.24.0",
+ "@algolia/requester-common": "4.24.0",
+ "@algolia/transporter": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/client-personalization/node_modules/@algolia/client-common": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz",
+ "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/requester-common": "4.24.0",
+ "@algolia/transporter": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/client-query-suggestions": {
+ "version": "5.15.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.15.0.tgz",
+ "integrity": "sha512-wu8GVluiZ5+il8WIRsGKu8VxMK9dAlr225h878GGtpTL6VBvwyJvAyLdZsfFIpY0iN++jiNb31q2C1PlPL+n/A==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.15.0",
+ "@algolia/requester-browser-xhr": "5.15.0",
+ "@algolia/requester-fetch": "5.15.0",
+ "@algolia/requester-node-http": "5.15.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/client-search": {
+ "version": "5.15.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.15.0.tgz",
+ "integrity": "sha512-Z32gEMrRRpEta5UqVQA612sLdoqY3AovvUPClDfMxYrbdDAebmGDVPtSogUba1FZ4pP5dx20D3OV3reogLKsRA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.15.0",
+ "@algolia/requester-browser-xhr": "5.15.0",
+ "@algolia/requester-fetch": "5.15.0",
+ "@algolia/requester-node-http": "5.15.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/events": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz",
+ "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==",
+ "license": "MIT"
+ },
+ "node_modules/@algolia/ingestion": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.15.0.tgz",
+ "integrity": "sha512-MkqkAxBQxtQ5if/EX2IPqFA7LothghVyvPoRNA/meS2AW2qkHwcxjuiBxv4H6mnAVEPfJlhu9rkdVz9LgCBgJg==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.15.0",
+ "@algolia/requester-browser-xhr": "5.15.0",
+ "@algolia/requester-fetch": "5.15.0",
+ "@algolia/requester-node-http": "5.15.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/logger-common": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.24.0.tgz",
+ "integrity": "sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==",
+ "license": "MIT"
+ },
+ "node_modules/@algolia/logger-console": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.24.0.tgz",
+ "integrity": "sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/logger-common": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/monitoring": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.15.0.tgz",
+ "integrity": "sha512-QPrFnnGLMMdRa8t/4bs7XilPYnoUXDY8PMQJ1sf9ZFwhUysYYhQNX34/enoO0LBjpoOY6rLpha39YQEFbzgKyQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.15.0",
+ "@algolia/requester-browser-xhr": "5.15.0",
+ "@algolia/requester-fetch": "5.15.0",
+ "@algolia/requester-node-http": "5.15.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/recommend": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.24.0.tgz",
+ "integrity": "sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/cache-browser-local-storage": "4.24.0",
+ "@algolia/cache-common": "4.24.0",
+ "@algolia/cache-in-memory": "4.24.0",
+ "@algolia/client-common": "4.24.0",
+ "@algolia/client-search": "4.24.0",
+ "@algolia/logger-common": "4.24.0",
+ "@algolia/logger-console": "4.24.0",
+ "@algolia/requester-browser-xhr": "4.24.0",
+ "@algolia/requester-common": "4.24.0",
+ "@algolia/requester-node-http": "4.24.0",
+ "@algolia/transporter": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/recommend/node_modules/@algolia/client-common": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz",
+ "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/requester-common": "4.24.0",
+ "@algolia/transporter": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/recommend/node_modules/@algolia/client-search": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz",
+ "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "4.24.0",
+ "@algolia/requester-common": "4.24.0",
+ "@algolia/transporter": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/recommend/node_modules/@algolia/requester-browser-xhr": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz",
+ "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/requester-common": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/recommend/node_modules/@algolia/requester-node-http": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz",
+ "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/requester-common": "4.24.0"
+ }
+ },
+ "node_modules/@algolia/requester-browser-xhr": {
+ "version": "5.15.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.15.0.tgz",
+ "integrity": "sha512-Po/GNib6QKruC3XE+WKP1HwVSfCDaZcXu48kD+gwmtDlqHWKc7Bq9lrS0sNZ456rfCKhXksOmMfUs4wRM/Y96w==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.15.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/requester-common": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.24.0.tgz",
+ "integrity": "sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==",
+ "license": "MIT"
+ },
+ "node_modules/@algolia/requester-fetch": {
+ "version": "5.15.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.15.0.tgz",
+ "integrity": "sha512-rOZ+c0P7ajmccAvpeeNrUmEKoliYFL8aOR5qGW5pFq3oj3Iept7Y5mEtEsOBYsRt6qLnaXn4zUKf+N8nvJpcIw==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.15.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/requester-node-http": {
+ "version": "5.15.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.15.0.tgz",
+ "integrity": "sha512-b1jTpbFf9LnQHEJP5ddDJKE2sAlhYd7EVSOWgzo/27n/SfCoHfqD0VWntnWYD83PnOKvfe8auZ2+xCb0TXotrQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.15.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@algolia/transporter": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.24.0.tgz",
+ "integrity": "sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/cache-common": "4.24.0",
+ "@algolia/logger-common": "4.24.0",
+ "@algolia/requester-common": "4.24.0"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@antfu/install-pkg": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/@antfu/install-pkg/-/install-pkg-0.4.1.tgz",
+ "integrity": "sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==",
+ "license": "MIT",
+ "dependencies": {
+ "package-manager-detector": "^0.2.0",
+ "tinyexec": "^0.3.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@antfu/utils": {
+ "version": "0.7.10",
+ "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.10.tgz",
+ "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.26.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
+ "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.25.9",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.26.2",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz",
+ "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz",
+ "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==",
+ "license": "MIT",
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.26.0",
+ "@babel/generator": "^7.26.0",
+ "@babel/helper-compilation-targets": "^7.25.9",
+ "@babel/helper-module-transforms": "^7.26.0",
+ "@babel/helpers": "^7.26.0",
+ "@babel/parser": "^7.26.0",
+ "@babel/template": "^7.25.9",
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.26.0",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/core/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.26.2",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz",
+ "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.26.2",
+ "@babel/types": "^7.26.0",
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz",
+ "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz",
+ "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz",
+ "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.25.9",
+ "@babel/helper-validator-option": "^7.25.9",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz",
+ "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-member-expression-to-functions": "^7.25.9",
+ "@babel/helper-optimise-call-expression": "^7.25.9",
+ "@babel/helper-replace-supers": "^7.25.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
+ "@babel/traverse": "^7.25.9",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz",
+ "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "regexpu-core": "^6.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz",
+ "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz",
+ "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
+ "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
+ "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz",
+ "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz",
+ "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-remap-async-to-generator": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz",
+ "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-wrap-function": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz",
+ "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-member-expression-to-functions": "^7.25.9",
+ "@babel/helper-optimise-call-expression": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz",
+ "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz",
+ "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+ "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
+ "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-wrap-function": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz",
+ "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.25.9",
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz",
+ "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.25.9",
+ "@babel/types": "^7.26.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.26.2",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz",
+ "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.26.0"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz",
+ "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz",
+ "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz",
+ "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz",
+ "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
+ "@babel/plugin-transform-optional-chaining": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.13.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz",
+ "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.21.0-placeholder-for-preset-env.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz",
+ "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz",
+ "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz",
+ "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz",
+ "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz",
+ "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-generator-functions": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz",
+ "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-remap-async-to-generator": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz",
+ "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-remap-async-to-generator": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz",
+ "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz",
+ "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-properties": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz",
+ "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-static-block": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz",
+ "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-classes": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz",
+ "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-compilation-targets": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-replace-supers": "^7.25.9",
+ "@babel/traverse": "^7.25.9",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-computed-properties": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz",
+ "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/template": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz",
+ "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz",
+ "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz",
+ "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz",
+ "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dynamic-import": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz",
+ "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz",
+ "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-export-namespace-from": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz",
+ "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-for-of": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz",
+ "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-function-name": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz",
+ "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-json-strings": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz",
+ "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-literals": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz",
+ "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-logical-assignment-operators": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz",
+ "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-member-expression-literals": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz",
+ "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-amd": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz",
+ "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz",
+ "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-simple-access": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz",
+ "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-umd": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz",
+ "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz",
+ "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-new-target": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz",
+ "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz",
+ "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-numeric-separator": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz",
+ "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-rest-spread": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz",
+ "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/plugin-transform-parameters": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-super": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz",
+ "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-replace-supers": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-optional-catch-binding": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz",
+ "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-optional-chaining": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz",
+ "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-parameters": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz",
+ "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-methods": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz",
+ "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-property-in-object": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz",
+ "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-property-literals": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz",
+ "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-constant-elements": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz",
+ "integrity": "sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-display-name": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz",
+ "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz",
+ "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-module-imports": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/plugin-syntax-jsx": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-development": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz",
+ "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/plugin-transform-react-jsx": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-pure-annotations": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz",
+ "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regenerator": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz",
+ "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "regenerator-transform": "^0.15.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regexp-modifiers": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz",
+ "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-reserved-words": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz",
+ "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-runtime": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz",
+ "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "babel-plugin-polyfill-corejs2": "^0.4.10",
+ "babel-plugin-polyfill-corejs3": "^0.10.6",
+ "babel-plugin-polyfill-regenerator": "^0.6.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz",
+ "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-spread": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz",
+ "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-sticky-regex": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz",
+ "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-template-literals": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz",
+ "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz",
+ "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typescript": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz",
+ "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
+ "@babel/plugin-syntax-typescript": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz",
+ "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-property-regex": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz",
+ "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-regex": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz",
+ "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-sets-regex": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz",
+ "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/preset-env": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz",
+ "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.26.0",
+ "@babel/helper-compilation-targets": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-validator-option": "^7.25.9",
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9",
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+ "@babel/plugin-syntax-import-assertions": "^7.26.0",
+ "@babel/plugin-syntax-import-attributes": "^7.26.0",
+ "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.25.9",
+ "@babel/plugin-transform-async-generator-functions": "^7.25.9",
+ "@babel/plugin-transform-async-to-generator": "^7.25.9",
+ "@babel/plugin-transform-block-scoped-functions": "^7.25.9",
+ "@babel/plugin-transform-block-scoping": "^7.25.9",
+ "@babel/plugin-transform-class-properties": "^7.25.9",
+ "@babel/plugin-transform-class-static-block": "^7.26.0",
+ "@babel/plugin-transform-classes": "^7.25.9",
+ "@babel/plugin-transform-computed-properties": "^7.25.9",
+ "@babel/plugin-transform-destructuring": "^7.25.9",
+ "@babel/plugin-transform-dotall-regex": "^7.25.9",
+ "@babel/plugin-transform-duplicate-keys": "^7.25.9",
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9",
+ "@babel/plugin-transform-dynamic-import": "^7.25.9",
+ "@babel/plugin-transform-exponentiation-operator": "^7.25.9",
+ "@babel/plugin-transform-export-namespace-from": "^7.25.9",
+ "@babel/plugin-transform-for-of": "^7.25.9",
+ "@babel/plugin-transform-function-name": "^7.25.9",
+ "@babel/plugin-transform-json-strings": "^7.25.9",
+ "@babel/plugin-transform-literals": "^7.25.9",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.25.9",
+ "@babel/plugin-transform-member-expression-literals": "^7.25.9",
+ "@babel/plugin-transform-modules-amd": "^7.25.9",
+ "@babel/plugin-transform-modules-commonjs": "^7.25.9",
+ "@babel/plugin-transform-modules-systemjs": "^7.25.9",
+ "@babel/plugin-transform-modules-umd": "^7.25.9",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9",
+ "@babel/plugin-transform-new-target": "^7.25.9",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9",
+ "@babel/plugin-transform-numeric-separator": "^7.25.9",
+ "@babel/plugin-transform-object-rest-spread": "^7.25.9",
+ "@babel/plugin-transform-object-super": "^7.25.9",
+ "@babel/plugin-transform-optional-catch-binding": "^7.25.9",
+ "@babel/plugin-transform-optional-chaining": "^7.25.9",
+ "@babel/plugin-transform-parameters": "^7.25.9",
+ "@babel/plugin-transform-private-methods": "^7.25.9",
+ "@babel/plugin-transform-private-property-in-object": "^7.25.9",
+ "@babel/plugin-transform-property-literals": "^7.25.9",
+ "@babel/plugin-transform-regenerator": "^7.25.9",
+ "@babel/plugin-transform-regexp-modifiers": "^7.26.0",
+ "@babel/plugin-transform-reserved-words": "^7.25.9",
+ "@babel/plugin-transform-shorthand-properties": "^7.25.9",
+ "@babel/plugin-transform-spread": "^7.25.9",
+ "@babel/plugin-transform-sticky-regex": "^7.25.9",
+ "@babel/plugin-transform-template-literals": "^7.25.9",
+ "@babel/plugin-transform-typeof-symbol": "^7.25.9",
+ "@babel/plugin-transform-unicode-escapes": "^7.25.9",
+ "@babel/plugin-transform-unicode-property-regex": "^7.25.9",
+ "@babel/plugin-transform-unicode-regex": "^7.25.9",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.25.9",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "babel-plugin-polyfill-corejs2": "^0.4.10",
+ "babel-plugin-polyfill-corejs3": "^0.10.6",
+ "babel-plugin-polyfill-regenerator": "^0.6.1",
+ "core-js-compat": "^3.38.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/preset-modules": {
+ "version": "0.1.6-no-external-plugins",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/preset-react": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.9.tgz",
+ "integrity": "sha512-D3to0uSPiWE7rBrdIICCd0tJSIGpLaaGptna2+w7Pft5xMqLpA1sz99DK5TZ1TjGbdQ/VI1eCSZ06dv3lT4JOw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-validator-option": "^7.25.9",
+ "@babel/plugin-transform-react-display-name": "^7.25.9",
+ "@babel/plugin-transform-react-jsx": "^7.25.9",
+ "@babel/plugin-transform-react-jsx-development": "^7.25.9",
+ "@babel/plugin-transform-react-pure-annotations": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-typescript": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz",
+ "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-validator-option": "^7.25.9",
+ "@babel/plugin-syntax-jsx": "^7.25.9",
+ "@babel/plugin-transform-modules-commonjs": "^7.25.9",
+ "@babel/plugin-transform-typescript": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz",
+ "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
+ "license": "MIT",
+ "dependencies": {
+ "regenerator-runtime": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/runtime-corejs3": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.26.0.tgz",
+ "integrity": "sha512-YXHu5lN8kJCb1LOb9PgV6pvak43X2h4HvRApcN5SdWeaItQOzfn1hgP6jasD6KWQyJDBxrVmA9o9OivlnNJK/w==",
+ "license": "MIT",
+ "dependencies": {
+ "core-js-pure": "^3.30.2",
+ "regenerator-runtime": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz",
+ "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.25.9",
+ "@babel/parser": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz",
+ "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.25.9",
+ "@babel/generator": "^7.25.9",
+ "@babel/parser": "^7.25.9",
+ "@babel/template": "^7.25.9",
+ "@babel/types": "^7.25.9",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz",
+ "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@braintree/sanitize-url": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/@braintree/sanitize-url/-/sanitize-url-7.1.0.tgz",
+ "integrity": "sha512-o+UlMLt49RvtCASlOMW0AkHnabN9wR9rwCCherxO0yG4Npy34GkvrAqdXQvrhNs+jh+gkK8gB8Lf05qL/O7KWg==",
+ "license": "MIT"
+ },
+ "node_modules/@chevrotain/cst-dts-gen": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-11.0.3.tgz",
+ "integrity": "sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/@chevrotain/gast": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/gast/-/gast-11.0.3.tgz",
+ "integrity": "sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@chevrotain/types": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/@chevrotain/regexp-to-ast": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/regexp-to-ast/-/regexp-to-ast-11.0.3.tgz",
+ "integrity": "sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@chevrotain/types": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/types/-/types-11.0.3.tgz",
+ "integrity": "sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@chevrotain/utils": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/@chevrotain/utils/-/utils-11.0.3.tgz",
+ "integrity": "sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
+ "node_modules/@csstools/cascade-layer-name-parser": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.4.tgz",
+ "integrity": "sha512-7DFHlPuIxviKYZrOiwVU/PiHLm3lLUR23OMuEEtfEOQTOp9hzQ2JjdY6X5H18RVuUPJqSCI+qNnD5iOLMVE0bA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3"
+ }
+ },
+ "node_modules/@csstools/color-helpers": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.1.tgz",
+ "integrity": "sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@csstools/css-calc": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.0.tgz",
+ "integrity": "sha512-X69PmFOrjTZfN5ijxtI8hZ9kRADFSLrmmQ6hgDJ272Il049WGKpDY64KhrFm/7rbWve0z81QepawzjkKlqkNGw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3"
+ }
+ },
+ "node_modules/@csstools/css-color-parser": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.6.tgz",
+ "integrity": "sha512-S/IjXqTHdpI4EtzGoNCHfqraXF37x12ZZHA1Lk7zoT5pm2lMjFuqhX/89L7dqX4CcMacKK+6ZCs5TmEGb/+wKw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/color-helpers": "^5.0.1",
+ "@csstools/css-calc": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3"
+ }
+ },
+ "node_modules/@csstools/css-parser-algorithms": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz",
+ "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-tokenizer": "^3.0.3"
+ }
+ },
+ "node_modules/@csstools/css-tokenizer": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz",
+ "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@csstools/media-query-list-parser": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz",
+ "integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3"
+ }
+ },
+ "node_modules/@csstools/postcss-cascade-layers": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.1.tgz",
+ "integrity": "sha512-XOfhI7GShVcKiKwmPAnWSqd2tBR0uxt+runAxttbSp/LY2U16yAVPmAf7e9q4JJ0d+xMNmpwNDLBXnmRCl3HMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/selector-specificity": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-cascade-layers/node_modules/@csstools/selector-specificity": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
+ "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ }
+ },
+ "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@csstools/postcss-color-function": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.6.tgz",
+ "integrity": "sha512-EcvXfC60cTIumzpsxWuvVjb7rsJEHPvqn3jeMEBUaE3JSc4FRuP7mEQ+1eicxWmIrs3FtzMH9gR3sgA5TH+ebQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-color-parser": "^3.0.6",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "@csstools/postcss-progressive-custom-properties": "^4.0.0",
+ "@csstools/utilities": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-color-mix-function": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.6.tgz",
+ "integrity": "sha512-jVKdJn4+JkASYGhyPO+Wa5WXSx1+oUgaXb3JsjJn/BlrtFh5zjocCY7pwWi0nuP24V1fY7glQsxEYcYNy0dMFg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-color-parser": "^3.0.6",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "@csstools/postcss-progressive-custom-properties": "^4.0.0",
+ "@csstools/utilities": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-content-alt-text": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.4.tgz",
+ "integrity": "sha512-YItlZUOuZJCBlRaCf8Aucc1lgN41qYGALMly0qQllrxYJhiyzlI6RxOTMUvtWk+KhS8GphMDsDhKQ7KTPfEMSw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "@csstools/postcss-progressive-custom-properties": "^4.0.0",
+ "@csstools/utilities": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-exponential-functions": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.5.tgz",
+ "integrity": "sha512-mi8R6dVfA2nDoKM3wcEi64I8vOYEgQVtVKCfmLHXupeLpACfGAided5ddMt5f+CnEodNu4DifuVwb0I6fQDGGQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-font-format-keywords": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz",
+ "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/utilities": "^2.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-gamut-mapping": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.6.tgz",
+ "integrity": "sha512-0ke7fmXfc8H+kysZz246yjirAH6JFhyX9GTlyRnM0exHO80XcA9zeJpy5pOp5zo/AZiC/q5Pf+Hw7Pd6/uAoYA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-color-parser": "^3.0.6",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-gradients-interpolation-method": {
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.6.tgz",
+ "integrity": "sha512-Itrbx6SLUzsZ6Mz3VuOlxhbfuyLTogG5DwEF1V8dAi24iMuvQPIHd7Ti+pNDp7j6WixndJGZaoNR0f9VSzwuTg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-color-parser": "^3.0.6",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "@csstools/postcss-progressive-custom-properties": "^4.0.0",
+ "@csstools/utilities": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-hwb-function": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.6.tgz",
+ "integrity": "sha512-927Pqy3a1uBP7U8sTfaNdZVB0mNXzIrJO/GZ8us9219q9n06gOqCdfZ0E6d1P66Fm0fYHvxfDbfcUuwAn5UwhQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-color-parser": "^3.0.6",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "@csstools/postcss-progressive-custom-properties": "^4.0.0",
+ "@csstools/utilities": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-ic-unit": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.0.tgz",
+ "integrity": "sha512-9QT5TDGgx7wD3EEMN3BSUG6ckb6Eh5gSPT5kZoVtUuAonfPmLDJyPhqR4ntPpMYhUKAMVKAg3I/AgzqHMSeLhA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/postcss-progressive-custom-properties": "^4.0.0",
+ "@csstools/utilities": "^2.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-initial": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.0.tgz",
+ "integrity": "sha512-dv2lNUKR+JV+OOhZm9paWzYBXOCi+rJPqJ2cJuhh9xd8USVrd0cBEPczla81HNOyThMQWeCcdln3gZkQV2kYxA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-is-pseudo-class": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.1.tgz",
+ "integrity": "sha512-JLp3POui4S1auhDR0n8wHd/zTOWmMsmK3nQd3hhL6FhWPaox5W7j1se6zXOG/aP07wV2ww0lxbKYGwbBszOtfQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/selector-specificity": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-is-pseudo-class/node_modules/@csstools/selector-specificity": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
+ "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ }
+ },
+ "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@csstools/postcss-light-dark-function": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.7.tgz",
+ "integrity": "sha512-ZZ0rwlanYKOHekyIPaU+sVm3BEHCe+Ha0/px+bmHe62n0Uc1lL34vbwrLYn6ote8PHlsqzKeTQdIejQCJ05tfw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "@csstools/postcss-progressive-custom-properties": "^4.0.0",
+ "@csstools/utilities": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-logical-float-and-clear": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz",
+ "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-logical-overflow": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz",
+ "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-logical-overscroll-behavior": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz",
+ "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-logical-resize": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz",
+ "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-logical-viewport-units": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.3.tgz",
+ "integrity": "sha512-OC1IlG/yoGJdi0Y+7duz/kU/beCwO+Gua01sD6GtOtLi7ByQUpcIqs7UE/xuRPay4cHgOMatWdnDdsIDjnWpPw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-tokenizer": "^3.0.3",
+ "@csstools/utilities": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-media-minmax": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.5.tgz",
+ "integrity": "sha512-sdh5i5GToZOIAiwhdntRWv77QDtsxP2r2gXW/WbLSCoLr00KTq/yiF1qlQ5XX2+lmiFa8rATKMcbwl3oXDMNew==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "@csstools/media-query-list-parser": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.4.tgz",
+ "integrity": "sha512-AnGjVslHMm5xw9keusQYvjVWvuS7KWK+OJagaG0+m9QnIjZsrysD2kJP/tr/UJIyYtMCtu8OkUd+Rajb4DqtIQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "@csstools/media-query-list-parser": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-nested-calc": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz",
+ "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/utilities": "^2.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-normalize-display-values": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.0.tgz",
+ "integrity": "sha512-HlEoG0IDRoHXzXnkV4in47dzsxdsjdz6+j7MLjaACABX2NfvjFS6XVAnpaDyGesz9gK2SC7MbNwdCHusObKJ9Q==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-oklab-function": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.6.tgz",
+ "integrity": "sha512-Hptoa0uX+XsNacFBCIQKTUBrFKDiplHan42X73EklG6XmQLG7/aIvxoNhvZ7PvOWMt67Pw3bIlUY2nD6p5vL8A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-color-parser": "^3.0.6",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "@csstools/postcss-progressive-custom-properties": "^4.0.0",
+ "@csstools/utilities": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-progressive-custom-properties": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.0.0.tgz",
+ "integrity": "sha512-XQPtROaQjomnvLUSy/bALTR5VCtTVUFwYs1SblvYgLSeTo2a/bMNwUwo2piXw5rTv/FEYiy5yPSXBqg9OKUx7Q==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-random-function": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-1.0.1.tgz",
+ "integrity": "sha512-Ab/tF8/RXktQlFwVhiC70UNfpFQRhtE5fQQoP2pO+KCPGLsLdWFiOuHgSRtBOqEshCVAzR4H6o38nhvRZq8deA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-relative-color-syntax": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.6.tgz",
+ "integrity": "sha512-yxP618Xb+ji1I624jILaYM62uEmZcmbdmFoZHoaThw896sq0vU39kqTTF+ZNic9XyPtPMvq0vyvbgmHaszq8xg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-color-parser": "^3.0.6",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "@csstools/postcss-progressive-custom-properties": "^4.0.0",
+ "@csstools/utilities": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-scope-pseudo-class": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz",
+ "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@csstools/postcss-sign-functions": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.0.tgz",
+ "integrity": "sha512-SLcc20Nujx/kqbSwDmj6oaXgpy3UjFhBy1sfcqPgDkHfOIfUtUVH7OXO+j7BU4v/At5s61N5ZX6shvgPwluhsA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-stepped-value-functions": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.5.tgz",
+ "integrity": "sha512-G6SJ6hZJkhxo6UZojVlLo14MohH4J5J7z8CRBrxxUYy9JuZiIqUo5TBYyDGcE0PLdzpg63a7mHSJz3VD+gMwqw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-text-decoration-shorthand": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.1.tgz",
+ "integrity": "sha512-xPZIikbx6jyzWvhms27uugIc0I4ykH4keRvoa3rxX5K7lEhkbd54rjj/dv60qOCTisoS+3bmwJTeyV1VNBrXaw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/color-helpers": "^5.0.1",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-trigonometric-functions": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.5.tgz",
+ "integrity": "sha512-/YQThYkt5MLvAmVu7zxjhceCYlKrYddK6LEmK5I4ojlS6BmO9u2yO4+xjXzu2+NPYmHSTtP4NFSamBCMmJ1NJA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-calc": "^2.1.0",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/postcss-unset-value": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz",
+ "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@csstools/utilities": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz",
+ "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/@discoveryjs/json-ext": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz",
+ "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@docsearch/css": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.8.0.tgz",
+ "integrity": "sha512-pieeipSOW4sQ0+bE5UFC51AOZp9NGxg89wAlZ1BAQFaiRAGK1IKUaPQ0UGZeNctJXyqZ1UvBtOQh2HH+U5GtmA==",
+ "license": "MIT"
+ },
+ "node_modules/@docsearch/react": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.8.0.tgz",
+ "integrity": "sha512-WnFK720+iwTVt94CxY3u+FgX6exb3BfN5kE9xUY6uuAH/9W/UFboBZFLlrw/zxFRHoHZCOXRtOylsXF+6LHI+Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/autocomplete-core": "1.17.7",
+ "@algolia/autocomplete-preset-algolia": "1.17.7",
+ "@docsearch/css": "3.8.0",
+ "algoliasearch": "^5.12.0"
+ },
+ "peerDependencies": {
+ "@types/react": ">= 16.8.0 < 19.0.0",
+ "react": ">= 16.8.0 < 19.0.0",
+ "react-dom": ">= 16.8.0 < 19.0.0",
+ "search-insights": ">= 1 < 3"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ },
+ "search-insights": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@docsearch/react/node_modules/@algolia/client-analytics": {
+ "version": "5.15.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.15.0.tgz",
+ "integrity": "sha512-lho0gTFsQDIdCwyUKTtMuf9nCLwq9jOGlLGIeQGKDxXF7HbiAysFIu5QW/iQr1LzMgDyM9NH7K98KY+BiIFriQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.15.0",
+ "@algolia/requester-browser-xhr": "5.15.0",
+ "@algolia/requester-fetch": "5.15.0",
+ "@algolia/requester-node-http": "5.15.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@docsearch/react/node_modules/@algolia/client-personalization": {
+ "version": "5.15.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.15.0.tgz",
+ "integrity": "sha512-LfaZqLUWxdYFq44QrasCDED5bSYOswpQjSiIL7Q5fYlefAAUO95PzBPKCfUhSwhb4rKxigHfDkd81AvEicIEoA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.15.0",
+ "@algolia/requester-browser-xhr": "5.15.0",
+ "@algolia/requester-fetch": "5.15.0",
+ "@algolia/requester-node-http": "5.15.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@docsearch/react/node_modules/@algolia/recommend": {
+ "version": "5.15.0",
+ "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.15.0.tgz",
+ "integrity": "sha512-5eupMwSqMLDObgSMF0XG958zR6GJP3f7jHDQ3/WlzCM9/YIJiWIUoJFGsko9GYsA5xbLDHE/PhWtq4chcCdaGQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "5.15.0",
+ "@algolia/requester-browser-xhr": "5.15.0",
+ "@algolia/requester-fetch": "5.15.0",
+ "@algolia/requester-node-http": "5.15.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@docsearch/react/node_modules/algoliasearch": {
+ "version": "5.15.0",
+ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.15.0.tgz",
+ "integrity": "sha512-Yf3Swz1s63hjvBVZ/9f2P1Uu48GjmjCN+Esxb6MAONMGtZB1fRX8/S1AhUTtsuTlcGovbYLxpHgc7wEzstDZBw==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-abtesting": "5.15.0",
+ "@algolia/client-analytics": "5.15.0",
+ "@algolia/client-common": "5.15.0",
+ "@algolia/client-insights": "5.15.0",
+ "@algolia/client-personalization": "5.15.0",
+ "@algolia/client-query-suggestions": "5.15.0",
+ "@algolia/client-search": "5.15.0",
+ "@algolia/ingestion": "1.15.0",
+ "@algolia/monitoring": "1.15.0",
+ "@algolia/recommend": "5.15.0",
+ "@algolia/requester-browser-xhr": "5.15.0",
+ "@algolia/requester-fetch": "5.15.0",
+ "@algolia/requester-node-http": "5.15.0"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/@docusaurus/babel": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.6.3.tgz",
+ "integrity": "sha512-7dW9Hat9EHYCVicFXYA4hjxBY38+hPuCURL8oRF9fySRm7vzNWuEOghA1TXcykuXZp0HLG2td4RhDxCvGG7tNw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.25.9",
+ "@babel/generator": "^7.25.9",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-transform-runtime": "^7.25.9",
+ "@babel/preset-env": "^7.25.9",
+ "@babel/preset-react": "^7.25.9",
+ "@babel/preset-typescript": "^7.25.9",
+ "@babel/runtime": "^7.25.9",
+ "@babel/runtime-corejs3": "^7.25.9",
+ "@babel/traverse": "^7.25.9",
+ "@docusaurus/logger": "3.6.3",
+ "@docusaurus/utils": "3.6.3",
+ "babel-plugin-dynamic-import-node": "^2.3.3",
+ "fs-extra": "^11.1.1",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ }
+ },
+ "node_modules/@docusaurus/bundler": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.6.3.tgz",
+ "integrity": "sha512-47JLuc8D4wA+6VOvmMd5fUC9rFppBQpQOnxDYiVXffm/DeV/wmm3sbpNd5Y+O+G2+nevLTRnvCm/qyancv0Y3A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.25.9",
+ "@docusaurus/babel": "3.6.3",
+ "@docusaurus/cssnano-preset": "3.6.3",
+ "@docusaurus/logger": "3.6.3",
+ "@docusaurus/types": "3.6.3",
+ "@docusaurus/utils": "3.6.3",
+ "babel-loader": "^9.2.1",
+ "clean-css": "^5.3.2",
+ "copy-webpack-plugin": "^11.0.0",
+ "css-loader": "^6.8.1",
+ "css-minimizer-webpack-plugin": "^5.0.1",
+ "cssnano": "^6.1.2",
+ "file-loader": "^6.2.0",
+ "html-minifier-terser": "^7.2.0",
+ "mini-css-extract-plugin": "^2.9.1",
+ "null-loader": "^4.0.1",
+ "postcss": "^8.4.26",
+ "postcss-loader": "^7.3.3",
+ "postcss-preset-env": "^10.1.0",
+ "react-dev-utils": "^12.0.1",
+ "terser-webpack-plugin": "^5.3.9",
+ "tslib": "^2.6.0",
+ "url-loader": "^4.1.1",
+ "webpack": "^5.95.0",
+ "webpackbar": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "@docusaurus/faster": "*"
+ },
+ "peerDependenciesMeta": {
+ "@docusaurus/faster": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@docusaurus/core": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.6.3.tgz",
+ "integrity": "sha512-xL7FRY9Jr5DWqB6pEnqgKqcMPJOX5V0pgWXi5lCiih11sUBmcFKM7c3+GyxcVeeWFxyYSDP3grLTWqJoP4P9Vw==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/babel": "3.6.3",
+ "@docusaurus/bundler": "3.6.3",
+ "@docusaurus/logger": "3.6.3",
+ "@docusaurus/mdx-loader": "3.6.3",
+ "@docusaurus/utils": "3.6.3",
+ "@docusaurus/utils-common": "3.6.3",
+ "@docusaurus/utils-validation": "3.6.3",
+ "boxen": "^6.2.1",
+ "chalk": "^4.1.2",
+ "chokidar": "^3.5.3",
+ "cli-table3": "^0.6.3",
+ "combine-promises": "^1.1.0",
+ "commander": "^5.1.0",
+ "core-js": "^3.31.1",
+ "del": "^6.1.1",
+ "detect-port": "^1.5.1",
+ "escape-html": "^1.0.3",
+ "eta": "^2.2.0",
+ "eval": "^0.1.8",
+ "fs-extra": "^11.1.1",
+ "html-tags": "^3.3.1",
+ "html-webpack-plugin": "^5.6.0",
+ "leven": "^3.1.0",
+ "lodash": "^4.17.21",
+ "p-map": "^4.0.0",
+ "prompts": "^2.4.2",
+ "react-dev-utils": "^12.0.1",
+ "react-helmet-async": "^1.3.0",
+ "react-loadable": "npm:@docusaurus/react-loadable@6.0.0",
+ "react-loadable-ssr-addon-v5-slorber": "^1.0.1",
+ "react-router": "^5.3.4",
+ "react-router-config": "^5.1.1",
+ "react-router-dom": "^5.3.4",
+ "rtl-detect": "^1.0.4",
+ "semver": "^7.5.4",
+ "serve-handler": "^6.1.6",
+ "shelljs": "^0.8.5",
+ "tslib": "^2.6.0",
+ "update-notifier": "^6.0.2",
+ "webpack": "^5.95.0",
+ "webpack-bundle-analyzer": "^4.10.2",
+ "webpack-dev-server": "^4.15.2",
+ "webpack-merge": "^6.0.1"
+ },
+ "bin": {
+ "docusaurus": "bin/docusaurus.mjs"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "@mdx-js/react": "^3.0.0",
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/core/node_modules/react-router-dom": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz",
+ "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.12.13",
+ "history": "^4.9.0",
+ "loose-envify": "^1.3.1",
+ "prop-types": "^15.6.2",
+ "react-router": "5.3.4",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=15"
+ }
+ },
+ "node_modules/@docusaurus/cssnano-preset": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.6.3.tgz",
+ "integrity": "sha512-qP7SXrwZ+23GFJdPN4aIHQrZW+oH/7tzwEuc/RNL0+BdZdmIjYQqUxdXsjE4lFxLNZjj0eUrSNYIS6xwfij+5Q==",
+ "license": "MIT",
+ "dependencies": {
+ "cssnano-preset-advanced": "^6.1.2",
+ "postcss": "^8.4.38",
+ "postcss-sort-media-queries": "^5.2.0",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ }
+ },
+ "node_modules/@docusaurus/logger": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.6.3.tgz",
+ "integrity": "sha512-xSubJixcNyMV9wMV4q0s47CBz3Rlc5jbcCCuij8pfQP8qn/DIpt0ks8W6hQWzHAedg/J/EwxxUOUrnEoKzJo8g==",
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.2",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ }
+ },
+ "node_modules/@docusaurus/lqip-loader": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/lqip-loader/-/lqip-loader-3.6.3.tgz",
+ "integrity": "sha512-GlQIhVpskcD7T1Lm/eYR+T0ZurEly3291t/KIJCRZcl3ggVcpRlPDXVx3X2o6O5ESClEt5V5ev0i1J9UaCw8IQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/logger": "3.6.3",
+ "file-loader": "^6.2.0",
+ "lodash": "^4.17.21",
+ "sharp": "^0.32.3",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ }
+ },
+ "node_modules/@docusaurus/mdx-loader": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.6.3.tgz",
+ "integrity": "sha512-3iJdiDz9540ppBseeI93tWTDtUGVkxzh59nMq4ignylxMuXBLK8dFqVeaEor23v1vx6TrGKZ2FuLaTB+U7C0QQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/logger": "3.6.3",
+ "@docusaurus/utils": "3.6.3",
+ "@docusaurus/utils-validation": "3.6.3",
+ "@mdx-js/mdx": "^3.0.0",
+ "@slorber/remark-comment": "^1.0.0",
+ "escape-html": "^1.0.3",
+ "estree-util-value-to-estree": "^3.0.1",
+ "file-loader": "^6.2.0",
+ "fs-extra": "^11.1.1",
+ "image-size": "^1.0.2",
+ "mdast-util-mdx": "^3.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "rehype-raw": "^7.0.0",
+ "remark-directive": "^3.0.0",
+ "remark-emoji": "^4.0.0",
+ "remark-frontmatter": "^5.0.0",
+ "remark-gfm": "^4.0.0",
+ "stringify-object": "^3.3.0",
+ "tslib": "^2.6.0",
+ "unified": "^11.0.3",
+ "unist-util-visit": "^5.0.0",
+ "url-loader": "^4.1.1",
+ "vfile": "^6.0.1",
+ "webpack": "^5.88.1"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/module-type-aliases": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.6.3.tgz",
+ "integrity": "sha512-MjaXX9PN/k5ugNvfRZdWyKWq4FsrhN4LEXaj0pEmMebJuBNlFeGyKQUa9DRhJHpadNaiMLrbo9m3U7Ig5YlsZg==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/types": "3.6.3",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router-config": "*",
+ "@types/react-router-dom": "*",
+ "react-helmet-async": "*",
+ "react-loadable": "npm:@docusaurus/react-loadable@6.0.0"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-dom": "*"
+ }
+ },
+ "node_modules/@docusaurus/plugin-content-blog": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.6.3.tgz",
+ "integrity": "sha512-k0ogWwwJU3pFRFfvW1kRVHxzf2DutLGaaLjAnHVEU6ju+aRP0Z5ap/13DHyPOfHeE4WKpn/M0TqjdwZAcY3kAw==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.6.3",
+ "@docusaurus/logger": "3.6.3",
+ "@docusaurus/mdx-loader": "3.6.3",
+ "@docusaurus/theme-common": "3.6.3",
+ "@docusaurus/types": "3.6.3",
+ "@docusaurus/utils": "3.6.3",
+ "@docusaurus/utils-common": "3.6.3",
+ "@docusaurus/utils-validation": "3.6.3",
+ "cheerio": "1.0.0-rc.12",
+ "feed": "^4.2.2",
+ "fs-extra": "^11.1.1",
+ "lodash": "^4.17.21",
+ "reading-time": "^1.5.0",
+ "srcset": "^4.0.0",
+ "tslib": "^2.6.0",
+ "unist-util-visit": "^5.0.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.88.1"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "@docusaurus/plugin-content-docs": "*",
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-content-docs": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.6.3.tgz",
+ "integrity": "sha512-r2wS8y/fsaDcxkm20W5bbYJFPzdWdEaTWVYjNxlHlcmX086eqQR1Fomlg9BHTJ0dLXPzAlbC8EN4XqMr3QzNCQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.6.3",
+ "@docusaurus/logger": "3.6.3",
+ "@docusaurus/mdx-loader": "3.6.3",
+ "@docusaurus/module-type-aliases": "3.6.3",
+ "@docusaurus/theme-common": "3.6.3",
+ "@docusaurus/types": "3.6.3",
+ "@docusaurus/utils": "3.6.3",
+ "@docusaurus/utils-common": "3.6.3",
+ "@docusaurus/utils-validation": "3.6.3",
+ "@types/react-router-config": "^5.0.7",
+ "combine-promises": "^1.1.0",
+ "fs-extra": "^11.1.1",
+ "js-yaml": "^4.1.0",
+ "lodash": "^4.17.21",
+ "tslib": "^2.6.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.88.1"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-content-pages": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.6.3.tgz",
+ "integrity": "sha512-eHrmTgjgLZsuqfsYr5X2xEwyIcck0wseSofWrjTwT9FLOWp+KDmMAuVK+wRo7sFImWXZk3oV/xX/g9aZrhD7OA==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.6.3",
+ "@docusaurus/mdx-loader": "3.6.3",
+ "@docusaurus/types": "3.6.3",
+ "@docusaurus/utils": "3.6.3",
+ "@docusaurus/utils-validation": "3.6.3",
+ "fs-extra": "^11.1.1",
+ "tslib": "^2.6.0",
+ "webpack": "^5.88.1"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-debug": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.6.3.tgz",
+ "integrity": "sha512-zB9GXfIZNPRfzKnNjU6xGVrqn9bPXuGhpjgsuc/YtcTDjnjhasg38NdYd5LEqXex5G/zIorQgWB3n6x/Ut62vQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.6.3",
+ "@docusaurus/types": "3.6.3",
+ "@docusaurus/utils": "3.6.3",
+ "fs-extra": "^11.1.1",
+ "react-json-view-lite": "^1.2.0",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-google-analytics": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.6.3.tgz",
+ "integrity": "sha512-rCDNy1QW8Dag7nZq67pcum0bpFLrwvxJhYuVprhFh8BMBDxV0bY+bAkGHbSf68P3Bk9C3hNOAXX1srGLIDvcTA==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.6.3",
+ "@docusaurus/types": "3.6.3",
+ "@docusaurus/utils-validation": "3.6.3",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-google-gtag": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.6.3.tgz",
+ "integrity": "sha512-+OyDvhM6rqVkQOmLVkQWVJAizEEfkPzVWtIHXlWPOCFGK9X4/AWeBSrU0WG4iMg9Z4zD4YDRrU+lvI4s6DSC+w==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.6.3",
+ "@docusaurus/types": "3.6.3",
+ "@docusaurus/utils-validation": "3.6.3",
+ "@types/gtag.js": "^0.0.12",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-google-tag-manager": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.6.3.tgz",
+ "integrity": "sha512-1M6UPB13gWUtN2UHX083/beTn85PlRI9ABItTl/JL1FJ5dJTWWFXXsHf9WW/6hrVwthwTeV/AGbGKvLKV+IlCA==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.6.3",
+ "@docusaurus/types": "3.6.3",
+ "@docusaurus/utils-validation": "3.6.3",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-ideal-image": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-ideal-image/-/plugin-ideal-image-3.6.3.tgz",
+ "integrity": "sha512-y5Pi4UH8wsFUEFPzjzo1GEtb9vfi5VfWTH/ONifDW84ldYaZBPzVM4AIVWcuNPlYG+p4eYwHE4eTuJFe2iupKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.6.3",
+ "@docusaurus/lqip-loader": "3.6.3",
+ "@docusaurus/responsive-loader": "^1.7.0",
+ "@docusaurus/theme-translations": "3.6.3",
+ "@docusaurus/types": "3.6.3",
+ "@docusaurus/utils-validation": "3.6.3",
+ "@slorber/react-ideal-image": "^0.0.12",
+ "react-waypoint": "^10.3.0",
+ "sharp": "^0.32.3",
+ "tslib": "^2.6.0",
+ "webpack": "^5.88.1"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "jimp": "*",
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "jimp": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@docusaurus/plugin-sitemap": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.6.3.tgz",
+ "integrity": "sha512-94qOO4M9Fwv9KfVQJsgbe91k+fPJ4byf1L3Ez8TUa6TAFPo/BrLwQ80zclHkENlL1824TuxkcMKv33u6eydQCg==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.6.3",
+ "@docusaurus/logger": "3.6.3",
+ "@docusaurus/types": "3.6.3",
+ "@docusaurus/utils": "3.6.3",
+ "@docusaurus/utils-common": "3.6.3",
+ "@docusaurus/utils-validation": "3.6.3",
+ "fs-extra": "^11.1.1",
+ "sitemap": "^7.1.1",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/preset-classic": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.6.3.tgz",
+ "integrity": "sha512-VHSYWROT3flvNNI1SrnMOtW1EsjeHNK9dhU6s9eY5hryZe79lUqnZJyze/ymDe2LXAqzyj6y5oYvyBoZZk6ErA==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.6.3",
+ "@docusaurus/plugin-content-blog": "3.6.3",
+ "@docusaurus/plugin-content-docs": "3.6.3",
+ "@docusaurus/plugin-content-pages": "3.6.3",
+ "@docusaurus/plugin-debug": "3.6.3",
+ "@docusaurus/plugin-google-analytics": "3.6.3",
+ "@docusaurus/plugin-google-gtag": "3.6.3",
+ "@docusaurus/plugin-google-tag-manager": "3.6.3",
+ "@docusaurus/plugin-sitemap": "3.6.3",
+ "@docusaurus/theme-classic": "3.6.3",
+ "@docusaurus/theme-common": "3.6.3",
+ "@docusaurus/theme-search-algolia": "3.6.3",
+ "@docusaurus/types": "3.6.3"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/responsive-loader": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/responsive-loader/-/responsive-loader-1.7.0.tgz",
+ "integrity": "sha512-N0cWuVqTRXRvkBxeMQcy/OF2l7GN8rmni5EzR3HpwR+iU2ckYPnziceojcxvvxQ5NqZg1QfEW0tycQgHp+e+Nw==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "loader-utils": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "jimp": "*",
+ "sharp": "*"
+ },
+ "peerDependenciesMeta": {
+ "jimp": {
+ "optional": true
+ },
+ "sharp": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@docusaurus/theme-classic": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.6.3.tgz",
+ "integrity": "sha512-1RRLK1tSArI2c00qugWYO3jRocjOZwGF1mBzPPylDVRwWCS/rnWWR91ChdbbaxIupRJ+hX8ZBYrwr5bbU0oztQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.6.3",
+ "@docusaurus/logger": "3.6.3",
+ "@docusaurus/mdx-loader": "3.6.3",
+ "@docusaurus/module-type-aliases": "3.6.3",
+ "@docusaurus/plugin-content-blog": "3.6.3",
+ "@docusaurus/plugin-content-docs": "3.6.3",
+ "@docusaurus/plugin-content-pages": "3.6.3",
+ "@docusaurus/theme-common": "3.6.3",
+ "@docusaurus/theme-translations": "3.6.3",
+ "@docusaurus/types": "3.6.3",
+ "@docusaurus/utils": "3.6.3",
+ "@docusaurus/utils-common": "3.6.3",
+ "@docusaurus/utils-validation": "3.6.3",
+ "@mdx-js/react": "^3.0.0",
+ "clsx": "^2.0.0",
+ "copy-text-to-clipboard": "^3.2.0",
+ "infima": "0.2.0-alpha.45",
+ "lodash": "^4.17.21",
+ "nprogress": "^0.2.0",
+ "postcss": "^8.4.26",
+ "prism-react-renderer": "^2.3.0",
+ "prismjs": "^1.29.0",
+ "react-router-dom": "^5.3.4",
+ "rtlcss": "^4.1.0",
+ "tslib": "^2.6.0",
+ "utility-types": "^3.10.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/theme-classic/node_modules/react-router-dom": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz",
+ "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.12.13",
+ "history": "^4.9.0",
+ "loose-envify": "^1.3.1",
+ "prop-types": "^15.6.2",
+ "react-router": "5.3.4",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=15"
+ }
+ },
+ "node_modules/@docusaurus/theme-common": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.6.3.tgz",
+ "integrity": "sha512-b8ZkhczXHDxWWyvz+YJy4t/PlPbEogTTbgnHoflYnH7rmRtyoodTsu8WVM12la5LmlMJBclBXFl29OH8kPE7gg==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/mdx-loader": "3.6.3",
+ "@docusaurus/module-type-aliases": "3.6.3",
+ "@docusaurus/utils": "3.6.3",
+ "@docusaurus/utils-common": "3.6.3",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router-config": "*",
+ "clsx": "^2.0.0",
+ "parse-numeric-range": "^1.3.0",
+ "prism-react-renderer": "^2.3.0",
+ "tslib": "^2.6.0",
+ "utility-types": "^3.10.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "@docusaurus/plugin-content-docs": "*",
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/theme-mermaid": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-mermaid/-/theme-mermaid-3.6.3.tgz",
+ "integrity": "sha512-kIqpjNCP/9R2GGf8UmiDxD3CkOAEJuJIEFlaKMgQtjVxa/vH+9PLI1+DFbArGoG4+0ENTYUq8phHPW7SeL36uQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/core": "3.6.3",
+ "@docusaurus/module-type-aliases": "3.6.3",
+ "@docusaurus/theme-common": "3.6.3",
+ "@docusaurus/types": "3.6.3",
+ "@docusaurus/utils-validation": "3.6.3",
+ "mermaid": ">=10.4",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/theme-search-algolia": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.6.3.tgz",
+ "integrity": "sha512-rt+MGCCpYgPyWCGXtbxlwFbTSobu15jWBTPI2LHsHNa5B0zSmOISX6FWYAPt5X1rNDOqMGM0FATnh7TBHRohVA==",
+ "license": "MIT",
+ "dependencies": {
+ "@docsearch/react": "^3.5.2",
+ "@docusaurus/core": "3.6.3",
+ "@docusaurus/logger": "3.6.3",
+ "@docusaurus/plugin-content-docs": "3.6.3",
+ "@docusaurus/theme-common": "3.6.3",
+ "@docusaurus/theme-translations": "3.6.3",
+ "@docusaurus/utils": "3.6.3",
+ "@docusaurus/utils-validation": "3.6.3",
+ "algoliasearch": "^4.18.0",
+ "algoliasearch-helper": "^3.13.3",
+ "clsx": "^2.0.0",
+ "eta": "^2.2.0",
+ "fs-extra": "^11.1.1",
+ "lodash": "^4.17.21",
+ "tslib": "^2.6.0",
+ "utility-types": "^3.10.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/theme-translations": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.6.3.tgz",
+ "integrity": "sha512-Gb0regclToVlngSIIwUCtBMQBq48qVUaN1XQNKW4XwlsgUyk0vP01LULdqbem7czSwIeBAFXFoORJ0RPX7ht/w==",
+ "license": "MIT",
+ "dependencies": {
+ "fs-extra": "^11.1.1",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ }
+ },
+ "node_modules/@docusaurus/types": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.6.3.tgz",
+ "integrity": "sha512-xD9oTGDrouWzefkhe9ogB2fDV96/82cRpNGx2HIvI5L87JHNhQVIWimQ/3JIiiX/TEd5S9s+VO6FFguwKNRVow==",
+ "license": "MIT",
+ "dependencies": {
+ "@mdx-js/mdx": "^3.0.0",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "commander": "^5.1.0",
+ "joi": "^17.9.2",
+ "react-helmet-async": "^1.3.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.95.0",
+ "webpack-merge": "^5.9.0"
+ },
+ "peerDependencies": {
+ "react": "^18.0.0",
+ "react-dom": "^18.0.0"
+ }
+ },
+ "node_modules/@docusaurus/types/node_modules/webpack-merge": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz",
+ "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==",
+ "license": "MIT",
+ "dependencies": {
+ "clone-deep": "^4.0.1",
+ "flat": "^5.0.2",
+ "wildcard": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/@docusaurus/utils": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.6.3.tgz",
+ "integrity": "sha512-0R/FR3bKVl4yl8QwbL4TYFfR+OXBRpVUaTJdENapBGR3YMwfM6/JnhGilWQO8AOwPJGtGoDK7ib8+8UF9f3OZQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/logger": "3.6.3",
+ "@docusaurus/types": "3.6.3",
+ "@docusaurus/utils-common": "3.6.3",
+ "@svgr/webpack": "^8.1.0",
+ "escape-string-regexp": "^4.0.0",
+ "file-loader": "^6.2.0",
+ "fs-extra": "^11.1.1",
+ "github-slugger": "^1.5.0",
+ "globby": "^11.1.0",
+ "gray-matter": "^4.0.3",
+ "jiti": "^1.20.0",
+ "js-yaml": "^4.1.0",
+ "lodash": "^4.17.21",
+ "micromatch": "^4.0.5",
+ "prompts": "^2.4.2",
+ "resolve-pathname": "^3.0.0",
+ "shelljs": "^0.8.5",
+ "tslib": "^2.6.0",
+ "url-loader": "^4.1.1",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.88.1"
+ },
+ "engines": {
+ "node": ">=18.0"
+ }
+ },
+ "node_modules/@docusaurus/utils-common": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.6.3.tgz",
+ "integrity": "sha512-v4nKDaANLgT3pMBewHYEMAl/ufY0LkXao1QkFWzI5huWFOmNQ2UFzv2BiKeHX5Ownis0/w6cAyoxPhVdDonlSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/types": "3.6.3",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ }
+ },
+ "node_modules/@docusaurus/utils-validation": {
+ "version": "3.6.3",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.6.3.tgz",
+ "integrity": "sha512-bhEGGiN5BE38h21vjqD70Gxg++j+PfYVddDUE5UFvLDup68QOcpD33CLr+2knPorlxRbEaNfz6HQDUMQ3HuqKw==",
+ "license": "MIT",
+ "dependencies": {
+ "@docusaurus/logger": "3.6.3",
+ "@docusaurus/utils": "3.6.3",
+ "@docusaurus/utils-common": "3.6.3",
+ "fs-extra": "^11.2.0",
+ "joi": "^17.9.2",
+ "js-yaml": "^4.1.0",
+ "lodash": "^4.17.21",
+ "tslib": "^2.6.0"
+ },
+ "engines": {
+ "node": ">=18.0"
+ }
+ },
+ "node_modules/@hapi/hoek": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@hapi/topo": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
+ "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@iconify/types": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",
+ "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
+ "license": "MIT"
+ },
+ "node_modules/@iconify/utils": {
+ "version": "2.1.33",
+ "resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.1.33.tgz",
+ "integrity": "sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw==",
+ "license": "MIT",
+ "dependencies": {
+ "@antfu/install-pkg": "^0.4.0",
+ "@antfu/utils": "^0.7.10",
+ "@iconify/types": "^2.0.0",
+ "debug": "^4.3.6",
+ "kolorist": "^1.8.0",
+ "local-pkg": "^0.5.0",
+ "mlly": "^1.7.1"
+ }
+ },
+ "node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "license": "MIT",
+ "dependencies": {
+ "@sinclair/typebox": "^0.27.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/types": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
+ "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz",
+ "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@leichtgewicht/ip-codec": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz",
+ "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==",
+ "license": "MIT"
+ },
+ "node_modules/@mdx-js/mdx": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz",
+ "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdx": "^2.0.0",
+ "collapse-white-space": "^2.0.0",
+ "devlop": "^1.0.0",
+ "estree-util-is-identifier-name": "^3.0.0",
+ "estree-util-scope": "^1.0.0",
+ "estree-walker": "^3.0.0",
+ "hast-util-to-jsx-runtime": "^2.0.0",
+ "markdown-extensions": "^2.0.0",
+ "recma-build-jsx": "^1.0.0",
+ "recma-jsx": "^1.0.0",
+ "recma-stringify": "^1.0.0",
+ "rehype-recma": "^1.0.0",
+ "remark-mdx": "^3.0.0",
+ "remark-parse": "^11.0.0",
+ "remark-rehype": "^11.0.0",
+ "source-map": "^0.7.0",
+ "unified": "^11.0.0",
+ "unist-util-position-from-estree": "^2.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mdx-js/react": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz",
+ "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdx": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ },
+ "peerDependencies": {
+ "@types/react": ">=16",
+ "react": ">=16"
+ }
+ },
+ "node_modules/@mermaid-js/parser": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/@mermaid-js/parser/-/parser-0.3.0.tgz",
+ "integrity": "sha512-HsvL6zgE5sUPGgkIDlmAWR1HTNHz2Iy11BAWPTa4Jjabkpguy4Ze2gzfLrg6pdRuBvFwgUYyxiaNqZwrEEXepA==",
+ "license": "MIT",
+ "dependencies": {
+ "langium": "3.0.0"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@pnpm/config.env-replace": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz",
+ "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.22.0"
+ }
+ },
+ "node_modules/@pnpm/network.ca-file": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz",
+ "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==",
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "4.2.10"
+ },
+ "engines": {
+ "node": ">=12.22.0"
+ }
+ },
+ "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
+ "license": "ISC"
+ },
+ "node_modules/@pnpm/npm-conf": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz",
+ "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==",
+ "license": "MIT",
+ "dependencies": {
+ "@pnpm/config.env-replace": "^1.1.0",
+ "@pnpm/network.ca-file": "^1.0.1",
+ "config-chain": "^1.1.11"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@polka/url": {
+ "version": "1.0.0-next.28",
+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.28.tgz",
+ "integrity": "sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==",
+ "license": "MIT"
+ },
+ "node_modules/@remix-run/router": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.1.tgz",
+ "integrity": "sha512-zcU0gM3z+3iqj8UX45AmWY810l3oUmXM7uH4dt5xtzvMhRtYVhKGOmgOd1877dOPPepfCjUv57w+syamWIYe7w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@shikijs/core": {
+ "version": "1.24.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.24.0.tgz",
+ "integrity": "sha512-6pvdH0KoahMzr6689yh0QJ3rCgF4j1XsXRHNEeEN6M4xJTfQ6QPWrmHzIddotg+xPJUPEPzYzYCKzpYyhTI6Gw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/engine-javascript": "1.24.0",
+ "@shikijs/engine-oniguruma": "1.24.0",
+ "@shikijs/types": "1.24.0",
+ "@shikijs/vscode-textmate": "^9.3.0",
+ "@types/hast": "^3.0.4",
+ "hast-util-to-html": "^9.0.3"
+ }
+ },
+ "node_modules/@shikijs/engine-javascript": {
+ "version": "1.24.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.24.0.tgz",
+ "integrity": "sha512-ZA6sCeSsF3Mnlxxr+4wGEJ9Tto4RHmfIS7ox8KIAbH0MTVUkw3roHPHZN+LlJMOHJJOVupe6tvuAzRpN8qK1vA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/types": "1.24.0",
+ "@shikijs/vscode-textmate": "^9.3.0",
+ "oniguruma-to-es": "0.7.0"
+ }
+ },
+ "node_modules/@shikijs/engine-oniguruma": {
+ "version": "1.24.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.24.0.tgz",
+ "integrity": "sha512-Eua0qNOL73Y82lGA4GF5P+G2+VXX9XnuUxkiUuwcxQPH4wom+tE39kZpBFXfUuwNYxHSkrSxpB1p4kyRW0moSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/types": "1.24.0",
+ "@shikijs/vscode-textmate": "^9.3.0"
+ }
+ },
+ "node_modules/@shikijs/types": {
+ "version": "1.24.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.24.0.tgz",
+ "integrity": "sha512-aptbEuq1Pk88DMlCe+FzXNnBZ17LCiLIGWAeCWhoFDzia5Q5Krx3DgnULLiouSdd6+LUM39XwXGppqYE0Ghtug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/vscode-textmate": "^9.3.0",
+ "@types/hast": "^3.0.4"
+ }
+ },
+ "node_modules/@shikijs/vscode-textmate": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.3.0.tgz",
+ "integrity": "sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@sideway/address": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
+ "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@sideway/formula": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@sideway/pinpoint": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
+ "license": "MIT"
+ },
+ "node_modules/@sindresorhus/is": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
+ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/is?sponsor=1"
+ }
+ },
+ "node_modules/@slorber/react-ideal-image": {
+ "version": "0.0.12",
+ "resolved": "https://registry.npmjs.org/@slorber/react-ideal-image/-/react-ideal-image-0.0.12.tgz",
+ "integrity": "sha512-u8KiDTEkMA7/KAeA5ywg/P7YG4zuKhWtswfVZDH8R8HXgQsFcHIYU2WaQnGuK/Du7Wdj90I+SdFmajSGFRvoKA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8.9.0",
+ "npm": "> 3"
+ },
+ "peerDependencies": {
+ "prop-types": ">=15",
+ "react": ">=0.14.x",
+ "react-waypoint": ">=9.0.2"
+ }
+ },
+ "node_modules/@slorber/remark-comment": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz",
+ "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==",
+ "license": "MIT",
+ "dependencies": {
+ "micromark-factory-space": "^1.0.0",
+ "micromark-util-character": "^1.1.0",
+ "micromark-util-symbol": "^1.0.1"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-add-jsx-attribute": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz",
+ "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz",
+ "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz",
+ "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz",
+ "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-svg-dynamic-title": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz",
+ "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-svg-em-dimensions": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz",
+ "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-transform-react-native-svg": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz",
+ "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-transform-svg-component": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz",
+ "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-preset": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz",
+ "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==",
+ "license": "MIT",
+ "dependencies": {
+ "@svgr/babel-plugin-add-jsx-attribute": "8.0.0",
+ "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0",
+ "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0",
+ "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0",
+ "@svgr/babel-plugin-svg-dynamic-title": "8.0.0",
+ "@svgr/babel-plugin-svg-em-dimensions": "8.0.0",
+ "@svgr/babel-plugin-transform-react-native-svg": "8.1.0",
+ "@svgr/babel-plugin-transform-svg-component": "8.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/core": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz",
+ "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.21.3",
+ "@svgr/babel-preset": "8.1.0",
+ "camelcase": "^6.2.0",
+ "cosmiconfig": "^8.1.3",
+ "snake-case": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/@svgr/hast-util-to-babel-ast": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz",
+ "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.21.3",
+ "entities": "^4.4.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/@svgr/plugin-jsx": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz",
+ "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.21.3",
+ "@svgr/babel-preset": "8.1.0",
+ "@svgr/hast-util-to-babel-ast": "8.0.0",
+ "svg-parser": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@svgr/core": "*"
+ }
+ },
+ "node_modules/@svgr/plugin-svgo": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz",
+ "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==",
+ "license": "MIT",
+ "dependencies": {
+ "cosmiconfig": "^8.1.3",
+ "deepmerge": "^4.3.1",
+ "svgo": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ },
+ "peerDependencies": {
+ "@svgr/core": "*"
+ }
+ },
+ "node_modules/@svgr/webpack": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz",
+ "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.21.3",
+ "@babel/plugin-transform-react-constant-elements": "^7.21.3",
+ "@babel/preset-env": "^7.20.2",
+ "@babel/preset-react": "^7.18.6",
+ "@babel/preset-typescript": "^7.21.0",
+ "@svgr/core": "8.1.0",
+ "@svgr/plugin-jsx": "8.1.0",
+ "@svgr/plugin-svgo": "8.1.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/gregberge"
+ }
+ },
+ "node_modules/@szmarczak/http-timer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
+ "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
+ "license": "MIT",
+ "dependencies": {
+ "defer-to-connect": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=14.16"
+ }
+ },
+ "node_modules/@trysound/sax": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz",
+ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/@types/acorn": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz",
+ "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/@types/body-parser": {
+ "version": "1.19.5",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
+ "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/bonjour": {
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz",
+ "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/connect": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/connect-history-api-fallback": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz",
+ "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/express-serve-static-core": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/d3": {
+ "version": "7.4.3",
+ "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz",
+ "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-array": "*",
+ "@types/d3-axis": "*",
+ "@types/d3-brush": "*",
+ "@types/d3-chord": "*",
+ "@types/d3-color": "*",
+ "@types/d3-contour": "*",
+ "@types/d3-delaunay": "*",
+ "@types/d3-dispatch": "*",
+ "@types/d3-drag": "*",
+ "@types/d3-dsv": "*",
+ "@types/d3-ease": "*",
+ "@types/d3-fetch": "*",
+ "@types/d3-force": "*",
+ "@types/d3-format": "*",
+ "@types/d3-geo": "*",
+ "@types/d3-hierarchy": "*",
+ "@types/d3-interpolate": "*",
+ "@types/d3-path": "*",
+ "@types/d3-polygon": "*",
+ "@types/d3-quadtree": "*",
+ "@types/d3-random": "*",
+ "@types/d3-scale": "*",
+ "@types/d3-scale-chromatic": "*",
+ "@types/d3-selection": "*",
+ "@types/d3-shape": "*",
+ "@types/d3-time": "*",
+ "@types/d3-time-format": "*",
+ "@types/d3-timer": "*",
+ "@types/d3-transition": "*",
+ "@types/d3-zoom": "*"
+ }
+ },
+ "node_modules/@types/d3-array": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz",
+ "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-axis": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz",
+ "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-brush": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz",
+ "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-chord": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz",
+ "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-color": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
+ "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-contour": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz",
+ "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-array": "*",
+ "@types/geojson": "*"
+ }
+ },
+ "node_modules/@types/d3-delaunay": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
+ "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-dispatch": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz",
+ "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-drag": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz",
+ "integrity": "sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-dsv": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz",
+ "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-ease": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
+ "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-fetch": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz",
+ "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-dsv": "*"
+ }
+ },
+ "node_modules/@types/d3-force": {
+ "version": "3.0.10",
+ "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz",
+ "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-format": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz",
+ "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-geo": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz",
+ "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/geojson": "*"
+ }
+ },
+ "node_modules/@types/d3-hierarchy": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz",
+ "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-interpolate": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
+ "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-color": "*"
+ }
+ },
+ "node_modules/@types/d3-path": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.0.tgz",
+ "integrity": "sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-polygon": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz",
+ "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-quadtree": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz",
+ "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-random": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz",
+ "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-scale": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz",
+ "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-time": "*"
+ }
+ },
+ "node_modules/@types/d3-scale-chromatic": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
+ "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-selection": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz",
+ "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-shape": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz",
+ "integrity": "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-path": "*"
+ }
+ },
+ "node_modules/@types/d3-time": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
+ "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-time-format": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz",
+ "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-timer": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
+ "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/d3-transition": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz",
+ "integrity": "sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/d3-zoom": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-3.0.8.tgz",
+ "integrity": "sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/d3-interpolate": "*",
+ "@types/d3-selection": "*"
+ }
+ },
+ "node_modules/@types/debug": {
+ "version": "4.1.12",
+ "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
+ "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/ms": "*"
+ }
+ },
+ "node_modules/@types/eslint": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
+ "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
+ "node_modules/@types/eslint-scope": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
+ "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
+ "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/estree-jsx": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz",
+ "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/@types/express": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz",
+ "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.33",
+ "@types/qs": "*",
+ "@types/serve-static": "*"
+ }
+ },
+ "node_modules/@types/express-serve-static-core": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.2.tgz",
+ "integrity": "sha512-vluaspfvWEtE4vcSDlKRNer52DvOGrB2xv6diXy6UKyKW0lqZiWHGNApSyxOv+8DE5Z27IzVvE7hNkxg7EXIcg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/@types/express/node_modules/@types/express-serve-static-core": {
+ "version": "4.19.6",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz",
+ "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/@types/geojson": {
+ "version": "7946.0.14",
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz",
+ "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/gtag.js": {
+ "version": "0.0.12",
+ "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz",
+ "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/hast": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
+ "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/history": {
+ "version": "4.7.11",
+ "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz",
+ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/html-minifier-terser": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
+ "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==",
+ "license": "MIT"
+ },
+ "node_modules/@types/http-cache-semantics": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
+ "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/http-errors": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
+ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/http-proxy": {
+ "version": "1.17.15",
+ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.15.tgz",
+ "integrity": "sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
+ "license": "MIT"
+ },
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/mdast": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
+ "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/mdx": {
+ "version": "2.0.13",
+ "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz",
+ "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/mime": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
+ "license": "MIT"
+ },
+ "node_modules/@types/ms": {
+ "version": "0.7.34",
+ "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz",
+ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==",
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "22.10.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz",
+ "integrity": "sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==",
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.20.0"
+ }
+ },
+ "node_modules/@types/node-forge": {
+ "version": "1.3.11",
+ "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz",
+ "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/parse-json": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz",
+ "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/parse5": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz",
+ "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/prismjs": {
+ "version": "1.26.5",
+ "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz",
+ "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.13",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz",
+ "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/qs": {
+ "version": "6.9.17",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz",
+ "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/range-parser": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
+ "license": "MIT"
+ },
+ "node_modules/@types/react": {
+ "version": "18.3.12",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz",
+ "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-router": {
+ "version": "5.1.20",
+ "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz",
+ "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/history": "^4.7.11",
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/react-router-config": {
+ "version": "5.0.11",
+ "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz",
+ "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router": "^5.1.0"
+ }
+ },
+ "node_modules/@types/react-router-dom": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz",
+ "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router": "*"
+ }
+ },
+ "node_modules/@types/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==",
+ "license": "MIT"
+ },
+ "node_modules/@types/sax": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz",
+ "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/send": {
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
+ "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mime": "^1",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/serve-index": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz",
+ "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/express": "*"
+ }
+ },
+ "node_modules/@types/serve-static": {
+ "version": "1.15.7",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
+ "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/http-errors": "*",
+ "@types/node": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/@types/sockjs": {
+ "version": "0.3.36",
+ "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
+ "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/trusted-types": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
+ "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==",
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/@types/unist": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz",
+ "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==",
+ "license": "MIT"
+ },
+ "node_modules/@types/ws": {
+ "version": "8.5.13",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz",
+ "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/yargs": {
+ "version": "17.0.33",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
+ "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
+ "license": "MIT"
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "license": "ISC"
+ },
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
+ "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/helper-numbers": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
+ }
+ },
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
+ "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==",
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
+ "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==",
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
+ "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==",
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-numbers": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
+ "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/floating-point-hex-parser": "1.13.2",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
+ "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==",
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
+ "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/wasm-gen": "1.14.1"
+ }
+ },
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
+ "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
+ "license": "MIT",
+ "dependencies": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
+ "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
+ "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==",
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
+ "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/helper-wasm-section": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-opt": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1",
+ "@webassemblyjs/wast-printer": "1.14.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
+ "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
+ "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
+ "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
+ "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.14.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "license": "ISC"
+ },
+ "node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/accepts/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/accepts/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/accepts/node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.14.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
+ "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==",
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "8.3.4",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
+ "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.11.0"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/address": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz",
+ "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "license": "MIT",
+ "dependencies": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ },
+ "peerDependencies": {
+ "ajv": "^8.8.2"
+ }
+ },
+ "node_modules/algoliasearch": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.24.0.tgz",
+ "integrity": "sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/cache-browser-local-storage": "4.24.0",
+ "@algolia/cache-common": "4.24.0",
+ "@algolia/cache-in-memory": "4.24.0",
+ "@algolia/client-account": "4.24.0",
+ "@algolia/client-analytics": "4.24.0",
+ "@algolia/client-common": "4.24.0",
+ "@algolia/client-personalization": "4.24.0",
+ "@algolia/client-search": "4.24.0",
+ "@algolia/logger-common": "4.24.0",
+ "@algolia/logger-console": "4.24.0",
+ "@algolia/recommend": "4.24.0",
+ "@algolia/requester-browser-xhr": "4.24.0",
+ "@algolia/requester-common": "4.24.0",
+ "@algolia/requester-node-http": "4.24.0",
+ "@algolia/transporter": "4.24.0"
+ }
+ },
+ "node_modules/algoliasearch-helper": {
+ "version": "3.22.5",
+ "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.22.5.tgz",
+ "integrity": "sha512-lWvhdnc+aKOKx8jyA3bsdEgHzm/sglC4cYdMG4xSQyRiPLJVJtH/IVYZG3Hp6PkTEhQqhyVYkeP9z2IlcHJsWw==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/events": "^4.0.1"
+ },
+ "peerDependencies": {
+ "algoliasearch": ">= 3.1 < 6"
+ }
+ },
+ "node_modules/algoliasearch/node_modules/@algolia/client-common": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz",
+ "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/requester-common": "4.24.0",
+ "@algolia/transporter": "4.24.0"
+ }
+ },
+ "node_modules/algoliasearch/node_modules/@algolia/client-search": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz",
+ "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/client-common": "4.24.0",
+ "@algolia/requester-common": "4.24.0",
+ "@algolia/transporter": "4.24.0"
+ }
+ },
+ "node_modules/algoliasearch/node_modules/@algolia/requester-browser-xhr": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz",
+ "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/requester-common": "4.24.0"
+ }
+ },
+ "node_modules/algoliasearch/node_modules/@algolia/requester-node-http": {
+ "version": "4.24.0",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz",
+ "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==",
+ "license": "MIT",
+ "dependencies": {
+ "@algolia/requester-common": "4.24.0"
+ }
+ },
+ "node_modules/ansi-align": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
+ "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.1.0"
+ }
+ },
+ "node_modules/ansi-align/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/ansi-align/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-escapes/node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-html-community": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
+ "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==",
+ "engines": [
+ "node >= 0.8.0"
+ ],
+ "license": "Apache-2.0",
+ "bin": {
+ "ansi-html": "bin/ansi-html"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/aproba": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz",
+ "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==",
+ "license": "ISC"
+ },
+ "node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
+ "license": "MIT"
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "license": "Python-2.0"
+ },
+ "node_modules/array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
+ "license": "MIT"
+ },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/astring": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz",
+ "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==",
+ "license": "MIT",
+ "bin": {
+ "astring": "bin/astring"
+ }
+ },
+ "node_modules/at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/autocomplete.js": {
+ "version": "0.37.1",
+ "resolved": "https://registry.npmjs.org/autocomplete.js/-/autocomplete.js-0.37.1.tgz",
+ "integrity": "sha512-PgSe9fHYhZEsm/9jggbjtVsGXJkPLvd+9mC7gZJ662vVL5CRWEtm/mIrrzCx0MrNxHVwxD5d00UOn6NsmL2LUQ==",
+ "license": "MIT",
+ "dependencies": {
+ "immediate": "^3.2.3"
+ }
+ },
+ "node_modules/autoprefixer": {
+ "version": "10.4.20",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
+ "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.3",
+ "caniuse-lite": "^1.0.30001646",
+ "fraction.js": "^4.3.7",
+ "normalize-range": "^0.1.2",
+ "picocolors": "^1.0.1",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/b4a": {
+ "version": "1.6.7",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz",
+ "integrity": "sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/babel-loader": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz",
+ "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==",
+ "license": "MIT",
+ "dependencies": {
+ "find-cache-dir": "^4.0.0",
+ "schema-utils": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 14.15.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0",
+ "webpack": ">=5"
+ }
+ },
+ "node_modules/babel-plugin-dynamic-import-node": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
+ "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "object.assign": "^4.1.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs2": {
+ "version": "0.4.12",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz",
+ "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.22.6",
+ "@babel/helper-define-polyfill-provider": "^0.6.3",
+ "semver": "^6.3.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.10.6",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz",
+ "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.6.2",
+ "core-js-compat": "^3.38.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz",
+ "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.6.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/bail": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz",
+ "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "license": "MIT"
+ },
+ "node_modules/bare-events": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz",
+ "integrity": "sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==",
+ "license": "Apache-2.0",
+ "optional": true
+ },
+ "node_modules/bare-fs": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz",
+ "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "bare-events": "^2.0.0",
+ "bare-path": "^2.0.0",
+ "bare-stream": "^2.0.0"
+ }
+ },
+ "node_modules/bare-os": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz",
+ "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==",
+ "license": "Apache-2.0",
+ "optional": true
+ },
+ "node_modules/bare-path": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz",
+ "integrity": "sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "bare-os": "^2.1.0"
+ }
+ },
+ "node_modules/bare-stream": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.4.2.tgz",
+ "integrity": "sha512-XZ4ln/KV4KT+PXdIWTKjsLY+quqCaEtqqtgGJVPw9AoM73By03ij64YjepK0aQvHSWDb6AfAZwqKaFu68qkrdA==",
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "streamx": "^2.20.0"
+ }
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==",
+ "license": "MIT"
+ },
+ "node_modules/bcp-47-match": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-1.0.3.tgz",
+ "integrity": "sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/body-parser": {
+ "version": "1.20.3",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
+ "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.5",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.13.0",
+ "raw-body": "2.5.2",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/body-parser/node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/body-parser/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/body-parser/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/body-parser/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
+ },
+ "node_modules/bonjour-service": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz",
+ "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "multicast-dns": "^7.2.5"
+ }
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "license": "ISC"
+ },
+ "node_modules/boxen": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz",
+ "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-align": "^3.0.1",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.1.2",
+ "cli-boxes": "^3.0.0",
+ "string-width": "^5.0.1",
+ "type-fest": "^2.5.0",
+ "widest-line": "^4.0.1",
+ "wrap-ansi": "^8.0.1"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.24.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz",
+ "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001669",
+ "electron-to-chromium": "^1.5.41",
+ "node-releases": "^2.0.18",
+ "update-browserslist-db": "^1.1.1"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "license": "MIT"
+ },
+ "node_modules/bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/cacheable-lookup": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz",
+ "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.16"
+ }
+ },
+ "node_modules/cacheable-request": {
+ "version": "10.2.14",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz",
+ "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/http-cache-semantics": "^4.0.2",
+ "get-stream": "^6.0.1",
+ "http-cache-semantics": "^4.1.1",
+ "keyv": "^4.5.3",
+ "mimic-response": "^4.0.0",
+ "normalize-url": "^8.0.0",
+ "responselike": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/mimic-response": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz",
+ "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "license": "MIT",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "license": "MIT",
+ "dependencies": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/caniuse-api": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
+ "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "caniuse-lite": "^1.0.0",
+ "lodash.memoize": "^4.1.2",
+ "lodash.uniq": "^4.5.0"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001684",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz",
+ "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/ccount": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz",
+ "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/char-regex": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/character-entities": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz",
+ "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-entities-html4": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz",
+ "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-entities-legacy": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz",
+ "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-reference-invalid": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz",
+ "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/cheerio": {
+ "version": "1.0.0-rc.12",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
+ "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
+ "license": "MIT",
+ "dependencies": {
+ "cheerio-select": "^2.1.0",
+ "dom-serializer": "^2.0.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "htmlparser2": "^8.0.1",
+ "parse5": "^7.0.0",
+ "parse5-htmlparser2-tree-adapter": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
+ }
+ },
+ "node_modules/cheerio-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
+ "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-select": "^5.1.0",
+ "css-what": "^6.1.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/chevrotain": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-11.0.3.tgz",
+ "integrity": "sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@chevrotain/cst-dts-gen": "11.0.3",
+ "@chevrotain/gast": "11.0.3",
+ "@chevrotain/regexp-to-ast": "11.0.3",
+ "@chevrotain/types": "11.0.3",
+ "@chevrotain/utils": "11.0.3",
+ "lodash-es": "4.17.21"
+ }
+ },
+ "node_modules/chevrotain-allstar": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/chevrotain-allstar/-/chevrotain-allstar-0.3.1.tgz",
+ "integrity": "sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==",
+ "license": "MIT",
+ "dependencies": {
+ "lodash-es": "^4.17.21"
+ },
+ "peerDependencies": {
+ "chevrotain": "^11.0.0"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+ "license": "ISC"
+ },
+ "node_modules/chrome-trace-event": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
+ "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/clean-css": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz",
+ "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==",
+ "license": "MIT",
+ "dependencies": {
+ "source-map": "~0.6.0"
+ },
+ "engines": {
+ "node": ">= 10.0"
+ }
+ },
+ "node_modules/clean-css/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/cli-boxes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz",
+ "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-table3": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz",
+ "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==",
+ "license": "MIT",
+ "dependencies": {
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": "10.* || >= 12.*"
+ },
+ "optionalDependencies": {
+ "@colors/colors": "1.5.0"
+ }
+ },
+ "node_modules/cli-table3/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/cli-table3/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/clsx": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz",
+ "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/collapse-white-space": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz",
+ "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/color": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
+ "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1",
+ "color-string": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=12.5.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT"
+ },
+ "node_modules/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "node_modules/color-support": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
+ "license": "ISC",
+ "bin": {
+ "color-support": "bin.js"
+ }
+ },
+ "node_modules/colord": {
+ "version": "2.9.3",
+ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
+ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
+ "license": "MIT"
+ },
+ "node_modules/colorette": {
+ "version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
+ "license": "MIT"
+ },
+ "node_modules/combine-promises": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz",
+ "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/comma-separated-tokens": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz",
+ "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/commander": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz",
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/common-path-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz",
+ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==",
+ "license": "ISC"
+ },
+ "node_modules/compressible": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": ">= 1.43.0 < 2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/compressible/node_modules/mime-db": {
+ "version": "1.53.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz",
+ "integrity": "sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/compression": {
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz",
+ "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "compressible": "~2.0.18",
+ "debug": "2.6.9",
+ "negotiator": "~0.6.4",
+ "on-headers": "~1.0.2",
+ "safe-buffer": "5.2.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/compression/node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/compression/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/compression/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "license": "MIT"
+ },
+ "node_modules/confbox": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz",
+ "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==",
+ "license": "MIT"
+ },
+ "node_modules/config-chain": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
+ "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ }
+ },
+ "node_modules/configstore": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz",
+ "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dot-prop": "^6.0.1",
+ "graceful-fs": "^4.2.6",
+ "unique-string": "^3.0.0",
+ "write-file-atomic": "^3.0.3",
+ "xdg-basedir": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/yeoman/configstore?sponsor=1"
+ }
+ },
+ "node_modules/connect-history-api-fallback": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
+ "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/consola": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz",
+ "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.18.0 || >=16.10.0"
+ }
+ },
+ "node_modules/console-control-strings": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
+ "license": "ISC"
+ },
+ "node_modules/consolidated-events": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/consolidated-events/-/consolidated-events-2.0.2.tgz",
+ "integrity": "sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ==",
+ "license": "MIT"
+ },
+ "node_modules/content-disposition": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
+ "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-type": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "license": "MIT"
+ },
+ "node_modules/cookie": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
+ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
+ "license": "MIT"
+ },
+ "node_modules/copy-text-to-clipboard": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz",
+ "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/copy-webpack-plugin": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz",
+ "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-glob": "^3.2.11",
+ "glob-parent": "^6.0.1",
+ "globby": "^13.1.1",
+ "normalize-path": "^3.0.0",
+ "schema-utils": "^4.0.0",
+ "serialize-javascript": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14.15.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/globby": {
+ "version": "13.2.2",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz",
+ "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==",
+ "license": "MIT",
+ "dependencies": {
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.3.0",
+ "ignore": "^5.2.4",
+ "merge2": "^1.4.1",
+ "slash": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/slash": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz",
+ "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/core-js": {
+ "version": "3.39.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz",
+ "integrity": "sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.39.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz",
+ "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.24.2"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-pure": {
+ "version": "3.39.0",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.39.0.tgz",
+ "integrity": "sha512-7fEcWwKI4rJinnK+wLTezeg2smbFFdSBP6E2kQZNbnzM2s1rpKQ6aaRteZSSg7FLU3P0HGGVo/gbpfanU36urg==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+ "license": "MIT"
+ },
+ "node_modules/cose-base": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-1.0.3.tgz",
+ "integrity": "sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==",
+ "license": "MIT",
+ "dependencies": {
+ "layout-base": "^1.0.0"
+ }
+ },
+ "node_modules/cosmiconfig": {
+ "version": "8.3.6",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz",
+ "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==",
+ "license": "MIT",
+ "dependencies": {
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "parse-json": "^5.2.0",
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/d-fischer"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.9.5"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/crypto-random-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz",
+ "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==",
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/crypto-random-string/node_modules/type-fest": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz",
+ "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==",
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/css-blank-pseudo": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz",
+ "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/css-declaration-sorter": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz",
+ "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==",
+ "license": "ISC",
+ "engines": {
+ "node": "^14 || ^16 || >=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.9"
+ }
+ },
+ "node_modules/css-has-pseudo": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.1.tgz",
+ "integrity": "sha512-EOcoyJt+OsuKfCADgLT7gADZI5jMzIe/AeI6MeAYKiFBDmNmM7kk46DtSfMj5AohUJisqVzopBpnQTlvbyaBWg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/selector-specificity": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/css-has-pseudo/node_modules/@csstools/selector-specificity": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
+ "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ }
+ },
+ "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/css-loader": {
+ "version": "6.11.0",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz",
+ "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==",
+ "license": "MIT",
+ "dependencies": {
+ "icss-utils": "^5.1.0",
+ "postcss": "^8.4.33",
+ "postcss-modules-extract-imports": "^3.1.0",
+ "postcss-modules-local-by-default": "^4.0.5",
+ "postcss-modules-scope": "^3.2.0",
+ "postcss-modules-values": "^4.0.0",
+ "postcss-value-parser": "^4.2.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "@rspack/core": "0.x || 1.x",
+ "webpack": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@rspack/core": {
+ "optional": true
+ },
+ "webpack": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/css-minimizer-webpack-plugin": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz",
+ "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "cssnano": "^6.0.1",
+ "jest-worker": "^29.4.3",
+ "postcss": "^8.4.24",
+ "schema-utils": "^4.0.1",
+ "serialize-javascript": "^6.0.1"
+ },
+ "engines": {
+ "node": ">= 14.15.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@parcel/css": {
+ "optional": true
+ },
+ "@swc/css": {
+ "optional": true
+ },
+ "clean-css": {
+ "optional": true
+ },
+ "csso": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/css-prefers-color-scheme": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz",
+ "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/css-select": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
+ "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/css-selector-parser": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz",
+ "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==",
+ "license": "MIT"
+ },
+ "node_modules/css-tree": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
+ "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.0.30",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/cssdb": {
+ "version": "8.2.1",
+ "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.2.1.tgz",
+ "integrity": "sha512-KwEPys7lNsC8OjASI8RrmwOYYDcm0JOW9zQhcV83ejYcQkirTEyeAGui8aO2F5PiS6SLpxuTzl6qlMElIdsgIg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ }
+ ],
+ "license": "MIT-0"
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cssnano": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz",
+ "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==",
+ "license": "MIT",
+ "dependencies": {
+ "cssnano-preset-default": "^6.1.2",
+ "lilconfig": "^3.1.1"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/cssnano"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/cssnano-preset-advanced": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz",
+ "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==",
+ "license": "MIT",
+ "dependencies": {
+ "autoprefixer": "^10.4.19",
+ "browserslist": "^4.23.0",
+ "cssnano-preset-default": "^6.1.2",
+ "postcss-discard-unused": "^6.0.5",
+ "postcss-merge-idents": "^6.0.3",
+ "postcss-reduce-idents": "^6.0.3",
+ "postcss-zindex": "^6.0.2"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/cssnano-preset-default": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz",
+ "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.0",
+ "css-declaration-sorter": "^7.2.0",
+ "cssnano-utils": "^4.0.2",
+ "postcss-calc": "^9.0.1",
+ "postcss-colormin": "^6.1.0",
+ "postcss-convert-values": "^6.1.0",
+ "postcss-discard-comments": "^6.0.2",
+ "postcss-discard-duplicates": "^6.0.3",
+ "postcss-discard-empty": "^6.0.3",
+ "postcss-discard-overridden": "^6.0.2",
+ "postcss-merge-longhand": "^6.0.5",
+ "postcss-merge-rules": "^6.1.1",
+ "postcss-minify-font-values": "^6.1.0",
+ "postcss-minify-gradients": "^6.0.3",
+ "postcss-minify-params": "^6.1.0",
+ "postcss-minify-selectors": "^6.0.4",
+ "postcss-normalize-charset": "^6.0.2",
+ "postcss-normalize-display-values": "^6.0.2",
+ "postcss-normalize-positions": "^6.0.2",
+ "postcss-normalize-repeat-style": "^6.0.2",
+ "postcss-normalize-string": "^6.0.2",
+ "postcss-normalize-timing-functions": "^6.0.2",
+ "postcss-normalize-unicode": "^6.1.0",
+ "postcss-normalize-url": "^6.0.2",
+ "postcss-normalize-whitespace": "^6.0.2",
+ "postcss-ordered-values": "^6.0.2",
+ "postcss-reduce-initial": "^6.1.0",
+ "postcss-reduce-transforms": "^6.0.2",
+ "postcss-svgo": "^6.0.3",
+ "postcss-unique-selectors": "^6.0.4"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/cssnano-utils": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz",
+ "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/csso": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz",
+ "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==",
+ "license": "MIT",
+ "dependencies": {
+ "css-tree": "~2.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/csso/node_modules/css-tree": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz",
+ "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==",
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.0.28",
+ "source-map-js": "^1.0.1"
+ },
+ "engines": {
+ "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/csso/node_modules/mdn-data": {
+ "version": "2.0.28",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz",
+ "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==",
+ "license": "CC0-1.0"
+ },
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "license": "MIT"
+ },
+ "node_modules/cytoscape": {
+ "version": "3.30.4",
+ "resolved": "https://registry.npmjs.org/cytoscape/-/cytoscape-3.30.4.tgz",
+ "integrity": "sha512-OxtlZwQl1WbwMmLiyPSEBuzeTIQnwZhJYYWFzZ2PhEHVFwpeaqNIkUzSiso00D98qk60l8Gwon2RP304d3BJ1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/cytoscape-cose-bilkent": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz",
+ "integrity": "sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cose-base": "^1.0.0"
+ },
+ "peerDependencies": {
+ "cytoscape": "^3.2.0"
+ }
+ },
+ "node_modules/cytoscape-fcose": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz",
+ "integrity": "sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cose-base": "^2.2.0"
+ },
+ "peerDependencies": {
+ "cytoscape": "^3.2.0"
+ }
+ },
+ "node_modules/cytoscape-fcose/node_modules/cose-base": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/cose-base/-/cose-base-2.2.0.tgz",
+ "integrity": "sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==",
+ "license": "MIT",
+ "dependencies": {
+ "layout-base": "^2.0.0"
+ }
+ },
+ "node_modules/cytoscape-fcose/node_modules/layout-base": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-2.0.1.tgz",
+ "integrity": "sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==",
+ "license": "MIT"
+ },
+ "node_modules/d3": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz",
+ "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "3",
+ "d3-axis": "3",
+ "d3-brush": "3",
+ "d3-chord": "3",
+ "d3-color": "3",
+ "d3-contour": "4",
+ "d3-delaunay": "6",
+ "d3-dispatch": "3",
+ "d3-drag": "3",
+ "d3-dsv": "3",
+ "d3-ease": "3",
+ "d3-fetch": "3",
+ "d3-force": "3",
+ "d3-format": "3",
+ "d3-geo": "3",
+ "d3-hierarchy": "3",
+ "d3-interpolate": "3",
+ "d3-path": "3",
+ "d3-polygon": "3",
+ "d3-quadtree": "3",
+ "d3-random": "3",
+ "d3-scale": "4",
+ "d3-scale-chromatic": "3",
+ "d3-selection": "3",
+ "d3-shape": "3",
+ "d3-time": "3",
+ "d3-time-format": "4",
+ "d3-timer": "3",
+ "d3-transition": "3",
+ "d3-zoom": "3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-array": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
+ "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
+ "license": "ISC",
+ "dependencies": {
+ "internmap": "1 - 2"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-axis": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",
+ "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-brush": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",
+ "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-drag": "2 - 3",
+ "d3-interpolate": "1 - 3",
+ "d3-selection": "3",
+ "d3-transition": "3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-chord": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",
+ "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-path": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-color": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
+ "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-contour": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",
+ "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-delaunay": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
+ "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
+ "license": "ISC",
+ "dependencies": {
+ "delaunator": "5"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-dispatch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
+ "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-drag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
+ "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-selection": "3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-dsv": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
+ "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
+ "license": "ISC",
+ "dependencies": {
+ "commander": "7",
+ "iconv-lite": "0.6",
+ "rw": "1"
+ },
+ "bin": {
+ "csv2json": "bin/dsv2json.js",
+ "csv2tsv": "bin/dsv2dsv.js",
+ "dsv2dsv": "bin/dsv2dsv.js",
+ "dsv2json": "bin/dsv2json.js",
+ "json2csv": "bin/json2dsv.js",
+ "json2dsv": "bin/json2dsv.js",
+ "json2tsv": "bin/json2dsv.js",
+ "tsv2csv": "bin/dsv2dsv.js",
+ "tsv2json": "bin/dsv2json.js"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-dsv/node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/d3-ease": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
+ "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-fetch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
+ "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dsv": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-force": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
+ "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-quadtree": "1 - 3",
+ "d3-timer": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-format": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
+ "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-geo": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",
+ "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2.5.0 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-hierarchy": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
+ "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-interpolate": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
+ "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-path": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
+ "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-polygon": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",
+ "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-quadtree": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
+ "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-random": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
+ "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-sankey": {
+ "version": "0.12.3",
+ "resolved": "https://registry.npmjs.org/d3-sankey/-/d3-sankey-0.12.3.tgz",
+ "integrity": "sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "d3-array": "1 - 2",
+ "d3-shape": "^1.2.0"
+ }
+ },
+ "node_modules/d3-sankey/node_modules/d3-array": {
+ "version": "2.12.1",
+ "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz",
+ "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "internmap": "^1.0.0"
+ }
+ },
+ "node_modules/d3-sankey/node_modules/d3-path": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz",
+ "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/d3-sankey/node_modules/d3-shape": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz",
+ "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "d3-path": "1"
+ }
+ },
+ "node_modules/d3-sankey/node_modules/internmap": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz",
+ "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==",
+ "license": "ISC"
+ },
+ "node_modules/d3-scale": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
+ "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2.10.0 - 3",
+ "d3-format": "1 - 3",
+ "d3-interpolate": "1.2.0 - 3",
+ "d3-time": "2.1.1 - 3",
+ "d3-time-format": "2 - 4"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-scale-chromatic": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
+ "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3",
+ "d3-interpolate": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-selection": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
+ "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-shape": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
+ "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-path": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
+ "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-array": "2 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-time-format": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
+ "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-time": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-timer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
+ "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/d3-transition": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
+ "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-color": "1 - 3",
+ "d3-dispatch": "1 - 3",
+ "d3-ease": "1 - 3",
+ "d3-interpolate": "1 - 3",
+ "d3-timer": "1 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "d3-selection": "2 - 3"
+ }
+ },
+ "node_modules/d3-zoom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
+ "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
+ "license": "ISC",
+ "dependencies": {
+ "d3-dispatch": "1 - 3",
+ "d3-drag": "2 - 3",
+ "d3-interpolate": "1 - 3",
+ "d3-selection": "2 - 3",
+ "d3-transition": "2 - 3"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/dagre-d3-es": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmjs.org/dagre-d3-es/-/dagre-d3-es-7.0.11.tgz",
+ "integrity": "sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==",
+ "license": "MIT",
+ "dependencies": {
+ "d3": "^7.9.0",
+ "lodash-es": "^4.17.21"
+ }
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.13",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
+ "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
+ "license": "MIT"
+ },
+ "node_modules/debounce": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
+ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==",
+ "license": "MIT"
+ },
+ "node_modules/debug": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+ "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decode-named-character-reference": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz",
+ "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==",
+ "license": "MIT",
+ "dependencies": {
+ "character-entities": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/decompress-response": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+ "license": "MIT",
+ "dependencies": {
+ "mimic-response": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-gateway": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
+ "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "execa": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/defer-to-connect": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "license": "MIT",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/del": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz",
+ "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==",
+ "license": "MIT",
+ "dependencies": {
+ "globby": "^11.0.1",
+ "graceful-fs": "^4.2.4",
+ "is-glob": "^4.0.1",
+ "is-path-cwd": "^2.2.0",
+ "is-path-inside": "^3.0.2",
+ "p-map": "^4.0.0",
+ "rimraf": "^3.0.2",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/delaunator": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz",
+ "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==",
+ "license": "ISC",
+ "dependencies": {
+ "robust-predicates": "^3.0.2"
+ }
+ },
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/dequal": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
+ "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz",
+ "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/detect-node": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
+ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
+ "license": "MIT"
+ },
+ "node_modules/detect-port": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz",
+ "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==",
+ "license": "MIT",
+ "dependencies": {
+ "address": "^1.0.1",
+ "debug": "4"
+ },
+ "bin": {
+ "detect": "bin/detect-port.js",
+ "detect-port": "bin/detect-port.js"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/detect-port-alt": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz",
+ "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==",
+ "license": "MIT",
+ "dependencies": {
+ "address": "^1.0.1",
+ "debug": "^2.6.0"
+ },
+ "bin": {
+ "detect": "bin/detect-port",
+ "detect-port": "bin/detect-port"
+ },
+ "engines": {
+ "node": ">= 4.2.1"
+ }
+ },
+ "node_modules/detect-port-alt/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/detect-port-alt/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
+ },
+ "node_modules/devlop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz",
+ "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==",
+ "license": "MIT",
+ "dependencies": {
+ "dequal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "license": "MIT",
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/direction": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/direction/-/direction-1.0.4.tgz",
+ "integrity": "sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ==",
+ "license": "MIT",
+ "bin": {
+ "direction": "cli.js"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/dns-packet": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz",
+ "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==",
+ "license": "MIT",
+ "dependencies": {
+ "@leichtgewicht/ip-codec": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/docusaurus-lunr-search": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/docusaurus-lunr-search/-/docusaurus-lunr-search-3.5.0.tgz",
+ "integrity": "sha512-k3zN4jYMi/prWInJILGKOxE+BVcgYinwj9+gcECsYm52tS+4ZKzXQzbPnVJAEXmvKOfFMcDFvS3MSmm6cEaxIQ==",
+ "license": "MIT",
+ "dependencies": {
+ "autocomplete.js": "^0.37.0",
+ "clsx": "^1.2.1",
+ "gauge": "^3.0.0",
+ "hast-util-select": "^4.0.0",
+ "hast-util-to-text": "^2.0.0",
+ "hogan.js": "^3.0.2",
+ "lunr": "^2.3.8",
+ "lunr-languages": "^1.4.0",
+ "mark.js": "^8.11.1",
+ "minimatch": "^3.0.4",
+ "rehype-parse": "^7.0.1",
+ "to-vfile": "^6.1.0",
+ "unified": "^9.0.0",
+ "unist-util-is": "^4.0.2"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "peerDependencies": {
+ "@docusaurus/core": "^2.0.0-alpha.60 || ^2.0.0 || ^3.0.0",
+ "react": "^16.8.4 || ^17 || ^18",
+ "react-dom": "^16.8.4 || ^17 || ^18"
+ }
+ },
+ "node_modules/docusaurus-lunr-search/node_modules/@types/unist": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
+ "license": "MIT"
+ },
+ "node_modules/docusaurus-lunr-search/node_modules/bail": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
+ "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/docusaurus-lunr-search/node_modules/clsx": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
+ "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/docusaurus-lunr-search/node_modules/is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/docusaurus-lunr-search/node_modules/trough": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz",
+ "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/docusaurus-lunr-search/node_modules/unified": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz",
+ "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==",
+ "license": "MIT",
+ "dependencies": {
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^2.0.0",
+ "trough": "^1.0.0",
+ "vfile": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/docusaurus-lunr-search/node_modules/unist-util-stringify-position": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
+ "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.2"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/docusaurus-lunr-search/node_modules/vfile": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
+ "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/docusaurus-lunr-search/node_modules/vfile-message": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
+ "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/docusaurus-plugin-typedoc": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/docusaurus-plugin-typedoc/-/docusaurus-plugin-typedoc-1.0.5.tgz",
+ "integrity": "sha512-mv8LBJYilGOOPLqaIM3vbYc34m4qwOCpb4WfP24DOPFNj2uiTerw8sg9MGvN6Jx2+J8rq9/WMnjcyz3UMqoIIQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "typedoc-plugin-markdown": ">=4.0.0"
+ }
+ },
+ "node_modules/dom-converter": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
+ "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
+ "license": "MIT",
+ "dependencies": {
+ "utila": "~0.4"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "domelementtype": "^2.3.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/dompurify": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.2.tgz",
+ "integrity": "sha512-YMM+erhdZ2nkZ4fTNRTSI94mb7VG7uVF5vj5Zde7tImgnhZE3R6YW/IACGIHb2ux+QkEXMhe591N+5jWOmL4Zw==",
+ "license": "(MPL-2.0 OR Apache-2.0)",
+ "optionalDependencies": {
+ "@types/trusted-types": "^2.0.7"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
+ "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/dot-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz",
+ "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
+ "license": "MIT",
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/dot-prop": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz",
+ "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==",
+ "license": "MIT",
+ "dependencies": {
+ "is-obj": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/dot-prop/node_modules/is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "16.4.7",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
+ "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
+ "node_modules/duplexer": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
+ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
+ "license": "MIT"
+ },
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "license": "MIT"
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+ "license": "MIT"
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.67",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.67.tgz",
+ "integrity": "sha512-nz88NNBsD7kQSAGGJyp8hS6xSPtWwqNogA0mjtc2nUYeEf3nURK9qpV18TuBdDmEDgVWotS8Wkzf+V52dSQ/LQ==",
+ "license": "ISC"
+ },
+ "node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "license": "MIT"
+ },
+ "node_modules/emoji-regex-xs": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz",
+ "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/emojilib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz",
+ "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==",
+ "license": "MIT"
+ },
+ "node_modules/emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/emoticon": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.1.0.tgz",
+ "integrity": "sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/encodeurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "license": "MIT",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "5.17.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
+ "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "license": "MIT",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-module-lexer": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
+ "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==",
+ "license": "MIT"
+ },
+ "node_modules/esast-util-from-estree": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz",
+ "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "devlop": "^1.0.0",
+ "estree-util-visit": "^2.0.0",
+ "unist-util-position-from-estree": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/esast-util-from-js": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz",
+ "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "acorn": "^8.0.0",
+ "esast-util-from-estree": "^2.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-goat": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz",
+ "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+ "license": "MIT"
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "license": "BSD-2-Clause",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estree-util-attach-comments": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz",
+ "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-util-build-jsx": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz",
+ "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "devlop": "^1.0.0",
+ "estree-util-is-identifier-name": "^3.0.0",
+ "estree-walker": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-util-is-identifier-name": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz",
+ "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-util-scope": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz",
+ "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "devlop": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-util-to-js": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz",
+ "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "astring": "^1.8.0",
+ "source-map": "^0.7.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-util-value-to-estree": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.2.1.tgz",
+ "integrity": "sha512-Vt2UOjyPbNQQgT5eJh+K5aATti0OjCIAGc9SgMdOFYbohuifsWclR74l0iZTJwePMgWYdX1hlVS+dedH9XV8kw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/remcohaszing"
+ }
+ },
+ "node_modules/estree-util-visit": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz",
+ "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eta": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz",
+ "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/eta-dev/eta?sponsor=1"
+ }
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/eval": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz",
+ "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==",
+ "dependencies": {
+ "@types/node": "*",
+ "require-like": ">= 0.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "license": "MIT"
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/expand-template": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
+ "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
+ "license": "(MIT OR WTFPL)",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/express": {
+ "version": "4.21.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
+ "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
+ "license": "MIT",
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.3",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.7.1",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.3.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "merge-descriptors": "1.0.3",
+ "methods": "~1.1.2",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.10",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.13.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.19.0",
+ "serve-static": "1.16.2",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/express/node_modules/content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/express/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/express/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
+ },
+ "node_modules/express/node_modules/path-to-regexp": {
+ "version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
+ "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==",
+ "license": "MIT"
+ },
+ "node_modules/express/node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "license": "MIT"
+ },
+ "node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "license": "MIT"
+ },
+ "node_modules/fast-fifo": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz",
+ "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==",
+ "license": "MIT"
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "license": "MIT"
+ },
+ "node_modules/fast-uri": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz",
+ "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fault": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz",
+ "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==",
+ "license": "MIT",
+ "dependencies": {
+ "format": "^0.2.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/faye-websocket": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
+ "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "websocket-driver": ">=0.5.1"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/feed": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz",
+ "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==",
+ "license": "MIT",
+ "dependencies": {
+ "xml-js": "^1.6.11"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "license": "MIT",
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/figures/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/file-loader": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz",
+ "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==",
+ "license": "MIT",
+ "dependencies": {
+ "loader-utils": "^2.0.0",
+ "schema-utils": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/file-loader/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/file-loader/node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/file-loader/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "license": "MIT"
+ },
+ "node_modules/file-loader/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/filesize": {
+ "version": "8.0.7",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz",
+ "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
+ "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
+ },
+ "node_modules/find-cache-dir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz",
+ "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==",
+ "license": "MIT",
+ "dependencies": {
+ "common-path-prefix": "^3.0.0",
+ "pkg-dir": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz",
+ "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==",
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^7.1.0",
+ "path-exists": "^5.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+ "license": "BSD-3-Clause",
+ "bin": {
+ "flat": "cli.js"
+ }
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
+ "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz",
+ "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.8.3",
+ "@types/json-schema": "^7.0.5",
+ "chalk": "^4.1.0",
+ "chokidar": "^3.4.2",
+ "cosmiconfig": "^6.0.0",
+ "deepmerge": "^4.2.2",
+ "fs-extra": "^9.0.0",
+ "glob": "^7.1.6",
+ "memfs": "^3.1.2",
+ "minimatch": "^3.0.4",
+ "schema-utils": "2.7.0",
+ "semver": "^7.3.2",
+ "tapable": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=10",
+ "yarn": ">=1.0.0"
+ },
+ "peerDependencies": {
+ "eslint": ">= 6",
+ "typescript": ">= 2.7",
+ "vue-template-compiler": "*",
+ "webpack": ">= 4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ },
+ "vue-template-compiler": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "license": "MIT",
+ "dependencies": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "license": "MIT"
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz",
+ "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.4",
+ "ajv": "^6.12.2",
+ "ajv-keywords": "^3.4.1"
+ },
+ "engines": {
+ "node": ">= 8.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
+ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/form-data-encoder": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz",
+ "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.17"
+ }
+ },
+ "node_modules/format": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz",
+ "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==",
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fraction.js": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
+ "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "patreon",
+ "url": "https://github.com/sponsors/rawify"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fs-constants": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
+ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
+ "license": "MIT"
+ },
+ "node_modules/fs-extra": {
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/fs-monkey": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz",
+ "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==",
+ "license": "Unlicense"
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "license": "ISC"
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gauge": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
+ "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
+ "deprecated": "This package is no longer supported.",
+ "license": "ISC",
+ "dependencies": {
+ "aproba": "^1.0.3 || ^2.0.0",
+ "color-support": "^1.1.2",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.1",
+ "object-assign": "^4.1.1",
+ "signal-exit": "^3.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "wide-align": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/gauge/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/gauge/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-own-enumerable-property-symbols": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
+ "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==",
+ "license": "ISC"
+ },
+ "node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/github-from-package": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
+ "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
+ "license": "MIT"
+ },
+ "node_modules/github-slugger": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz",
+ "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==",
+ "license": "ISC"
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/global-dirs": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
+ "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
+ "license": "MIT",
+ "dependencies": {
+ "ini": "2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/global-dirs/node_modules/ini": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/global-modules": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
+ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+ "license": "MIT",
+ "dependencies": {
+ "global-prefix": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/global-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
+ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+ "license": "MIT",
+ "dependencies": {
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/global-prefix/node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "license": "MIT",
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.1.0.tgz",
+ "integrity": "sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==",
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/got": {
+ "version": "12.6.1",
+ "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz",
+ "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@sindresorhus/is": "^5.2.0",
+ "@szmarczak/http-timer": "^5.0.1",
+ "cacheable-lookup": "^7.0.0",
+ "cacheable-request": "^10.2.8",
+ "decompress-response": "^6.0.0",
+ "form-data-encoder": "^2.1.2",
+ "get-stream": "^6.0.1",
+ "http2-wrapper": "^2.1.10",
+ "lowercase-keys": "^3.0.0",
+ "p-cancelable": "^3.0.0",
+ "responselike": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/got?sponsor=1"
+ }
+ },
+ "node_modules/got/node_modules/@sindresorhus/is": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz",
+ "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/is?sponsor=1"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "license": "ISC"
+ },
+ "node_modules/gray-matter": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz",
+ "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==",
+ "license": "MIT",
+ "dependencies": {
+ "js-yaml": "^3.13.1",
+ "kind-of": "^6.0.2",
+ "section-matter": "^1.0.0",
+ "strip-bom-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/gray-matter/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/gray-matter/node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/gzip-size": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz",
+ "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "duplexer": "^0.1.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/hachure-fill": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/hachure-fill/-/hachure-fill-0.5.2.tgz",
+ "integrity": "sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==",
+ "license": "MIT"
+ },
+ "node_modules/handle-thing": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
+ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
+ "license": "MIT"
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "license": "MIT",
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-unicode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
+ "license": "ISC"
+ },
+ "node_modules/has-yarn": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz",
+ "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/hast-util-from-parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz",
+ "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/parse5": "^5.0.0",
+ "hastscript": "^6.0.0",
+ "property-information": "^5.0.0",
+ "vfile": "^4.0.0",
+ "vfile-location": "^3.2.0",
+ "web-namespaces": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5/node_modules/@types/unist": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
+ "license": "MIT"
+ },
+ "node_modules/hast-util-from-parse5/node_modules/unist-util-stringify-position": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
+ "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.2"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5/node_modules/vfile": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
+ "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5/node_modules/vfile-message": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
+ "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-has-property": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-1.0.4.tgz",
+ "integrity": "sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-is-element": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz",
+ "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-parse-selector": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz",
+ "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz",
+ "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "hast-util-from-parse5": "^8.0.0",
+ "hast-util-to-parse5": "^8.0.0",
+ "html-void-elements": "^3.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "parse5": "^7.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0",
+ "web-namespaces": "^2.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/hast-util-from-parse5": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.2.tgz",
+ "integrity": "sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "hastscript": "^9.0.0",
+ "property-information": "^6.0.0",
+ "vfile": "^6.0.0",
+ "vfile-location": "^5.0.0",
+ "web-namespaces": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/hast-util-parse-selector": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz",
+ "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/hastscript": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.0.tgz",
+ "integrity": "sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "hast-util-parse-selector": "^4.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/property-information": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
+ "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/vfile-location": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz",
+ "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/web-namespaces": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
+ "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/zwitch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-select": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/hast-util-select/-/hast-util-select-4.0.2.tgz",
+ "integrity": "sha512-8EEG2//bN5rrzboPWD2HdS3ugLijNioS1pqOTIolXNf67xxShYw4SQEmVXd3imiBG+U2bC2nVTySr/iRAA7Cjg==",
+ "license": "MIT",
+ "dependencies": {
+ "bcp-47-match": "^1.0.0",
+ "comma-separated-tokens": "^1.0.0",
+ "css-selector-parser": "^1.0.0",
+ "direction": "^1.0.0",
+ "hast-util-has-property": "^1.0.0",
+ "hast-util-is-element": "^1.0.0",
+ "hast-util-to-string": "^1.0.0",
+ "hast-util-whitespace": "^1.0.0",
+ "not": "^0.1.0",
+ "nth-check": "^2.0.0",
+ "property-information": "^5.0.0",
+ "space-separated-tokens": "^1.0.0",
+ "unist-util-visit": "^2.0.0",
+ "zwitch": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-select/node_modules/@types/unist": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
+ "license": "MIT"
+ },
+ "node_modules/hast-util-select/node_modules/unist-util-visit": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz",
+ "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^4.0.0",
+ "unist-util-visit-parents": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-select/node_modules/unist-util-visit-parents": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz",
+ "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-estree": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz",
+ "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "devlop": "^1.0.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.0",
+ "mdast-util-mdx-jsx": "^3.0.0",
+ "mdast-util-mdxjs-esm": "^2.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "style-to-object": "^0.4.0",
+ "unist-util-position": "^5.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-estree/node_modules/comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-estree/node_modules/hast-util-whitespace": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
+ "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-estree/node_modules/inline-style-parser": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz",
+ "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==",
+ "license": "MIT"
+ },
+ "node_modules/hast-util-to-estree/node_modules/property-information": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
+ "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-estree/node_modules/space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-estree/node_modules/style-to-object": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz",
+ "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==",
+ "license": "MIT",
+ "dependencies": {
+ "inline-style-parser": "0.1.1"
+ }
+ },
+ "node_modules/hast-util-to-estree/node_modules/zwitch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-html": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.3.tgz",
+ "integrity": "sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "ccount": "^2.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "hast-util-whitespace": "^3.0.0",
+ "html-void-elements": "^3.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "stringify-entities": "^4.0.0",
+ "zwitch": "^2.0.4"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-html/node_modules/comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-html/node_modules/hast-util-whitespace": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
+ "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-html/node_modules/property-information": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
+ "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-html/node_modules/space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-html/node_modules/zwitch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-jsx-runtime": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.2.tgz",
+ "integrity": "sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/unist": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "devlop": "^1.0.0",
+ "estree-util-is-identifier-name": "^3.0.0",
+ "hast-util-whitespace": "^3.0.0",
+ "mdast-util-mdx-expression": "^2.0.0",
+ "mdast-util-mdx-jsx": "^3.0.0",
+ "mdast-util-mdxjs-esm": "^2.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "style-to-object": "^1.0.0",
+ "unist-util-position": "^5.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-jsx-runtime/node_modules/comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-jsx-runtime/node_modules/hast-util-whitespace": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz",
+ "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-jsx-runtime/node_modules/property-information": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
+ "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-jsx-runtime/node_modules/space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-parse5": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz",
+ "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "comma-separated-tokens": "^2.0.0",
+ "devlop": "^1.0.0",
+ "property-information": "^6.0.0",
+ "space-separated-tokens": "^2.0.0",
+ "web-namespaces": "^2.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-parse5/node_modules/comma-separated-tokens": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz",
+ "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-parse5/node_modules/property-information": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz",
+ "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-parse5/node_modules/space-separated-tokens": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz",
+ "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-parse5/node_modules/web-namespaces": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz",
+ "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-parse5/node_modules/zwitch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/hast-util-to-string": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz",
+ "integrity": "sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-to-text": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz",
+ "integrity": "sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ==",
+ "license": "MIT",
+ "dependencies": {
+ "hast-util-is-element": "^1.0.0",
+ "repeat-string": "^1.0.0",
+ "unist-util-find-after": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-whitespace": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz",
+ "integrity": "sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hastscript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz",
+ "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "comma-separated-tokens": "^1.0.0",
+ "hast-util-parse-selector": "^2.0.0",
+ "property-information": "^5.0.0",
+ "space-separated-tokens": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hastscript/node_modules/@types/hast": {
+ "version": "2.3.10",
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz",
+ "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2"
+ }
+ },
+ "node_modules/hastscript/node_modules/@types/unist": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
+ "license": "MIT"
+ },
+ "node_modules/he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "license": "MIT",
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "node_modules/history": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
+ "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.1.2",
+ "loose-envify": "^1.2.0",
+ "resolve-pathname": "^3.0.0",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0",
+ "value-equal": "^1.0.1"
+ }
+ },
+ "node_modules/hogan.js": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz",
+ "integrity": "sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==",
+ "dependencies": {
+ "mkdirp": "0.3.0",
+ "nopt": "1.0.10"
+ },
+ "bin": {
+ "hulk": "bin/hulk"
+ }
+ },
+ "node_modules/hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "react-is": "^16.7.0"
+ }
+ },
+ "node_modules/hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+ "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "obuf": "^1.0.0",
+ "readable-stream": "^2.0.1",
+ "wbuf": "^1.1.0"
+ }
+ },
+ "node_modules/hpack.js/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "license": "MIT"
+ },
+ "node_modules/hpack.js/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/hpack.js/node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "license": "MIT"
+ },
+ "node_modules/hpack.js/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/html-entities": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz",
+ "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/mdevils"
+ },
+ {
+ "type": "patreon",
+ "url": "https://patreon.com/mdevils"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+ "license": "MIT"
+ },
+ "node_modules/html-minifier-terser": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz",
+ "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==",
+ "license": "MIT",
+ "dependencies": {
+ "camel-case": "^4.1.2",
+ "clean-css": "~5.3.2",
+ "commander": "^10.0.0",
+ "entities": "^4.4.0",
+ "param-case": "^3.0.4",
+ "relateurl": "^0.2.7",
+ "terser": "^5.15.1"
+ },
+ "bin": {
+ "html-minifier-terser": "cli.js"
+ },
+ "engines": {
+ "node": "^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/html-minifier-terser/node_modules/commander": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/html-tags": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
+ "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/html-void-elements": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz",
+ "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/html-webpack-plugin": {
+ "version": "5.6.3",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz",
+ "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/html-minifier-terser": "^6.0.0",
+ "html-minifier-terser": "^6.0.2",
+ "lodash": "^4.17.21",
+ "pretty-error": "^4.0.0",
+ "tapable": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/html-webpack-plugin"
+ },
+ "peerDependencies": {
+ "@rspack/core": "0.x || 1.x",
+ "webpack": "^5.20.0"
+ },
+ "peerDependenciesMeta": {
+ "@rspack/core": {
+ "optional": true
+ },
+ "webpack": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/html-webpack-plugin/node_modules/commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
+ "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==",
+ "license": "MIT",
+ "dependencies": {
+ "camel-case": "^4.1.2",
+ "clean-css": "^5.2.2",
+ "commander": "^8.3.0",
+ "he": "^1.2.0",
+ "param-case": "^3.0.4",
+ "relateurl": "^0.2.7",
+ "terser": "^5.10.0"
+ },
+ "bin": {
+ "html-minifier-terser": "cli.js"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/htmlparser2": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
+ "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "entities": "^4.4.0"
+ }
+ },
+ "node_modules/http-cache-semantics": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==",
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+ "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==",
+ "license": "MIT"
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/http-parser-js": {
+ "version": "0.5.8",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
+ "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==",
+ "license": "MIT"
+ },
+ "node_modules/http-proxy": {
+ "version": "1.18.1",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
+ "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+ "license": "MIT",
+ "dependencies": {
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/http-proxy-middleware": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz",
+ "integrity": "sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/http-proxy": "^1.17.8",
+ "http-proxy": "^1.18.1",
+ "is-glob": "^4.0.1",
+ "is-plain-obj": "^3.0.0",
+ "micromatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "@types/express": "^4.17.13"
+ },
+ "peerDependenciesMeta": {
+ "@types/express": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/is-plain-obj": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
+ "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/http2-wrapper": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz",
+ "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==",
+ "license": "MIT",
+ "dependencies": {
+ "quick-lru": "^5.1.1",
+ "resolve-alpn": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=10.19.0"
+ }
+ },
+ "node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/icss-utils": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz",
+ "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
+ "license": "ISC",
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/image-size": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz",
+ "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==",
+ "license": "MIT",
+ "dependencies": {
+ "queue": "6.0.2"
+ },
+ "bin": {
+ "image-size": "bin/image-size.js"
+ },
+ "engines": {
+ "node": ">=16.x"
+ }
+ },
+ "node_modules/immediate": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz",
+ "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==",
+ "license": "MIT"
+ },
+ "node_modules/immer": {
+ "version": "9.0.21",
+ "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz",
+ "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/immer"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "license": "MIT",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/import-lazy": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
+ "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/infima": {
+ "version": "0.2.0-alpha.45",
+ "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.45.tgz",
+ "integrity": "sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
+ },
+ "node_modules/ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "license": "ISC"
+ },
+ "node_modules/inline-style-parser": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz",
+ "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==",
+ "license": "MIT"
+ },
+ "node_modules/internmap": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
+ "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "node_modules/ipaddr.js": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz",
+ "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/is-alphabetical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz",
+ "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-alphanumerical": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz",
+ "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-alphabetical": "^2.0.0",
+ "is-decimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "license": "MIT"
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-buffer": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
+ "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/is-ci": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
+ "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ci-info": "^3.2.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
+ "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-decimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz",
+ "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-hexadecimal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz",
+ "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-installed-globally": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
+ "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
+ "license": "MIT",
+ "dependencies": {
+ "global-dirs": "^3.0.0",
+ "is-path-inside": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-npm": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz",
+ "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-path-cwd": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
+ "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz",
+ "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
+ "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-root": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz",
+ "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
+ "license": "MIT"
+ },
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-yarn-global": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz",
+ "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
+ "license": "MIT"
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "license": "ISC"
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jest-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
+ "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-worker": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+ "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "jest-util": "^29.7.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-worker/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/jiti": {
+ "version": "1.21.6",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
+ "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==",
+ "license": "MIT",
+ "bin": {
+ "jiti": "bin/jiti.js"
+ }
+ },
+ "node_modules/joi": {
+ "version": "17.13.3",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz",
+ "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@hapi/hoek": "^9.3.0",
+ "@hapi/topo": "^5.1.0",
+ "@sideway/address": "^4.1.5",
+ "@sideway/formula": "^3.0.1",
+ "@sideway/pinpoint": "^2.0.0"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "license": "MIT"
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "license": "MIT"
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "license": "MIT"
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "license": "MIT",
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/katex": {
+ "version": "0.16.11",
+ "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.11.tgz",
+ "integrity": "sha512-RQrI8rlHY92OLf3rho/Ts8i/XvjgguEjOkO1BEXcU3N8BqPpSzBNwV/G0Ukr+P/l3ivvJUE/Fa/CwbS6HesGNQ==",
+ "funding": [
+ "https://opencollective.com/katex",
+ "https://github.com/sponsors/katex"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "commander": "^8.3.0"
+ },
+ "bin": {
+ "katex": "cli.js"
+ }
+ },
+ "node_modules/katex/node_modules/commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "license": "MIT",
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/khroma": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/khroma/-/khroma-2.1.0.tgz",
+ "integrity": "sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw=="
+ },
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/kolorist": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
+ "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
+ "license": "MIT"
+ },
+ "node_modules/langium": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/langium/-/langium-3.0.0.tgz",
+ "integrity": "sha512-+Ez9EoiByeoTu/2BXmEaZ06iPNXM6thWJp02KfBO/raSMyCJ4jw7AkWWa+zBCTm0+Tw1Fj9FOxdqSskyN5nAwg==",
+ "license": "MIT",
+ "dependencies": {
+ "chevrotain": "~11.0.3",
+ "chevrotain-allstar": "~0.3.0",
+ "vscode-languageserver": "~9.0.1",
+ "vscode-languageserver-textdocument": "~1.0.11",
+ "vscode-uri": "~3.0.8"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/latest-version": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz",
+ "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==",
+ "license": "MIT",
+ "dependencies": {
+ "package-json": "^8.1.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/launch-editor": {
+ "version": "2.9.1",
+ "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz",
+ "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==",
+ "license": "MIT",
+ "dependencies": {
+ "picocolors": "^1.0.0",
+ "shell-quote": "^1.8.1"
+ }
+ },
+ "node_modules/layout-base": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/layout-base/-/layout-base-1.0.2.tgz",
+ "integrity": "sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==",
+ "license": "MIT"
+ },
+ "node_modules/leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/lilconfig": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
+ "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antonk52"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "license": "MIT"
+ },
+ "node_modules/linkify-it": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz",
+ "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "uc.micro": "^2.0.0"
+ }
+ },
+ "node_modules/loader-runner": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.11.5"
+ }
+ },
+ "node_modules/loader-utils": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=8.9.0"
+ }
+ },
+ "node_modules/local-pkg": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz",
+ "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "mlly": "^1.7.3",
+ "pkg-types": "^1.2.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz",
+ "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==",
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^6.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "license": "MIT"
+ },
+ "node_modules/lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
+ "license": "MIT"
+ },
+ "node_modules/longest-streak": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz",
+ "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/lowercase-keys": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
+ "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/lunr": {
+ "version": "2.3.9",
+ "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz",
+ "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==",
+ "license": "MIT"
+ },
+ "node_modules/lunr-languages": {
+ "version": "1.14.0",
+ "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.14.0.tgz",
+ "integrity": "sha512-hWUAb2KqM3L7J5bcrngszzISY4BxrXn/Xhbb9TTCJYEGqlR1nG67/M14sp09+PTIRklobrn57IAxcdcO/ZFyNA==",
+ "license": "MPL-1.1"
+ },
+ "node_modules/mark.js": {
+ "version": "8.11.1",
+ "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz",
+ "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==",
+ "license": "MIT"
+ },
+ "node_modules/markdown-extensions": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz",
+ "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/markdown-it": {
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz",
+ "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1",
+ "entities": "^4.4.0",
+ "linkify-it": "^5.0.0",
+ "mdurl": "^2.0.0",
+ "punycode.js": "^2.3.1",
+ "uc.micro": "^2.1.0"
+ },
+ "bin": {
+ "markdown-it": "bin/markdown-it.mjs"
+ }
+ },
+ "node_modules/markdown-table": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz",
+ "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/marked": {
+ "version": "13.0.3",
+ "resolved": "https://registry.npmjs.org/marked/-/marked-13.0.3.tgz",
+ "integrity": "sha512-rqRix3/TWzE9rIoFGIn8JmsVfhiuC8VIQ8IdX5TfzmeBucdY05/0UlzKaw0eVtpcN/OdVFpBk7CjKGo9iHJ/zA==",
+ "license": "MIT",
+ "bin": {
+ "marked": "bin/marked.js"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/mdast-util-directive": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz",
+ "integrity": "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "parse-entities": "^4.0.0",
+ "stringify-entities": "^4.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-find-and-replace": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz",
+ "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "escape-string-regexp": "^5.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/mdast-util-find-and-replace/node_modules/unist-util-is": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
+ "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-from-markdown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz",
+ "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark": "^4.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-from-markdown/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/mdast-util-frontmatter": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz",
+ "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "escape-string-regexp": "^5.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "micromark-extension-frontmatter": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/mdast-util-gfm": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz",
+ "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==",
+ "license": "MIT",
+ "dependencies": {
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-gfm-autolink-literal": "^2.0.0",
+ "mdast-util-gfm-footnote": "^2.0.0",
+ "mdast-util-gfm-strikethrough": "^2.0.0",
+ "mdast-util-gfm-table": "^2.0.0",
+ "mdast-util-gfm-task-list-item": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-autolink-literal": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz",
+ "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-find-and-replace": "^3.0.0",
+ "micromark-util-character": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/mdast-util-gfm-footnote": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz",
+ "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.1.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-strikethrough": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz",
+ "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-table": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz",
+ "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "markdown-table": "^3.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-gfm-task-list-item": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz",
+ "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz",
+ "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==",
+ "license": "MIT",
+ "dependencies": {
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-mdx-expression": "^2.0.0",
+ "mdast-util-mdx-jsx": "^3.0.0",
+ "mdast-util-mdxjs-esm": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx-expression": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz",
+ "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdx-jsx": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz",
+ "integrity": "sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "ccount": "^2.0.0",
+ "devlop": "^1.1.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "parse-entities": "^4.0.0",
+ "stringify-entities": "^4.0.0",
+ "unist-util-stringify-position": "^4.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-mdxjs-esm": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz",
+ "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree-jsx": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "devlop": "^1.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "mdast-util-to-markdown": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-phrasing": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz",
+ "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-phrasing/node_modules/unist-util-is": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
+ "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-hast": {
+ "version": "13.2.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz",
+ "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "@ungap/structured-clone": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "trim-lines": "^3.0.0",
+ "unist-util-position": "^5.0.0",
+ "unist-util-visit": "^5.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz",
+ "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "@types/unist": "^3.0.0",
+ "longest-streak": "^3.0.0",
+ "mdast-util-phrasing": "^4.0.0",
+ "mdast-util-to-string": "^4.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-decode-string": "^2.0.0",
+ "unist-util-visit": "^5.0.0",
+ "zwitch": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-markdown/node_modules/zwitch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
+ "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/mdast-util-to-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz",
+ "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdn-data": {
+ "version": "2.0.30",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
+ "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
+ "license": "CC0-1.0"
+ },
+ "node_modules/mdurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz",
+ "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/memfs": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz",
+ "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==",
+ "license": "Unlicense",
+ "dependencies": {
+ "fs-monkey": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
+ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "license": "MIT"
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/mermaid": {
+ "version": "11.4.1",
+ "resolved": "https://registry.npmjs.org/mermaid/-/mermaid-11.4.1.tgz",
+ "integrity": "sha512-Mb01JT/x6CKDWaxigwfZYuYmDZ6xtrNwNlidKZwkSrDaY9n90tdrJTV5Umk+wP1fZscGptmKFXHsXMDEVZ+Q6A==",
+ "license": "MIT",
+ "dependencies": {
+ "@braintree/sanitize-url": "^7.0.1",
+ "@iconify/utils": "^2.1.32",
+ "@mermaid-js/parser": "^0.3.0",
+ "@types/d3": "^7.4.3",
+ "cytoscape": "^3.29.2",
+ "cytoscape-cose-bilkent": "^4.1.0",
+ "cytoscape-fcose": "^2.2.0",
+ "d3": "^7.9.0",
+ "d3-sankey": "^0.12.3",
+ "dagre-d3-es": "7.0.11",
+ "dayjs": "^1.11.10",
+ "dompurify": "^3.2.1",
+ "katex": "^0.16.9",
+ "khroma": "^2.1.0",
+ "lodash-es": "^4.17.21",
+ "marked": "^13.0.2",
+ "roughjs": "^4.6.6",
+ "stylis": "^4.3.1",
+ "ts-dedent": "^2.2.0",
+ "uuid": "^9.0.1"
+ }
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/micromark": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.1.tgz",
+ "integrity": "sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@types/debug": "^4.0.0",
+ "debug": "^4.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-core-commonmark": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.2.tgz",
+ "integrity": "sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-factory-destination": "^2.0.0",
+ "micromark-factory-label": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-factory-title": "^2.0.0",
+ "micromark-factory-whitespace": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-html-tag-name": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-subtokenize": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-core-commonmark/node_modules/micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-core-commonmark/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-core-commonmark/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-extension-directive": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz",
+ "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-factory-whitespace": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "parse-entities": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-directive/node_modules/micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-directive/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-directive/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-extension-frontmatter": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz",
+ "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==",
+ "license": "MIT",
+ "dependencies": {
+ "fault": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-extension-gfm": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz",
+ "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==",
+ "license": "MIT",
+ "dependencies": {
+ "micromark-extension-gfm-autolink-literal": "^2.0.0",
+ "micromark-extension-gfm-footnote": "^2.0.0",
+ "micromark-extension-gfm-strikethrough": "^2.0.0",
+ "micromark-extension-gfm-table": "^2.0.0",
+ "micromark-extension-gfm-tagfilter": "^2.0.0",
+ "micromark-extension-gfm-task-list-item": "^2.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-autolink-literal": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz",
+ "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==",
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-extension-gfm-footnote": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz",
+ "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-normalize-identifier": "^2.0.0",
+ "micromark-util-sanitize-uri": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-extension-gfm-strikethrough": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz",
+ "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-classify-character": "^2.0.0",
+ "micromark-util-resolve-all": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-extension-gfm-table": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.0.tgz",
+ "integrity": "sha512-Ub2ncQv+fwD70/l4ou27b4YzfNaCJOvyX4HxXU15m7mpYY+rjuWzsLIPZHJL253Z643RpbcP1oeIJlQ/SKW67g==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-table/node_modules/micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-extension-gfm-tagfilter": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz",
+ "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==",
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-task-list-item": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz",
+ "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==",
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-extension-mdx-expression": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz",
+ "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-factory-mdx-expression": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-events-to-acorn": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-mdx-expression/node_modules/micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-extension-mdx-jsx": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz",
+ "integrity": "sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/acorn": "^4.0.0",
+ "@types/estree": "^1.0.0",
+ "devlop": "^1.0.0",
+ "estree-util-is-identifier-name": "^3.0.0",
+ "micromark-factory-mdx-expression": "^2.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-events-to-acorn": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-extension-mdx-md": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz",
+ "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==",
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-mdxjs": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz",
+ "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==",
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.0.0",
+ "acorn-jsx": "^5.0.0",
+ "micromark-extension-mdx-expression": "^3.0.0",
+ "micromark-extension-mdx-jsx": "^3.0.0",
+ "micromark-extension-mdx-md": "^2.0.0",
+ "micromark-extension-mdxjs-esm": "^3.0.0",
+ "micromark-util-combine-extensions": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-mdxjs-esm": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz",
+ "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-core-commonmark": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-events-to-acorn": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unist-util-position-from-estree": "^2.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-factory-destination": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz",
+ "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-destination/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-destination/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-factory-label": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz",
+ "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-label/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-label/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-factory-mdx-expression": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz",
+ "integrity": "sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "devlop": "^1.0.0",
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-events-to-acorn": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unist-util-position-from-estree": "^2.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "node_modules/micromark-factory-mdx-expression/node_modules/micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-factory-space": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz",
+ "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-factory-space/node_modules/micromark-util-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz",
+ "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-factory-title": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz",
+ "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-title/node_modules/micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-title/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-title/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-factory-whitespace": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz",
+ "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-factory-space": "^2.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-whitespace/node_modules/micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-whitespace/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-factory-whitespace/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-character": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz",
+ "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^1.0.0",
+ "micromark-util-types": "^1.0.0"
+ }
+ },
+ "node_modules/micromark-util-character/node_modules/micromark-util-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz",
+ "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-chunked": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz",
+ "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-chunked/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-classify-character": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz",
+ "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-classify-character/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-classify-character/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-combine-extensions": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz",
+ "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-numeric-character-reference": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz",
+ "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-numeric-character-reference/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-decode-string": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz",
+ "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decode-named-character-reference": "^1.0.0",
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-decode-numeric-character-reference": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-string/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-decode-string/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-encode": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz",
+ "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-events-to-acorn": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz",
+ "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@types/acorn": "^4.0.0",
+ "@types/estree": "^1.0.0",
+ "@types/unist": "^3.0.0",
+ "devlop": "^1.0.0",
+ "estree-util-visit": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "vfile-message": "^4.0.0"
+ }
+ },
+ "node_modules/micromark-util-events-to-acorn/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-html-tag-name": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz",
+ "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-normalize-identifier": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz",
+ "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-normalize-identifier/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-resolve-all": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz",
+ "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-sanitize-uri": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz",
+ "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-encode": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-subtokenize": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.3.tgz",
+ "integrity": "sha512-VXJJuNxYWSoYL6AJ6OQECCFGhIU2GGHMw8tahogePBrjkG8aCCas3ibkp7RnVOSTClg2is05/R7maAhF1XyQMg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "devlop": "^1.0.0",
+ "micromark-util-chunked": "^2.0.0",
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark-util-subtokenize/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-symbol": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz",
+ "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark-util-types": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.1.tgz",
+ "integrity": "sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromark/node_modules/micromark-factory-space": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz",
+ "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-character": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark/node_modules/micromark-util-character": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz",
+ "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "micromark-util-symbol": "^2.0.0",
+ "micromark-util-types": "^2.0.0"
+ }
+ },
+ "node_modules/micromark/node_modules/micromark-util-symbol": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz",
+ "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==",
+ "funding": [
+ {
+ "type": "GitHub Sponsors",
+ "url": "https://github.com/sponsors/unifiedjs"
+ },
+ {
+ "type": "OpenCollective",
+ "url": "https://opencollective.com/unified"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
+ "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.18",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
+ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "~1.33.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/mini-css-extract-plugin": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz",
+ "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==",
+ "license": "MIT",
+ "dependencies": {
+ "schema-utils": "^4.0.0",
+ "tapable": "^2.2.1"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.0.0"
+ }
+ },
+ "node_modules/minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "license": "ISC"
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz",
+ "integrity": "sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==",
+ "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)",
+ "license": "MIT/X11",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/mkdirp-classic": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
+ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
+ "license": "MIT"
+ },
+ "node_modules/mlly": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.3.tgz",
+ "integrity": "sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==",
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.14.0",
+ "pathe": "^1.1.2",
+ "pkg-types": "^1.2.1",
+ "ufo": "^1.5.4"
+ }
+ },
+ "node_modules/mrmime": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
+ "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/multicast-dns": {
+ "version": "7.2.5",
+ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz",
+ "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
+ "license": "MIT",
+ "dependencies": {
+ "dns-packet": "^5.2.2",
+ "thunky": "^1.0.2"
+ },
+ "bin": {
+ "multicast-dns": "cli.js"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.8",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
+ "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/napi-build-utils": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
+ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
+ "license": "MIT"
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
+ "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "license": "MIT"
+ },
+ "node_modules/no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "license": "MIT",
+ "dependencies": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/node-abi": {
+ "version": "3.71.0",
+ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz",
+ "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==",
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
+ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
+ "license": "MIT"
+ },
+ "node_modules/node-emoji": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz",
+ "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==",
+ "license": "MIT",
+ "dependencies": {
+ "@sindresorhus/is": "^4.6.0",
+ "char-regex": "^1.0.2",
+ "emojilib": "^2.4.0",
+ "skin-tone": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/node-forge": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
+ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
+ "license": "(BSD-3-Clause OR GPL-2.0)",
+ "engines": {
+ "node": ">= 6.13.0"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
+ "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==",
+ "license": "MIT"
+ },
+ "node_modules/nopt": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
+ "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==",
+ "license": "MIT",
+ "dependencies": {
+ "abbrev": "1"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-url": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz",
+ "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/not": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/not/-/not-0.1.0.tgz",
+ "integrity": "sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA=="
+ },
+ "node_modules/npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/nprogress": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz",
+ "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==",
+ "license": "MIT"
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/null-loader": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz",
+ "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==",
+ "license": "MIT",
+ "dependencies": {
+ "loader-utils": "^2.0.0",
+ "schema-utils": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/null-loader/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/null-loader/node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/null-loader/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "license": "MIT"
+ },
+ "node_modules/null-loader/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
+ "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/obuf": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
+ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
+ "license": "MIT"
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "license": "MIT",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/oniguruma-to-es": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-0.7.0.tgz",
+ "integrity": "sha512-HRaRh09cE0gRS3+wi2zxekB+I5L8C/gN60S+vb11eADHUaB/q4u8wGGOX3GvwvitG8ixaeycZfeoyruKQzUgNg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex-xs": "^1.0.0",
+ "regex": "^5.0.2",
+ "regex-recursion": "^4.3.0"
+ }
+ },
+ "node_modules/open": {
+ "version": "8.4.2",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
+ "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
+ "license": "MIT",
+ "dependencies": {
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/opener": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
+ "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
+ "license": "(WTFPL OR MIT)",
+ "bin": {
+ "opener": "bin/opener-bin.js"
+ }
+ },
+ "node_modules/p-cancelable": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
+ "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz",
+ "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==",
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^1.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz",
+ "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==",
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "license": "MIT",
+ "dependencies": {
+ "aggregate-error": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-retry": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz",
+ "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/retry": "0.12.0",
+ "retry": "^0.13.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/package-json": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz",
+ "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==",
+ "license": "MIT",
+ "dependencies": {
+ "got": "^12.1.0",
+ "registry-auth-token": "^5.0.1",
+ "registry-url": "^6.0.0",
+ "semver": "^7.3.7"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/package-manager-detector": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/package-manager-detector/-/package-manager-detector-0.2.6.tgz",
+ "integrity": "sha512-9vPH3qooBlYRJdmdYP00nvjZOulm40r5dhtal8st18ctf+6S1k7pi5yIHLvI4w5D70x0Y+xdVD9qITH0QO/A8A==",
+ "license": "MIT"
+ },
+ "node_modules/param-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz",
+ "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
+ "license": "MIT",
+ "dependencies": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-entities": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz",
+ "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "character-entities": "^2.0.0",
+ "character-entities-legacy": "^3.0.0",
+ "character-reference-invalid": "^2.0.0",
+ "decode-named-character-reference": "^1.0.0",
+ "is-alphanumerical": "^2.0.0",
+ "is-decimal": "^2.0.0",
+ "is-hexadecimal": "^2.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse-entities/node_modules/@types/unist": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
+ "license": "MIT"
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parse-numeric-range": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz",
+ "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==",
+ "license": "ISC"
+ },
+ "node_modules/parse5": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz",
+ "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==",
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^4.5.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parse5-htmlparser2-tree-adapter": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz",
+ "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==",
+ "license": "MIT",
+ "dependencies": {
+ "domhandler": "^5.0.3",
+ "parse5": "^7.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "license": "MIT",
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/path-data-parser": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/path-data-parser/-/path-data-parser-0.1.0.tgz",
+ "integrity": "sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==",
+ "license": "MIT"
+ },
+ "node_modules/path-exists": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz",
+ "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
+ "license": "(WTFPL OR MIT)"
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "license": "MIT"
+ },
+ "node_modules/path-to-regexp": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz",
+ "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==",
+ "license": "MIT",
+ "dependencies": {
+ "isarray": "0.0.1"
+ }
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pathe": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
+ "license": "MIT"
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pkg-dir": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz",
+ "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==",
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pkg-types": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.1.tgz",
+ "integrity": "sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==",
+ "license": "MIT",
+ "dependencies": {
+ "confbox": "^0.1.8",
+ "mlly": "^1.7.2",
+ "pathe": "^1.1.2"
+ }
+ },
+ "node_modules/pkg-up": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
+ "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-up/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-up/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-up/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pkg-up/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-up/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/points-on-curve": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/points-on-curve/-/points-on-curve-0.2.0.tgz",
+ "integrity": "sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==",
+ "license": "MIT"
+ },
+ "node_modules/points-on-path": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/points-on-path/-/points-on-path-0.2.1.tgz",
+ "integrity": "sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==",
+ "license": "MIT",
+ "dependencies": {
+ "path-data-parser": "0.1.0",
+ "points-on-curve": "0.2.0"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.49",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
+ "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-attribute-case-insensitive": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz",
+ "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-calc": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz",
+ "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.11",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.2"
+ }
+ },
+ "node_modules/postcss-clamp": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz",
+ "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=7.6.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.6"
+ }
+ },
+ "node_modules/postcss-color-functional-notation": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.6.tgz",
+ "integrity": "sha512-wLXvm8RmLs14Z2nVpB4CWlnvaWPRcOZFltJSlcbYwSJ1EDZKsKDhPKIMecCnuU054KSmlmubkqczmm6qBPCBhA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-color-parser": "^3.0.6",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "@csstools/postcss-progressive-custom-properties": "^4.0.0",
+ "@csstools/utilities": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-color-hex-alpha": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz",
+ "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/utilities": "^2.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-color-rebeccapurple": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz",
+ "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/utilities": "^2.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-colormin": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz",
+ "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.0",
+ "caniuse-api": "^3.0.0",
+ "colord": "^2.9.3",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-convert-values": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz",
+ "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-custom-media": {
+ "version": "11.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.5.tgz",
+ "integrity": "sha512-SQHhayVNgDvSAdX9NQ/ygcDQGEY+aSF4b/96z7QUX6mqL5yl/JgG/DywcF6fW9XbnCRE+aVYk+9/nqGuzOPWeQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/cascade-layer-name-parser": "^2.0.4",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "@csstools/media-query-list-parser": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-custom-properties": {
+ "version": "14.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.4.tgz",
+ "integrity": "sha512-QnW8FCCK6q+4ierwjnmXF9Y9KF8q0JkbgVfvQEMa93x1GT8FvOiUevWCN2YLaOWyByeDX8S6VFbZEeWoAoXs2A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/cascade-layer-name-parser": "^2.0.4",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "@csstools/utilities": "^2.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-custom-selectors": {
+ "version": "8.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.4.tgz",
+ "integrity": "sha512-ASOXqNvDCE0dAJ/5qixxPeL1aOVGHGW2JwSy7HyjWNbnWTQCl+fDc968HY1jCmZI0+BaYT5CxsOiUhavpG/7eg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@csstools/cascade-layer-name-parser": "^2.0.4",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-dir-pseudo-class": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz",
+ "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-discard-comments": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz",
+ "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-discard-duplicates": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz",
+ "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-discard-empty": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz",
+ "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-discard-overridden": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz",
+ "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-discard-unused": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz",
+ "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.16"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-double-position-gradients": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.0.tgz",
+ "integrity": "sha512-JkIGah3RVbdSEIrcobqj4Gzq0h53GG4uqDPsho88SgY84WnpkTpI0k50MFK/sX7XqVisZ6OqUfFnoUO6m1WWdg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/postcss-progressive-custom-properties": "^4.0.0",
+ "@csstools/utilities": "^2.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-focus-visible": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz",
+ "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-focus-within": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz",
+ "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-font-variant": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz",
+ "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==",
+ "license": "MIT",
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-gap-properties": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz",
+ "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-image-set-function": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz",
+ "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/utilities": "^2.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-lab-function": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.6.tgz",
+ "integrity": "sha512-HPwvsoK7C949vBZ+eMyvH2cQeMr3UREoHvbtra76/UhDuiViZH6pir+z71UaJQohd7VDSVUdR6TkWYKExEc9aQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/css-color-parser": "^3.0.6",
+ "@csstools/css-parser-algorithms": "^3.0.4",
+ "@csstools/css-tokenizer": "^3.0.3",
+ "@csstools/postcss-progressive-custom-properties": "^4.0.0",
+ "@csstools/utilities": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-loader": {
+ "version": "7.3.4",
+ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz",
+ "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==",
+ "license": "MIT",
+ "dependencies": {
+ "cosmiconfig": "^8.3.5",
+ "jiti": "^1.20.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">= 14.15.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "postcss": "^7.0.0 || ^8.0.1",
+ "webpack": "^5.0.0"
+ }
+ },
+ "node_modules/postcss-logical": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.0.0.tgz",
+ "integrity": "sha512-HpIdsdieClTjXLOyYdUPAX/XQASNIwdKt5hoZW08ZOAiI+tbV0ta1oclkpVkW5ANU+xJvk3KkA0FejkjGLXUkg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-merge-idents": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz",
+ "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==",
+ "license": "MIT",
+ "dependencies": {
+ "cssnano-utils": "^4.0.2",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-merge-longhand": {
+ "version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz",
+ "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0",
+ "stylehacks": "^6.1.1"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-merge-rules": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz",
+ "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.0",
+ "caniuse-api": "^3.0.0",
+ "cssnano-utils": "^4.0.2",
+ "postcss-selector-parser": "^6.0.16"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-minify-font-values": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz",
+ "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-minify-gradients": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz",
+ "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==",
+ "license": "MIT",
+ "dependencies": {
+ "colord": "^2.9.3",
+ "cssnano-utils": "^4.0.2",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-minify-params": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz",
+ "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.0",
+ "cssnano-utils": "^4.0.2",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-minify-selectors": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz",
+ "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.16"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-modules-extract-imports": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz",
+ "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==",
+ "license": "ISC",
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-modules-local-by-default": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.1.0.tgz",
+ "integrity": "sha512-rm0bdSv4jC3BDma3s9H19ZddW0aHX6EoqwDYU2IfZhRN+53QrufTRo2IdkAbRqLx4R2IYbZnbjKKxg4VN5oU9Q==",
+ "license": "MIT",
+ "dependencies": {
+ "icss-utils": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-modules-scope": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz",
+ "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==",
+ "license": "ISC",
+ "dependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-modules-values": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
+ "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
+ "license": "ISC",
+ "dependencies": {
+ "icss-utils": "^5.0.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-nesting": {
+ "version": "13.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.1.tgz",
+ "integrity": "sha512-VbqqHkOBOt4Uu3G8Dm8n6lU5+9cJFxiuty9+4rcoyRPO9zZS1JIs6td49VIoix3qYqELHlJIn46Oih9SAKo+yQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/selector-resolve-nested": "^3.0.0",
+ "@csstools/selector-specificity": "^5.0.0",
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.0.0.tgz",
+ "integrity": "sha512-ZoK24Yku6VJU1gS79a5PFmC8yn3wIapiKmPgun0hZgEI5AOqgH2kiPRsPz1qkGv4HL+wuDLH83yQyk6inMYrJQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ }
+ },
+ "node_modules/postcss-nesting/node_modules/@csstools/selector-specificity": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz",
+ "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ }
+ },
+ "node_modules/postcss-nesting/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-normalize-charset": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz",
+ "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-normalize-display-values": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz",
+ "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-normalize-positions": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz",
+ "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-normalize-repeat-style": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz",
+ "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-normalize-string": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz",
+ "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-normalize-timing-functions": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz",
+ "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-normalize-unicode": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz",
+ "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-normalize-url": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz",
+ "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-normalize-whitespace": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz",
+ "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-opacity-percentage": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz",
+ "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==",
+ "funding": [
+ {
+ "type": "kofi",
+ "url": "https://ko-fi.com/mrcgrtz"
+ },
+ {
+ "type": "liberapay",
+ "url": "https://liberapay.com/mrcgrtz"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-ordered-values": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz",
+ "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==",
+ "license": "MIT",
+ "dependencies": {
+ "cssnano-utils": "^4.0.2",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-overflow-shorthand": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz",
+ "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-page-break": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz",
+ "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "postcss": "^8"
+ }
+ },
+ "node_modules/postcss-place": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz",
+ "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-preset-env": {
+ "version": "10.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.1.1.tgz",
+ "integrity": "sha512-wqqsnBFD6VIwcHHRbhjTOcOi4qRVlB26RwSr0ordPj7OubRRxdWebv/aLjKLRR8zkZrbxZyuus03nOIgC5elMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/postcss-cascade-layers": "^5.0.1",
+ "@csstools/postcss-color-function": "^4.0.6",
+ "@csstools/postcss-color-mix-function": "^3.0.6",
+ "@csstools/postcss-content-alt-text": "^2.0.4",
+ "@csstools/postcss-exponential-functions": "^2.0.5",
+ "@csstools/postcss-font-format-keywords": "^4.0.0",
+ "@csstools/postcss-gamut-mapping": "^2.0.6",
+ "@csstools/postcss-gradients-interpolation-method": "^5.0.6",
+ "@csstools/postcss-hwb-function": "^4.0.6",
+ "@csstools/postcss-ic-unit": "^4.0.0",
+ "@csstools/postcss-initial": "^2.0.0",
+ "@csstools/postcss-is-pseudo-class": "^5.0.1",
+ "@csstools/postcss-light-dark-function": "^2.0.7",
+ "@csstools/postcss-logical-float-and-clear": "^3.0.0",
+ "@csstools/postcss-logical-overflow": "^2.0.0",
+ "@csstools/postcss-logical-overscroll-behavior": "^2.0.0",
+ "@csstools/postcss-logical-resize": "^3.0.0",
+ "@csstools/postcss-logical-viewport-units": "^3.0.3",
+ "@csstools/postcss-media-minmax": "^2.0.5",
+ "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.4",
+ "@csstools/postcss-nested-calc": "^4.0.0",
+ "@csstools/postcss-normalize-display-values": "^4.0.0",
+ "@csstools/postcss-oklab-function": "^4.0.6",
+ "@csstools/postcss-progressive-custom-properties": "^4.0.0",
+ "@csstools/postcss-random-function": "^1.0.1",
+ "@csstools/postcss-relative-color-syntax": "^3.0.6",
+ "@csstools/postcss-scope-pseudo-class": "^4.0.1",
+ "@csstools/postcss-sign-functions": "^1.1.0",
+ "@csstools/postcss-stepped-value-functions": "^4.0.5",
+ "@csstools/postcss-text-decoration-shorthand": "^4.0.1",
+ "@csstools/postcss-trigonometric-functions": "^4.0.5",
+ "@csstools/postcss-unset-value": "^4.0.0",
+ "autoprefixer": "^10.4.19",
+ "browserslist": "^4.23.1",
+ "css-blank-pseudo": "^7.0.1",
+ "css-has-pseudo": "^7.0.1",
+ "css-prefers-color-scheme": "^10.0.0",
+ "cssdb": "^8.2.1",
+ "postcss-attribute-case-insensitive": "^7.0.1",
+ "postcss-clamp": "^4.1.0",
+ "postcss-color-functional-notation": "^7.0.6",
+ "postcss-color-hex-alpha": "^10.0.0",
+ "postcss-color-rebeccapurple": "^10.0.0",
+ "postcss-custom-media": "^11.0.5",
+ "postcss-custom-properties": "^14.0.4",
+ "postcss-custom-selectors": "^8.0.4",
+ "postcss-dir-pseudo-class": "^9.0.1",
+ "postcss-double-position-gradients": "^6.0.0",
+ "postcss-focus-visible": "^10.0.1",
+ "postcss-focus-within": "^9.0.1",
+ "postcss-font-variant": "^5.0.0",
+ "postcss-gap-properties": "^6.0.0",
+ "postcss-image-set-function": "^7.0.0",
+ "postcss-lab-function": "^7.0.6",
+ "postcss-logical": "^8.0.0",
+ "postcss-nesting": "^13.0.1",
+ "postcss-opacity-percentage": "^3.0.0",
+ "postcss-overflow-shorthand": "^6.0.0",
+ "postcss-page-break": "^3.0.4",
+ "postcss-place": "^10.0.0",
+ "postcss-pseudo-class-any-link": "^10.0.1",
+ "postcss-replace-overflow-wrap": "^4.0.0",
+ "postcss-selector-not": "^8.0.1"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-pseudo-class-any-link": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz",
+ "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-reduce-idents": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz",
+ "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-reduce-initial": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz",
+ "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.0",
+ "caniuse-api": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-reduce-transforms": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz",
+ "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-replace-overflow-wrap": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz",
+ "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==",
+ "license": "MIT",
+ "peerDependencies": {
+ "postcss": "^8.0.3"
+ }
+ },
+ "node_modules/postcss-selector-not": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz",
+ "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
+ "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
+ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-sort-media-queries": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz",
+ "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==",
+ "license": "MIT",
+ "dependencies": {
+ "sort-css-media-queries": "2.2.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.23"
+ }
+ },
+ "node_modules/postcss-svgo": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz",
+ "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0",
+ "svgo": "^3.2.0"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >= 18"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-unique-selectors": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz",
+ "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==",
+ "license": "MIT",
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.16"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "license": "MIT"
+ },
+ "node_modules/postcss-zindex": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz",
+ "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/prebuild-install": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz",
+ "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "detect-libc": "^2.0.0",
+ "expand-template": "^2.0.3",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.3",
+ "mkdirp-classic": "^0.5.3",
+ "napi-build-utils": "^1.0.1",
+ "node-abi": "^3.3.0",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^4.0.0",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0"
+ },
+ "bin": {
+ "prebuild-install": "bin.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/prebuild-install/node_modules/tar-fs": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
+ "license": "MIT",
+ "dependencies": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ }
+ },
+ "node_modules/prebuild-install/node_modules/tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "license": "MIT",
+ "dependencies": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pretty-error": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz",
+ "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==",
+ "license": "MIT",
+ "dependencies": {
+ "lodash": "^4.17.20",
+ "renderkid": "^3.0.0"
+ }
+ },
+ "node_modules/pretty-time": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz",
+ "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/prism-react-renderer": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.3.1.tgz",
+ "integrity": "sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/prismjs": "^1.26.0",
+ "clsx": "^2.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.0.0"
+ }
+ },
+ "node_modules/prismjs": {
+ "version": "1.29.0",
+ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
+ "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "license": "MIT"
+ },
+ "node_modules/prompts": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "node_modules/property-information": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz",
+ "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==",
+ "license": "MIT",
+ "dependencies": {
+ "xtend": "^4.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/proto-list": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
+ "license": "ISC"
+ },
+ "node_modules/proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "license": "MIT",
+ "dependencies": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/proxy-addr/node_modules/ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/pump": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
+ "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
+ "license": "MIT",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/punycode.js": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
+ "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pupa": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz",
+ "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==",
+ "license": "MIT",
+ "dependencies": {
+ "escape-goat": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/queue": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
+ "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "~2.0.3"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/queue-tick": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz",
+ "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==",
+ "license": "MIT"
+ },
+ "node_modules/quick-lru": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
+ "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/raw-body/node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/raw-body/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/rc/node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
+ "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dev-utils": {
+ "version": "12.0.1",
+ "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
+ "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.16.0",
+ "address": "^1.1.2",
+ "browserslist": "^4.18.1",
+ "chalk": "^4.1.2",
+ "cross-spawn": "^7.0.3",
+ "detect-port-alt": "^1.1.6",
+ "escape-string-regexp": "^4.0.0",
+ "filesize": "^8.0.6",
+ "find-up": "^5.0.0",
+ "fork-ts-checker-webpack-plugin": "^6.5.0",
+ "global-modules": "^2.0.0",
+ "globby": "^11.0.4",
+ "gzip-size": "^6.0.0",
+ "immer": "^9.0.7",
+ "is-root": "^2.1.0",
+ "loader-utils": "^3.2.0",
+ "open": "^8.4.0",
+ "pkg-up": "^3.1.0",
+ "prompts": "^2.4.2",
+ "react-error-overlay": "^6.0.11",
+ "recursive-readdir": "^2.2.2",
+ "shell-quote": "^1.7.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/loader-utils": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz",
+ "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12.13.0"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz",
+ "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "scheduler": "^0.23.2"
+ },
+ "peerDependencies": {
+ "react": "^18.3.1"
+ }
+ },
+ "node_modules/react-error-overlay": {
+ "version": "6.0.11",
+ "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
+ "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==",
+ "license": "MIT"
+ },
+ "node_modules/react-fast-compare": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz",
+ "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==",
+ "license": "MIT"
+ },
+ "node_modules/react-helmet-async": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz",
+ "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@babel/runtime": "^7.12.5",
+ "invariant": "^2.2.4",
+ "prop-types": "^15.7.2",
+ "react-fast-compare": "^3.2.0",
+ "shallowequal": "^1.1.0"
+ },
+ "peerDependencies": {
+ "react": "^16.6.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
+ "license": "MIT"
+ },
+ "node_modules/react-json-view-lite": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.5.0.tgz",
+ "integrity": "sha512-nWqA1E4jKPklL2jvHWs6s+7Na0qNgw9HCP6xehdQJeg6nPBTFZgGwyko9Q0oj+jQWKTTVRS30u0toM5wiuL3iw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14"
+ },
+ "peerDependencies": {
+ "react": "^16.13.1 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/react-loadable": {
+ "name": "@docusaurus/react-loadable",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz",
+ "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/react": "*"
+ },
+ "peerDependencies": {
+ "react": "*"
+ }
+ },
+ "node_modules/react-loadable-ssr-addon-v5-slorber": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz",
+ "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.10.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "peerDependencies": {
+ "react-loadable": "*",
+ "webpack": ">=4.41.1 || 5.x"
+ }
+ },
+ "node_modules/react-router": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz",
+ "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.12.13",
+ "history": "^4.9.0",
+ "hoist-non-react-statics": "^3.1.0",
+ "loose-envify": "^1.3.1",
+ "path-to-regexp": "^1.7.0",
+ "prop-types": "^15.6.2",
+ "react-is": "^16.6.0",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=15"
+ }
+ },
+ "node_modules/react-router-config": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz",
+ "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.1.2"
+ },
+ "peerDependencies": {
+ "react": ">=15",
+ "react-router": ">=5"
+ }
+ },
+ "node_modules/react-router-dom": {
+ "version": "6.22.1",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.1.tgz",
+ "integrity": "sha512-iwMyyyrbL7zkKY7MRjOVRy+TMnS/OPusaFVxM2P11x9dzSzGmLsebkCvYirGq0DWB9K9hOspHYYtDz33gE5Duw==",
+ "license": "MIT",
+ "dependencies": {
+ "@remix-run/router": "1.15.1",
+ "react-router": "6.22.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8",
+ "react-dom": ">=16.8"
+ }
+ },
+ "node_modules/react-router-dom/node_modules/react-router": {
+ "version": "6.22.1",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.1.tgz",
+ "integrity": "sha512-0pdoRGwLtemnJqn1K0XHUbnKiX0S4X8CgvVVmHGOWmofESj31msHo/1YiqcJWK7Wxfq2a4uvvtS01KAQyWK/CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@remix-run/router": "1.15.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=16.8"
+ }
+ },
+ "node_modules/react-waypoint": {
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/react-waypoint/-/react-waypoint-10.3.0.tgz",
+ "integrity": "sha512-iF1y2c1BsoXuEGz08NoahaLFIGI9gTUAAOKip96HUmylRT6DUtpgoBPjk/Y8dfcFVmfVDvUzWjNXpZyKTOV0SQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.12.5",
+ "consolidated-events": "^1.1.0 || ^2.0.0",
+ "prop-types": "^15.0.0",
+ "react-is": "^17.0.1 || ^18.0.0"
+ },
+ "peerDependencies": {
+ "react": "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/react-waypoint/node_modules/react-is": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
+ "license": "MIT"
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/reading-time": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz",
+ "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==",
+ "license": "MIT"
+ },
+ "node_modules/rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
+ "dependencies": {
+ "resolve": "^1.1.6"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/recma-build-jsx": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz",
+ "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-util-build-jsx": "^3.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/recma-jsx": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz",
+ "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==",
+ "license": "MIT",
+ "dependencies": {
+ "acorn-jsx": "^5.0.0",
+ "estree-util-to-js": "^2.0.0",
+ "recma-parse": "^1.0.0",
+ "recma-stringify": "^1.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/recma-parse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz",
+ "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "esast-util-from-js": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/recma-stringify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz",
+ "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-util-to-js": "^2.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/recursive-readdir": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz",
+ "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==",
+ "license": "MIT",
+ "dependencies": {
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/regenerate": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
+ "license": "MIT"
+ },
+ "node_modules/regenerate-unicode-properties": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz",
+ "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==",
+ "license": "MIT",
+ "dependencies": {
+ "regenerate": "^1.4.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
+ "license": "MIT"
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
+ "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "node_modules/regex": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/regex/-/regex-5.0.2.tgz",
+ "integrity": "sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "regex-utilities": "^2.3.0"
+ }
+ },
+ "node_modules/regex-recursion": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-4.3.0.tgz",
+ "integrity": "sha512-5LcLnizwjcQ2ALfOj95MjcatxyqF5RPySx9yT+PaXu3Gox2vyAtLDjHB8NTJLtMGkvyau6nI3CfpwFCjPUIs/A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "regex-utilities": "^2.3.0"
+ }
+ },
+ "node_modules/regex-utilities": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz",
+ "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/regexpu-core": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz",
+ "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==",
+ "license": "MIT",
+ "dependencies": {
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.2.0",
+ "regjsgen": "^0.8.0",
+ "regjsparser": "^0.12.0",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/registry-auth-token": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.3.tgz",
+ "integrity": "sha512-1bpc9IyC+e+CNFRaWyn77tk4xGG4PPUyfakSmA6F6cvUDjrm58dfyJ3II+9yb10EDkHoy1LaPSmHaWLOH3m6HA==",
+ "license": "MIT",
+ "dependencies": {
+ "@pnpm/npm-conf": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/registry-url": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz",
+ "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==",
+ "license": "MIT",
+ "dependencies": {
+ "rc": "1.2.8"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==",
+ "license": "MIT"
+ },
+ "node_modules/regjsparser": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz",
+ "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "jsesc": "~3.0.2"
+ },
+ "bin": {
+ "regjsparser": "bin/parser"
+ }
+ },
+ "node_modules/rehype-parse": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-7.0.1.tgz",
+ "integrity": "sha512-fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw==",
+ "license": "MIT",
+ "dependencies": {
+ "hast-util-from-parse5": "^6.0.0",
+ "parse5": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/rehype-parse/node_modules/parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
+ "license": "MIT"
+ },
+ "node_modules/rehype-raw": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz",
+ "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "hast-util-raw": "^9.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/rehype-recma": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz",
+ "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "@types/hast": "^3.0.0",
+ "hast-util-to-estree": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/remark-directive": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.0.tgz",
+ "integrity": "sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-directive": "^3.0.0",
+ "micromark-extension-directive": "^3.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-emoji": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz",
+ "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.2",
+ "emoticon": "^4.0.1",
+ "mdast-util-find-and-replace": "^3.0.1",
+ "node-emoji": "^2.1.0",
+ "unified": "^11.0.4"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/remark-frontmatter": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz",
+ "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-frontmatter": "^2.0.0",
+ "micromark-extension-frontmatter": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-gfm": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz",
+ "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-gfm": "^3.0.0",
+ "micromark-extension-gfm": "^3.0.0",
+ "remark-parse": "^11.0.0",
+ "remark-stringify": "^11.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-mdx": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz",
+ "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==",
+ "license": "MIT",
+ "dependencies": {
+ "mdast-util-mdx": "^3.0.0",
+ "micromark-extension-mdxjs": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-parse": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz",
+ "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-from-markdown": "^2.0.0",
+ "micromark-util-types": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-rehype": {
+ "version": "11.1.1",
+ "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz",
+ "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/hast": "^3.0.0",
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-hast": "^13.0.0",
+ "unified": "^11.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-stringify": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz",
+ "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/mdast": "^4.0.0",
+ "mdast-util-to-markdown": "^2.0.0",
+ "unified": "^11.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/renderkid": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz",
+ "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==",
+ "license": "MIT",
+ "dependencies": {
+ "css-select": "^4.1.3",
+ "dom-converter": "^0.2.0",
+ "htmlparser2": "^6.1.0",
+ "lodash": "^4.17.21",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "node_modules/renderkid/node_modules/css-select": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/renderkid/node_modules/dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/renderkid/node_modules/domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "domelementtype": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/renderkid/node_modules/domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/renderkid/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "license": "BSD-2-Clause",
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/renderkid/node_modules/htmlparser2": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
+ "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.0.0",
+ "domutils": "^2.5.2",
+ "entities": "^2.0.0"
+ }
+ },
+ "node_modules/repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-like": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz",
+ "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
+ "license": "MIT"
+ },
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-alpn": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
+ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==",
+ "license": "MIT"
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve-pathname": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
+ "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==",
+ "license": "MIT"
+ },
+ "node_modules/responselike": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz",
+ "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==",
+ "license": "MIT",
+ "dependencies": {
+ "lowercase-keys": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/retry": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
+ "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/robust-predicates": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
+ "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==",
+ "license": "Unlicense"
+ },
+ "node_modules/roughjs": {
+ "version": "4.6.6",
+ "resolved": "https://registry.npmjs.org/roughjs/-/roughjs-4.6.6.tgz",
+ "integrity": "sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==",
+ "license": "MIT",
+ "dependencies": {
+ "hachure-fill": "^0.5.2",
+ "path-data-parser": "^0.1.0",
+ "points-on-curve": "^0.2.0",
+ "points-on-path": "^0.2.1"
+ }
+ },
+ "node_modules/rtl-detect": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.1.2.tgz",
+ "integrity": "sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/rtlcss": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz",
+ "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==",
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.21",
+ "strip-json-comments": "^3.1.1"
+ },
+ "bin": {
+ "rtlcss": "bin/rtlcss.js"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/rw": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
+ "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "license": "MIT"
+ },
+ "node_modules/sax": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz",
+ "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
+ "license": "ISC"
+ },
+ "node_modules/scheduler": {
+ "version": "0.23.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
+ "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==",
+ "license": "MIT",
+ "dependencies": {
+ "loose-envify": "^1.1.0"
+ }
+ },
+ "node_modules/schema-utils": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
+ "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.9.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.1.0"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/search-insights": {
+ "version": "2.17.3",
+ "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz",
+ "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==",
+ "license": "MIT",
+ "peer": true
+ },
+ "node_modules/section-matter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz",
+ "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==",
+ "license": "MIT",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+ "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==",
+ "license": "MIT"
+ },
+ "node_modules/selfsigned": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz",
+ "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node-forge": "^1.3.0",
+ "node-forge": "^1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/semver": {
+ "version": "7.6.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
+ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/semver-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz",
+ "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==",
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/send": {
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
+ "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/send/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/send/node_modules/debug/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
+ },
+ "node_modules/send/node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/send/node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz",
+ "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/serve-handler": {
+ "version": "6.1.6",
+ "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.6.tgz",
+ "integrity": "sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==",
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.0.0",
+ "content-disposition": "0.5.2",
+ "mime-types": "2.1.18",
+ "minimatch": "3.1.2",
+ "path-is-inside": "1.0.2",
+ "path-to-regexp": "3.3.0",
+ "range-parser": "1.2.0"
+ }
+ },
+ "node_modules/serve-handler/node_modules/path-to-regexp": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz",
+ "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==",
+ "license": "MIT"
+ },
+ "node_modules/serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
+ "license": "MIT",
+ "dependencies": {
+ "accepts": "~1.3.4",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "~1.0.3",
+ "http-errors": "~1.6.2",
+ "mime-types": "~2.1.17",
+ "parseurl": "~1.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/serve-index/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/serve-index/node_modules/depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serve-index/node_modules/http-errors": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
+ "license": "MIT",
+ "dependencies": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serve-index/node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
+ "license": "ISC"
+ },
+ "node_modules/serve-index/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "license": "MIT"
+ },
+ "node_modules/serve-index/node_modules/setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+ "license": "ISC"
+ },
+ "node_modules/serve-index/node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serve-static": {
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
+ "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
+ "license": "MIT",
+ "dependencies": {
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.19.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "license": "ISC"
+ },
+ "node_modules/shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shallowequal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
+ "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==",
+ "license": "MIT"
+ },
+ "node_modules/sharp": {
+ "version": "0.32.6",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
+ "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "color": "^4.2.3",
+ "detect-libc": "^2.0.2",
+ "node-addon-api": "^6.1.0",
+ "prebuild-install": "^7.1.1",
+ "semver": "^7.5.4",
+ "simple-get": "^4.0.1",
+ "tar-fs": "^3.0.4",
+ "tunnel-agent": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=14.15.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/libvips"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shell-quote": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz",
+ "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/shelljs": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
+ "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ },
+ "bin": {
+ "shjs": "bin/shjs"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/shiki": {
+ "version": "1.24.0",
+ "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.24.0.tgz",
+ "integrity": "sha512-qIneep7QRwxRd5oiHb8jaRzH15V/S8F3saCXOdjwRLgozZJr5x2yeBhQtqkO3FSzQDwYEFAYuifg4oHjpDghrg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@shikijs/core": "1.24.0",
+ "@shikijs/engine-javascript": "1.24.0",
+ "@shikijs/engine-oniguruma": "1.24.0",
+ "@shikijs/types": "1.24.0",
+ "@shikijs/vscode-textmate": "^9.3.0",
+ "@types/hast": "^3.0.4"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "license": "ISC"
+ },
+ "node_modules/simple-concat": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/simple-get": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
+ "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "decompress-response": "^6.0.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "node_modules/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "license": "MIT",
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "node_modules/simple-swizzle/node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
+ "license": "MIT"
+ },
+ "node_modules/sirv": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
+ "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@polka/url": "^1.0.0-next.24",
+ "mrmime": "^2.0.0",
+ "totalist": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
+ "license": "MIT"
+ },
+ "node_modules/sitemap": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz",
+ "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "^17.0.5",
+ "@types/sax": "^1.2.1",
+ "arg": "^5.0.0",
+ "sax": "^1.2.4"
+ },
+ "bin": {
+ "sitemap": "dist/cli.js"
+ },
+ "engines": {
+ "node": ">=12.0.0",
+ "npm": ">=5.6.0"
+ }
+ },
+ "node_modules/sitemap/node_modules/@types/node": {
+ "version": "17.0.45",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz",
+ "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==",
+ "license": "MIT"
+ },
+ "node_modules/skin-tone": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz",
+ "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==",
+ "license": "MIT",
+ "dependencies": {
+ "unicode-emoji-modifier-base": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/snake-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz",
+ "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==",
+ "license": "MIT",
+ "dependencies": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/sockjs": {
+ "version": "0.3.24",
+ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
+ "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
+ "license": "MIT",
+ "dependencies": {
+ "faye-websocket": "^0.11.3",
+ "uuid": "^8.3.2",
+ "websocket-driver": "^0.7.4"
+ }
+ },
+ "node_modules/sockjs/node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/sort-css-media-queries": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz",
+ "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6.3.0"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/source-map-support/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/space-separated-tokens": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz",
+ "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/spdy": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
+ "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.1.0",
+ "handle-thing": "^2.0.0",
+ "http-deceiver": "^1.2.7",
+ "select-hose": "^2.0.0",
+ "spdy-transport": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/spdy-transport": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
+ "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.1.0",
+ "detect-node": "^2.0.4",
+ "hpack.js": "^2.1.6",
+ "obuf": "^1.1.2",
+ "readable-stream": "^3.0.6",
+ "wbuf": "^1.7.3"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/srcset": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz",
+ "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/std-env": {
+ "version": "3.8.0",
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz",
+ "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==",
+ "license": "MIT"
+ },
+ "node_modules/streamx": {
+ "version": "2.20.2",
+ "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.2.tgz",
+ "integrity": "sha512-aDGDLU+j9tJcUdPGOaHmVF1u/hhI+CsGkT02V3OKlHDV7IukOI+nTWAGkiZEKCO35rWN1wIr4tS7YFr1f4qSvA==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-fifo": "^1.3.2",
+ "queue-tick": "^1.0.1",
+ "text-decoder": "^1.1.0"
+ },
+ "optionalDependencies": {
+ "bare-events": "^2.2.0"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/string-width/node_modules/ansi-regex": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/string-width/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/stringify-entities": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz",
+ "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==",
+ "license": "MIT",
+ "dependencies": {
+ "character-entities-html4": "^2.0.0",
+ "character-entities-legacy": "^3.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/stringify-object": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
+ "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "get-own-enumerable-property-symbols": "^3.0.0",
+ "is-obj": "^1.0.1",
+ "is-regexp": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-bom-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
+ "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/style-to-object": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz",
+ "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==",
+ "license": "MIT",
+ "dependencies": {
+ "inline-style-parser": "0.2.4"
+ }
+ },
+ "node_modules/stylehacks": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz",
+ "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==",
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.23.0",
+ "postcss-selector-parser": "^6.0.16"
+ },
+ "engines": {
+ "node": "^14 || ^16 || >=18.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.31"
+ }
+ },
+ "node_modules/stylis": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.4.tgz",
+ "integrity": "sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==",
+ "license": "MIT"
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/svg-parser": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz",
+ "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==",
+ "license": "MIT"
+ },
+ "node_modules/svgo": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz",
+ "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==",
+ "license": "MIT",
+ "dependencies": {
+ "@trysound/sax": "0.2.0",
+ "commander": "^7.2.0",
+ "css-select": "^5.1.0",
+ "css-tree": "^2.3.1",
+ "css-what": "^6.1.0",
+ "csso": "^5.0.5",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "svgo": "bin/svgo"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/svgo"
+ }
+ },
+ "node_modules/svgo/node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tar-fs": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz",
+ "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==",
+ "license": "MIT",
+ "dependencies": {
+ "pump": "^3.0.0",
+ "tar-stream": "^3.1.5"
+ },
+ "optionalDependencies": {
+ "bare-fs": "^2.1.1",
+ "bare-path": "^2.1.0"
+ }
+ },
+ "node_modules/tar-stream": {
+ "version": "3.1.7",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
+ "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==",
+ "license": "MIT",
+ "dependencies": {
+ "b4a": "^1.6.4",
+ "fast-fifo": "^1.2.0",
+ "streamx": "^2.15.0"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.36.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz",
+ "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.3",
+ "acorn": "^8.8.2",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser-webpack-plugin": {
+ "version": "5.3.10",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
+ "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.20",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^3.1.1",
+ "serialize-javascript": "^6.0.1",
+ "terser": "^5.26.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "uglify-js": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "license": "MIT"
+ },
+ "node_modules/terser-webpack-plugin/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/terser/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "license": "MIT"
+ },
+ "node_modules/text-decoder": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz",
+ "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "license": "MIT"
+ },
+ "node_modules/thunky": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
+ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
+ "license": "MIT"
+ },
+ "node_modules/tiny-invariant": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz",
+ "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==",
+ "license": "MIT"
+ },
+ "node_modules/tiny-warning": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
+ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==",
+ "license": "MIT"
+ },
+ "node_modules/tinyexec": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz",
+ "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==",
+ "license": "MIT"
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/to-vfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-6.1.0.tgz",
+ "integrity": "sha512-BxX8EkCxOAZe+D/ToHdDsJcVI4HqQfmw0tCkp31zf3dNP/XWIAjU4CmeuSwsSoOzOTqHPOL0KUzyZqJplkD0Qw==",
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^2.0.0",
+ "vfile": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/to-vfile/node_modules/@types/unist": {
+ "version": "2.0.11",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz",
+ "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==",
+ "license": "MIT"
+ },
+ "node_modules/to-vfile/node_modules/unist-util-stringify-position": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
+ "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.2"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/to-vfile/node_modules/vfile": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
+ "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/to-vfile/node_modules/vfile-message": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
+ "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/totalist": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
+ "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/trim-lines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz",
+ "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/trough": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz",
+ "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/ts-dedent": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/ts-dedent/-/ts-dedent-2.2.0.tgz",
+ "integrity": "sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.10"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz",
+ "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "license": "MIT",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/type-is/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/type-is/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "license": "MIT",
+ "dependencies": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "node_modules/typedoc": {
+ "version": "0.26.11",
+ "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.11.tgz",
+ "integrity": "sha512-sFEgRRtrcDl2FxVP58Ze++ZK2UQAEvtvvH8rRlig1Ja3o7dDaMHmaBfvJmdGnNEFaLTpQsN8dpvZaTqJSu/Ugw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "lunr": "^2.3.9",
+ "markdown-it": "^14.1.0",
+ "minimatch": "^9.0.5",
+ "shiki": "^1.16.2",
+ "yaml": "^2.5.1"
+ },
+ "bin": {
+ "typedoc": "bin/typedoc"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x"
+ }
+ },
+ "node_modules/typedoc-plugin-markdown": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-4.2.10.tgz",
+ "integrity": "sha512-PLX3pc1/7z13UJm4TDE9vo9jWGcClFUErXXtd5LdnoLjV6mynPpqZLU992DwMGFSRqJFZeKbVyqlNNeNHnk2tQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 18"
+ },
+ "peerDependencies": {
+ "typedoc": "0.26.x"
+ }
+ },
+ "node_modules/typedoc/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/typedoc/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "5.6.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
+ "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
+ "license": "Apache-2.0",
+ "peer": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/uc.micro": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz",
+ "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ufo": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz",
+ "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==",
+ "license": "MIT"
+ },
+ "node_modules/undici-types": {
+ "version": "6.20.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
+ "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==",
+ "license": "MIT"
+ },
+ "node_modules/unicode-canonical-property-names-ecmascript": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
+ "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-emoji-modifier-base": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz",
+ "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
+ "license": "MIT",
+ "dependencies": {
+ "unicode-canonical-property-names-ecmascript": "^2.0.0",
+ "unicode-property-aliases-ecmascript": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-value-ecmascript": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz",
+ "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-property-aliases-ecmascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unified": {
+ "version": "11.0.5",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz",
+ "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "bail": "^2.0.0",
+ "devlop": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-plain-obj": "^4.0.0",
+ "trough": "^2.0.0",
+ "vfile": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unique-string": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz",
+ "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==",
+ "license": "MIT",
+ "dependencies": {
+ "crypto-random-string": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/unist-util-find-after": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz",
+ "integrity": "sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ==",
+ "license": "MIT",
+ "dependencies": {
+ "unist-util-is": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-is": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz",
+ "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-position": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz",
+ "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-position-from-estree": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz",
+ "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-stringify-position": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz",
+ "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz",
+ "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0",
+ "unist-util-visit-parents": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit-parents": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz",
+ "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-is": "^6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit-parents/node_modules/unist-util-is": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
+ "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit/node_modules/unist-util-is": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz",
+ "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
+ "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.0"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/update-notifier": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz",
+ "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boxen": "^7.0.0",
+ "chalk": "^5.0.1",
+ "configstore": "^6.0.0",
+ "has-yarn": "^3.0.0",
+ "import-lazy": "^4.0.0",
+ "is-ci": "^3.0.1",
+ "is-installed-globally": "^0.4.0",
+ "is-npm": "^6.0.0",
+ "is-yarn-global": "^0.4.0",
+ "latest-version": "^7.0.0",
+ "pupa": "^3.1.0",
+ "semver": "^7.3.7",
+ "semver-diff": "^4.0.0",
+ "xdg-basedir": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/yeoman/update-notifier?sponsor=1"
+ }
+ },
+ "node_modules/update-notifier/node_modules/boxen": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz",
+ "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-align": "^3.0.1",
+ "camelcase": "^7.0.1",
+ "chalk": "^5.2.0",
+ "cli-boxes": "^3.0.0",
+ "string-width": "^5.1.2",
+ "type-fest": "^2.13.0",
+ "widest-line": "^4.0.1",
+ "wrap-ansi": "^8.1.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/update-notifier/node_modules/camelcase": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz",
+ "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/update-notifier/node_modules/chalk": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
+ "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
+ "license": "MIT",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/url-loader": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz",
+ "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==",
+ "license": "MIT",
+ "dependencies": {
+ "loader-utils": "^2.0.0",
+ "mime-types": "^2.1.27",
+ "schema-utils": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "file-loader": "*",
+ "webpack": "^4.0.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "file-loader": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/url-loader/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/url-loader/node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/url-loader/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "license": "MIT"
+ },
+ "node_modules/url-loader/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/url-loader/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/url-loader/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "license": "MIT"
+ },
+ "node_modules/utila": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
+ "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==",
+ "license": "MIT"
+ },
+ "node_modules/utility-types": {
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz",
+ "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/uuid": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
+ "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
+ "funding": [
+ "https://github.com/sponsors/broofa",
+ "https://github.com/sponsors/ctavan"
+ ],
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/value-equal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz",
+ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==",
+ "license": "MIT"
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vfile": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz",
+ "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "vfile-message": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-location": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz",
+ "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==",
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-message": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz",
+ "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/unist": "^3.0.0",
+ "unist-util-stringify-position": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vscode-jsonrpc": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
+ "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/vscode-languageserver": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
+ "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
+ "license": "MIT",
+ "dependencies": {
+ "vscode-languageserver-protocol": "3.17.5"
+ },
+ "bin": {
+ "installServerIntoExtension": "bin/installServerIntoExtension"
+ }
+ },
+ "node_modules/vscode-languageserver-protocol": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
+ "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
+ "license": "MIT",
+ "dependencies": {
+ "vscode-jsonrpc": "8.2.0",
+ "vscode-languageserver-types": "3.17.5"
+ }
+ },
+ "node_modules/vscode-languageserver-textdocument": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz",
+ "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==",
+ "license": "MIT"
+ },
+ "node_modules/vscode-languageserver-types": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+ "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==",
+ "license": "MIT"
+ },
+ "node_modules/vscode-uri": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz",
+ "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==",
+ "license": "MIT"
+ },
+ "node_modules/watchpack": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz",
+ "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==",
+ "license": "MIT",
+ "dependencies": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/wbuf": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
+ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+ "license": "MIT",
+ "dependencies": {
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "node_modules/web-namespaces": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz",
+ "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/webpack": {
+ "version": "5.96.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz",
+ "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/eslint-scope": "^3.7.7",
+ "@types/estree": "^1.0.6",
+ "@webassemblyjs/ast": "^1.12.1",
+ "@webassemblyjs/wasm-edit": "^1.12.1",
+ "@webassemblyjs/wasm-parser": "^1.12.1",
+ "acorn": "^8.14.0",
+ "browserslist": "^4.24.0",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.17.1",
+ "es-module-lexer": "^1.2.1",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.11",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.2.0",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.3.10",
+ "watchpack": "^2.4.1",
+ "webpack-sources": "^3.2.3"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-bundle-analyzer": {
+ "version": "4.10.2",
+ "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz",
+ "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==",
+ "license": "MIT",
+ "dependencies": {
+ "@discoveryjs/json-ext": "0.5.7",
+ "acorn": "^8.0.4",
+ "acorn-walk": "^8.0.0",
+ "commander": "^7.2.0",
+ "debounce": "^1.2.1",
+ "escape-string-regexp": "^4.0.0",
+ "gzip-size": "^6.0.0",
+ "html-escaper": "^2.0.2",
+ "opener": "^1.5.2",
+ "picocolors": "^1.0.0",
+ "sirv": "^2.0.3",
+ "ws": "^7.3.1"
+ },
+ "bin": {
+ "webpack-bundle-analyzer": "lib/bin/analyzer.js"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/webpack-bundle-analyzer/node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/webpack-dev-middleware": {
+ "version": "5.3.4",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz",
+ "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==",
+ "license": "MIT",
+ "dependencies": {
+ "colorette": "^2.0.10",
+ "memfs": "^3.4.3",
+ "mime-types": "^2.1.31",
+ "range-parser": "^1.2.1",
+ "schema-utils": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/webpack-dev-middleware/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/webpack-dev-middleware/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/webpack-dev-middleware/node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/webpack-dev-server": {
+ "version": "4.15.2",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz",
+ "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/bonjour": "^3.5.9",
+ "@types/connect-history-api-fallback": "^1.3.5",
+ "@types/express": "^4.17.13",
+ "@types/serve-index": "^1.9.1",
+ "@types/serve-static": "^1.13.10",
+ "@types/sockjs": "^0.3.33",
+ "@types/ws": "^8.5.5",
+ "ansi-html-community": "^0.0.8",
+ "bonjour-service": "^1.0.11",
+ "chokidar": "^3.5.3",
+ "colorette": "^2.0.10",
+ "compression": "^1.7.4",
+ "connect-history-api-fallback": "^2.0.0",
+ "default-gateway": "^6.0.3",
+ "express": "^4.17.3",
+ "graceful-fs": "^4.2.6",
+ "html-entities": "^2.3.2",
+ "http-proxy-middleware": "^2.0.3",
+ "ipaddr.js": "^2.0.1",
+ "launch-editor": "^2.6.0",
+ "open": "^8.0.9",
+ "p-retry": "^4.5.0",
+ "rimraf": "^3.0.2",
+ "schema-utils": "^4.0.0",
+ "selfsigned": "^2.1.1",
+ "serve-index": "^1.9.1",
+ "sockjs": "^0.3.24",
+ "spdy": "^4.0.2",
+ "webpack-dev-middleware": "^5.3.4",
+ "ws": "^8.13.0"
+ },
+ "bin": {
+ "webpack-dev-server": "bin/webpack-dev-server.js"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.37.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "webpack": {
+ "optional": true
+ },
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/ws": {
+ "version": "8.18.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
+ "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-merge": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz",
+ "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==",
+ "license": "MIT",
+ "dependencies": {
+ "clone-deep": "^4.0.1",
+ "flat": "^5.0.2",
+ "wildcard": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/webpack/node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/webpack/node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/webpack/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "license": "MIT"
+ },
+ "node_modules/webpack/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/webpack/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/webpack/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/webpackbar": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-6.0.1.tgz",
+ "integrity": "sha512-TnErZpmuKdwWBdMoexjio3KKX6ZtoKHRVvLIU0A47R0VVBDtx3ZyOJDktgYixhoJokZTYTt1Z37OkO9pnGJa9Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-escapes": "^4.3.2",
+ "chalk": "^4.1.2",
+ "consola": "^3.2.3",
+ "figures": "^3.2.0",
+ "markdown-table": "^2.0.0",
+ "pretty-time": "^1.1.0",
+ "std-env": "^3.7.0",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=14.21.3"
+ },
+ "peerDependencies": {
+ "webpack": "3 || 4 || 5"
+ }
+ },
+ "node_modules/webpackbar/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/webpackbar/node_modules/markdown-table": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz",
+ "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==",
+ "license": "MIT",
+ "dependencies": {
+ "repeat-string": "^1.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/webpackbar/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/webpackbar/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/websocket-driver": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
+ "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "http-parser-js": ">=0.5.1",
+ "safe-buffer": ">=5.1.0",
+ "websocket-extensions": ">=0.1.1"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/websocket-extensions": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
+ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/wide-align": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^1.0.2 || 2 || 3 || 4"
+ }
+ },
+ "node_modules/wide-align/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/wide-align/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/widest-line": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz",
+ "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==",
+ "license": "MIT",
+ "dependencies": {
+ "string-width": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/wildcard": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz",
+ "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==",
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
+ "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "license": "ISC"
+ },
+ "node_modules/write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "node_modules/ws": {
+ "version": "7.5.10",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
+ "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/xdg-basedir": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz",
+ "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/xml-js": {
+ "version": "1.6.11",
+ "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz",
+ "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==",
+ "license": "MIT",
+ "dependencies": {
+ "sax": "^1.2.4"
+ },
+ "bin": {
+ "xml-js": "bin/cli.js"
+ }
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "license": "ISC"
+ },
+ "node_modules/yaml": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz",
+ "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "yaml": "bin.mjs"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz",
+ "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/zwitch": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz",
+ "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
}
- }
- },
- "node_modules/xdg-basedir": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz",
- "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/xml-js": {
- "version": "1.6.11",
- "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz",
- "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==",
- "license": "MIT",
- "dependencies": {
- "sax": "^1.2.4"
- },
- "bin": {
- "xml-js": "bin/cli.js"
- }
- },
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.4"
- }
- },
- "node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "license": "ISC"
- },
- "node_modules/yaml": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz",
- "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==",
- "dev": true,
- "license": "ISC",
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14"
- }
- },
- "node_modules/yocto-queue": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz",
- "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==",
- "license": "MIT",
- "engines": {
- "node": ">=12.20"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/zwitch": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz",
- "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==",
- "license": "MIT",
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/wooorm"
- }
}
- }
}
diff --git a/docs/package.json b/docs/package.json
index b9a9952476..595cb9b363 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -1,54 +1,55 @@
{
- "name": "eliza-docs",
- "version": "0.1.5-alpha.1",
- "private": true,
- "scripts": {
- "docusaurus": "docusaurus",
- "start": "docusaurus start --no-open",
- "dev": "docusaurus start --port 3002 --no-open",
- "build": "docusaurus build",
- "swizzle": "docusaurus swizzle",
- "deploy": "docusaurus deploy",
- "clear": "docusaurus clear",
- "serve": "docusaurus serve",
- "write-translations": "docusaurus write-translations",
- "write-heading-ids": "docusaurus write-heading-ids"
- },
- "dependencies": {
- "@docusaurus/core": "3.6.3",
- "@docusaurus/plugin-content-blog": "3.6.3",
- "@docusaurus/plugin-content-docs": "3.6.3",
- "@docusaurus/plugin-ideal-image": "3.6.3",
- "@docusaurus/preset-classic": "3.6.3",
- "@docusaurus/theme-mermaid": "3.6.3",
- "@mdx-js/react": "3.0.1",
- "clsx": "2.1.1",
- "docusaurus-lunr-search": "3.5.0",
- "prism-react-renderer": "2.3.1",
- "react": "18.3.1",
- "react-dom": "18.3.1",
- "react-router-dom": "6.22.1"
- },
- "devDependencies": {
- "@docusaurus/module-type-aliases": "3.6.3",
- "@docusaurus/types": "3.6.3",
- "docusaurus-plugin-typedoc": "1.0.5",
- "typedoc": "0.26.11",
- "typedoc-plugin-markdown": "4.2.10"
- },
- "browserslist": {
- "production": [
- ">0.5%",
- "not dead",
- "not op_mini all"
- ],
- "development": [
- "last 3 chrome version",
- "last 3 firefox version",
- "last 5 safari version"
- ]
- },
- "engines": {
- "node": "23.3.0"
- }
+ "name": "eliza-docs",
+ "version": "0.1.6-alpha.4",
+ "private": true,
+ "scripts": {
+ "docusaurus": "docusaurus",
+ "start": "docusaurus start --no-open",
+ "dev": "docusaurus start --port 3002 --no-open",
+ "build": "docusaurus build",
+ "swizzle": "docusaurus swizzle",
+ "deploy": "docusaurus deploy",
+ "clear": "docusaurus clear",
+ "serve": "docusaurus serve",
+ "write-translations": "docusaurus write-translations",
+ "write-heading-ids": "docusaurus write-heading-ids"
+ },
+ "dependencies": {
+ "@docusaurus/core": "3.6.3",
+ "@docusaurus/plugin-content-blog": "3.6.3",
+ "@docusaurus/plugin-content-docs": "3.6.3",
+ "@docusaurus/plugin-ideal-image": "3.6.3",
+ "@docusaurus/preset-classic": "3.6.3",
+ "@docusaurus/theme-mermaid": "3.6.3",
+ "@mdx-js/react": "3.0.1",
+ "clsx": "2.1.1",
+ "docusaurus-lunr-search": "3.5.0",
+ "dotenv": "^16.4.7",
+ "prism-react-renderer": "2.3.1",
+ "react": "18.3.1",
+ "react-dom": "18.3.1",
+ "react-router-dom": "6.22.1"
+ },
+ "devDependencies": {
+ "@docusaurus/module-type-aliases": "3.6.3",
+ "@docusaurus/types": "3.6.3",
+ "docusaurus-plugin-typedoc": "1.0.5",
+ "typedoc": "0.26.11",
+ "typedoc-plugin-markdown": "4.2.10"
+ },
+ "browserslist": {
+ "production": [
+ ">0.5%",
+ "not dead",
+ "not op_mini all"
+ ],
+ "development": [
+ "last 3 chrome version",
+ "last 3 firefox version",
+ "last 5 safari version"
+ ]
+ },
+ "engines": {
+ "node": "23.3.0"
+ }
}
diff --git a/docs/static/img/ai16z_heroshot.png b/docs/static/img/ai16z_heroshot.png
new file mode 100644
index 0000000000..09626e7ce0
Binary files /dev/null and b/docs/static/img/ai16z_heroshot.png differ
diff --git a/docs/static/img/e_black.png b/docs/static/img/e_black.png
new file mode 100644
index 0000000000..4f0e2804c9
Binary files /dev/null and b/docs/static/img/e_black.png differ
diff --git a/docs/static/img/e_white.png b/docs/static/img/e_white.png
new file mode 100644
index 0000000000..5f071c98d1
Binary files /dev/null and b/docs/static/img/e_white.png differ
diff --git a/docs/static/img/elijah.jpg b/docs/static/img/elijah.jpg
new file mode 100644
index 0000000000..656d2afa35
Binary files /dev/null and b/docs/static/img/elijah.jpg differ
diff --git a/docs/static/img/eliza_banner.jpg b/docs/static/img/eliza_banner.jpg
index 8364b209c8..a6d017541c 100644
Binary files a/docs/static/img/eliza_banner.jpg and b/docs/static/img/eliza_banner.jpg differ
diff --git a/docs/static/img/favicon.ico b/docs/static/img/favicon.ico
index 7bc84ea064..d12212c7da 100644
Binary files a/docs/static/img/favicon.ico and b/docs/static/img/favicon.ico differ
diff --git a/docs/static/img/favicon_old.ico b/docs/static/img/favicon_old.ico
new file mode 100644
index 0000000000..7bc84ea064
Binary files /dev/null and b/docs/static/img/favicon_old.ico differ
diff --git a/docs/static/img/funnel.jpg b/docs/static/img/funnel.jpg
new file mode 100644
index 0000000000..7943eb4417
Binary files /dev/null and b/docs/static/img/funnel.jpg differ
diff --git a/docs/static/img/journey.jpg b/docs/static/img/journey.jpg
new file mode 100644
index 0000000000..a21d806167
Binary files /dev/null and b/docs/static/img/journey.jpg differ
diff --git a/docs/static/img/tokenomics1.jpg b/docs/static/img/tokenomics1.jpg
new file mode 100644
index 0000000000..a700d3667c
Binary files /dev/null and b/docs/static/img/tokenomics1.jpg differ
diff --git a/docs/static/img/tokenomics2.jpg b/docs/static/img/tokenomics2.jpg
new file mode 100644
index 0000000000..c98b07b9e6
Binary files /dev/null and b/docs/static/img/tokenomics2.jpg differ
diff --git a/docs/static/img/website_v1.jpg b/docs/static/img/website_v1.jpg
new file mode 100644
index 0000000000..2770c6ad5a
Binary files /dev/null and b/docs/static/img/website_v1.jpg differ
diff --git a/lerna.json b/lerna.json
index e8390a9625..24d0a8d7ad 100644
--- a/lerna.json
+++ b/lerna.json
@@ -1,5 +1,11 @@
{
- "version": "0.1.5-alpha.5",
- "packages": ["packages/*", "docs", "agent", "client", "!packages/_examples"],
- "npmClient": "pnpm"
+ "version": "0.1.6-alpha.4",
+ "packages": [
+ "packages/*",
+ "docs",
+ "agent",
+ "client",
+ "!packages/_examples"
+ ],
+ "npmClient": "pnpm"
}
diff --git a/package.json b/package.json
index 55021a62d3..cb2da2b438 100644
--- a/package.json
+++ b/package.json
@@ -9,8 +9,8 @@
"start:debug": "cross-env NODE_ENV=development VERBOSE=true DEBUG=eliza:* pnpm --filter \"@ai16z/agent\" start --isRoot",
"dev": "bash ./scripts/dev.sh",
"lint": "bash ./scripts/lint.sh",
- "prettier-check": "npx prettier --check .",
- "prettier": "npx prettier --write .",
+ "prettier-check": "npx prettier --check --cache .",
+ "prettier": "npx prettier --write --cache .",
"release": "pnpm build && pnpm prettier && npx lerna publish --no-private --force-publish",
"clean": "bash ./scripts/clean.sh",
"docker:build": "bash ./scripts/docker.sh build",
diff --git a/packages/_examples/plugin/package.json b/packages/_examples/plugin/package.json
index a9d8ab03e0..5d2a4b186e 100644
--- a/packages/_examples/plugin/package.json
+++ b/packages/_examples/plugin/package.json
@@ -14,6 +14,6 @@
"scripts": {
"build": "tsup --format esm --dts",
"dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix"
+ "lint": "eslint --fix --cache ."
}
}
diff --git a/packages/_examples/plugin/src/actions/sampleAction.ts b/packages/_examples/plugin/src/actions/sampleAction.ts
index 33ed90e87e..1798ffc1fe 100644
--- a/packages/_examples/plugin/src/actions/sampleAction.ts
+++ b/packages/_examples/plugin/src/actions/sampleAction.ts
@@ -5,15 +5,12 @@ import {
HandlerCallback,
State,
composeContext,
- generateObjectV2,
+ generateObject,
ModelClass,
elizaLogger,
} from "@ai16z/eliza";
-import {
- CreateResourceSchema,
- isCreateResourceContent,
-} from "../types";
+import { CreateResourceSchema, isCreateResourceContent } from "../types";
import { createResourceTemplate } from "../templates";
@@ -21,7 +18,7 @@ export const createResourceAction: Action = {
name: "CREATE_RESOURCE",
description: "Create a new resource with the specified details",
validate: async (runtime: IAgentRuntime, _message: Memory) => {
- return !!(runtime.character.settings.secrets?.API_KEY);
+ return !!runtime.character.settings.secrets?.API_KEY;
},
handler: async (
runtime: IAgentRuntime,
@@ -30,88 +27,85 @@ export const createResourceAction: Action = {
_options: any,
callback: HandlerCallback
) => {
- try {
- const context = composeContext({
- state,
- template: createResourceTemplate,
- });
+ try {
+ const context = composeContext({
+ state,
+ template: createResourceTemplate,
+ });
- const resourceDetails = await generateObjectV2({
- runtime,
- context,
- modelClass: ModelClass.SMALL,
- schema: CreateResourceSchema,
- });
+ const resourceDetails = await generateObject({
+ runtime,
+ context,
+ modelClass: ModelClass.SMALL,
+ schema: CreateResourceSchema,
+ });
- if (!isCreateResourceContent(resourceDetails.object)) {
- callback(
- { text: "Invalid resource details provided." },
- []
- );
- return;
- }
+ if (!isCreateResourceContent(resourceDetails.object)) {
+ callback({ text: "Invalid resource details provided." }, []);
+ return;
+ }
- // persist relevant data if needed to memory/knowledge
- // const memory = {
- // type: "resource",
- // content: resourceDetails.object,
- // timestamp: new Date().toISOString()
- // };
+ // persist relevant data if needed to memory/knowledge
+ // const memory = {
+ // type: "resource",
+ // content: resourceDetails.object,
+ // timestamp: new Date().toISOString()
+ // };
- // await runtime.storeMemory(memory);
+ // await runtime.storeMemory(memory);
- callback(
- {
- text: `Resource created successfully:
+ callback(
+ {
+ text: `Resource created successfully:
- Name: ${resourceDetails.object.name}
- Type: ${resourceDetails.object.type}
- Description: ${resourceDetails.object.description}
- Tags: ${resourceDetails.object.tags.join(", ")}
-Resource has been stored in memory.`
- },
- []
- );
- } catch (error) {
- elizaLogger.error("Error creating resource:", error);
- callback(
- { text: "Failed to create resource. Please check the logs." },
- []
- );
- }
+Resource has been stored in memory.`,
+ },
+ []
+ );
+ } catch (error) {
+ elizaLogger.error("Error creating resource:", error);
+ callback(
+ { text: "Failed to create resource. Please check the logs." },
+ []
+ );
+ }
},
examples: [
- [
- {
- user: "{{user1}}",
- content: {
- text: "Create a new resource with the name 'Resource1' and type 'TypeA'",
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Create a new resource with the name 'Resource1' and type 'TypeA'",
+ },
},
- },
- {
- user: "{{agentName}}",
- content: {
- text: `Resource created successfully:
+ {
+ user: "{{agentName}}",
+ content: {
+ text: `Resource created successfully:
- Name: Resource1
- Type: TypeA`,
+ },
},
- },
- ],
- [
- {
- user: "{{user1}}",
- content: {
- text: "Create a new resource with the name 'Resource2' and type 'TypeB'",
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Create a new resource with the name 'Resource2' and type 'TypeB'",
+ },
},
- },
- {
- user: "{{agentName}}",
- content: {
- text: `Resource created successfully:
+ {
+ user: "{{agentName}}",
+ content: {
+ text: `Resource created successfully:
- Name: Resource2
- Type: TypeB`,
+ },
},
- },
- ],
+ ],
],
-};
\ No newline at end of file
+};
diff --git a/packages/adapter-postgres/package.json b/packages/adapter-postgres/package.json
index 95df9a081a..cca3665d74 100644
--- a/packages/adapter-postgres/package.json
+++ b/packages/adapter-postgres/package.json
@@ -1,20 +1,20 @@
{
- "name": "@ai16z/adapter-postgres",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@types/pg": "8.11.10",
- "pg": "8.13.1"
- },
- "devDependencies": {
- "tsup": "8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix"
- }
+ "name": "@ai16z/adapter-postgres",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@types/pg": "8.11.10",
+ "pg": "8.13.1"
+ },
+ "devDependencies": {
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache ."
+ }
}
diff --git a/packages/adapter-sqlite/package.json b/packages/adapter-sqlite/package.json
index e7472d0182..d3f47a0ba2 100644
--- a/packages/adapter-sqlite/package.json
+++ b/packages/adapter-sqlite/package.json
@@ -1,24 +1,24 @@
{
- "name": "@ai16z/adapter-sqlite",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@types/better-sqlite3": "7.6.12",
- "better-sqlite3": "11.6.0",
- "sqlite-vec": "0.1.6"
- },
- "devDependencies": {
- "tsup": "8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/adapter-sqlite",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@types/better-sqlite3": "7.6.12",
+ "better-sqlite3": "11.6.0",
+ "sqlite-vec": "0.1.6"
+ },
+ "devDependencies": {
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache ."
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/adapter-sqljs/package.json b/packages/adapter-sqljs/package.json
index 3cf49eab2b..d5d8e58ffc 100644
--- a/packages/adapter-sqljs/package.json
+++ b/packages/adapter-sqljs/package.json
@@ -1,24 +1,24 @@
{
- "name": "@ai16z/adapter-sqljs",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@types/sql.js": "1.4.9",
- "sql.js": "1.12.0",
- "uuid": "11.0.3"
- },
- "devDependencies": {
- "tsup": "8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/adapter-sqljs",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@types/sql.js": "1.4.9",
+ "sql.js": "1.12.0",
+ "uuid": "11.0.3"
+ },
+ "devDependencies": {
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache ."
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/adapter-supabase/package.json b/packages/adapter-supabase/package.json
index 46f2e55541..be0f7ef773 100644
--- a/packages/adapter-supabase/package.json
+++ b/packages/adapter-supabase/package.json
@@ -1,22 +1,22 @@
{
- "name": "@ai16z/adapter-supabase",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@supabase/supabase-js": "2.46.2"
- },
- "devDependencies": {
- "tsup": "8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/adapter-supabase",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@supabase/supabase-js": "2.46.2"
+ },
+ "devDependencies": {
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache ."
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/client-auto/package.json b/packages/client-auto/package.json
index f2711101bc..b2054c42af 100644
--- a/packages/client-auto/package.json
+++ b/packages/client-auto/package.json
@@ -1,27 +1,27 @@
{
- "name": "@ai16z/client-auto",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@types/body-parser": "1.19.5",
- "@types/cors": "2.8.17",
- "@types/express": "5.0.0",
- "body-parser": "1.20.3",
- "cors": "2.8.5",
- "multer": "1.4.5-lts.1"
- },
- "devDependencies": {
- "tsup": "8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/client-auto",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@types/body-parser": "1.19.5",
+ "@types/cors": "2.8.17",
+ "@types/express": "5.0.0",
+ "body-parser": "1.20.3",
+ "cors": "2.8.5",
+ "multer": "1.4.5-lts.1"
+ },
+ "devDependencies": {
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache ."
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/client-auto/src/index.ts b/packages/client-auto/src/index.ts
index 8c754d6bcc..5da06ffbf6 100644
--- a/packages/client-auto/src/index.ts
+++ b/packages/client-auto/src/index.ts
@@ -1,4 +1,4 @@
-import { Client, IAgentRuntime } from "@ai16z/eliza";
+import { Client, IAgentRuntime, elizaLogger } from "@ai16z/eliza";
export class AutoClient {
interval: NodeJS.Timeout;
@@ -10,7 +10,7 @@ export class AutoClient {
// start a loop that runs every x seconds
this.interval = setInterval(
async () => {
- console.log("running auto client...");
+ elizaLogger.log("running auto client...");
},
60 * 60 * 1000
); // 1 hour in milliseconds
diff --git a/packages/client-direct/package.json b/packages/client-direct/package.json
index b46063ea36..3220ae7440 100644
--- a/packages/client-direct/package.json
+++ b/packages/client-direct/package.json
@@ -1,30 +1,30 @@
{
- "name": "@ai16z/client-direct",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@ai16z/plugin-image-generation": "workspace:*",
- "@types/body-parser": "1.19.5",
- "@types/cors": "2.8.17",
- "@types/express": "5.0.0",
- "body-parser": "1.20.3",
- "cors": "2.8.5",
- "discord.js": "14.16.3",
- "express": "4.21.1",
- "multer": "1.4.5-lts.1"
- },
- "devDependencies": {
- "tsup": "8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/client-direct",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@ai16z/plugin-image-generation": "workspace:*",
+ "@types/body-parser": "1.19.5",
+ "@types/cors": "2.8.17",
+ "@types/express": "5.0.0",
+ "body-parser": "1.20.3",
+ "cors": "2.8.5",
+ "discord.js": "14.16.3",
+ "express": "4.21.1",
+ "multer": "1.4.5-lts.1"
+ },
+ "devDependencies": {
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache ."
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/client-direct/src/api.ts b/packages/client-direct/src/api.ts
index 3b3394dd21..fe26cee8f3 100644
--- a/packages/client-direct/src/api.ts
+++ b/packages/client-direct/src/api.ts
@@ -2,17 +2,25 @@ import express from "express";
import bodyParser from "body-parser";
import cors from "cors";
-import { AgentRuntime } from "@ai16z/eliza";
+import {
+ AgentRuntime,
+ elizaLogger,
+ validateCharacterConfig,
+} from "@ai16z/eliza";
import { REST, Routes } from "discord.js";
-export function createApiRouter(agents: Map) {
+export function createApiRouter(agents: Map, directClient) {
const router = express.Router();
router.use(cors());
router.use(bodyParser.json());
router.use(bodyParser.urlencoded({ extended: true }));
+ router.get("/", (req, res) => {
+ res.send("Welcome, this is the REST API!");
+ });
+
router.get("/hello", (req, res) => {
res.json({ message: "Hello World!" });
});
@@ -21,6 +29,7 @@ export function createApiRouter(agents: Map) {
const agentsList = Array.from(agents.values()).map((agent) => ({
id: agent.agentId,
name: agent.character.name,
+ clients: Object.keys(agent.clients),
}));
res.json({ agents: agentsList });
});
@@ -40,6 +49,43 @@ export function createApiRouter(agents: Map) {
});
});
+ router.post("/agents/:agentId/set", async (req, res) => {
+ const agentId = req.params.agentId;
+ console.log('agentId', agentId)
+ let agent:AgentRuntime = agents.get(agentId);
+
+ // update character
+ if (agent) {
+ // stop agent
+ agent.stop()
+ directClient.unregisterAgent(agent)
+ // if it has a different name, the agentId will change
+ }
+
+ // load character from body
+ const character = req.body
+ try {
+ validateCharacterConfig(character)
+ } catch(e) {
+ elizaLogger.error(`Error parsing character: ${e}`);
+ res.status(400).json({
+ success: false,
+ message: e.message,
+ });
+ return;
+ }
+
+ // start it up (and register it)
+ agent = await directClient.startAgent(character)
+ elizaLogger.log(`${character.name} started`)
+
+ res.json({
+ id: character.id,
+ character: character,
+ });
+ });
+
+
router.get("/agents/:agentId/channels", async (req, res) => {
const agentId = req.params.agentId;
const runtime = agents.get(agentId);
diff --git a/packages/client-direct/src/index.ts b/packages/client-direct/src/index.ts
index 08f75f595b..ce0368e20e 100644
--- a/packages/client-direct/src/index.ts
+++ b/packages/client-direct/src/index.ts
@@ -51,17 +51,11 @@ Note that {{agentName}} is capable of reading/seeing/hearing various forms of me
# Instructions: Write the next message for {{agentName}}.
` + messageCompletionFooter;
-export interface SimliClientConfig {
- apiKey: string;
- faceID: string;
- handleSilence: boolean;
- videoRef: any;
- audioRef: any;
-}
export class DirectClient {
public app: express.Application;
- private agents: Map;
+ private agents: Map; // container management
private server: any; // Store server instance
+ public startAgent: Function; // Store startAgent functor
constructor() {
elizaLogger.log("DirectClient constructor");
@@ -72,7 +66,7 @@ export class DirectClient {
this.app.use(bodyParser.json());
this.app.use(bodyParser.urlencoded({ extended: true }));
- const apiRouter = createApiRouter(this.agents);
+ const apiRouter = createApiRouter(this.agents, this);
this.app.use(apiRouter);
// Define an interface that extends the Express Request interface
@@ -205,7 +199,7 @@ export class DirectClient {
const response = await generateMessageResponse({
runtime: runtime,
context,
- modelClass: ModelClass.SMALL,
+ modelClass: ModelClass.LARGE,
});
// save response to memory
@@ -338,7 +332,7 @@ export class DirectClient {
fileResponse.headers
.get("content-disposition")
?.split("filename=")[1]
- ?.replace(/"/g, "") || "default_name.txt";
+ ?.replace(/"/g, /* " */ "") || "default_name.txt";
console.log("Saving as:", fileName);
@@ -378,6 +372,7 @@ export class DirectClient {
);
}
+ // agent/src/index.ts:startAgent calls this
public registerAgent(runtime: AgentRuntime) {
this.agents.set(runtime.agentId, runtime);
}
@@ -388,7 +383,9 @@ export class DirectClient {
public start(port: number) {
this.server = this.app.listen(port, () => {
- elizaLogger.success(`Server running at http://localhost:${port}/`);
+ elizaLogger.success(
+ `REST API bound to 0.0.0.0:${port}. If running locally, access it at http://localhost:${port}.`
+ );
});
// Handle graceful shutdown
@@ -430,7 +427,7 @@ export const DirectClientInterface: Client = {
client.start(serverPort);
return client;
},
- stop: async (_runtime: IAgentRuntime, client?: any) => {
+ stop: async (_runtime: IAgentRuntime, client?: Client) => {
if (client instanceof DirectClient) {
client.stop();
}
diff --git a/packages/client-discord/package.json b/packages/client-discord/package.json
index 87237a944a..d04adb65b1 100644
--- a/packages/client-discord/package.json
+++ b/packages/client-discord/package.json
@@ -1,33 +1,33 @@
{
- "name": "@ai16z/client-discord",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@ai16z/plugin-node": "workspace:*",
- "@discordjs/opus": "github:discordjs/opus",
- "@discordjs/rest": "2.4.0",
- "@discordjs/voice": "0.17.0",
- "discord.js": "14.16.3",
- "libsodium-wrappers": "0.7.15",
- "prism-media": "1.3.5",
- "zod": "3.23.8"
- },
- "devDependencies": {
- "tsup": "8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix"
- },
- "trustedDependencies": {
- "@discordjs/opus": "github:discordjs/opus",
- "@discordjs/voice": "0.17.0"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/client-discord",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@ai16z/plugin-node": "workspace:*",
+ "@discordjs/opus": "github:discordjs/opus",
+ "@discordjs/rest": "2.4.0",
+ "@discordjs/voice": "0.17.0",
+ "discord.js": "14.16.3",
+ "libsodium-wrappers": "0.7.15",
+ "prism-media": "1.3.5",
+ "zod": "3.23.8"
+ },
+ "devDependencies": {
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache ."
+ },
+ "trustedDependencies": {
+ "@discordjs/opus": "github:discordjs/opus",
+ "@discordjs/voice": "0.17.0"
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/client-discord/src/messages.ts b/packages/client-discord/src/messages.ts
index 735979b243..0493bd5bf9 100644
--- a/packages/client-discord/src/messages.ts
+++ b/packages/client-discord/src/messages.ts
@@ -28,8 +28,20 @@ import {
discordShouldRespondTemplate,
discordMessageHandlerTemplate,
} from "./templates.ts";
-import { IGNORE_RESPONSE_WORDS, LOSE_INTEREST_WORDS, MESSAGE_CONSTANTS, MESSAGE_LENGTH_THRESHOLDS, RESPONSE_CHANCES, TEAM_COORDINATION, TIMING_CONSTANTS } from './constants';
-import { sendMessageInChunks, canSendMessage, cosineSimilarity } from "./utils.ts";
+import {
+ IGNORE_RESPONSE_WORDS,
+ LOSE_INTEREST_WORDS,
+ MESSAGE_CONSTANTS,
+ MESSAGE_LENGTH_THRESHOLDS,
+ RESPONSE_CHANCES,
+ TEAM_COORDINATION,
+ TIMING_CONSTANTS,
+} from "./constants";
+import {
+ sendMessageInChunks,
+ canSendMessage,
+ cosineSimilarity,
+} from "./utils.ts";
interface MessageContext {
content: string;
@@ -80,8 +92,11 @@ export class MessageManager {
}
// Check for mentions-only mode setting
- if (this.runtime.character.clientConfig?.discord?.shouldRespondOnlyToMentions) {
- if(!this._isMessageForMe(message)) {
+ if (
+ this.runtime.character.clientConfig?.discord
+ ?.shouldRespondOnlyToMentions
+ ) {
+ if (!this._isMessageForMe(message)) {
return;
}
}
@@ -102,33 +117,49 @@ export class MessageManager {
const hasInterest = this._checkInterest(message.channelId);
// Team handling
- if (this.runtime.character.clientConfig?.discord?.isPartOfTeam && !this.runtime.character.clientConfig?.discord?.shouldRespondOnlyToMentions) {
+ if (
+ this.runtime.character.clientConfig?.discord?.isPartOfTeam &&
+ !this.runtime.character.clientConfig?.discord
+ ?.shouldRespondOnlyToMentions
+ ) {
const authorId = this._getNormalizedUserId(message.author.id);
- if (!this._isTeamLeader() && this._isRelevantToTeamMember(message.content, channelId)) {
+ if (
+ !this._isTeamLeader() &&
+ this._isRelevantToTeamMember(message.content, channelId)
+ ) {
this.interestChannels[message.channelId] = {
currentHandler: this.client.user?.id,
lastMessageSent: Date.now(),
- messages: []
+ messages: [],
};
}
- const isTeamRequest = this._isTeamCoordinationRequest(message.content);
+ const isTeamRequest = this._isTeamCoordinationRequest(
+ message.content
+ );
const isLeader = this._isTeamLeader();
// After team-wide responses, check if we should maintain interest
if (hasInterest && !isDirectlyMentioned) {
- const lastSelfMemories = await this.runtime.messageManager.getMemories({
- roomId: stringToUuid(channelId + "-" + this.runtime.agentId),
- unique: false,
- count: 5
- });
+ const lastSelfMemories =
+ await this.runtime.messageManager.getMemories({
+ roomId: stringToUuid(
+ channelId + "-" + this.runtime.agentId
+ ),
+ unique: false,
+ count: 5,
+ });
- const lastSelfSortedMemories = lastSelfMemories?.filter(m => m.userId === this.runtime.agentId).sort((a, b) =>
- (b.createdAt || 0) - (a.createdAt || 0)
- );
+ const lastSelfSortedMemories = lastSelfMemories
+ ?.filter((m) => m.userId === this.runtime.agentId)
+ .sort((a, b) => (b.createdAt || 0) - (a.createdAt || 0));
- const isRelevant = this._isRelevantToTeamMember(message.content, channelId, lastSelfSortedMemories?.[0]);
+ const isRelevant = this._isRelevantToTeamMember(
+ message.content,
+ channelId,
+ lastSelfSortedMemories?.[0]
+ );
if (!isRelevant) {
// Clearing interest - conversation not relevant to team member
@@ -142,35 +173,42 @@ export class MessageManager {
this.interestChannels[message.channelId] = {
currentHandler: this.client.user?.id,
lastMessageSent: Date.now(),
- messages: []
+ messages: [],
};
} else {
// Set temporary interest for this response
this.interestChannels[message.channelId] = {
currentHandler: this.client.user?.id,
lastMessageSent: Date.now(),
- messages: []
+ messages: [],
};
// Clear interest after this cycle unless directly mentioned
if (!isDirectlyMentioned) {
// Use existing message cycle to clear interest
- this.interestChannels[message.channelId].lastMessageSent = 0;
+ this.interestChannels[
+ message.channelId
+ ].lastMessageSent = 0;
}
}
}
// Check for other team member mentions
- const otherTeamMembers = this.runtime.character.clientConfig.discord.teamAgentIds.filter(
- id => id !== this.client.user?.id
- );
- const mentionedTeamMember = otherTeamMembers.find(id =>
+ const otherTeamMembers =
+ this.runtime.character.clientConfig.discord.teamAgentIds.filter(
+ (id) => id !== this.client.user?.id
+ );
+ const mentionedTeamMember = otherTeamMembers.find((id) =>
message.content.includes(`<@${id}>`)
);
// If another team member is mentioned, clear our interest
if (mentionedTeamMember) {
- if (hasInterest || this.interestChannels[message.channelId]?.currentHandler === this.client.user?.id) {
+ if (
+ hasInterest ||
+ this.interestChannels[message.channelId]?.currentHandler ===
+ this.client.user?.id
+ ) {
delete this.interestChannels[message.channelId];
// Only return if we're not the mentioned member
@@ -185,7 +223,7 @@ export class MessageManager {
this.interestChannels[message.channelId] = {
currentHandler: this.client.user?.id,
lastMessageSent: Date.now(),
- messages: []
+ messages: [],
};
} else if (!isTeamRequest && !hasInterest) {
return;
@@ -195,7 +233,10 @@ export class MessageManager {
if (message.author.bot) {
if (this._isTeamMember(authorId) && !isDirectlyMentioned) {
return;
- } else if (this.runtime.character.clientConfig.discord.shouldIgnoreBotMessages) {
+ } else if (
+ this.runtime.character.clientConfig.discord
+ .shouldIgnoreBotMessages
+ ) {
return;
}
}
@@ -274,13 +315,18 @@ export class MessageManager {
this.interestChannels[message.channelId].messages.push({
userId: userIdUUID,
userName: userName,
- content: content
+ content: content,
});
// Trim to keep only recent messages
- if (this.interestChannels[message.channelId].messages.length > MESSAGE_CONSTANTS.MAX_MESSAGES) {
+ if (
+ this.interestChannels[message.channelId].messages
+ .length > MESSAGE_CONSTANTS.MAX_MESSAGES
+ ) {
this.interestChannels[message.channelId].messages =
- this.interestChannels[message.channelId].messages.slice(-MESSAGE_CONSTANTS.MAX_MESSAGES);
+ this.interestChannels[
+ message.channelId
+ ].messages.slice(-MESSAGE_CONSTANTS.MAX_MESSAGES);
}
}
}
@@ -461,6 +507,47 @@ export class MessageManager {
}
}
+ private _isMessageForMe(message: DiscordMessage): boolean {
+ const isMentioned = message.mentions.users?.has(
+ this.client.user?.id as string
+ );
+ const guild = message.guild;
+ const member = guild?.members.cache.get(this.client.user?.id as string);
+ const nickname = member?.nickname;
+
+ // Don't consider role mentions as direct mentions
+ const hasRoleMentionOnly =
+ message.mentions.roles.size > 0 && !isMentioned;
+
+ // If it's only a role mention and we're in team mode, let team logic handle it
+ if (
+ hasRoleMentionOnly &&
+ this.runtime.character.clientConfig?.discord?.isPartOfTeam
+ ) {
+ return false;
+ }
+
+ return (
+ isMentioned ||
+ (!this.runtime.character.clientConfig?.discord
+ ?.shouldRespondOnlyToMentions &&
+ (message.content
+ .toLowerCase()
+ .includes(
+ this.client.user?.username.toLowerCase() as string
+ ) ||
+ message.content
+ .toLowerCase()
+ .includes(
+ this.client.user?.tag.toLowerCase() as string
+ ) ||
+ (nickname &&
+ message.content
+ .toLowerCase()
+ .includes(nickname.toLowerCase()))))
+ );
+ }
+
async processMessageMedia(
message: DiscordMessage
): Promise<{ processedContent: string; attachments: Media[] }> {
@@ -556,7 +643,7 @@ export class MessageManager {
}
private _getNormalizedUserId(id: string): string {
- return id.toString().replace(/[^0-9]/g, '');
+ return id.toString().replace(/[^0-9]/g, "");
}
private _isTeamMember(userId: string): boolean {
@@ -565,31 +652,38 @@ export class MessageManager {
const normalizedUserId = this._getNormalizedUserId(userId);
- const isTeamMember = teamConfig.teamAgentIds.some(teamId =>
- this._getNormalizedUserId(teamId) === normalizedUserId
+ const isTeamMember = teamConfig.teamAgentIds.some(
+ (teamId) => this._getNormalizedUserId(teamId) === normalizedUserId
);
return isTeamMember;
}
private _isTeamLeader(): boolean {
- return this.client.user?.id === this.runtime.character.clientConfig?.discord?.teamLeaderId;
+ return (
+ this.client.user?.id ===
+ this.runtime.character.clientConfig?.discord?.teamLeaderId
+ );
}
private _isTeamCoordinationRequest(content: string): boolean {
const contentLower = content.toLowerCase();
- return TEAM_COORDINATION.KEYWORDS?.some(keyword =>
+ return TEAM_COORDINATION.KEYWORDS?.some((keyword) =>
contentLower.includes(keyword.toLowerCase())
);
}
- private _isRelevantToTeamMember(content: string, channelId: string, lastAgentMemory: Memory | null = null): boolean {
+ private _isRelevantToTeamMember(
+ content: string,
+ channelId: string,
+ lastAgentMemory: Memory | null = null
+ ): boolean {
const teamConfig = this.runtime.character.clientConfig?.discord;
if (this._isTeamLeader() && lastAgentMemory?.content.text) {
const timeSinceLastMessage = Date.now() - lastAgentMemory.createdAt;
if (timeSinceLastMessage > MESSAGE_CONSTANTS.INTEREST_DECAY_TIME) {
- return false; // Memory too old, not relevant
+ return false; // Memory too old, not relevant
}
const similarity = cosineSimilarity(
@@ -597,7 +691,10 @@ export class MessageManager {
lastAgentMemory.content.text.toLowerCase()
);
- return similarity >= MESSAGE_CONSTANTS.DEFAULT_SIMILARITY_THRESHOLD_FOLLOW_UPS;
+ return (
+ similarity >=
+ MESSAGE_CONSTANTS.DEFAULT_SIMILARITY_THRESHOLD_FOLLOW_UPS
+ );
}
// If no keywords defined, only leader maintains conversation
@@ -605,38 +702,21 @@ export class MessageManager {
return false;
}
- return teamConfig.teamMemberInterestKeywords.some(keyword =>
+ return teamConfig.teamMemberInterestKeywords.some((keyword) =>
content.toLowerCase().includes(keyword.toLowerCase())
);
}
- private _isMessageForMe(message: DiscordMessage): boolean {
- const isMentioned = message.mentions.users?.has(this.client.user?.id as string);
- const guild = message.guild;
- const member = guild?.members.cache.get(this.client.user?.id as string);
- const nickname = member?.nickname;
- const memberId = member?.id;
-
- // Don't consider role mentions as direct mentions
- const hasRoleMentionOnly = message.mentions.roles.size > 0 && !isMentioned;
-
- // If it's only a role mention and we're in team mode, let team logic handle it
- if (hasRoleMentionOnly && this.runtime.character.clientConfig?.discord?.isPartOfTeam) {
- return false;
- }
-
- return isMentioned || (!this.runtime.character.clientConfig?.discord?.shouldRespondOnlyToMentions && (
- message.content.toLowerCase().includes(this.client.user?.username.toLowerCase() as string) ||
- message.content.toLowerCase().includes(this.client.user?.tag.toLowerCase() as string) ||
- (nickname && message.content.toLowerCase().includes(nickname.toLowerCase()))));
- }
-
- private async _analyzeContextSimilarity(currentMessage: string, previousContext?: MessageContext, agentLastMessage?: string): Promise {
+ private async _analyzeContextSimilarity(
+ currentMessage: string,
+ previousContext?: MessageContext,
+ agentLastMessage?: string
+ ): Promise {
if (!previousContext) return 1; // No previous context to compare against
// If more than 5 minutes have passed, reduce similarity weight
const timeDiff = Date.now() - previousContext.timestamp;
- const timeWeight = Math.max(0, 1 - (timeDiff / (5 * 60 * 1000))); // 5 minutes threshold
+ const timeWeight = Math.max(0, 1 - timeDiff / (5 * 60 * 1000)); // 5 minutes threshold
// Calculate content similarity
const similarity = cosineSimilarity(
@@ -651,7 +731,10 @@ export class MessageManager {
return weightedSimilarity;
}
- private async _shouldRespondBasedOnContext(message: DiscordMessage, channelState: InterestChannels[string]): Promise {
+ private async _shouldRespondBasedOnContext(
+ message: DiscordMessage,
+ channelState: InterestChannels[string]
+ ): Promise {
// Always respond if directly mentioned
if (this._isMessageForMe(message)) return true;
@@ -662,37 +745,39 @@ export class MessageManager {
if (!channelState.messages?.length) return false;
// Get last user message (not from the bot)
- const lastUserMessage = [...channelState.messages]
- .reverse()
- .find((m, index) =>
+ const lastUserMessage = [...channelState.messages].reverse().find(
+ (m, index) =>
index > 0 && // Skip first message (current)
m.userId !== this.runtime.agentId
- );
+ );
if (!lastUserMessage) return false;
const lastSelfMemories = await this.runtime.messageManager.getMemories({
- roomId: stringToUuid(message.channel.id + "-" + this.runtime.agentId),
+ roomId: stringToUuid(
+ message.channel.id + "-" + this.runtime.agentId
+ ),
unique: false,
- count: 5
+ count: 5,
});
- const lastSelfSortedMemories = lastSelfMemories?.filter(m => m.userId === this.runtime.agentId).sort((a, b) =>
- (b.createdAt || 0) - (a.createdAt || 0)
- );
+ const lastSelfSortedMemories = lastSelfMemories
+ ?.filter((m) => m.userId === this.runtime.agentId)
+ .sort((a, b) => (b.createdAt || 0) - (a.createdAt || 0));
// Calculate context similarity
const contextSimilarity = await this._analyzeContextSimilarity(
message.content,
{
- content: lastUserMessage.content.text || '',
- timestamp: Date.now()
+ content: lastUserMessage.content.text || "",
+ timestamp: Date.now(),
},
lastSelfSortedMemories?.[0]?.content?.text
);
const similarityThreshold =
- this.runtime.character.clientConfig?.discord?.messageSimilarityThreshold ||
+ this.runtime.character.clientConfig?.discord
+ ?.messageSimilarityThreshold ||
channelState.contextSimilarityThreshold ||
MESSAGE_CONSTANTS.DEFAULT_SIMILARITY_THRESHOLD;
@@ -703,26 +788,40 @@ export class MessageManager {
const channelState = this.interestChannels[channelId];
if (!channelState) return false;
- const lastMessage = channelState.messages[channelState.messages.length - 1];
+ const lastMessage =
+ channelState.messages[channelState.messages.length - 1];
// If it's been more than 5 minutes since last message, reduce interest
const timeSinceLastMessage = Date.now() - channelState.lastMessageSent;
if (timeSinceLastMessage > MESSAGE_CONSTANTS.INTEREST_DECAY_TIME) {
delete this.interestChannels[channelId];
return false;
- } else if (timeSinceLastMessage > MESSAGE_CONSTANTS.PARTIAL_INTEREST_DECAY) {
+ } else if (
+ timeSinceLastMessage > MESSAGE_CONSTANTS.PARTIAL_INTEREST_DECAY
+ ) {
// Require stronger relevance for continued interest
- return this._isRelevantToTeamMember(lastMessage.content.text || '', channelId)
+ return this._isRelevantToTeamMember(
+ lastMessage.content.text || "",
+ channelId
+ );
}
// If team leader and messages exist, check for topic changes and team member responses
if (this._isTeamLeader() && channelState.messages.length > 0) {
// If leader's keywords don't match and another team member has responded, drop interest
- if (!this._isRelevantToTeamMember(lastMessage.content.text || '', channelId)) {
- const recentTeamResponses = channelState.messages.slice(-3).some(m =>
- m.userId !== this.client.user?.id &&
- this._isTeamMember(m.userId)
- );
+ if (
+ !this._isRelevantToTeamMember(
+ lastMessage.content.text || "",
+ channelId
+ )
+ ) {
+ const recentTeamResponses = channelState.messages
+ .slice(-3)
+ .some(
+ (m) =>
+ m.userId !== this.client.user?.id &&
+ this._isTeamMember(m.userId)
+ );
if (recentTeamResponses) {
delete this.interestChannels[channelId];
@@ -733,11 +832,17 @@ export class MessageManager {
// Check if conversation has shifted to a new topic
if (channelState.messages.length > 0) {
- const recentMessages = channelState.messages.slice(-MESSAGE_CONSTANTS.RECENT_MESSAGE_COUNT);
- const differentUsers = new Set(recentMessages.map(m => m.userId)).size;
+ const recentMessages = channelState.messages.slice(
+ -MESSAGE_CONSTANTS.RECENT_MESSAGE_COUNT
+ );
+ const differentUsers = new Set(recentMessages.map((m) => m.userId))
+ .size;
// If multiple users are talking and we're not involved, reduce interest
- if (differentUsers > 1 && !recentMessages.some(m => m.userId === this.client.user?.id)) {
+ if (
+ differentUsers > 1 &&
+ !recentMessages.some((m) => m.userId === this.client.user?.id)
+ ) {
delete this.interestChannels[channelId];
return false;
}
@@ -751,7 +856,10 @@ export class MessageManager {
if (message.author.id === this.client.user?.id) return true;
// Honor mentions-only mode
- if (this.runtime.character.clientConfig?.discord?.shouldRespondOnlyToMentions) {
+ if (
+ this.runtime.character.clientConfig?.discord
+ ?.shouldRespondOnlyToMentions
+ ) {
return !this._isMessageForMe(message);
}
@@ -760,30 +868,46 @@ export class MessageManager {
const authorId = this._getNormalizedUserId(message.author.id);
if (this._isTeamLeader()) {
- if(this._isTeamCoordinationRequest(message.content)) {
+ if (this._isTeamCoordinationRequest(message.content)) {
return false;
}
// Ignore if message is only about team member interests and not directed to leader
if (!this._isMessageForMe(message)) {
- const otherMemberInterests = this.runtime.character.clientConfig?.discord?.teamMemberInterestKeywords || [];
- const hasOtherInterests = otherMemberInterests.some(keyword =>
- message.content.toLowerCase().includes(keyword.toLowerCase())
+ const otherMemberInterests =
+ this.runtime.character.clientConfig?.discord
+ ?.teamMemberInterestKeywords || [];
+ const hasOtherInterests = otherMemberInterests.some(
+ (keyword) =>
+ message.content
+ .toLowerCase()
+ .includes(keyword.toLowerCase())
);
if (hasOtherInterests) {
return true;
}
}
} else if (this._isTeamCoordinationRequest(message.content)) {
- const randomDelay = Math.floor(Math.random() * (TIMING_CONSTANTS.TEAM_MEMBER_DELAY_MAX - TIMING_CONSTANTS.TEAM_MEMBER_DELAY_MIN)) +
- TIMING_CONSTANTS.TEAM_MEMBER_DELAY_MIN; // 1-3 second random delay
- await new Promise(resolve => setTimeout(resolve, randomDelay));
+ const randomDelay =
+ Math.floor(
+ Math.random() *
+ (TIMING_CONSTANTS.TEAM_MEMBER_DELAY_MAX -
+ TIMING_CONSTANTS.TEAM_MEMBER_DELAY_MIN)
+ ) + TIMING_CONSTANTS.TEAM_MEMBER_DELAY_MIN; // 1-3 second random delay
+ await new Promise((resolve) =>
+ setTimeout(resolve, randomDelay)
+ );
return false;
}
if (this._isTeamMember(authorId)) {
if (!this._isMessageForMe(message)) {
// If message contains our interests, don't ignore
- if (this._isRelevantToTeamMember(message.content, message.channelId)) {
+ if (
+ this._isRelevantToTeamMember(
+ message.content,
+ message.channelId
+ )
+ ) {
return false;
}
return true;
@@ -794,26 +918,33 @@ export class MessageManager {
const channelState = this.interestChannels[message.channelId];
if (channelState?.currentHandler) {
-
// If we're the current handler, check context
if (channelState.currentHandler === this.client.user?.id) {
//If it's our keywords, bypass context check
- if (this._isRelevantToTeamMember(message.content, message.channelId)) {
+ if (
+ this._isRelevantToTeamMember(
+ message.content,
+ message.channelId
+ )
+ ) {
return false;
}
- const shouldRespondContext = await this._shouldRespondBasedOnContext(
- message,
- channelState
- );
+ const shouldRespondContext =
+ await this._shouldRespondBasedOnContext(
+ message,
+ channelState
+ );
// If context is different, ignore. If similar, don't ignore
return !shouldRespondContext;
}
// If another team member is handling and we're not mentioned or coordinating
- else if (!this._isMessageForMe(message) &&
- !this._isTeamCoordinationRequest(message.content)) {
+ else if (
+ !this._isMessageForMe(message) &&
+ !this._isTeamCoordinationRequest(message.content)
+ ) {
return true;
}
}
@@ -885,7 +1016,8 @@ export class MessageManager {
}
if (
- message.content.length < MESSAGE_LENGTH_THRESHOLDS.IGNORE_RESPONSE &&
+ message.content.length <
+ MESSAGE_LENGTH_THRESHOLDS.IGNORE_RESPONSE &&
IGNORE_RESPONSE_WORDS.some((word) =>
message.content.toLowerCase().includes(word)
)
@@ -903,45 +1035,66 @@ export class MessageManager {
// if (message.author.bot) return false;
// Honor mentions-only mode
- if (this.runtime.character.clientConfig?.discord?.shouldRespondOnlyToMentions) {
+ if (
+ this.runtime.character.clientConfig?.discord
+ ?.shouldRespondOnlyToMentions
+ ) {
return this._isMessageForMe(message);
}
const channelState = this.interestChannels[message.channelId];
// Check if team member has direct interest first
- if (this.runtime.character.clientConfig?.discord?.isPartOfTeam &&
+ if (
+ this.runtime.character.clientConfig?.discord?.isPartOfTeam &&
!this._isTeamLeader() &&
- this._isRelevantToTeamMember(message.content, message.channelId)) {
+ this._isRelevantToTeamMember(message.content, message.channelId)
+ ) {
return true;
}
try {
// Team-based response logic
if (this.runtime.character.clientConfig?.discord?.isPartOfTeam) {
- const authorId = this._getNormalizedUserId(message.author.id);
-
// Team leader coordination
- if (this._isTeamLeader() && this._isTeamCoordinationRequest(message.content)) {
+ if (
+ this._isTeamLeader() &&
+ this._isTeamCoordinationRequest(message.content)
+ ) {
return true;
}
- if (!this._isTeamLeader() && this._isRelevantToTeamMember(message.content, message.channelId)) {
+ if (
+ !this._isTeamLeader() &&
+ this._isRelevantToTeamMember(
+ message.content,
+ message.channelId
+ )
+ ) {
// Add small delay for non-leader responses
- await new Promise(resolve => setTimeout(resolve, TIMING_CONSTANTS.TEAM_MEMBER_DELAY)); //1.5 second delay
+ await new Promise((resolve) =>
+ setTimeout(resolve, TIMING_CONSTANTS.TEAM_MEMBER_DELAY)
+ ); //1.5 second delay
// If leader has responded in last few seconds, reduce chance of responding
if (channelState?.messages?.length) {
- const recentMessages = channelState.messages.slice(-MESSAGE_CONSTANTS.RECENT_MESSAGE_COUNT);
- const leaderResponded = recentMessages.some(m =>
- m.userId === this.runtime.character.clientConfig?.discord?.teamLeaderId &&
- Date.now() - channelState.lastMessageSent < 3000
+ const recentMessages = channelState.messages.slice(
+ -MESSAGE_CONSTANTS.RECENT_MESSAGE_COUNT
+ );
+ const leaderResponded = recentMessages.some(
+ (m) =>
+ m.userId ===
+ this.runtime.character.clientConfig?.discord
+ ?.teamLeaderId &&
+ Date.now() - channelState.lastMessageSent < 3000
);
if (leaderResponded) {
// 50% chance to respond if leader just did
- return Math.random() > RESPONSE_CHANCES.AFTER_LEADER;
+ return (
+ Math.random() > RESPONSE_CHANCES.AFTER_LEADER
+ );
}
}
@@ -949,17 +1102,32 @@ export class MessageManager {
}
// If I'm the leader but message doesn't match my keywords, add delay and check for team responses
- if (this._isTeamLeader() && !this._isRelevantToTeamMember(message.content, message.channelId)) {
- const randomDelay = Math.floor(Math.random() * (TIMING_CONSTANTS.LEADER_DELAY_MAX - TIMING_CONSTANTS.LEADER_DELAY_MIN)) +
- TIMING_CONSTANTS.LEADER_DELAY_MIN; // 2-4 second random delay
- await new Promise(resolve => setTimeout(resolve, randomDelay));
+ if (
+ this._isTeamLeader() &&
+ !this._isRelevantToTeamMember(
+ message.content,
+ message.channelId
+ )
+ ) {
+ const randomDelay =
+ Math.floor(
+ Math.random() *
+ (TIMING_CONSTANTS.LEADER_DELAY_MAX -
+ TIMING_CONSTANTS.LEADER_DELAY_MIN)
+ ) + TIMING_CONSTANTS.LEADER_DELAY_MIN; // 2-4 second random delay
+ await new Promise((resolve) =>
+ setTimeout(resolve, randomDelay)
+ );
// After delay, check if another team member has already responded
if (channelState?.messages?.length) {
- const recentResponses = channelState.messages.slice(-MESSAGE_CONSTANTS.RECENT_MESSAGE_COUNT);
- const otherTeamMemberResponded = recentResponses.some(m =>
- m.userId !== this.client.user?.id &&
- this._isTeamMember(m.userId)
+ const recentResponses = channelState.messages.slice(
+ -MESSAGE_CONSTANTS.RECENT_MESSAGE_COUNT
+ );
+ const otherTeamMemberResponded = recentResponses.some(
+ (m) =>
+ m.userId !== this.client.user?.id &&
+ this._isTeamMember(m.userId)
);
if (otherTeamMemberResponded) {
@@ -970,7 +1138,8 @@ export class MessageManager {
// Update current handler if we're mentioned
if (this._isMessageForMe(message)) {
- const channelState = this.interestChannels[message.channelId];
+ const channelState =
+ this.interestChannels[message.channelId];
if (channelState) {
channelState.currentHandler = this.client.user?.id;
channelState.lastMessageSent = Date.now();
@@ -980,8 +1149,10 @@ export class MessageManager {
// Don't respond if another teammate is handling the conversation
if (channelState?.currentHandler) {
- if (channelState.currentHandler !== this.client.user?.id &&
- this._isTeamMember(channelState.currentHandler)) {
+ if (
+ channelState.currentHandler !== this.client.user?.id &&
+ this._isTeamMember(channelState.currentHandler)
+ ) {
return false;
}
}
@@ -989,36 +1160,38 @@ export class MessageManager {
// Natural conversation cadence
if (!this._isMessageForMe(message) && channelState) {
// Count our recent messages
- const recentMessages = channelState.messages.slice(-MESSAGE_CONSTANTS.CHAT_HISTORY_COUNT);
- const ourMessageCount = recentMessages.filter(m =>
- m.userId === this.client.user?.id
+ const recentMessages = channelState.messages.slice(
+ -MESSAGE_CONSTANTS.CHAT_HISTORY_COUNT
+ );
+ const ourMessageCount = recentMessages.filter(
+ (m) => m.userId === this.client.user?.id
).length;
// Reduce responses if we've been talking a lot
if (ourMessageCount > 2) {
// Exponentially decrease chance to respond
- const responseChance = Math.pow(0.5, ourMessageCount - 2);
+ const responseChance = Math.pow(
+ 0.5,
+ ourMessageCount - 2
+ );
if (Math.random() > responseChance) {
return false;
}
}
}
}
-
} catch (error) {
- elizaLogger.error('Error in _shouldRespond team processing:', {
+ elizaLogger.error("Error in _shouldRespond team processing:", {
error,
agentId: this.runtime.agentId,
- channelId: message.channelId
+ channelId: message.channelId,
});
}
// Otherwise do context check
if (channelState?.previousContext) {
- const shouldRespondContext = await this._shouldRespondBasedOnContext(
- message,
- channelState
- );
+ const shouldRespondContext =
+ await this._shouldRespondBasedOnContext(message, channelState);
if (!shouldRespondContext) {
delete this.interestChannels[message.channelId];
return false;
@@ -1068,7 +1241,7 @@ export class MessageManager {
if (channelState) {
channelState.previousContext = {
content: message.content,
- timestamp: Date.now()
+ timestamp: Date.now(),
};
}
@@ -1134,4 +1307,4 @@ export class MessageManager {
const data = await response.json();
return data.username;
}
-}
\ No newline at end of file
+}
diff --git a/packages/client-discord/src/utils.ts b/packages/client-discord/src/utils.ts
index 6ee1e98871..859e4db275 100644
--- a/packages/client-discord/src/utils.ts
+++ b/packages/client-discord/src/utils.ts
@@ -297,4 +297,4 @@ export function cosineSimilarity(text1: string, text2: string, text3?: string):
);
return dotProduct / maxMagnitude;
-}
\ No newline at end of file
+}
diff --git a/packages/client-discord/src/voice.ts b/packages/client-discord/src/voice.ts
index 97f2a81b6e..86bec8bcdf 100644
--- a/packages/client-discord/src/voice.ts
+++ b/packages/client-discord/src/voice.ts
@@ -25,7 +25,7 @@ import {
VoiceConnectionStatus,
createAudioPlayer,
createAudioResource,
- getVoiceConnection,
+ getVoiceConnections,
joinVoiceChannel,
entersState,
} from "@discordjs/voice";
@@ -194,7 +194,9 @@ export class VoiceManager extends EventEmitter {
}
async joinChannel(channel: BaseGuildVoiceChannel) {
- const oldConnection = getVoiceConnection(channel.guildId as string);
+ const oldConnection = this.getVoiceConnection(
+ channel.guildId as string
+ );
if (oldConnection) {
try {
oldConnection.destroy();
@@ -212,6 +214,7 @@ export class VoiceManager extends EventEmitter {
adapterCreator: channel.guild.voiceAdapterCreator as any,
selfDeaf: false,
selfMute: false,
+ group: this.client.user.id,
});
try {
@@ -328,6 +331,17 @@ export class VoiceManager extends EventEmitter {
}
}
+ private getVoiceConnection(guildId: string) {
+ const connections = getVoiceConnections(this.client.user.id);
+ if (!connections) {
+ return;
+ }
+ const connection = [...connections.values()].find(
+ (connection) => connection.joinConfig.guildId === guildId
+ );
+ return connection;
+ }
+
private async monitorMember(
member: GuildMember,
channel: BaseGuildVoiceChannel
@@ -335,7 +349,7 @@ export class VoiceManager extends EventEmitter {
const userId = member?.id;
const userName = member?.user?.username;
const name = member?.user?.displayName;
- const connection = getVoiceConnection(member?.guild?.id);
+ const connection = this.getVoiceConnection(member?.guild?.id);
const receiveStream = connection?.receiver.subscribe(userId, {
autoDestroy: true,
emitClose: true,
@@ -492,7 +506,7 @@ export class VoiceManager extends EventEmitter {
);
// Clean all users' previous buffers
- this.userStates.forEach((state, id) => {
+ this.userStates.forEach((state, _) => {
state.buffers.length = 0;
state.totalLength = 0;
});
@@ -1069,7 +1083,7 @@ export class VoiceManager extends EventEmitter {
}
async handleLeaveChannelCommand(interaction: any) {
- const connection = getVoiceConnection(interaction.guildId as any);
+ const connection = this.getVoiceConnection(interaction.guildId as any);
if (!connection) {
await interaction.reply("Not currently in a voice channel.");
diff --git a/packages/client-farcaster/package.json b/packages/client-farcaster/package.json
index ee9356753c..6568699873 100644
--- a/packages/client-farcaster/package.json
+++ b/packages/client-farcaster/package.json
@@ -1,18 +1,18 @@
{
- "name": "@ai16z/client-farcaster",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@neynar/nodejs-sdk": "^2.0.3"
- },
- "devDependencies": {
- "tsup": "^8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch"
- }
+ "name": "@ai16z/client-farcaster",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@neynar/nodejs-sdk": "^2.0.3"
+ },
+ "devDependencies": {
+ "tsup": "^8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch"
+ }
}
diff --git a/packages/client-github/package.json b/packages/client-github/package.json
index 1efb7deb84..59311f614b 100644
--- a/packages/client-github/package.json
+++ b/packages/client-github/package.json
@@ -1,23 +1,23 @@
{
- "name": "@ai16z/client-github",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@octokit/rest": "20.1.1",
- "@octokit/types": "12.6.0",
- "glob": "10.4.5",
- "simple-git": "3.27.0"
- },
- "devDependencies": {
- "@types/glob": "8.1.0",
- "tsup": "8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix"
- }
+ "name": "@ai16z/client-github",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@octokit/rest": "20.1.1",
+ "@octokit/types": "12.6.0",
+ "glob": "10.4.5",
+ "simple-git": "3.27.0"
+ },
+ "devDependencies": {
+ "@types/glob": "8.1.0",
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache ."
+ }
}
diff --git a/packages/client-lens/package.json b/packages/client-lens/package.json
new file mode 100644
index 0000000000..0e8c95fe62
--- /dev/null
+++ b/packages/client-lens/package.json
@@ -0,0 +1,24 @@
+{
+ "name": "@ai16z/client-lens",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@lens-protocol/client": "2.2.0",
+ "@lens-protocol/metadata": "1.2.0",
+ "axios": "^1.7.9",
+ "viem": "^2.13.8"
+ },
+ "devDependencies": {
+ "tsup": "^8.3.5"
+ },
+ "peerDependencies": {
+ "@ai16z/eliza": "workspace:*"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch"
+ }
+}
diff --git a/packages/client-lens/src/actions.ts b/packages/client-lens/src/actions.ts
new file mode 100644
index 0000000000..499c7e3b86
--- /dev/null
+++ b/packages/client-lens/src/actions.ts
@@ -0,0 +1,51 @@
+import type { LensClient } from "./client";
+import {
+ elizaLogger,
+ type Content,
+ type IAgentRuntime,
+ type Memory,
+ type UUID,
+} from "@ai16z/eliza";
+import { textOnly } from "@lens-protocol/metadata";
+import { createPublicationMemory } from "./memory";
+import { AnyPublicationFragment } from "@lens-protocol/client";
+import StorjProvider from "./providers/StorjProvider";
+
+export async function sendPublication({
+ client,
+ runtime,
+ content,
+ roomId,
+ commentOn,
+ ipfs,
+}: {
+ client: LensClient;
+ runtime: IAgentRuntime;
+ content: Content;
+ roomId: UUID;
+ commentOn?: string;
+ ipfs: StorjProvider;
+}): Promise<{ memory?: Memory; publication?: AnyPublicationFragment }> {
+ // TODO: arweave provider for content hosting
+ const metadata = textOnly({ content: content.text });
+ const contentURI = await ipfs.pinJson(metadata);
+
+ const publication = await client.createPublication(
+ contentURI,
+ false, // TODO: support collectable settings
+ commentOn
+ );
+
+ if (publication) {
+ return {
+ publication,
+ memory: createPublicationMemory({
+ roomId,
+ runtime,
+ publication: publication as AnyPublicationFragment,
+ }),
+ };
+ }
+
+ return {};
+}
diff --git a/packages/client-lens/src/client.ts b/packages/client-lens/src/client.ts
new file mode 100644
index 0000000000..da787a8559
--- /dev/null
+++ b/packages/client-lens/src/client.ts
@@ -0,0 +1,412 @@
+import { IAgentRuntime, elizaLogger } from "@ai16z/eliza";
+import {
+ AnyPublicationFragment,
+ LensClient as LensClientCore,
+ production,
+ LensTransactionStatusType,
+ LimitType,
+ NotificationType,
+ ProfileFragment,
+ PublicationType,
+ FeedEventItemType,
+} from "@lens-protocol/client";
+import { Profile, BroadcastResult } from "./types";
+import { PrivateKeyAccount } from "viem";
+import { getProfilePictureUri, handleBroadcastResult, omit } from "./utils";
+
+export class LensClient {
+ runtime: IAgentRuntime;
+ account: PrivateKeyAccount;
+ cache: Map;
+ lastInteractionTimestamp: Date;
+ profileId: `0x${string}`;
+
+ private authenticated: boolean;
+ private authenticatedProfile: ProfileFragment | null;
+ private core: LensClientCore;
+
+ constructor(opts: {
+ runtime: IAgentRuntime;
+ cache: Map;
+ account: PrivateKeyAccount;
+ profileId: `0x${string}`;
+ }) {
+ this.cache = opts.cache;
+ this.runtime = opts.runtime;
+ this.account = opts.account;
+ this.core = new LensClientCore({
+ environment: production,
+ });
+ this.lastInteractionTimestamp = new Date();
+ this.profileId = opts.profileId;
+ this.authenticated = false;
+ this.authenticatedProfile = null;
+ }
+
+ async authenticate(): Promise {
+ try {
+ const { id, text } =
+ await this.core.authentication.generateChallenge({
+ signedBy: this.account.address,
+ for: this.profileId,
+ });
+
+ const signature = await this.account.signMessage({
+ message: text,
+ });
+
+ await this.core.authentication.authenticate({ id, signature });
+ this.authenticatedProfile = await this.core.profile.fetch({
+ forProfileId: this.profileId,
+ });
+
+ this.authenticated = true;
+ } catch (error) {
+ elizaLogger.error("client-lens::client error: ", error);
+ throw error;
+ }
+ }
+
+ async createPublication(
+ contentURI: string,
+ onchain: boolean = false,
+ commentOn?: string
+ ): Promise {
+ try {
+ if (!this.authenticated) {
+ await this.authenticate();
+ elizaLogger.log("done authenticating");
+ }
+ let broadcastResult;
+
+ if (commentOn) {
+ broadcastResult = onchain
+ ? await this.createCommentOnchain(contentURI, commentOn)
+ : await this.createCommentMomoka(contentURI, commentOn);
+ } else {
+ broadcastResult = onchain
+ ? await this.createPostOnchain(contentURI)
+ : await this.createPostMomoka(contentURI);
+ }
+
+ elizaLogger.log("broadcastResult", broadcastResult);
+
+ if (broadcastResult.id) {
+ return await this.core.publication.fetch({
+ forId: broadcastResult.id,
+ });
+ }
+
+ const completion = await this.core.transaction.waitUntilComplete({
+ forTxHash: broadcastResult.txHash,
+ });
+
+ if (completion?.status === LensTransactionStatusType.Complete) {
+ return await this.core.publication.fetch({
+ forTxHash: completion?.txHash,
+ });
+ }
+ } catch (error) {
+ elizaLogger.error("client-lens::client error: ", error);
+ throw error;
+ }
+ }
+
+ async getPublication(
+ pubId: string
+ ): Promise {
+ if (this.cache.has(`lens/publication/${pubId}`)) {
+ return this.cache.get(`lens/publication/${pubId}`);
+ }
+
+ const publication = await this.core.publication.fetch({ forId: pubId });
+
+ if (publication)
+ this.cache.set(`lens/publication/${pubId}`, publication);
+
+ return publication;
+ }
+
+ async getPublicationsFor(
+ profileId: string,
+ limit: number = 50
+ ): Promise {
+ const timeline: AnyPublicationFragment[] = [];
+ let next: any | undefined = undefined;
+
+ do {
+ const { items, next: newNext } = next
+ ? await next()
+ : await this.core.publication.fetchAll({
+ limit: LimitType.Fifty,
+ where: {
+ from: [profileId],
+ publicationTypes: [PublicationType.Post],
+ },
+ });
+
+ items.forEach((publication) => {
+ this.cache.set(
+ `lens/publication/${publication.id}`,
+ publication
+ );
+ timeline.push(publication);
+ });
+
+ next = newNext;
+ } while (next && timeline.length < limit);
+
+ return timeline;
+ }
+
+ async getMentions(): Promise<{
+ mentions: AnyPublicationFragment[];
+ next?: () => {};
+ }> {
+ if (!this.authenticated) {
+ await this.authenticate();
+ }
+ // TODO: we should limit to new ones or at least latest n
+ const result = await this.core.notifications.fetch({
+ where: {
+ highSignalFilter: false, // true,
+ notificationTypes: [
+ NotificationType.Mentioned,
+ NotificationType.Commented,
+ ],
+ },
+ });
+ const mentions: AnyPublicationFragment[] = [];
+
+ const { items, next } = result.unwrap();
+
+ items.map((notification) => {
+ // @ts-ignore NotificationFragment
+ const item = notification.publication || notification.comment;
+ if (!item.isEncrypted) {
+ mentions.push(item);
+ this.cache.set(`lens/publication/${item.id}`, item);
+ }
+ });
+
+ return { mentions, next };
+ }
+
+ async getProfile(profileId: string): Promise {
+ if (this.cache.has(`lens/profile/${profileId}`)) {
+ return this.cache.get(`lens/profile/${profileId}`) as Profile;
+ }
+
+ const result = await this.core.profile.fetch({
+ forProfileId: profileId,
+ });
+ if (!result?.id) {
+ elizaLogger.error("Error fetching user by profileId");
+
+ throw "getProfile ERROR";
+ }
+
+ const profile: Profile = {
+ id: "",
+ profileId,
+ name: "",
+ handle: "",
+ };
+
+ profile.id = result.id;
+ profile.name = result.metadata?.displayName;
+ profile.handle = result.handle?.localName;
+ profile.bio = result.metadata?.bio;
+ profile.pfp = getProfilePictureUri(result.metadata?.picture);
+
+ this.cache.set(`lens/profile/${profileId}`, profile);
+
+ return profile;
+ }
+
+ async getTimeline(
+ profileId: string,
+ limit: number = 10
+ ): Promise {
+ try {
+ if (!this.authenticated) {
+ await this.authenticate();
+ }
+ const timeline: AnyPublicationFragment[] = [];
+ let next: any | undefined = undefined;
+
+ do {
+ const result = next
+ ? await next()
+ : await this.core.feed.fetch({
+ where: {
+ for: profileId,
+ feedEventItemTypes: [FeedEventItemType.Post],
+ },
+ });
+
+ const data = result.unwrap();
+
+ data.items.forEach((item) => {
+ // private posts in orb clubs are encrypted
+ if (timeline.length < limit && !item.root.isEncrypted) {
+ this.cache.set(
+ `lens/publication/${item.id}`,
+ item.root
+ );
+ timeline.push(item.root as AnyPublicationFragment);
+ }
+ });
+
+ next = data.pageInfo.next;
+ } while (next && timeline.length < limit);
+
+ return timeline;
+ } catch (error) {
+ console.log(error);
+ throw new Error("client-lens:: getTimeline");
+ }
+ }
+
+ private async createPostOnchain(
+ contentURI: string
+ ): Promise {
+ // gasless + signless if they enabled the lens profile manager
+ if (this.authenticatedProfile?.signless) {
+ const broadcastResult = await this.core.publication.postOnchain({
+ contentURI,
+ openActionModules: [], // TODO: if collectable
+ });
+ return handleBroadcastResult(broadcastResult);
+ }
+
+ // gasless with signed type data
+ const typedDataResult =
+ await this.core.publication.createOnchainPostTypedData({
+ contentURI,
+ openActionModules: [], // TODO: if collectable
+ });
+ const { id, typedData } = typedDataResult.unwrap();
+
+ const signedTypedData = await this.account.signTypedData({
+ domain: omit(typedData.domain as any, "__typename"),
+ types: omit(typedData.types, "__typename"),
+ primaryType: "Post",
+ message: omit(typedData.value, "__typename"),
+ });
+
+ const broadcastResult = await this.core.transaction.broadcastOnchain({
+ id,
+ signature: signedTypedData,
+ });
+ return handleBroadcastResult(broadcastResult);
+ }
+
+ private async createPostMomoka(
+ contentURI: string
+ ): Promise {
+ console.log("createPostMomoka");
+ // gasless + signless if they enabled the lens profile manager
+ if (this.authenticatedProfile?.signless) {
+ const broadcastResult = await this.core.publication.postOnMomoka({
+ contentURI,
+ });
+ return handleBroadcastResult(broadcastResult);
+ }
+
+ // gasless with signed type data
+ const typedDataResult =
+ await this.core.publication.createMomokaPostTypedData({
+ contentURI,
+ });
+ console.log("typedDataResult", typedDataResult);
+ const { id, typedData } = typedDataResult.unwrap();
+
+ const signedTypedData = await this.account.signTypedData({
+ domain: omit(typedData.domain as any, "__typename"),
+ types: omit(typedData.types, "__typename"),
+ primaryType: "Post",
+ message: omit(typedData.value, "__typename"),
+ });
+
+ const broadcastResult = await this.core.transaction.broadcastOnMomoka({
+ id,
+ signature: signedTypedData,
+ });
+ return handleBroadcastResult(broadcastResult);
+ }
+
+ private async createCommentOnchain(
+ contentURI: string,
+ commentOn: string
+ ): Promise {
+ // gasless + signless if they enabled the lens profile manager
+ if (this.authenticatedProfile?.signless) {
+ const broadcastResult = await this.core.publication.commentOnchain({
+ commentOn,
+ contentURI,
+ });
+ return handleBroadcastResult(broadcastResult);
+ }
+
+ // gasless with signed type data
+ const typedDataResult =
+ await this.core.publication.createOnchainCommentTypedData({
+ commentOn,
+ contentURI,
+ });
+
+ const { id, typedData } = typedDataResult.unwrap();
+
+ const signedTypedData = await this.account.signTypedData({
+ domain: omit(typedData.domain as any, "__typename"),
+ types: omit(typedData.types, "__typename"),
+ primaryType: "Comment",
+ message: omit(typedData.value, "__typename"),
+ });
+
+ const broadcastResult = await this.core.transaction.broadcastOnchain({
+ id,
+ signature: signedTypedData,
+ });
+ return handleBroadcastResult(broadcastResult);
+ }
+
+ private async createCommentMomoka(
+ contentURI: string,
+ commentOn: string
+ ): Promise {
+ // gasless + signless if they enabled the lens profile manager
+ if (this.authenticatedProfile?.signless) {
+ const broadcastResult = await this.core.publication.commentOnMomoka(
+ {
+ commentOn,
+ contentURI,
+ }
+ );
+ return handleBroadcastResult(broadcastResult);
+ }
+
+ // gasless with signed type data
+ const typedDataResult =
+ await this.core.publication.createMomokaCommentTypedData({
+ commentOn,
+ contentURI,
+ });
+
+ const { id, typedData } = typedDataResult.unwrap();
+
+ const signedTypedData = await this.account.signTypedData({
+ domain: omit(typedData.domain as any, "__typename"),
+ types: omit(typedData.types, "__typename"),
+ primaryType: "Comment",
+ message: omit(typedData.value, "__typename"),
+ });
+
+ const broadcastResult = await this.core.transaction.broadcastOnMomoka({
+ id,
+ signature: signedTypedData,
+ });
+ return handleBroadcastResult(broadcastResult);
+ }
+}
diff --git a/packages/client-lens/src/index.ts b/packages/client-lens/src/index.ts
new file mode 100644
index 0000000000..24cbe42268
--- /dev/null
+++ b/packages/client-lens/src/index.ts
@@ -0,0 +1,66 @@
+import { Client, IAgentRuntime, elizaLogger } from "@ai16z/eliza";
+import { privateKeyToAccount } from "viem/accounts";
+import { LensClient } from "./client";
+import { LensPostManager } from "./post";
+import { LensInteractionManager } from "./interactions";
+import StorjProvider from "./providers/StorjProvider";
+
+export class LensAgentClient implements Client {
+ client: LensClient;
+ posts: LensPostManager;
+ interactions: LensInteractionManager;
+
+ private profileId: `0x${string}`;
+ private ipfs: StorjProvider;
+
+ constructor(public runtime: IAgentRuntime) {
+ const cache = new Map();
+
+ const privateKey = runtime.getSetting(
+ "EVM_PRIVATE_KEY"
+ ) as `0x${string}`;
+ if (!privateKey) {
+ throw new Error("EVM_PRIVATE_KEY is missing");
+ }
+ const account = privateKeyToAccount(privateKey);
+
+ this.profileId = runtime.getSetting(
+ "LENS_PROFILE_ID"
+ )! as `0x${string}`;
+
+ this.client = new LensClient({
+ runtime: this.runtime,
+ account,
+ cache,
+ profileId: this.profileId,
+ });
+
+ elizaLogger.info("Lens client initialized.");
+
+ this.ipfs = new StorjProvider(runtime);
+
+ this.posts = new LensPostManager(
+ this.client,
+ this.runtime,
+ this.profileId,
+ cache,
+ this.ipfs
+ );
+
+ this.interactions = new LensInteractionManager(
+ this.client,
+ this.runtime,
+ this.profileId,
+ cache,
+ this.ipfs
+ );
+ }
+
+ async start() {
+ await Promise.all([this.posts.start(), this.interactions.start()]);
+ }
+
+ async stop() {
+ await Promise.all([this.posts.stop(), this.interactions.stop()]);
+ }
+}
diff --git a/packages/client-lens/src/interactions.ts b/packages/client-lens/src/interactions.ts
new file mode 100644
index 0000000000..0a320ab10e
--- /dev/null
+++ b/packages/client-lens/src/interactions.ts
@@ -0,0 +1,280 @@
+import {
+ composeContext,
+ generateMessageResponse,
+ generateShouldRespond,
+ Memory,
+ ModelClass,
+ stringToUuid,
+ elizaLogger,
+ HandlerCallback,
+ Content,
+ type IAgentRuntime,
+} from "@ai16z/eliza";
+import type { LensClient } from "./client";
+import { toHex } from "viem";
+import { buildConversationThread, createPublicationMemory } from "./memory";
+import {
+ formatPublication,
+ formatTimeline,
+ messageHandlerTemplate,
+ shouldRespondTemplate,
+} from "./prompts";
+import { publicationUuid } from "./utils";
+import { sendPublication } from "./actions";
+import { AnyPublicationFragment } from "@lens-protocol/client";
+import { Profile } from "./types";
+import StorjProvider from "./providers/StorjProvider";
+
+export class LensInteractionManager {
+ private timeout: NodeJS.Timeout | undefined;
+ constructor(
+ public client: LensClient,
+ public runtime: IAgentRuntime,
+ private profileId: string,
+ public cache: Map,
+ private ipfs: StorjProvider
+ ) {}
+
+ public async start() {
+ const handleInteractionsLoop = async () => {
+ try {
+ await this.handleInteractions();
+ } catch (error) {
+ elizaLogger.error(error);
+ return;
+ }
+
+ this.timeout = setTimeout(
+ handleInteractionsLoop,
+ Number(this.runtime.getSetting("LENS_POLL_INTERVAL") || 120) *
+ 1000 // Default to 2 minutes
+ );
+ };
+
+ handleInteractionsLoop();
+ }
+
+ public async stop() {
+ if (this.timeout) clearTimeout(this.timeout);
+ }
+
+ private async handleInteractions() {
+ elizaLogger.info("Handle Lens interactions");
+ // TODO: handle next() for pagination
+ const { mentions } = await this.client.getMentions();
+
+ const agent = await this.client.getProfile(this.profileId);
+ for (const mention of mentions) {
+ const messageHash = toHex(mention.id);
+ const conversationId = `${messageHash}-${this.runtime.agentId}`;
+ const roomId = stringToUuid(conversationId);
+ const userId = stringToUuid(mention.by.id);
+
+ const pastMemoryId = publicationUuid({
+ agentId: this.runtime.agentId,
+ pubId: mention.id,
+ });
+
+ const pastMemory =
+ await this.runtime.messageManager.getMemoryById(pastMemoryId);
+
+ if (pastMemory) {
+ continue;
+ }
+
+ await this.runtime.ensureConnection(
+ userId,
+ roomId,
+ mention.by.id,
+ mention.by.metadata?.displayName ||
+ mention.by.handle?.localName,
+ "lens"
+ );
+
+ const thread = await buildConversationThread({
+ client: this.client,
+ runtime: this.runtime,
+ publication: mention,
+ });
+
+ const memory: Memory = {
+ // @ts-ignore Metadata
+ content: { text: mention.metadata.content, hash: mention.id },
+ agentId: this.runtime.agentId,
+ userId,
+ roomId,
+ };
+
+ await this.handlePublication({
+ agent,
+ publication: mention,
+ memory,
+ thread,
+ });
+ }
+
+ this.client.lastInteractionTimestamp = new Date();
+ }
+
+ private async handlePublication({
+ agent,
+ publication,
+ memory,
+ thread,
+ }: {
+ agent: Profile;
+ publication: AnyPublicationFragment;
+ memory: Memory;
+ thread: AnyPublicationFragment[];
+ }) {
+ if (publication.by.id === agent.id) {
+ elizaLogger.info("skipping cast from bot itself", publication.id);
+ return;
+ }
+
+ if (!memory.content.text) {
+ elizaLogger.info("skipping cast with no text", publication.id);
+ return { text: "", action: "IGNORE" };
+ }
+
+ const currentPost = formatPublication(publication);
+
+ const timeline = await this.client.getTimeline(this.profileId);
+
+ const formattedTimeline = formatTimeline(
+ this.runtime.character,
+ timeline
+ );
+
+ const formattedConversation = thread
+ .map((pub) => {
+ // @ts-ignore Metadata
+ const content = pub.metadata.content;
+ return `@${pub.by.handle?.localName} (${new Date(
+ pub.createdAt
+ ).toLocaleString("en-US", {
+ hour: "2-digit",
+ minute: "2-digit",
+ month: "short",
+ day: "numeric",
+ })}):
+ ${content}`;
+ })
+ .join("\n\n");
+
+ const state = await this.runtime.composeState(memory, {
+ lensHandle: agent.handle,
+ timeline: formattedTimeline,
+ currentPost,
+ formattedConversation,
+ });
+
+ const shouldRespondContext = composeContext({
+ state,
+ template:
+ this.runtime.character.templates?.lensShouldRespondTemplate ||
+ this.runtime.character?.templates?.shouldRespondTemplate ||
+ shouldRespondTemplate,
+ });
+
+ const memoryId = publicationUuid({
+ agentId: this.runtime.agentId,
+ pubId: publication.id,
+ });
+
+ const castMemory =
+ await this.runtime.messageManager.getMemoryById(memoryId);
+
+ if (!castMemory) {
+ await this.runtime.messageManager.createMemory(
+ createPublicationMemory({
+ roomId: memory.roomId,
+ runtime: this.runtime,
+ publication,
+ })
+ );
+ }
+
+ const shouldRespondResponse = await generateShouldRespond({
+ runtime: this.runtime,
+ context: shouldRespondContext,
+ modelClass: ModelClass.SMALL,
+ });
+
+ if (
+ shouldRespondResponse === "IGNORE" ||
+ shouldRespondResponse === "STOP"
+ ) {
+ elizaLogger.info(
+ `Not responding to publication because generated ShouldRespond was ${shouldRespondResponse}`
+ );
+ return;
+ }
+
+ const context = composeContext({
+ state,
+ template:
+ this.runtime.character.templates?.lensMessageHandlerTemplate ??
+ this.runtime.character?.templates?.messageHandlerTemplate ??
+ messageHandlerTemplate,
+ });
+
+ const responseContent = await generateMessageResponse({
+ runtime: this.runtime,
+ context,
+ modelClass: ModelClass.LARGE,
+ });
+
+ responseContent.inReplyTo = memoryId;
+
+ if (!responseContent.text) return;
+
+ if (this.runtime.getSetting("LENS_DRY_RUN") === "true") {
+ elizaLogger.info(
+ `Dry run: would have responded to publication ${publication.id} with ${responseContent.text}`
+ );
+ return;
+ }
+
+ const callback: HandlerCallback = async (
+ content: Content,
+ files: any[]
+ ) => {
+ try {
+ if (memoryId && !content.inReplyTo) {
+ content.inReplyTo = memoryId;
+ }
+ const result = await sendPublication({
+ runtime: this.runtime,
+ client: this.client,
+ content: content,
+ roomId: memory.roomId,
+ commentOn: publication.id,
+ ipfs: this.ipfs,
+ });
+ if (!result.publication?.id)
+ throw new Error("publication not sent");
+
+ // sendPublication lost response action, so we need to add it back here?
+ result.memory!.content.action = content.action;
+
+ await this.runtime.messageManager.createMemory(result.memory!);
+ return [result.memory!];
+ } catch (error) {
+ console.error("Error sending response cast:", error);
+ return [];
+ }
+ };
+
+ const responseMessages = await callback(responseContent);
+
+ const newState = await this.runtime.updateRecentMessageState(state);
+
+ await this.runtime.processActions(
+ memory,
+ responseMessages,
+ newState,
+ callback
+ );
+ }
+}
diff --git a/packages/client-lens/src/memory.ts b/packages/client-lens/src/memory.ts
new file mode 100644
index 0000000000..2de9d01b95
--- /dev/null
+++ b/packages/client-lens/src/memory.ts
@@ -0,0 +1,112 @@
+import {
+ elizaLogger,
+ getEmbeddingZeroVector,
+ IAgentRuntime,
+ stringToUuid,
+ type Memory,
+ type UUID,
+} from "@ai16z/eliza";
+import { publicationUuid } from "./utils";
+import { LensClient } from "./client";
+import { AnyPublicationFragment } from "@lens-protocol/client";
+
+export function createPublicationMemory({
+ roomId,
+ runtime,
+ publication,
+}: {
+ roomId: UUID;
+ runtime: IAgentRuntime;
+ publication: AnyPublicationFragment;
+}): Memory {
+ const commentOn = publication.commentOn
+ ? publicationUuid({
+ pubId: publication.commentOn.id,
+ agentId: runtime.agentId,
+ })
+ : undefined;
+
+ return {
+ id: publicationUuid({
+ pubId: publication.id,
+ agentId: runtime.agentId,
+ }),
+ agentId: runtime.agentId,
+ userId: runtime.agentId,
+ content: {
+ text: publication.metadata.content,
+ source: "lens",
+ url: "",
+ commentOn,
+ id: publication.id,
+ },
+ roomId,
+ embedding: getEmbeddingZeroVector(),
+ };
+}
+
+export async function buildConversationThread({
+ publication,
+ runtime,
+ client,
+}: {
+ publication: AnyPublicationFragment;
+ runtime: IAgentRuntime;
+ client: LensClient;
+}): Promise {
+ const thread: AnyPublicationFragment[] = [];
+ const visited: Set = new Set();
+ async function processThread(currentPublication: AnyPublicationFragment) {
+ if (visited.has(currentPublication.id)) {
+ return;
+ }
+
+ visited.add(currentPublication.id);
+
+ const roomId = publicationUuid({
+ pubId: currentPublication.id,
+ agentId: runtime.agentId,
+ });
+
+ // Check if the current cast has already been saved
+ const memory = await runtime.messageManager.getMemoryById(roomId);
+
+ if (!memory) {
+ elizaLogger.log(
+ "Creating memory for publication",
+ currentPublication.id
+ );
+
+ const userId = stringToUuid(currentPublication.by.id);
+
+ await runtime.ensureConnection(
+ userId,
+ roomId,
+ currentPublication.by.id,
+ currentPublication.by.metadata?.displayName ||
+ currentPublication.by.handle?.localName,
+ "lens"
+ );
+
+ await runtime.messageManager.createMemory(
+ createPublicationMemory({
+ roomId,
+ runtime,
+ publication: currentPublication,
+ })
+ );
+ }
+
+ thread.unshift(currentPublication);
+
+ if (currentPublication.commentOn) {
+ const parentPublication = await client.getPublication(
+ currentPublication.commentOn.id
+ );
+ if (parentPublication) await processThread(parentPublication);
+ }
+ }
+
+ await processThread(publication);
+ return thread;
+}
diff --git a/packages/client-lens/src/post.ts b/packages/client-lens/src/post.ts
new file mode 100644
index 0000000000..16feb4802b
--- /dev/null
+++ b/packages/client-lens/src/post.ts
@@ -0,0 +1,141 @@
+import {
+ composeContext,
+ generateText,
+ IAgentRuntime,
+ ModelClass,
+ stringToUuid,
+ elizaLogger,
+} from "@ai16z/eliza";
+import { LensClient } from "./client";
+import { formatTimeline, postTemplate } from "./prompts";
+import { publicationUuid } from "./utils";
+import { createPublicationMemory } from "./memory";
+import { sendPublication } from "./actions";
+import StorjProvider from "./providers/StorjProvider";
+
+export class LensPostManager {
+ private timeout: NodeJS.Timeout | undefined;
+
+ constructor(
+ public client: LensClient,
+ public runtime: IAgentRuntime,
+ private profileId: string,
+ public cache: Map,
+ private ipfs: StorjProvider
+ ) {}
+
+ public async start() {
+ const generateNewPubLoop = async () => {
+ try {
+ await this.generateNewPublication();
+ } catch (error) {
+ elizaLogger.error(error);
+ return;
+ }
+
+ this.timeout = setTimeout(
+ generateNewPubLoop,
+ (Math.floor(Math.random() * (4 - 1 + 1)) + 1) * 60 * 60 * 1000
+ ); // Random interval between 1 and 4 hours
+ };
+
+ generateNewPubLoop();
+ }
+
+ public async stop() {
+ if (this.timeout) clearTimeout(this.timeout);
+ }
+
+ private async generateNewPublication() {
+ elizaLogger.info("Generating new publication");
+ try {
+ const profile = await this.client.getProfile(this.profileId);
+ await this.runtime.ensureUserExists(
+ this.runtime.agentId,
+ profile.handle!,
+ this.runtime.character.name,
+ "lens"
+ );
+
+ const timeline = await this.client.getTimeline(this.profileId);
+
+ // this.cache.set("lens/timeline", timeline);
+
+ const formattedHomeTimeline = formatTimeline(
+ this.runtime.character,
+ timeline
+ );
+
+ const generateRoomId = stringToUuid("lens_generate_room");
+
+ const state = await this.runtime.composeState(
+ {
+ roomId: generateRoomId,
+ userId: this.runtime.agentId,
+ agentId: this.runtime.agentId,
+ content: { text: "", action: "" },
+ },
+ {
+ lensHandle: profile.handle,
+ timeline: formattedHomeTimeline,
+ }
+ );
+
+ const context = composeContext({
+ state,
+ template:
+ this.runtime.character.templates?.lensPostTemplate ||
+ postTemplate,
+ });
+
+ const content = await generateText({
+ runtime: this.runtime,
+ context,
+ modelClass: ModelClass.SMALL,
+ });
+
+ if (this.runtime.getSetting("LENS_DRY_RUN") === "true") {
+ elizaLogger.info(`Dry run: would have posted: ${content}`);
+ return;
+ }
+
+ try {
+ const { publication } = await sendPublication({
+ client: this.client,
+ runtime: this.runtime,
+ roomId: generateRoomId,
+ content: { text: content },
+ ipfs: this.ipfs,
+ });
+
+ if (!publication) throw new Error("failed to send publication");
+
+ const roomId = publicationUuid({
+ agentId: this.runtime.agentId,
+ pubId: publication.id,
+ });
+
+ await this.runtime.ensureRoomExists(roomId);
+
+ await this.runtime.ensureParticipantInRoom(
+ this.runtime.agentId,
+ roomId
+ );
+
+ elizaLogger.info(`[Lens Client] Published ${publication.id}`);
+
+ await this.runtime.messageManager.createMemory(
+ createPublicationMemory({
+ roomId,
+ runtime: this.runtime,
+ publication,
+ })
+ );
+ } catch (error) {
+ elizaLogger.error("Error sending publication:", error);
+ }
+ } catch (error) {
+ elizaLogger.error("Error generating new publication:", error);
+ }
+ }
+}
diff --git a/packages/client-lens/src/prompts.ts b/packages/client-lens/src/prompts.ts
new file mode 100644
index 0000000000..a02ed4b0b6
--- /dev/null
+++ b/packages/client-lens/src/prompts.ts
@@ -0,0 +1,88 @@
+import {
+ Character,
+ messageCompletionFooter,
+ shouldRespondFooter,
+} from "@ai16z/eliza";
+import { AnyPublicationFragment } from "@lens-protocol/client";
+
+export const formatPublication = (publication: AnyPublicationFragment) => {
+ return `ID: ${publication.id}
+ From: ${publication.by.metadata?.displayName} (@${publication.by.handle?.localName})${publication.by.handle?.localName})${publication.commentOn ? `\nIn reply to: @${publication.commentOn.by.handle?.localName}` : ""}
+Text: ${publication.metadata.content}`;
+};
+
+export const formatTimeline = (
+ character: Character,
+ timeline: AnyPublicationFragment[]
+) => `# ${character.name}'s Home Timeline
+${timeline.map(formatPublication).join("\n")}
+`;
+
+export const headerTemplate = `
+{{timeline}}
+
+# Knowledge
+{{knowledge}}
+
+About {{agentName}} (@{{lensHandle}}):
+{{bio}}
+{{lore}}
+{{postDirections}}
+
+{{providers}}
+
+{{recentPosts}}
+
+{{characterPostExamples}}`;
+
+export const postTemplate =
+ headerTemplate +
+ `
+# Task: Generate a post in the voice and style of {{agentName}}, aka @{{lensHandle}}
+Write a single sentence post that is {{adjective}} about {{topic}} (without mentioning {{topic}} directly), from the perspective of {{agentName}}.
+Try to write something totally different than previous posts. Do not add commentary or ackwowledge this request, just write the post.
+
+Your response should not contain any questions. Brief, concise statements only. No emojis. Use \\n\\n (double spaces) between statements.`;
+
+export const messageHandlerTemplate =
+ headerTemplate +
+ `
+Recent interactions between {{agentName}} and other users:
+{{recentPostInteractions}}
+
+Thread of publications You Are Replying To:
+{{formattedConversation}}
+
+# Task: Generate a post in the voice, style and perspective of {{agentName}} (@{{lensHandle}}):
+{{currentPost}}` +
+ messageCompletionFooter;
+
+export const shouldRespondTemplate =
+ //
+ `# Task: Decide if {{agentName}} should respond.
+ About {{agentName}}:
+ {{bio}}
+
+ # INSTRUCTIONS: Determine if {{agentName}} (@{{lensHandle}}) should respond to the message and participate in the conversation. Do not comment. Just respond with "RESPOND" or "IGNORE" or "STOP".
+
+Response options are RESPOND, IGNORE and STOP.
+
+{{agentName}} should respond to messages that are directed at them, or participate in conversations that are interesting or relevant to their background, IGNORE messages that are irrelevant to them, and should STOP if the conversation is concluded.
+
+{{agentName}} is in a room with other users and wants to be conversational, but not annoying.
+{{agentName}} should RESPOND to messages that are directed at them, or participate in conversations that are interesting or relevant to their background.
+If a message is not interesting or relevant, {{agentName}} should IGNORE.
+If a message thread has become repetitive, {{agentName}} should IGNORE.
+Unless directly RESPONDing to a user, {{agentName}} should IGNORE messages that are very short or do not contain much information.
+If a user asks {{agentName}} to stop talking, {{agentName}} should STOP.
+If {{agentName}} concludes a conversation and isn't part of the conversation anymore, {{agentName}} should STOP.
+
+IMPORTANT: {{agentName}} (aka @{{lensHandle}}) is particularly sensitive about being annoying, so if there is any doubt, it is better to IGNORE than to RESPOND.
+
+Thread of messages You Are Replying To:
+{{formattedConversation}}
+
+Current message:
+{{currentPost}}
+
+` + shouldRespondFooter;
diff --git a/packages/client-lens/src/providers/StorjProvider.ts b/packages/client-lens/src/providers/StorjProvider.ts
new file mode 100644
index 0000000000..0460c3835c
--- /dev/null
+++ b/packages/client-lens/src/providers/StorjProvider.ts
@@ -0,0 +1,84 @@
+import axios, { AxiosInstance } from "axios";
+import FormData from "form-data";
+import type { IAgentRuntime } from "@ai16z/eliza";
+
+// ipfs pinning service: https://storj.dev/dcs/api/storj-ipfs-pinning
+class StorjProvider {
+ private STORJ_API_URL: string = "https://www.storj-ipfs.com";
+ private STORJ_API_USERNAME: string;
+ private STORJ_API_PASSWORD: string;
+ private baseURL: string;
+ private client: AxiosInstance;
+
+ constructor(runtime: IAgentRuntime) {
+ this.STORJ_API_USERNAME = runtime.getSetting("STORJ_API_USERNAME")!;
+ this.STORJ_API_PASSWORD = runtime.getSetting("STORJ_API_PASSWORD")!;
+ this.baseURL = `${this.STORJ_API_URL}/api/v0`;
+ this.client = this.createClient();
+ }
+
+ private createClient(): AxiosInstance {
+ return axios.create({
+ baseURL: this.baseURL,
+ auth: {
+ username: this.STORJ_API_USERNAME,
+ password: this.STORJ_API_PASSWORD,
+ },
+ });
+ }
+
+ private hash(uriOrHash: string): string {
+ return typeof uriOrHash === "string" && uriOrHash.startsWith("ipfs://")
+ ? uriOrHash.split("ipfs://")[1]
+ : uriOrHash;
+ }
+
+ public gatewayURL(uriOrHash: string): string {
+ return `${this.STORJ_API_URL}/ipfs/${this.hash(uriOrHash)}`;
+ }
+
+ public async pinJson(json: any): Promise {
+ if (typeof json !== "string") {
+ json = JSON.stringify(json);
+ }
+ const formData = new FormData();
+ formData.append("path", Buffer.from(json, "utf-8").toString());
+
+ const headers = {
+ "Content-Type": "multipart/form-data",
+ ...formData.getHeaders(),
+ };
+
+ const { data } = await this.client.post(
+ "add?cid-version=1",
+ formData.getBuffer(),
+ { headers }
+ );
+
+ return this.gatewayURL(data.Hash);
+ }
+
+ public async pinFile(file: {
+ buffer: Buffer;
+ originalname: string;
+ mimetype: string;
+ }): Promise {
+ const formData = new FormData();
+ formData.append("file", file.buffer, {
+ filename: file.originalname,
+ contentType: file.mimetype,
+ });
+
+ const response = await this.client.post("add?cid-version=1", formData, {
+ headers: {
+ "Content-Type": `multipart/form-data; boundary=${formData.getBoundary()}`,
+ },
+ maxContentLength: Infinity,
+ maxBodyLength: Infinity,
+ });
+
+ return this.gatewayURL(response.data.Hash);
+ }
+}
+
+export default StorjProvider;
diff --git a/packages/client-lens/src/types.ts b/packages/client-lens/src/types.ts
new file mode 100644
index 0000000000..ef22c5dff4
--- /dev/null
+++ b/packages/client-lens/src/types.ts
@@ -0,0 +1,14 @@
+export type Profile = {
+ id: string;
+ profileId: string;
+ name?: string | null;
+ handle?: string;
+ pfp?: string;
+ bio?: string | null;
+ url?: string;
+};
+
+export type BroadcastResult = {
+ id?: string;
+ txId?: string;
+};
diff --git a/packages/client-lens/src/utils.ts b/packages/client-lens/src/utils.ts
new file mode 100644
index 0000000000..b15d4fe923
--- /dev/null
+++ b/packages/client-lens/src/utils.ts
@@ -0,0 +1,84 @@
+import { stringToUuid } from "@ai16z/eliza";
+import { BroadcastResult } from "./types";
+
+export function publicationId({
+ pubId,
+ agentId,
+}: {
+ pubId: string;
+ agentId: string;
+}) {
+ return `${pubId}-${agentId}`;
+}
+
+export function publicationUuid(props: { pubId: string; agentId: string }) {
+ return stringToUuid(publicationId(props));
+}
+
+export function populateMentions(
+ text: string,
+ userIds: number[],
+ positions: number[],
+ userMap: Record
+) {
+ // Validate input arrays have same length
+ if (userIds.length !== positions.length) {
+ throw new Error(
+ "User IDs and positions arrays must have the same length"
+ );
+ }
+
+ // Create array of mention objects with position and user info
+ const mentions = userIds
+ .map((userId, index) => ({
+ position: positions[index],
+ userId,
+ displayName: userMap[userId]!,
+ }))
+ .sort((a, b) => b.position - a.position); // Sort in reverse order to prevent position shifting
+
+ // Create the resulting string by inserting mentions
+ let result = text;
+ mentions.forEach((mention) => {
+ const mentionText = `@${mention.displayName}`;
+ result =
+ result.slice(0, mention.position) +
+ mentionText +
+ result.slice(mention.position);
+ });
+
+ return result;
+}
+
+export const handleBroadcastResult = (
+ broadcastResult: any
+): BroadcastResult | undefined => {
+ const broadcastValue = broadcastResult.unwrap();
+
+ if ("id" in broadcastValue || "txId" in broadcastValue) {
+ return broadcastValue;
+ } else {
+ throw new Error();
+ }
+};
+
+export const getProfilePictureUri = (picture: any): string | undefined => {
+ if ("optimized" in picture) {
+ return picture.optimized?.uri || picture.raw?.uri || picture.uri;
+ } else {
+ return picture.uri;
+ }
+};
+
+export function omit(
+ obj: T,
+ key: K
+): Omit {
+ const result: any = {};
+ Object.keys(obj).forEach((currentKey) => {
+ if (currentKey !== key) {
+ result[currentKey] = obj[currentKey];
+ }
+ });
+ return result;
+}
diff --git a/packages/client-lens/tsconfig.json b/packages/client-lens/tsconfig.json
new file mode 100644
index 0000000000..6f3a09a9f7
--- /dev/null
+++ b/packages/client-lens/tsconfig.json
@@ -0,0 +1,12 @@
+{
+ "extends": "../core/tsconfig.json",
+ "compilerOptions": {
+ "jsx": "react",
+ "outDir": "dist",
+ "rootDir": "./src",
+ "strict": true
+ },
+ "include": [
+ "src/**/*.ts"
+ ]
+}
\ No newline at end of file
diff --git a/packages/client-lens/tsup.config.ts b/packages/client-lens/tsup.config.ts
new file mode 100644
index 0000000000..a2fbfc4a0f
--- /dev/null
+++ b/packages/client-lens/tsup.config.ts
@@ -0,0 +1,23 @@
+import { defineConfig } from "tsup";
+
+export default defineConfig({
+ entry: ["src/index.ts"],
+ outDir: "dist",
+ sourcemap: true,
+ clean: true,
+ format: ["esm"], // Ensure you're targeting CommonJS
+ external: [
+ "dotenv", // Externalize dotenv to prevent bundling
+ "fs", // Externalize fs to use Node.js built-in module
+ "path", // Externalize other built-ins if necessary
+ "@reflink/reflink",
+ "@node-llama-cpp",
+ "https",
+ "http",
+ "util",
+ "form-data",
+ "axios",
+ "agentkeepalive",
+ // Add other modules you want to externalize
+ ],
+});
diff --git a/packages/client-linkedin/README.md b/packages/client-linkedin/README.md
deleted file mode 100644
index ec43d8c5cc..0000000000
--- a/packages/client-linkedin/README.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# @ai16z/client-linkedin
-
-LinkedIn client integration for AI16Z agents. This package provides functionality for AI agents to interact with LinkedIn, including:
-
-- Automated post creation and scheduling
-- Professional interaction management
-- Message and comment handling
-- Connection management
-- Activity tracking
-
-## Installation
-
-```bash
-pnpm add @ai16z/client-linkedin
-```
-
-## Configuration
-
-Set the following environment variables:
-
-```env
-LINKEDIN_USERNAME=your.email@example.com
-LINKEDIN_PASSWORD=your_password
-LINKEDIN_DRY_RUN=false
-POST_INTERVAL_MIN=24
-POST_INTERVAL_MAX=72
-```
-
-## Usage
-
-```typescript
-import { LinkedInClientInterface } from '@ai16z/client-linkedin';
-
-// Initialize the client
-const manager = await LinkedInClientInterface.start(runtime);
-
-// The client will automatically:
-// - Generate and schedule posts
-// - Respond to messages and comments
-// - Manage connections
-// - Track activities
-```
-
-## Features
-
-- Professional content generation
-- Rate-limited API interactions
-- Conversation history tracking
-- Connection management
-- Activity monitoring
-- Cache management
-
-## License
-
-MIT
diff --git a/packages/client-linkedin/package.json b/packages/client-linkedin/package.json
deleted file mode 100644
index eb120b215e..0000000000
--- a/packages/client-linkedin/package.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "name": "@ai16z/client-linkedin",
- "version": "0.1.0-alpha.1",
- "description": "LinkedIn client integration for AI16Z agents",
- "main": "dist/index.js",
- "types": "dist/index.d.ts",
- "scripts": {
- "build": "tsc",
- "test": "jest"
- },
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "linkedin-api": "0.0.1",
- "zod": "^3.22.4"
- },
- "devDependencies": {
- "@types/node": "^20.0.0",
- "@typescript-eslint/eslint-plugin": "^6.0.0",
- "@typescript-eslint/parser": "^6.0.0",
- "eslint": "^8.0.0",
- "jest": "^29.0.0",
- "typescript": "^5.0.0"
- },
- "peerDependencies": {
- "@ai16z/eliza": "workspace:*"
- }
-}
diff --git a/packages/client-linkedin/src/base.ts b/packages/client-linkedin/src/base.ts
deleted file mode 100644
index cbf2f5e162..0000000000
--- a/packages/client-linkedin/src/base.ts
+++ /dev/null
@@ -1,205 +0,0 @@
-import { EventEmitter } from "events";
-// @ts-ignore
-import { Client as LinkedInClient } from "linkedin-api";
-import { elizaLogger } from "@ai16z/eliza";
-import { stringToUuid, getEmbeddingZeroVector } from "@ai16z/eliza";
-
-class RequestQueue {
- private queue: (() => Promise)[] = [];
- private processing = false;
-
- async add(request: () => Promise): Promise {
- return new Promise((resolve, reject) => {
- this.queue.push(async () => {
- try {
- const result = await request();
- resolve(result);
- } catch (error) {
- reject(error);
- }
- });
- this.processQueue();
- });
- }
-
- private async processQueue() {
- if (this.processing || this.queue.length === 0) {
- return;
- }
-
- this.processing = true;
- while (this.queue.length > 0) {
- const request = this.queue.shift();
- if (!request) continue;
- try {
- await request();
- } catch (error) {
- console.error("Error processing request:", error);
- this.queue.unshift(request);
- await this.exponentialBackoff(this.queue.length);
- }
- await this.randomDelay();
- }
- this.processing = false;
- }
-
- private async exponentialBackoff(retryCount: number) {
- const delay = Math.pow(2, retryCount) * 1000;
- await new Promise((resolve) => setTimeout(resolve, delay));
- }
-
- private async randomDelay() {
- const delay = Math.floor(Math.random() * 2000) + 1500;
- await new Promise((resolve) => setTimeout(resolve, delay));
- }
-}
-
-export class ClientBase extends EventEmitter {
- private static _linkedInClient: LinkedInClient;
- protected linkedInClient: LinkedInClient;
- protected runtime: any;
- protected profile: any;
- protected requestQueue: RequestQueue = new RequestQueue();
-
- constructor(runtime: any) {
- super();
- this.runtime = runtime;
-
- if (ClientBase._linkedInClient) {
- this.linkedInClient = ClientBase._linkedInClient;
- } else {
- this.linkedInClient = new LinkedInClient();
- ClientBase._linkedInClient = this.linkedInClient;
- }
- }
-
- async init() {
- const username = this.runtime.getSetting("LINKEDIN_USERNAME");
- const password = this.runtime.getSetting("LINKEDIN_PASSWORD");
-
- if (!username || !password) {
- throw new Error("LinkedIn credentials not configured");
- }
-
- elizaLogger.log("Logging into LinkedIn...");
-
- try {
- await this.linkedInClient.login(username, password);
- this.profile = await this.fetchProfile();
-
- if (this.profile) {
- elizaLogger.log(
- "LinkedIn profile loaded:",
- JSON.stringify(this.profile, null, 2)
- );
- this.runtime.character.linkedInProfile = {
- id: this.profile.id,
- username: this.profile.username,
- fullName: this.profile.fullName,
- headline: this.profile.headline,
- summary: this.profile.summary,
- };
- } else {
- throw new Error("Failed to load LinkedIn profile");
- }
-
- await this.loadInitialState();
- } catch (error) {
- elizaLogger.error("LinkedIn login failed:", error);
- throw error;
- }
- }
-
- async fetchProfile() {
- const cachedProfile = await this.getCachedProfile();
- if (cachedProfile) return cachedProfile;
-
- try {
- const profile = await this.requestQueue.add(async () => {
- const profileData = await this.linkedInClient.getProfile();
- return {
- id: profileData.id,
- username: profileData.username,
- fullName:
- profileData.firstName + " " + profileData.lastName,
- headline: profileData.headline,
- summary: profileData.summary,
- };
- });
-
- await this.cacheProfile(profile);
- return profile;
- } catch (error) {
- console.error("Error fetching LinkedIn profile:", error);
- return undefined;
- }
- }
-
- async loadInitialState() {
- await this.populateConnections();
- await this.populateRecentActivity();
- }
-
- async populateConnections() {
- const connections = await this.requestQueue.add(async () => {
- return await this.linkedInClient.getConnections();
- });
-
- for (const connection of connections) {
- const roomId = stringToUuid(`linkedin-connection-${connection.id}`);
- await this.runtime.ensureConnection(
- stringToUuid(connection.id),
- roomId,
- connection.username,
- connection.fullName,
- "linkedin"
- );
- }
- }
-
- async populateRecentActivity() {
- const activities = await this.requestQueue.add(async () => {
- return await this.linkedInClient.getFeedPosts();
- });
-
- for (const activity of activities) {
- const roomId = stringToUuid(`linkedin-post-${activity.id}`);
- await this.saveActivity(activity, roomId);
- }
- }
-
- private async saveActivity(activity: any, roomId: string) {
- const content = {
- text: activity.text,
- url: activity.url,
- source: "linkedin",
- type: activity.type,
- };
-
- await this.runtime.messageManager.createMemory({
- id: stringToUuid(`${activity.id}-${this.runtime.agentId}`),
- userId:
- activity.authorId === this.profile.id
- ? this.runtime.agentId
- : stringToUuid(activity.authorId),
- content,
- agentId: this.runtime.agentId,
- roomId,
- embedding: getEmbeddingZeroVector(),
- createdAt: activity.timestamp,
- });
- }
-
- private async getCachedProfile() {
- return await this.runtime.cacheManager.get(
- `linkedin/${this.runtime.getSetting("LINKEDIN_USERNAME")}/profile`
- );
- }
-
- private async cacheProfile(profile: any) {
- await this.runtime.cacheManager.set(
- `linkedin/${profile.username}/profile`,
- profile
- );
- }
-}
diff --git a/packages/client-linkedin/src/environment.ts b/packages/client-linkedin/src/environment.ts
deleted file mode 100644
index 8386953b80..0000000000
--- a/packages/client-linkedin/src/environment.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { z } from 'zod';
-
-export const linkedInEnvSchema = z.object({
- LINKEDIN_USERNAME: z.string().min(1, 'LinkedIn username is required'),
- LINKEDIN_PASSWORD: z.string().min(1, 'LinkedIn password is required'),
- LINKEDIN_DRY_RUN: z.string().transform(val => val.toLowerCase() === 'true'),
- POST_INTERVAL_MIN: z.string().optional(),
- POST_INTERVAL_MAX: z.string().optional()
-});
-
-export async function validateLinkedInConfig(runtime: any) {
- try {
- const config = {
- LINKEDIN_USERNAME: runtime.getSetting('LINKEDIN_USERNAME') || process.env.LINKEDIN_USERNAME,
- LINKEDIN_PASSWORD: runtime.getSetting('LINKEDIN_PASSWORD') || process.env.LINKEDIN_PASSWORD,
- LINKEDIN_DRY_RUN: runtime.getSetting('LINKEDIN_DRY_RUN') || process.env.LINKEDIN_DRY_RUN,
- POST_INTERVAL_MIN: runtime.getSetting('POST_INTERVAL_MIN') || process.env.POST_INTERVAL_MIN,
- POST_INTERVAL_MAX: runtime.getSetting('POST_INTERVAL_MAX') || process.env.POST_INTERVAL_MAX
- };
-
- return linkedInEnvSchema.parse(config);
- } catch (error) {
- if (error instanceof z.ZodError) {
- const errorMessages = error.errors
- .map(err => `${err.path.join('.')}: ${err.message}`)
- .join('\n');
- throw new Error(
- `LinkedIn configuration validation failed:\n${errorMessages}`
- );
- }
- throw error;
- }
-}
\ No newline at end of file
diff --git a/packages/client-linkedin/src/index.ts b/packages/client-linkedin/src/index.ts
deleted file mode 100644
index 6e1fe400de..0000000000
--- a/packages/client-linkedin/src/index.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { elizaLogger } from '@ai16z/eliza';
-import { ClientBase } from './base';
-import { LinkedInPostClient } from './post';
-import { LinkedInInteractionClient } from './interactions';
-import { validateLinkedInConfig } from './environment';
-
-class LinkedInManager {
- client: ClientBase;
- post: LinkedInPostClient;
- interaction: LinkedInInteractionClient;
-
- constructor(runtime: any) {
- this.client = new ClientBase(runtime);
- this.post = new LinkedInPostClient(this.client, runtime);
- this.interaction = new LinkedInInteractionClient(this.client, runtime);
- }
-}
-
-export const LinkedInClientInterface = {
- async start(runtime: any) {
- await validateLinkedInConfig(runtime);
- elizaLogger.log('LinkedIn client started');
-
- const manager = new LinkedInManager(runtime);
- await manager.client.init();
- await manager.post.start();
- await manager.interaction.start();
-
- return manager;
- },
-
- async stop(runtime: any) {
- elizaLogger.warn('LinkedIn client stop not implemented yet');
- }
-};
-
-export default LinkedInClientInterface;
\ No newline at end of file
diff --git a/packages/client-linkedin/src/interactions.ts b/packages/client-linkedin/src/interactions.ts
deleted file mode 100644
index 1c6b6654bd..0000000000
--- a/packages/client-linkedin/src/interactions.ts
+++ /dev/null
@@ -1,264 +0,0 @@
-import {
- composeContext,
- generateMessageResponse,
- generateShouldRespond,
- messageCompletionFooter,
- shouldRespondFooter,
- ModelClass,
- stringToUuid,
- elizaLogger
-} from '@ai16z/eliza';
-
-const linkedInMessageTemplate = `{{timeline}}
-
-# Knowledge
-{{knowledge}}
-
-About {{agentName}} (LinkedIn Profile):
-{{bio}}
-{{headline}}
-{{summary}}
-{{postDirections}}
-
-{{providers}}
-
-Recent interactions:
-{{recentInteractions}}
-
-# Task: Generate a professional response in the voice and style of {{agentName}}
-Current Message:
-{{currentMessage}}
-
-Conversation History:
-{{conversationHistory}}
-
-{{actions}}
-
-# Task: Generate a response in the voice and style of {{agentName}}. Include an action, if appropriate. {{actionNames}}:` + messageCompletionFooter;
-
-const linkedInShouldRespondTemplate = `# INSTRUCTIONS: Determine if {{agentName}} should respond to the message and participate in the conversation.
-
-Response options are RESPOND, IGNORE and STOP.
-
-{{agentName}} should:
-- RESPOND to messages that are directly addressed to them
-- RESPOND to professional networking opportunities
-- RESPOND to industry-relevant discussions
-- IGNORE messages that are irrelevant to their professional focus
-- IGNORE spam or promotional content
-- STOP if the conversation is concluded
-- STOP if asked to stop
-
-Recent interactions:
-{{recentInteractions}}
-
-Current Message:
-{{currentMessage}}
-
-Conversation History:
-{{conversationHistory}}
-
-# INSTRUCTIONS: Respond with [RESPOND] if {{agentName}} should respond, [IGNORE] if {{agentName}} should not respond, or [STOP] if {{agentName}} should end the conversation.` + shouldRespondFooter;
-
-export class LinkedInInteractionClient {
- private client: any;
- private runtime: any;
-
- constructor(client: any, runtime: any) {
- this.client = client;
- this.runtime = runtime;
- }
-
- async start() {
- const handleLinkedInInteractionsLoop = () => {
- this.handleLinkedInInteractions();
- setTimeout(
- handleLinkedInInteractionsLoop,
- (Math.floor(Math.random() * (15 - 5 + 1)) + 5) * 60 * 1000
- );
- };
-
- handleLinkedInInteractionsLoop();
- }
-
- async handleLinkedInInteractions() {
- elizaLogger.log('Checking LinkedIn interactions');
-
- try {
- // Check messages
- const messages = await this.client.linkedInClient.getMessages();
- for (const message of messages) {
- await this.handleMessage(message);
- }
-
- // Check post comments
- const posts = await this.client.linkedInClient.getFeedPosts();
- for (const post of posts) {
- if (post.authorId === this.client.profile.id) {
- const comments = await this.client.linkedInClient.getPostComments(post.id);
- for (const comment of comments) {
- await this.handleComment(comment, post);
- }
- }
- }
- } catch (error) {
- elizaLogger.error('Error handling LinkedIn interactions:', error);
- }
- }
-
- private async handleMessage(message: any) {
- if (message.senderId === this.client.profile.id) {
- return;
- }
-
- const roomId = stringToUuid(`linkedin-conversation-${message.conversationId}`);
- const state = await this.runtime.composeState(
- {
- userId: stringToUuid(message.senderId),
- roomId,
- agentId: this.runtime.agentId,
- content: {
- text: message.text,
- action: ''
- }
- },
- {
- currentMessage: message.text,
- conversationHistory: await this.getConversationHistory(message.conversationId)
- }
- );
-
- const shouldRespondContext = composeContext({
- state,
- template: this.runtime.character.templates?.linkedInShouldRespondTemplate || linkedInShouldRespondTemplate
- });
-
- const shouldRespond = await generateShouldRespond({
- runtime: this.runtime,
- context: shouldRespondContext,
- modelClass: ModelClass.MEDIUM
- });
-
- if (shouldRespond !== 'RESPOND') {
- elizaLogger.log('Not responding to message');
- return;
- }
-
- const responseContext = composeContext({
- state,
- template: this.runtime.character.templates?.linkedInMessageTemplate || linkedInMessageTemplate
- });
-
- const response = await generateMessageResponse({
- runtime: this.runtime,
- context: responseContext,
- modelClass: ModelClass.MEDIUM
- });
-
- if (response.text) {
- try {
- await this.client.linkedInClient.sendMessage(message.conversationId, response.text);
-
- await this.runtime.messageManager.createMemory({
- id: stringToUuid(`${Date.now()}-${this.runtime.agentId}`),
- userId: this.runtime.agentId,
- content: {
- text: response.text,
- source: 'linkedin',
- action: response.action
- },
- agentId: this.runtime.agentId,
- roomId,
- createdAt: Date.now()
- });
- } catch (error) {
- elizaLogger.error('Error sending LinkedIn message:', error);
- }
- }
- }
-
- private async handleComment(comment: any, post: any) {
- if (comment.authorId === this.client.profile.id) {
- return;
- }
-
- const roomId = stringToUuid(`linkedin-post-${post.id}`);
- const state = await this.runtime.composeState(
- {
- userId: stringToUuid(comment.authorId),
- roomId,
- agentId: this.runtime.agentId,
- content: {
- text: comment.text,
- action: ''
- }
- },
- {
- currentMessage: comment.text,
- conversationHistory: await this.getPostCommentHistory(post.id)
- }
- );
-
- const shouldRespondContext = composeContext({
- state,
- template: this.runtime.character.templates?.linkedInShouldRespondTemplate || linkedInShouldRespondTemplate
- });
-
- const shouldRespond = await generateShouldRespond({
- runtime: this.runtime,
- context: shouldRespondContext,
- modelClass: ModelClass.MEDIUM
- });
-
- if (shouldRespond !== 'RESPOND') {
- elizaLogger.log('Not responding to comment');
- return;
- }
-
- const responseContext = composeContext({
- state,
- template: this.runtime.character.templates?.linkedInMessageTemplate || linkedInMessageTemplate
- });
-
- const response = await generateMessageResponse({
- runtime: this.runtime,
- context: responseContext,
- modelClass: ModelClass.MEDIUM
- });
-
- if (response.text) {
- try {
- await this.client.linkedInClient.replyToComment(post.id, comment.id, response.text);
-
- await this.runtime.messageManager.createMemory({
- id: stringToUuid(`${Date.now()}-${this.runtime.agentId}`),
- userId: this.runtime.agentId,
- content: {
- text: response.text,
- source: 'linkedin',
- action: response.action
- },
- agentId: this.runtime.agentId,
- roomId,
- createdAt: Date.now()
- });
- } catch (error) {
- elizaLogger.error('Error replying to LinkedIn comment:', error);
- }
- }
- }
-
- private async getConversationHistory(conversationId: string): Promise {
- const messages = await this.client.linkedInClient.getConversationMessages(conversationId);
- return messages.map((msg: any) =>
- `${msg.senderName} (${new Date(msg.timestamp).toLocaleString()}): ${msg.text}`
- ).join('\n\n');
- }
-
- private async getPostCommentHistory(postId: string): Promise {
- const comments = await this.client.linkedInClient.getPostComments(postId);
- return comments.map((comment: any) =>
- `${comment.authorName} (${new Date(comment.timestamp).toLocaleString()}): ${comment.text}`
- ).join('\n\n');
- }
-}
\ No newline at end of file
diff --git a/packages/client-linkedin/src/post.ts b/packages/client-linkedin/src/post.ts
deleted file mode 100644
index f3159faadc..0000000000
--- a/packages/client-linkedin/src/post.ts
+++ /dev/null
@@ -1,161 +0,0 @@
-import {
- composeContext,
- generateText,
- ModelClass,
- stringToUuid,
- elizaLogger
-} from '@ai16z/eliza';
-
-const linkedInPostTemplate = `{{timeline}}
-
-# Knowledge
-{{knowledge}}
-
-About {{agentName}} (LinkedIn Profile):
-{{bio}}
-{{headline}}
-{{summary}}
-{{postDirections}}
-
-{{providers}}
-
-{{recentPosts}}
-
-{{characterPostExamples}}
-
-# Task: Generate a professional LinkedIn post in the voice and style of {{agentName}}
-Write a post that is {{adjective}} about {{topic}}, from the perspective of {{agentName}}.
-The post should be professional and industry-relevant.
-Do not add commentary or acknowledge this request, just write the post.
-Keep the tone professional but engaging.`;
-
-export class LinkedInPostClient {
- private client: any;
- private runtime: any;
-
- constructor(client: any, runtime: any) {
- this.client = client;
- this.runtime = runtime;
- }
-
- async start(postImmediately = false) {
- if (!this.client.profile) {
- await this.client.init();
- }
-
- const generateNewPostLoop = async () => {
- const lastPost = await this.runtime.cacheManager.get(
- `linkedin/${this.runtime.getSetting('LINKEDIN_USERNAME')}/lastPost`
- );
- const lastPostTimestamp = lastPost?.timestamp ?? 0;
- const minHours = parseInt(this.runtime.getSetting('POST_INTERVAL_MIN')) || 24;
- const maxHours = parseInt(this.runtime.getSetting('POST_INTERVAL_MAX')) || 72;
- const randomHours = Math.floor(Math.random() * (maxHours - minHours + 1)) + minHours;
- const delay = randomHours * 60 * 60 * 1000;
-
- if (Date.now() > lastPostTimestamp + delay) {
- await this.generateNewPost();
- }
-
- setTimeout(() => {
- generateNewPostLoop();
- }, delay);
-
- elizaLogger.log(`Next LinkedIn post scheduled in ${randomHours} hours`);
- };
-
- if (postImmediately) {
- await this.generateNewPost();
- }
-
- generateNewPostLoop();
- }
-
- async generateNewPost() {
- elizaLogger.log('Generating new LinkedIn post');
-
- try {
- const recentPosts = await this.client.linkedInClient.getFeedPosts();
- const formattedPosts = recentPosts.map((post: any) => {
- return `Post ID: ${post.id}
-Author: ${post.author.name}
-Date: ${new Date(post.timestamp).toDateString()}
-
-${post.text}
----`;
- }).join('\n\n');
-
- const topics = this.runtime.character.topics.join(', ');
- const state = await this.runtime.composeState(
- {
- userId: this.runtime.agentId,
- roomId: stringToUuid('linkedin_generate_room'),
- agentId: this.runtime.agentId,
- content: {
- text: topics,
- action: ''
- }
- },
- {
- timeline: formattedPosts,
- headline: this.client.profile.headline,
- summary: this.client.profile.summary
- }
- );
-
- const context = composeContext({
- state,
- template: this.runtime.character.templates?.linkedInPostTemplate || linkedInPostTemplate
- });
-
- elizaLogger.debug('Generate post prompt:\n' + context);
-
- const newPostContent = await generateText({
- runtime: this.runtime,
- context,
- modelClass: ModelClass.SMALL
- });
-
- if (this.runtime.getSetting('LINKEDIN_DRY_RUN') === 'true') {
- elizaLogger.info(`Dry run: would have posted: ${newPostContent}`);
- return;
- }
-
- try {
- elizaLogger.log(`Posting new LinkedIn post:\n${newPostContent}`);
-
- const result = await this.client.requestQueue.add(
- async () => await this.client.linkedInClient.createPost(newPostContent)
- );
-
- await this.runtime.cacheManager.set(
- `linkedin/${this.client.profile.username}/lastPost`,
- {
- id: result.id,
- timestamp: Date.now()
- }
- );
-
- const roomId = stringToUuid(`linkedin-post-${result.id}`);
- await this.runtime.messageManager.createMemory({
- id: stringToUuid(`${result.id}-${this.runtime.agentId}`),
- userId: this.runtime.agentId,
- content: {
- text: newPostContent,
- url: result.url,
- source: 'linkedin'
- },
- agentId: this.runtime.agentId,
- roomId,
- createdAt: Date.now()
- });
-
- elizaLogger.log(`LinkedIn post created: ${result.url}`);
- } catch (error) {
- elizaLogger.error('Error creating LinkedIn post:', error);
- }
- } catch (error) {
- elizaLogger.error('Error generating new LinkedIn post:', error);
- }
- }
-}
\ No newline at end of file
diff --git a/packages/client-linkedin/tsconfig.json b/packages/client-linkedin/tsconfig.json
deleted file mode 100644
index 22414fda08..0000000000
--- a/packages/client-linkedin/tsconfig.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "compilerOptions": {
- "target": "ES2020",
- "module": "CommonJS",
- "lib": [
- "ES2020"
- ],
- "declaration": true,
- "outDir": "./dist",
- "rootDir": "./src",
- "strict": true,
- "esModuleInterop": true,
- "skipLibCheck": true,
- "forceConsistentCasingInFileNames": true,
- "moduleResolution": "node"
- },
- "include": [
- "src"
- ],
- "exclude": [
- "node_modules",
- "dist",
- "test"
- ]
-}
\ No newline at end of file
diff --git a/packages/client-slack/README.md b/packages/client-slack/README.md
new file mode 100644
index 0000000000..9db2553638
--- /dev/null
+++ b/packages/client-slack/README.md
@@ -0,0 +1,166 @@
+# Eliza Slack Client
+
+This package provides Slack integration for the Eliza AI agent.
+
+## Setup Guide
+
+### Prerequisites
+- A Slack workspace where you have permissions to install apps
+- ngrok installed for local development (`brew install ngrok` on macOS)
+- Node.js and pnpm installed
+
+### Step 1: Start ngrok
+1. Open a terminal and start ngrok on port 3069 (or your configured port):
+ ```bash
+ ngrok http 3069
+ ```
+2. Copy the HTTPS URL (e.g., `https://xxxx-xx-xx-xx-xx.ngrok-free.app`)
+3. Keep this terminal open - closing it will invalidate the URL
+
+### Step 2: Create Slack App
+1. Go to [Slack API Apps page](https://api.slack.com/apps)
+2. Click "Create New App"
+3. Choose "From an app manifest"
+4. Select your workspace
+5. Copy this manifest, replacing `YOUR_NGROK_URL` with your ngrok HTTPS URL:
+
+```yaml
+display_information:
+ name: eve
+ description: Eve ai16z
+ background_color: "#143187"
+features:
+ app_home:
+ home_tab_enabled: true
+ messages_tab_enabled: false
+ messages_tab_read_only_enabled: false
+ bot_user:
+ display_name: eve
+ always_online: false
+oauth_config:
+ scopes:
+ bot:
+ - app_mentions:read
+ - channels:history
+ - channels:join
+ - channels:read
+ - chat:write
+ - files:read
+ - files:write
+ - groups:history
+ - groups:read
+ - im:history
+ - im:read
+ - im:write
+ - mpim:history
+ - mpim:read
+ - mpim:write
+ - users:read
+settings:
+ event_subscriptions:
+ request_url: YOUR_NGROK_URL/slack/events
+ bot_events:
+ - app_mention
+ - message.channels
+ - message.groups
+ - message.im
+ - message.mpim
+ - file_shared
+ interactivity:
+ is_enabled: true
+ request_url: YOUR_NGROK_URL/slack/interactions
+ org_deploy_enabled: false
+ socket_mode_enabled: false
+ token_rotation_enabled: false
+```
+
+6. Click "Create"
+7. On the "Basic Information" page, scroll down to "App Credentials"
+8. Copy all the credentials - you'll need them in Step 3
+
+### Step 3: Configure Environment Variables
+1. Create or edit `.env` file in your project root:
+ ```bash
+ SLACK_APP_ID= # From Basic Information > App Credentials > App ID
+ SLACK_CLIENT_ID= # From Basic Information > App Credentials > Client ID
+ SLACK_CLIENT_SECRET= # From Basic Information > App Credentials > Client Secret
+ SLACK_SIGNING_SECRET= # From Basic Information > App Credentials > Signing Secret
+ SLACK_BOT_TOKEN= # From OAuth & Permissions > Bot User OAuth Token (starts with xoxb-)
+ SLACK_VERIFICATION_TOKEN= # From Basic Information > App Credentials > Verification Token
+ SLACK_SERVER_PORT=3069 # Must match the port you used with ngrok
+ ```
+
+### Step 4: Install the App
+1. In your Slack App settings, go to "Install App"
+2. Click "Install to Workspace"
+3. Review the permissions and click "Allow"
+
+### Step 5: Verify Installation
+1. Start your Eliza server
+2. Check the logs for successful connection
+3. Test the bot:
+ - In Slack, invite the bot to a channel: `/invite @eve`
+ - Try mentioning the bot: `@eve hello`
+ - Check your server logs for event reception
+
+### Common Issues and Solutions
+
+#### URL Verification Failed
+- Make sure ngrok is running and the URL in your app settings matches exactly
+- Check that the `/slack/events` endpoint is accessible
+- Verify your environment variables are set correctly
+
+#### Bot Not Responding
+1. Check server logs for incoming events
+2. Verify the bot is in the channel
+3. Ensure all required scopes are granted
+4. Try reinstalling the app to refresh permissions
+
+#### Messages Not Received
+1. Verify Event Subscriptions are enabled
+2. Check the Request URL is correct and verified
+3. Confirm all bot events are subscribed
+4. Ensure the bot token starts with `xoxb-`
+
+### Updating ngrok URL
+If you restart ngrok, you'll get a new URL. You'll need to:
+1. Copy the new ngrok HTTPS URL
+2. Update the Request URLs in your Slack App settings:
+ - Event Subscriptions > Request URL
+ - Interactivity & Shortcuts > Request URL
+3. Wait for URL verification to complete
+
+### Security Notes
+- Never commit your `.env` file or tokens to version control
+- Rotate your tokens if they're ever exposed
+- Use HTTPS URLs only for Request URLs
+- Keep your ngrok and server running while testing
+
+## Development
+
+### Local Testing
+1. Start ngrok: `ngrok http 3069`
+2. Update Slack App URLs with new ngrok URL
+3. Start the server: `pnpm start`
+4. Monitor logs for events and errors
+
+### Debugging
+Enable detailed logging by setting:
+```bash
+DEBUG=eliza:*
+```
+
+### Adding New Features
+1. Update the manifest if adding new scopes
+2. Reinstall the app to apply new permissions
+3. Update documentation for any new environment variables
+
+## Support
+For issues or questions:
+1. Check the Common Issues section above
+2. Review server logs for errors
+3. Verify all setup steps are completed
+4. Open an issue with:
+ - Error messages
+ - Server logs
+ - Steps to reproduce
\ No newline at end of file
diff --git a/packages/client-slack/eslint.config.mjs b/packages/client-slack/eslint.config.mjs
new file mode 100644
index 0000000000..754f4fc4e6
--- /dev/null
+++ b/packages/client-slack/eslint.config.mjs
@@ -0,0 +1,3 @@
+import eslintGlobalConfig from "../../eslint.config.mjs";
+
+export default [...eslintGlobalConfig];
\ No newline at end of file
diff --git a/packages/client-slack/jest.config.js b/packages/client-slack/jest.config.js
new file mode 100644
index 0000000000..c3bab4bd9c
--- /dev/null
+++ b/packages/client-slack/jest.config.js
@@ -0,0 +1,22 @@
+/** @type {import('ts-jest').JestConfigWithTsJest} */
+module.exports = {
+ preset: 'ts-jest',
+ testEnvironment: 'node',
+ roots: ['/src'],
+ testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'],
+ setupFilesAfterEnv: ['/src/tests/setup.ts'],
+ collectCoverageFrom: [
+ 'src/**/*.ts',
+ '!src/tests/**',
+ '!src/examples/**',
+ '!src/**/*.d.ts'
+ ],
+ coverageThreshold: {
+ global: {
+ branches: 80,
+ functions: 80,
+ lines: 80,
+ statements: 80
+ }
+ }
+};
\ No newline at end of file
diff --git a/packages/client-slack/package.json b/packages/client-slack/package.json
new file mode 100644
index 0000000000..28d59f917c
--- /dev/null
+++ b/packages/client-slack/package.json
@@ -0,0 +1,45 @@
+{
+ "name": "@ai16z/client-slack",
+ "version": "0.1.6-alpha.4",
+ "description": "Slack client plugin for Eliza framework",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "scripts": {
+ "build": "tsup src/index.ts --format esm --dts",
+ "test": "jest",
+ "lint": "eslint --fix --cache .",
+ "clean": "rimraf dist",
+ "dev": "tsup src/index.ts --watch",
+ "example": "ts-node src/examples/standalone-example.ts",
+ "example:attachment": "ts-node src/examples/standalone-attachment.ts",
+ "example:summarize": "ts-node src/examples/standalone-summarize.ts",
+ "example:transcribe": "ts-node src/examples/standalone-transcribe.ts"
+ },
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@ffmpeg-installer/ffmpeg": "^1.1.0",
+ "@slack/events-api": "^3.0.1",
+ "@slack/web-api": "^6.8.1",
+ "body-parser": "^1.20.2",
+ "dotenv": "^16.0.3",
+ "express": "^4.18.2",
+ "fluent-ffmpeg": "^2.1.2",
+ "node-fetch": "^2.6.9"
+ },
+ "devDependencies": {
+ "@types/express": "^4.17.21",
+ "@types/fluent-ffmpeg": "^2.1.24",
+ "@types/jest": "^29.5.0",
+ "@types/node": "^18.15.11",
+ "jest": "^29.5.0",
+ "rimraf": "^5.0.0",
+ "ts-jest": "^29.1.0",
+ "ts-node": "^10.9.1",
+ "tsup": "^8.3.5",
+ "typescript": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+}
diff --git a/packages/client-slack/src/actions/chat_with_attachments.ts b/packages/client-slack/src/actions/chat_with_attachments.ts
new file mode 100644
index 0000000000..1d2e2c3f56
--- /dev/null
+++ b/packages/client-slack/src/actions/chat_with_attachments.ts
@@ -0,0 +1,285 @@
+import {
+ composeContext,
+ generateText,
+ trimTokens,
+ parseJSONObjectFromText,
+} from "@ai16z/eliza";
+import { models } from "@ai16z/eliza";
+import {
+ Action,
+ ActionExample,
+ Content,
+ HandlerCallback,
+ Handler,
+ IAgentRuntime,
+ Memory,
+ ModelClass,
+ State,
+} from "@ai16z/eliza";
+
+export const summarizationTemplate = `# Summarized so far (we are adding to this)
+{{currentSummary}}
+
+# Current attachments we are summarizing
+{{attachmentsWithText}}
+
+Summarization objective: {{objective}}
+
+# Instructions: Summarize the attachments. Return the summary. Do not acknowledge this request, just summarize and continue the existing summary if there is one. Capture any important details based on the objective. Only respond with the new summary text.`;
+
+export const attachmentIdsTemplate = `# Messages we are summarizing
+{{recentMessages}}
+
+# Instructions: {{senderName}} is requesting a summary of specific attachments. Your goal is to determine their objective, along with the list of attachment IDs to summarize.
+The "objective" is a detailed description of what the user wants to summarize based on the conversation.
+The "attachmentIds" is an array of attachment IDs that the user wants to summarize. If not specified, default to including all attachments from the conversation.
+
+Your response must be formatted as a JSON block with this structure:
+\`\`\`json
+{
+ "objective": "",
+ "attachmentIds": ["", "", ...]
+}
+\`\`\`
+`;
+
+const getAttachmentIds = async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State
+): Promise<{ objective: string; attachmentIds: string[] } | null> => {
+ const context = composeContext({
+ state,
+ template: attachmentIdsTemplate,
+ });
+
+ for (let i = 0; i < 5; i++) {
+ const response = await generateText({
+ runtime,
+ context,
+ modelClass: ModelClass.SMALL,
+ });
+
+ const parsedResponse = parseJSONObjectFromText(response) as {
+ objective: string;
+ attachmentIds: string[];
+ } | null;
+
+ if (parsedResponse?.objective && parsedResponse?.attachmentIds) {
+ return parsedResponse;
+ }
+ }
+ return null;
+};
+
+const summarizeAction: Action = {
+ name: "CHAT_WITH_ATTACHMENTS",
+ similes: [
+ "CHAT_WITH_ATTACHMENT",
+ "SUMMARIZE_FILES",
+ "SUMMARIZE_FILE",
+ "SUMMARIZE_ATACHMENT",
+ "CHAT_WITH_PDF",
+ "ATTACHMENT_SUMMARY",
+ "RECAP_ATTACHMENTS",
+ "SUMMARIZE_FILE",
+ "SUMMARIZE_VIDEO",
+ "SUMMARIZE_AUDIO",
+ "SUMMARIZE_IMAGE",
+ "SUMMARIZE_DOCUMENT",
+ "SUMMARIZE_LINK",
+ "ATTACHMENT_SUMMARY",
+ "FILE_SUMMARY",
+ ],
+ description:
+ "Answer a user request informed by specific attachments based on their IDs. If a user asks to chat with a PDF, or wants more specific information about a link or video or anything else they've attached, this is the action to use.",
+ validate: async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ _state: State | undefined
+ ): Promise => {
+ if (message.content.source !== "slack") {
+ return false;
+ }
+
+ const keywords: string[] = [
+ "attachment",
+ "summary",
+ "summarize",
+ "research",
+ "pdf",
+ "video",
+ "audio",
+ "image",
+ "document",
+ "link",
+ "file",
+ "attachment",
+ "summarize",
+ "code",
+ "report",
+ "write",
+ "details",
+ "information",
+ "talk",
+ "chat",
+ "read",
+ "listen",
+ "watch",
+ ];
+
+ return keywords.some((keyword) =>
+ message.content.text.toLowerCase().includes(keyword.toLowerCase())
+ );
+ },
+ handler: (async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State | undefined,
+ options: any,
+ callback: HandlerCallback
+ ): Promise => {
+ const currentState =
+ state ?? ((await runtime.composeState(message)) as State);
+
+ const callbackData: Content = {
+ text: "",
+ action: "CHAT_WITH_ATTACHMENTS_RESPONSE",
+ source: message.content.source,
+ attachments: [],
+ };
+
+ const attachmentData = await getAttachmentIds(
+ runtime,
+ message,
+ currentState
+ );
+ if (!attachmentData) {
+ console.error("Couldn't get attachment IDs from message");
+ await callback(callbackData);
+ return callbackData;
+ }
+
+ const { objective, attachmentIds } = attachmentData;
+
+ const attachments = currentState.recentMessagesData
+ .filter(
+ (msg) =>
+ msg.content.attachments &&
+ msg.content.attachments.length > 0
+ )
+ .flatMap((msg) => msg.content.attachments)
+ .filter((attachment) => {
+ if (!attachment) return false;
+ return (
+ attachmentIds
+ .map((attch) => attch.toLowerCase().slice(0, 5))
+ .includes(attachment.id.toLowerCase().slice(0, 5)) ||
+ attachmentIds.some((id) => {
+ const attachmentId = id.toLowerCase().slice(0, 5);
+ return attachment.id
+ .toLowerCase()
+ .includes(attachmentId);
+ })
+ );
+ });
+
+ const attachmentsWithText = attachments
+ .map((attachment) => {
+ if (!attachment) return "";
+ return `# ${attachment.title}\n${attachment.text}`;
+ })
+ .filter((text) => text !== "")
+ .join("\n\n");
+
+ let currentSummary = "";
+
+ const model = models[runtime.character.modelProvider];
+ const chunkSize = model.settings.maxOutputTokens;
+
+ currentState.attachmentsWithText = attachmentsWithText;
+ currentState.objective = objective;
+
+ const context = composeContext({
+ state: currentState,
+ template: trimTokens(
+ summarizationTemplate,
+ chunkSize + 500,
+ "gpt-4o-mini"
+ ),
+ });
+
+ const summary = await generateText({
+ runtime,
+ context,
+ modelClass: ModelClass.SMALL,
+ });
+
+ currentSummary = currentSummary + "\n" + summary;
+
+ if (!currentSummary) {
+ console.error("No summary found!");
+ await callback(callbackData);
+ return callbackData;
+ }
+
+ callbackData.text = currentSummary.trim();
+
+ if (
+ callbackData.text &&
+ (currentSummary.trim()?.split("\n").length < 4 ||
+ currentSummary.trim()?.split(" ").length < 100)
+ ) {
+ callbackData.text = `Here is the summary:
+\`\`\`md
+${currentSummary.trim()}
+\`\`\`
+`;
+ await callback(callbackData);
+ } else if (currentSummary.trim()) {
+ const summaryFilename = `content/summary_${Date.now()}`;
+ await runtime.cacheManager.set(summaryFilename, currentSummary);
+
+ callbackData.text = `I've attached the summary of the requested attachments as a text file.`;
+ await callback(callbackData, [summaryFilename]);
+ } else {
+ await callback(callbackData);
+ }
+
+ return callbackData;
+ }) as Handler,
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Can you summarize the PDF I just shared?",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "I'll analyze the PDF and provide a summary for you.",
+ action: "CHAT_WITH_ATTACHMENTS",
+ },
+ },
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Could you look at these documents and tell me what they're about?",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "I'll review the documents and provide a summary of their contents.",
+ action: "CHAT_WITH_ATTACHMENTS",
+ },
+ },
+ ],
+ ] as ActionExample[][],
+};
+
+export default summarizeAction;
diff --git a/packages/client-slack/src/actions/send-message.action.ts b/packages/client-slack/src/actions/send-message.action.ts
new file mode 100644
index 0000000000..93996b529f
--- /dev/null
+++ b/packages/client-slack/src/actions/send-message.action.ts
@@ -0,0 +1,60 @@
+import { SlackClientContext, SlackMessage } from '../types/slack-types';
+
+// Cache to store recently sent messages
+const recentMessages = new Map();
+const MESSAGE_CACHE_TTL = 5000; // 5 seconds TTL
+
+export class SendMessageAction {
+ constructor(private context: SlackClientContext) {}
+
+ private cleanupOldMessages() {
+ const now = Date.now();
+ for (const [key, value] of recentMessages.entries()) {
+ if (now - value.timestamp > MESSAGE_CACHE_TTL) {
+ recentMessages.delete(key);
+ }
+ }
+ }
+
+ private isDuplicate(message: SlackMessage): boolean {
+ this.cleanupOldMessages();
+
+ // Create a unique key for the message
+ const messageKey = `${message.channelId}:${message.threadTs || 'main'}:${message.text}`;
+
+ // Check if we've seen this message recently
+ const recentMessage = recentMessages.get(messageKey);
+ if (recentMessage) {
+ return true;
+ }
+
+ // Store the new message
+ recentMessages.set(messageKey, {
+ text: message.text,
+ timestamp: Date.now()
+ });
+
+ return false;
+ }
+
+ public async execute(message: SlackMessage): Promise {
+ try {
+ // Skip duplicate messages
+ if (this.isDuplicate(message)) {
+ console.debug('Skipping duplicate message:', message.text);
+ return true; // Return true to indicate "success" since we're intentionally skipping
+ }
+
+ const result = await this.context.client.chat.postMessage({
+ channel: message.channelId,
+ text: message.text,
+ thread_ts: message.threadTs,
+ });
+
+ return result.ok === true;
+ } catch (error) {
+ console.error('Failed to send message:', error);
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/client-slack/src/actions/summarize_conversation.ts b/packages/client-slack/src/actions/summarize_conversation.ts
new file mode 100644
index 0000000000..f99a77b3a3
--- /dev/null
+++ b/packages/client-slack/src/actions/summarize_conversation.ts
@@ -0,0 +1,432 @@
+import {
+ composeContext,
+ generateText,
+ splitChunks,
+ trimTokens,
+ parseJSONObjectFromText,
+} from "@ai16z/eliza";
+import { models } from "@ai16z/eliza";
+import { getActorDetails } from "@ai16z/eliza";
+import {
+ Action,
+ ActionExample,
+ Content,
+ HandlerCallback,
+ IAgentRuntime,
+ Media,
+ Memory,
+ ModelClass,
+ State,
+ elizaLogger,
+} from "@ai16z/eliza";
+import { ISlackService, SLACK_SERVICE_TYPE } from "../types/slack-types";
+
+export const summarizationTemplate = `# Summarized so far (we are adding to this)
+{{currentSummary}}
+
+# Current conversation chunk we are summarizing (includes attachments)
+{{memoriesWithAttachments}}
+
+Summarization objective: {{objective}}
+
+# Instructions: Summarize the conversation so far. Return the summary. Do not acknowledge this request, just summarize and continue the existing summary if there is one. Capture any important details to the objective. Only respond with the new summary text.
+Your response should be extremely detailed and include any and all relevant information.`;
+
+export const dateRangeTemplate = `# Messages we are summarizing (the conversation is continued after this)
+{{recentMessages}}
+
+# Instructions: {{senderName}} is requesting a summary of the conversation. Your goal is to determine their objective, along with the range of dates that their request covers.
+The "objective" is a detailed description of what the user wants to summarize based on the conversation. If they just ask for a general summary, you can either base it off the conversation if the summary range is very recent, or set the object to be general, like "a detailed summary of the conversation between all users".
+
+The "start" and "end" are the range of dates that the user wants to summarize, relative to the current time. The format MUST be a number followed by a unit, like:
+- "5 minutes ago"
+- "2 hours ago"
+- "1 day ago"
+- "30 seconds ago"
+
+For example:
+\`\`\`json
+{
+ "objective": "a detailed summary of the conversation between all users",
+ "start": "2 hours ago",
+ "end": "0 minutes ago"
+}
+\`\`\`
+
+If the user asks for "today", use "24 hours ago" as start and "0 minutes ago" as end.
+If no time range is specified, default to "2 hours ago" for start and "0 minutes ago" for end.
+`;
+
+const getDateRange = async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State
+): Promise<{ objective: string; start: number; end: number } | undefined> => {
+ state = (await runtime.composeState(message)) as State;
+
+ const context = composeContext({
+ state,
+ template: dateRangeTemplate,
+ });
+
+ for (let i = 0; i < 5; i++) {
+ const response = await generateText({
+ runtime,
+ context,
+ modelClass: ModelClass.SMALL,
+ });
+
+ const parsedResponse = parseJSONObjectFromText(response) as {
+ objective: string;
+ start: string | number;
+ end: string | number;
+ } | null;
+
+ if (
+ parsedResponse?.objective &&
+ parsedResponse?.start &&
+ parsedResponse?.end
+ ) {
+ // Parse time strings like "5 minutes ago", "2 hours ago", etc.
+ const parseTimeString = (timeStr: string): number | null => {
+ const match = timeStr.match(
+ /^(\d+)\s+(second|minute|hour|day)s?\s+ago$/i
+ );
+ if (!match) return null;
+
+ const [_, amount, unit] = match;
+ const value = parseInt(amount);
+
+ if (isNaN(value)) return null;
+
+ const multipliers: { [key: string]: number } = {
+ second: 1000,
+ minute: 60 * 1000,
+ hour: 60 * 60 * 1000,
+ day: 24 * 60 * 60 * 1000,
+ };
+
+ const multiplier = multipliers[unit.toLowerCase()];
+ if (!multiplier) return null;
+
+ return value * multiplier;
+ };
+
+ const startTime = parseTimeString(parsedResponse.start as string);
+ const endTime = parseTimeString(parsedResponse.end as string);
+
+ if (startTime === null || endTime === null) {
+ elizaLogger.error(
+ "Invalid time format in response",
+ parsedResponse
+ );
+ continue;
+ }
+
+ return {
+ objective: parsedResponse.objective,
+ start: Date.now() - startTime,
+ end: Date.now() - endTime,
+ };
+ }
+ }
+
+ return undefined;
+};
+
+const summarizeAction: Action = {
+ name: "SUMMARIZE_CONVERSATION",
+ similes: [
+ "RECAP",
+ "RECAP_CONVERSATION",
+ "SUMMARIZE_CHAT",
+ "SUMMARIZATION",
+ "CHAT_SUMMARY",
+ "CONVERSATION_SUMMARY",
+ ],
+ description: "Summarizes the conversation and attachments.",
+ validate: async (
+ _runtime: IAgentRuntime,
+ message: Memory,
+ _state: State | undefined
+ ): Promise => {
+ if (message.content.source !== "slack") {
+ return false;
+ }
+
+ const keywords: string[] = [
+ "summarize",
+ "summarization",
+ "summary",
+ "recap",
+ "report",
+ "overview",
+ "review",
+ "rundown",
+ "wrap-up",
+ "brief",
+ "debrief",
+ "abstract",
+ "synopsis",
+ "outline",
+ "digest",
+ "abridgment",
+ "condensation",
+ "encapsulation",
+ "essence",
+ "gist",
+ "main points",
+ "key points",
+ "key takeaways",
+ "bulletpoint",
+ "highlights",
+ "tldr",
+ "tl;dr",
+ "in a nutshell",
+ "bottom line",
+ "long story short",
+ "sum up",
+ "sum it up",
+ "short version",
+ "bring me up to speed",
+ "catch me up",
+ ];
+
+ return keywords.some((keyword) =>
+ message.content.text.toLowerCase().includes(keyword.toLowerCase())
+ );
+ },
+ handler: async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State,
+ _options: any,
+ callback: HandlerCallback
+ ): Promise => {
+ const currentState = (await runtime.composeState(message)) as State;
+
+ const callbackData: Content = {
+ text: "",
+ action: "SUMMARIZATION_RESPONSE",
+ source: message.content.source,
+ attachments: [],
+ };
+
+ // 1. Extract date range from the message
+ const dateRange = await getDateRange(runtime, message, currentState);
+ if (!dateRange) {
+ elizaLogger.error("Couldn't determine date range from message");
+ callbackData.text =
+ "I couldn't determine the time range to summarize. Please try asking for a specific period like 'last hour' or 'today'.";
+ await callback(callbackData);
+ return callbackData;
+ }
+
+ const { objective, start, end } = dateRange;
+
+ // 2. Get memories from the database
+ const memories = await runtime.messageManager.getMemories({
+ roomId: message.roomId,
+ start,
+ end,
+ count: 10000,
+ unique: false,
+ });
+
+ if (!memories || memories.length === 0) {
+ callbackData.text =
+ "I couldn't find any messages in that time range to summarize.";
+ await callback(callbackData);
+ return callbackData;
+ }
+
+ const actors = await getActorDetails({
+ runtime: runtime as IAgentRuntime,
+ roomId: message.roomId,
+ });
+
+ const actorMap = new Map(actors.map((actor) => [actor.id, actor]));
+
+ const formattedMemories = memories
+ .map((memory) => {
+ const actor = actorMap.get(memory.userId);
+ const userName =
+ actor?.name || actor?.username || "Unknown User";
+ const attachments = memory.content.attachments
+ ?.map((attachment: Media) => {
+ if (!attachment) return "";
+ return `---\nAttachment: ${attachment.id}\n${attachment.description || ""}\n${attachment.text || ""}\n---`;
+ })
+ .filter((text) => text !== "")
+ .join("\n");
+ return `${userName}: ${memory.content.text}\n${attachments || ""}`;
+ })
+ .join("\n");
+
+ let currentSummary = "";
+
+ const model = models[runtime.character.modelProvider];
+ const chunkSize = model.settings.maxOutputTokens;
+
+ const chunks = await splitChunks(formattedMemories, chunkSize, 0);
+
+ currentState.memoriesWithAttachments = formattedMemories;
+ currentState.objective = objective;
+
+ // Only process one chunk at a time and stop after getting a valid summary
+ for (let i = 0; i < chunks.length; i++) {
+ const chunk = chunks[i];
+ currentState.currentSummary = currentSummary;
+ currentState.currentChunk = chunk;
+
+ const context = composeContext({
+ state: currentState,
+ template: trimTokens(
+ summarizationTemplate,
+ chunkSize + 500,
+ "gpt-4o-mini"
+ ),
+ });
+
+ const summary = await generateText({
+ runtime,
+ context,
+ modelClass: ModelClass.SMALL,
+ });
+
+ if (summary) {
+ currentSummary = currentSummary + "\n" + summary;
+ break; // Stop after getting first valid summary
+ }
+ }
+
+ if (!currentSummary.trim()) {
+ callbackData.text =
+ "I wasn't able to generate a summary of the conversation.";
+ await callback(callbackData);
+ return callbackData;
+ }
+
+ // Format dates consistently
+ const formatDate = (timestamp: number) => {
+ const date = new Date(timestamp);
+ const pad = (n: number) => (n < 10 ? `0${n}` : n);
+ return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}`;
+ };
+
+ try {
+ // Get the user's name for the summary header
+ const requestingUser = actorMap.get(message.userId);
+ const userName =
+ requestingUser?.name ||
+ requestingUser?.username ||
+ "Unknown User";
+
+ const summaryContent = `Summary of conversation from ${formatDate(start)} to ${formatDate(end)}
+
+Here is a detailed summary of the conversation between ${userName} and ${runtime.character.name}:\n\n${currentSummary.trim()}`;
+
+ // If summary is long, upload as a file
+ if (summaryContent.length > 1000) {
+ const summaryFilename = `summary_${Date.now()}.txt`;
+ elizaLogger.debug("Uploading summary file to Slack...");
+
+ try {
+ // Save file content
+ await runtime.cacheManager.set(
+ summaryFilename,
+ summaryContent
+ );
+
+ // Get the Slack service from runtime
+ const slackService = runtime.getService(
+ SLACK_SERVICE_TYPE
+ ) as ISlackService;
+ if (!slackService?.client) {
+ elizaLogger.error(
+ "Slack service not found or not properly initialized"
+ );
+ throw new Error("Slack service not found");
+ }
+
+ // Upload file using Slack's API
+ elizaLogger.debug(
+ `Uploading file ${summaryFilename} to channel ${message.roomId}`
+ );
+ const uploadResult = await slackService.client.files.upload(
+ {
+ channels: message.roomId,
+ filename: summaryFilename,
+ title: "Conversation Summary",
+ content: summaryContent,
+ initial_comment: `I've created a summary of the conversation from ${formatDate(start)} to ${formatDate(end)}.`,
+ }
+ );
+
+ if (uploadResult.ok) {
+ elizaLogger.success(
+ "Successfully uploaded summary file to Slack"
+ );
+ callbackData.text = `I've created a summary of the conversation from ${formatDate(start)} to ${formatDate(end)}. You can find it in the thread above.`;
+ } else {
+ elizaLogger.error(
+ "Failed to upload file to Slack:",
+ uploadResult.error
+ );
+ throw new Error("Failed to upload file to Slack");
+ }
+ } catch (error) {
+ elizaLogger.error("Error uploading summary file:", error);
+ // Fallback to sending as a message
+ callbackData.text = summaryContent;
+ }
+ } else {
+ // For shorter summaries, just send as a message
+ callbackData.text = summaryContent;
+ }
+
+ await callback(callbackData);
+ return callbackData;
+ } catch (error) {
+ elizaLogger.error("Error in summary generation:", error);
+ callbackData.text =
+ "I encountered an error while generating the summary. Please try again.";
+ await callback(callbackData);
+ return callbackData;
+ }
+ },
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Can you give me a detailed report on what we're talking about?",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "I'll analyze the conversation and provide a summary for you.",
+ action: "SUMMARIZE_CONVERSATION",
+ },
+ },
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Please summarize our discussion from the last hour, including any shared files.",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "I'll review the conversation and shared content to create a comprehensive summary.",
+ action: "SUMMARIZE_CONVERSATION",
+ },
+ },
+ ],
+ ] as ActionExample[][],
+};
+
+export default summarizeAction;
diff --git a/packages/client-slack/src/actions/transcribe_media.ts b/packages/client-slack/src/actions/transcribe_media.ts
new file mode 100644
index 0000000000..b1801b855b
--- /dev/null
+++ b/packages/client-slack/src/actions/transcribe_media.ts
@@ -0,0 +1,217 @@
+import {
+ composeContext,
+ generateText,
+ parseJSONObjectFromText,
+} from "@ai16z/eliza";
+import {
+ Action,
+ ActionExample,
+ Content,
+ HandlerCallback,
+ Handler,
+ IAgentRuntime,
+ Memory,
+ ModelClass,
+ State,
+} from "@ai16z/eliza";
+
+export const transcriptionTemplate = `# Transcription of media file
+{{mediaTranscript}}
+
+# Instructions: Return only the full transcript of the media file without any additional context or commentary.`;
+
+export const mediaAttachmentIdTemplate = `# Messages we are transcribing
+{{recentMessages}}
+
+# Instructions: {{senderName}} is requesting a transcription of a specific media file (audio or video). Your goal is to determine the ID of the attachment they want transcribed.
+The "attachmentId" is the ID of the media file attachment that the user wants transcribed. If not specified, return null.
+
+Your response must be formatted as a JSON block with this structure:
+\`\`\`json
+{
+ "attachmentId": ""
+}
+\`\`\`
+`;
+
+const getMediaAttachmentId = async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State
+): Promise => {
+ const context = composeContext({
+ state,
+ template: mediaAttachmentIdTemplate,
+ });
+
+ for (let i = 0; i < 5; i++) {
+ const response = await generateText({
+ runtime,
+ context,
+ modelClass: ModelClass.SMALL,
+ });
+
+ const parsedResponse = parseJSONObjectFromText(response) as {
+ attachmentId: string;
+ } | null;
+
+ if (parsedResponse?.attachmentId) {
+ return parsedResponse.attachmentId;
+ }
+ }
+ return null;
+};
+
+const transcribeMediaAction: Action = {
+ name: "TRANSCRIBE_MEDIA",
+ similes: [
+ "TRANSCRIBE_AUDIO",
+ "TRANSCRIBE_VIDEO",
+ "MEDIA_TRANSCRIPT",
+ "VIDEO_TRANSCRIPT",
+ "AUDIO_TRANSCRIPT",
+ ],
+ description:
+ "Transcribe the full text of an audio or video file that the user has attached.",
+ validate: async (
+ _runtime: IAgentRuntime,
+ message: Memory,
+ _state: State | undefined
+ ): Promise => {
+ if (message.content.source !== "slack") {
+ return false;
+ }
+
+ const keywords: string[] = [
+ "transcribe",
+ "transcript",
+ "audio",
+ "video",
+ "media",
+ "youtube",
+ "meeting",
+ "recording",
+ "podcast",
+ "call",
+ "conference",
+ "interview",
+ "speech",
+ "lecture",
+ "presentation",
+ ];
+ return keywords.some((keyword) =>
+ message.content.text.toLowerCase().includes(keyword.toLowerCase())
+ );
+ },
+ handler: (async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State | undefined,
+ _options: any,
+ callback: HandlerCallback
+ ): Promise => {
+ const currentState = (await runtime.composeState(message)) as State;
+
+ const callbackData: Content = {
+ text: "",
+ action: "TRANSCRIBE_MEDIA_RESPONSE",
+ source: message.content.source,
+ attachments: [],
+ };
+
+ const attachmentId = await getMediaAttachmentId(
+ runtime,
+ message,
+ currentState
+ );
+ if (!attachmentId) {
+ console.error("Couldn't get media attachment ID from message");
+ await callback(callbackData);
+ return callbackData;
+ }
+
+ const attachment = currentState.recentMessagesData
+ .filter(
+ (msg) =>
+ msg.content.attachments &&
+ msg.content.attachments.length > 0
+ )
+ .flatMap((msg) => msg.content.attachments)
+ .find((attachment) => {
+ if (!attachment) return false;
+ return (
+ attachment.id.toLowerCase() === attachmentId.toLowerCase()
+ );
+ });
+
+ if (!attachment) {
+ console.error(`Couldn't find attachment with ID ${attachmentId}`);
+ await callback(callbackData);
+ return callbackData;
+ }
+
+ const mediaTranscript = attachment.text || "";
+ callbackData.text = mediaTranscript.trim();
+
+ if (
+ callbackData.text &&
+ (callbackData.text?.split("\n").length < 4 ||
+ callbackData.text?.split(" ").length < 100)
+ ) {
+ callbackData.text = `Here is the transcript:
+\`\`\`md
+${mediaTranscript.trim()}
+\`\`\`
+`;
+ await callback(callbackData);
+ } else if (callbackData.text) {
+ const transcriptFilename = `content/transcript_${Date.now()}`;
+ await runtime.cacheManager.set(
+ transcriptFilename,
+ callbackData.text
+ );
+
+ callbackData.text = `I've attached the transcript as a text file.`;
+ await callback(callbackData, [transcriptFilename]);
+ } else {
+ console.warn("Empty response from transcribe media action");
+ await callback(callbackData);
+ }
+
+ return callbackData;
+ }) as Handler,
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Please transcribe the audio file I just shared.",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "I'll transcribe the audio file for you.",
+ action: "TRANSCRIBE_MEDIA",
+ },
+ },
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Can you get me a transcript of this meeting recording?",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "I'll generate a transcript of the meeting recording for you.",
+ action: "TRANSCRIBE_MEDIA",
+ },
+ },
+ ],
+ ] as ActionExample[][],
+};
+
+export default transcribeMediaAction;
diff --git a/packages/client-slack/src/attachments.ts b/packages/client-slack/src/attachments.ts
new file mode 100644
index 0000000000..111f87d073
--- /dev/null
+++ b/packages/client-slack/src/attachments.ts
@@ -0,0 +1,332 @@
+import { generateText, trimTokens, parseJSONObjectFromText } from "@ai16z/eliza";
+import {
+ IAgentRuntime,
+ IImageDescriptionService,
+ IPdfService,
+ ITranscriptionService,
+ IVideoService,
+ Media,
+ ModelClass,
+ ServiceType,
+} from "@ai16z/eliza";
+import { WebClient } from '@slack/web-api';
+import ffmpeg from "fluent-ffmpeg";
+import fs from "fs";
+
+async function generateSummary(
+ runtime: IAgentRuntime,
+ text: string
+): Promise<{ title: string; description: string }> {
+ text = trimTokens(text, 100000, "gpt-4o-mini");
+
+ const prompt = `Please generate a concise summary for the following text:
+
+ Text: """
+ ${text}
+ """
+
+ Respond with a JSON object in the following format:
+ \`\`\`json
+ {
+ "title": "Generated Title",
+ "summary": "Generated summary and/or description of the text"
+ }
+ \`\`\``;
+
+ const response = await generateText({
+ runtime,
+ context: prompt,
+ modelClass: ModelClass.SMALL,
+ });
+
+ const parsedResponse = parseJSONObjectFromText(response);
+
+ if (parsedResponse) {
+ return {
+ title: parsedResponse.title,
+ description: parsedResponse.summary,
+ };
+ }
+
+ return {
+ title: "",
+ description: "",
+ };
+}
+
+interface SlackFile {
+ id: string;
+ url_private: string;
+ name: string;
+ size: number;
+ mimetype: string;
+ title?: string;
+}
+
+export class AttachmentManager {
+ private attachmentCache: Map = new Map();
+ private runtime: IAgentRuntime;
+ private client: WebClient;
+
+ constructor(runtime: IAgentRuntime, client: WebClient) {
+ this.runtime = runtime;
+ this.client = client;
+ }
+
+ async processAttachments(files: SlackFile[]): Promise {
+ const processedAttachments: Media[] = [];
+
+ for (const file of files) {
+ const media = await this.processAttachment(file);
+ if (media) {
+ processedAttachments.push(media);
+ }
+ }
+
+ return processedAttachments;
+ }
+
+ async processAttachment(file: SlackFile): Promise {
+ if (this.attachmentCache.has(file.url_private)) {
+ return this.attachmentCache.get(file.url_private)!;
+ }
+
+ let media: Media | null = null;
+
+ try {
+ const videoService = this.runtime.getService(ServiceType.VIDEO);
+
+ if (file.mimetype.startsWith("application/pdf")) {
+ media = await this.processPdfAttachment(file);
+ } else if (file.mimetype.startsWith("text/plain")) {
+ media = await this.processPlaintextAttachment(file);
+ } else if (
+ file.mimetype.startsWith("audio/") ||
+ file.mimetype.startsWith("video/mp4")
+ ) {
+ media = await this.processAudioVideoAttachment(file);
+ } else if (file.mimetype.startsWith("image/")) {
+ media = await this.processImageAttachment(file);
+ } else if (
+ file.mimetype.startsWith("video/") ||
+ (videoService?.isVideoUrl(file.url_private) ?? false)
+ ) {
+ media = await this.processVideoAttachment(file);
+ } else {
+ media = await this.processGenericAttachment(file);
+ }
+
+ if (media) {
+ this.attachmentCache.set(file.url_private, media);
+ }
+ } catch (error: unknown) {
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
+ console.error(`Error processing attachment: ${errorMessage}`);
+ media = await this.processGenericAttachment(file);
+ }
+
+ return media;
+ }
+
+ private async fetchFileContent(file: SlackFile): Promise {
+ const response = await fetch(file.url_private, {
+ headers: {
+ 'Authorization': `Bearer ${this.client.token}`,
+ }
+ });
+ const arrayBuffer = await response.arrayBuffer();
+ return Buffer.from(arrayBuffer);
+ }
+
+ private async processAudioVideoAttachment(file: SlackFile): Promise {
+ try {
+ const fileBuffer = await this.fetchFileContent(file);
+ let audioBuffer: Buffer;
+
+ if (file.mimetype.startsWith("audio/")) {
+ audioBuffer = fileBuffer;
+ } else if (file.mimetype.startsWith("video/mp4")) {
+ audioBuffer = await this.extractAudioFromMP4(fileBuffer);
+ } else {
+ throw new Error("Unsupported audio/video format");
+ }
+
+ const transcriptionService = this.runtime.getService(ServiceType.TRANSCRIPTION);
+ if (!transcriptionService) {
+ throw new Error("Transcription service not found");
+ }
+
+ const transcription = await transcriptionService.transcribeAttachment(audioBuffer);
+ if (!transcription) {
+ throw new Error("Transcription failed");
+ }
+
+ const { title, description } = await generateSummary(this.runtime, transcription);
+
+ return {
+ id: file.id,
+ url: file.url_private,
+ title: title || "Audio/Video Attachment",
+ source: file.mimetype.startsWith("audio/") ? "Audio" : "Video",
+ description: description || "User-uploaded audio/video attachment which has been transcribed",
+ text: transcription,
+ };
+ } catch (error: unknown) {
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
+ console.error(`Error processing audio/video attachment: ${errorMessage}`);
+ return {
+ id: file.id,
+ url: file.url_private,
+ title: "Audio/Video Attachment",
+ source: file.mimetype.startsWith("audio/") ? "Audio" : "Video",
+ description: "An audio/video attachment (transcription failed)",
+ text: `This is an audio/video attachment. File name: ${file.name}, Size: ${file.size} bytes, Content type: ${file.mimetype}`,
+ };
+ }
+ }
+
+ private async extractAudioFromMP4(mp4Data: Buffer): Promise {
+ const tempMP4File = `temp_${Date.now()}.mp4`;
+ const tempAudioFile = `temp_${Date.now()}.mp3`;
+
+ try {
+ fs.writeFileSync(tempMP4File, mp4Data);
+
+ await new Promise((resolve, reject) => {
+ ffmpeg(tempMP4File)
+ .outputOptions("-vn")
+ .audioCodec("libmp3lame")
+ .save(tempAudioFile)
+ .on("end", () => resolve())
+ .on("error", (err: Error) => reject(err))
+ .run();
+ });
+
+ return fs.readFileSync(tempAudioFile);
+ } finally {
+ if (fs.existsSync(tempMP4File)) {
+ fs.unlinkSync(tempMP4File);
+ }
+ if (fs.existsSync(tempAudioFile)) {
+ fs.unlinkSync(tempAudioFile);
+ }
+ }
+ }
+
+ private async processPdfAttachment(file: SlackFile): Promise {
+ try {
+ const pdfBuffer = await this.fetchFileContent(file);
+ const pdfService = this.runtime.getService(ServiceType.PDF);
+
+ if (!pdfService) {
+ throw new Error("PDF service not found");
+ }
+
+ const text = await pdfService.convertPdfToText(pdfBuffer);
+ const { title, description } = await generateSummary(this.runtime, text);
+
+ return {
+ id: file.id,
+ url: file.url_private,
+ title: title || "PDF Attachment",
+ source: "PDF",
+ description: description || "A PDF document",
+ text: text,
+ };
+ } catch (error: unknown) {
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
+ console.error(`Error processing PDF attachment: ${errorMessage}`);
+ return {
+ id: file.id,
+ url: file.url_private,
+ title: "PDF Attachment (conversion failed)",
+ source: "PDF",
+ description: "A PDF document that could not be converted to text",
+ text: `This is a PDF document. File name: ${file.name}, Size: ${file.size} bytes`,
+ };
+ }
+ }
+
+ private async processPlaintextAttachment(file: SlackFile): Promise {
+ try {
+ const textBuffer = await this.fetchFileContent(file);
+ const text = textBuffer.toString('utf-8');
+ const { title, description } = await generateSummary(this.runtime, text);
+
+ return {
+ id: file.id,
+ url: file.url_private,
+ title: title || "Text Attachment",
+ source: "Text",
+ description: description || "A text document",
+ text: text,
+ };
+ } catch (error: unknown) {
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
+ console.error(`Error processing text attachment: ${errorMessage}`);
+ return this.processGenericAttachment(file);
+ }
+ }
+
+ private async processImageAttachment(file: SlackFile): Promise {
+ try {
+ const imageService = this.runtime.getService(ServiceType.IMAGE_DESCRIPTION);
+ if (!imageService) {
+ throw new Error("Image description service not found");
+ }
+
+ const imageDescription = await imageService.describeImage(file.url_private) || '';
+ const descriptionText = typeof imageDescription === 'string'
+ ? imageDescription
+ : 'Image description not available';
+
+ return {
+ id: file.id,
+ url: file.url_private,
+ title: "Image Attachment",
+ source: "Image",
+ description: descriptionText,
+ text: descriptionText || `This is an image. File name: ${file.name}, Size: ${file.size} bytes`,
+ };
+ } catch (error: unknown) {
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
+ console.error(`Error processing image attachment: ${errorMessage}`);
+ return this.processGenericAttachment(file);
+ }
+ }
+
+ private async processVideoAttachment(file: SlackFile): Promise {
+ try {
+ const videoService = this.runtime.getService(ServiceType.VIDEO);
+ if (!videoService) {
+ throw new Error("Video service not found");
+ }
+
+ // Using a more generic approach since describeVideo isn't in the interface
+ const description = await this.processAudioVideoAttachment(file);
+ return {
+ id: file.id,
+ url: file.url_private,
+ title: "Video Attachment",
+ source: "Video",
+ description: description.text || "A video attachment",
+ text: description.text || `This is a video. File name: ${file.name}, Size: ${file.size} bytes`,
+ };
+ } catch (error: unknown) {
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
+ console.error(`Error processing video attachment: ${errorMessage}`);
+ return this.processGenericAttachment(file);
+ }
+ }
+
+ private async processGenericAttachment(file: SlackFile): Promise {
+ return {
+ id: file.id,
+ url: file.url_private,
+ title: file.title || "File Attachment",
+ source: "File",
+ description: `A file attachment of type: ${file.mimetype}`,
+ text: `This is a file attachment. File name: ${file.name}, Size: ${file.size} bytes, Type: ${file.mimetype}`,
+ };
+ }
+}
\ No newline at end of file
diff --git a/packages/client-slack/src/environment.ts b/packages/client-slack/src/environment.ts
new file mode 100644
index 0000000000..282543f7d1
--- /dev/null
+++ b/packages/client-slack/src/environment.ts
@@ -0,0 +1,44 @@
+import { IAgentRuntime } from "@ai16z/eliza";
+import { elizaLogger } from "@ai16z/eliza";
+import { z } from "zod";
+
+export const slackEnvSchema = z.object({
+ SLACK_APP_ID: z.string().min(1, "Slack application ID is required"),
+ SLACK_CLIENT_ID: z.string().min(1, "Slack client ID is required"),
+ SLACK_CLIENT_SECRET: z.string().min(1, "Slack client secret is required"),
+ SLACK_SIGNING_SECRET: z.string().min(1, "Slack signing secret is required"),
+ SLACK_VERIFICATION_TOKEN: z.string().min(1, "Slack verification token is required"),
+ SLACK_BOT_TOKEN: z.string().min(1, "Slack bot token is required"),
+ SLACK_SERVER_PORT: z.string().optional().transform(val => val ? parseInt(val) : 3000),
+});
+
+export type SlackConfig = z.infer;
+
+export async function validateSlackConfig(runtime: IAgentRuntime): Promise {
+ try {
+ elizaLogger.debug("Validating Slack configuration with runtime settings");
+ const config = {
+ SLACK_APP_ID: runtime.getSetting("SLACK_APP_ID") || process.env.SLACK_APP_ID,
+ SLACK_CLIENT_ID: runtime.getSetting("SLACK_CLIENT_ID") || process.env.SLACK_CLIENT_ID,
+ SLACK_CLIENT_SECRET: runtime.getSetting("SLACK_CLIENT_SECRET") || process.env.SLACK_CLIENT_SECRET,
+ SLACK_SIGNING_SECRET: runtime.getSetting("SLACK_SIGNING_SECRET") || process.env.SLACK_SIGNING_SECRET,
+ SLACK_VERIFICATION_TOKEN: runtime.getSetting("SLACK_VERIFICATION_TOKEN") || process.env.SLACK_VERIFICATION_TOKEN,
+ SLACK_BOT_TOKEN: runtime.getSetting("SLACK_BOT_TOKEN") || process.env.SLACK_BOT_TOKEN,
+ SLACK_SERVER_PORT: runtime.getSetting("SLACK_SERVER_PORT") || process.env.SLACK_SERVER_PORT,
+ };
+
+ elizaLogger.debug("Parsing configuration with schema", config);
+ const validated = slackEnvSchema.parse(config);
+ elizaLogger.debug("Configuration validated successfully");
+ return validated;
+ } catch (error) {
+ if (error instanceof z.ZodError) {
+ const errorMessages = error.errors
+ .map(e => `${e.path.join('.')}: ${e.message}`)
+ .join('\n');
+ elizaLogger.error("Configuration validation failed:", errorMessages);
+ throw new Error(`Slack configuration validation failed:\n${errorMessages}`);
+ }
+ throw error;
+ }
+}
\ No newline at end of file
diff --git a/packages/client-slack/src/events.ts b/packages/client-slack/src/events.ts
new file mode 100644
index 0000000000..df984908c1
--- /dev/null
+++ b/packages/client-slack/src/events.ts
@@ -0,0 +1,125 @@
+import { createEventAdapter } from '@slack/events-api';
+import { WebClient } from '@slack/web-api';
+import { SlackConfig } from './types/slack-types';
+import { MessageManager } from './messages';
+import { elizaLogger } from '@ai16z/eliza';
+
+export class EventHandler {
+ private events: ReturnType;
+ private messageManager: MessageManager;
+
+ constructor(config: SlackConfig, client: WebClient, messageManager: MessageManager) {
+ elizaLogger.log("🎮 Initializing Slack event handler...");
+ elizaLogger.debug("Creating event adapter with signing secret:", config.signingSecret.slice(0, 4) + "...");
+ this.events = createEventAdapter(config.signingSecret);
+ this.messageManager = messageManager;
+
+ this.setupEventListeners();
+ elizaLogger.log("✅ Event handler initialization complete");
+ }
+
+ private setupEventListeners() {
+ elizaLogger.log("📡 Setting up event listeners...");
+
+ // Handle URL verification
+ this.events.on('url_verification', (event: any) => {
+ elizaLogger.debug('🔍 [URL_VERIFICATION] Received challenge:', {
+ type: event.type,
+ challenge: event.challenge
+ });
+ return event.challenge;
+ });
+
+ // Handle messages
+ this.events.on('message', async (event: any) => {
+ try {
+ elizaLogger.debug('📨 [MESSAGE] Received message event:', {
+ type: event.type,
+ subtype: event.subtype,
+ user: event.user,
+ channel: event.channel,
+ text: event.text,
+ ts: event.ts,
+ thread_ts: event.thread_ts,
+ raw_event: JSON.stringify(event, null, 2)
+ });
+ await this.messageManager.handleMessage(event);
+ } catch (error) {
+ elizaLogger.error('❌ [MESSAGE] Error handling message event:', error);
+ }
+ });
+
+ // Handle app mentions
+ this.events.on('app_mention', async (event: any) => {
+ try {
+ elizaLogger.debug('🔔 [MENTION] Received app mention event:', {
+ type: event.type,
+ user: event.user,
+ channel: event.channel,
+ text: event.text,
+ ts: event.ts,
+ thread_ts: event.thread_ts,
+ raw_event: JSON.stringify(event, null, 2)
+ });
+ await this.messageManager.handleMessage(event);
+ } catch (error) {
+ elizaLogger.error('❌ [MENTION] Error handling app mention event:', error);
+ }
+ });
+
+ // Handle reactions
+ this.events.on('reaction_added', async (event: any) => {
+ try {
+ elizaLogger.debug('⭐ [REACTION] Reaction added:', {
+ type: event.type,
+ user: event.user,
+ reaction: event.reaction,
+ item: event.item,
+ raw_event: JSON.stringify(event, null, 2)
+ });
+ // TODO: Implement reaction handling
+ } catch (error) {
+ elizaLogger.error('❌ [REACTION] Error handling reaction_added event:', error);
+ }
+ });
+
+ this.events.on('reaction_removed', async (event: any) => {
+ try {
+ elizaLogger.debug('💫 [REACTION] Reaction removed:', {
+ type: event.type,
+ user: event.user,
+ reaction: event.reaction,
+ item: event.item,
+ raw_event: JSON.stringify(event, null, 2)
+ });
+ // TODO: Implement reaction handling
+ } catch (error) {
+ elizaLogger.error('❌ [REACTION] Error handling reaction_removed event:', error);
+ }
+ });
+
+ // Handle errors
+ this.events.on('error', (error: Error) => {
+ elizaLogger.error('❌ [ERROR] Slack Events API error:', error);
+ });
+
+ // Add debug logging for all events
+ this.events.on('*', (event: any) => {
+ elizaLogger.debug('🔄 [RAW] Raw Slack event received:', {
+ type: event.type,
+ subtype: event.subtype,
+ user: event.user,
+ channel: event.channel,
+ ts: event.ts,
+ raw_event: JSON.stringify(event, null, 2)
+ });
+ });
+
+ elizaLogger.log("✅ Event listeners setup complete");
+ }
+
+ public getEventAdapter() {
+ elizaLogger.debug("🔌 [ADAPTER] Returning event adapter for express middleware");
+ return this.events;
+ }
+}
\ No newline at end of file
diff --git a/packages/client-slack/src/examples/sc_01.png b/packages/client-slack/src/examples/sc_01.png
new file mode 100644
index 0000000000..23041a979c
Binary files /dev/null and b/packages/client-slack/src/examples/sc_01.png differ
diff --git a/packages/client-slack/src/examples/sc_02.png b/packages/client-slack/src/examples/sc_02.png
new file mode 100644
index 0000000000..2d91d022cf
Binary files /dev/null and b/packages/client-slack/src/examples/sc_02.png differ
diff --git a/packages/client-slack/src/examples/standalone-attachment.ts b/packages/client-slack/src/examples/standalone-attachment.ts
new file mode 100644
index 0000000000..fd71c13300
--- /dev/null
+++ b/packages/client-slack/src/examples/standalone-attachment.ts
@@ -0,0 +1,112 @@
+import { config } from "dotenv";
+import { SlackClientProvider } from "../providers/slack-client.provider";
+import { AttachmentManager } from "../attachments";
+import { SlackConfig } from "../types/slack-types";
+import path from "path";
+
+// Load environment variables
+config({ path: path.resolve(__dirname, "../../../.env") });
+
+console.log("\n=== Starting Slack Attachment Example ===\n");
+
+// Load environment variables
+const slackConfig: SlackConfig = {
+ appId: process.env.SLACK_APP_ID || "",
+ clientId: process.env.SLACK_CLIENT_ID || "",
+ clientSecret: process.env.SLACK_CLIENT_SECRET || "",
+ signingSecret: process.env.SLACK_SIGNING_SECRET || "",
+ verificationToken: process.env.SLACK_VERIFICATION_TOKEN || "",
+ botToken: process.env.SLACK_BOT_TOKEN || "",
+ botId: process.env.SLACK_BOT_ID || "",
+};
+
+console.log("Environment variables loaded:");
+Object.entries(slackConfig).forEach(([key, value]) => {
+ if (value) {
+ console.log(`${key}: ${value.slice(0, 4)}...${value.slice(-4)}`);
+ } else {
+ console.error(`Missing ${key}`);
+ }
+});
+
+async function runExample() {
+ try {
+ console.log("\nInitializing Slack client...");
+ const provider = new SlackClientProvider(slackConfig);
+ const client = provider.getContext().client;
+
+ console.log("\nValidating Slack connection...");
+ const isValid = await provider.validateConnection();
+ if (!isValid) {
+ throw new Error("Failed to validate Slack connection");
+ }
+ console.log("✓ Successfully connected to Slack");
+
+ // Test file upload
+ const channelId = process.env.SLACK_CHANNEL_ID;
+ if (!channelId) {
+ throw new Error("SLACK_CHANNEL_ID is required");
+ }
+
+ console.log("\nSending test message with attachment...");
+ const testMessage = "Here is a test message with an attachment";
+
+ // Create a test file
+ const testFilePath = path.join(__dirname, "test.txt");
+ async function loadFs() {
+ return await import("fs");
+ }
+ const fs = await loadFs();
+ fs.writeFileSync(
+ testFilePath,
+ "This is a test file content for attachment testing."
+ );
+
+ // Upload the file
+ const fileUpload = await client.files.upload({
+ channels: channelId,
+ file: fs.createReadStream(testFilePath),
+ filename: "test.txt",
+ title: "Test Attachment",
+ initial_comment: testMessage,
+ });
+
+ console.log("✓ File uploaded successfully");
+
+ // Initialize AttachmentManager
+ const runtime = {
+ getSetting: (key: string) => process.env[key],
+ getService: () => null,
+ // Add other required runtime properties as needed
+ };
+ const attachmentManager = new AttachmentManager(runtime as any, client);
+
+ // Process the uploaded file
+ if (fileUpload.file) {
+ console.log("\nProcessing attachment...");
+ const processedAttachment =
+ await attachmentManager.processAttachment({
+ id: fileUpload.file.id,
+ url_private: fileUpload.file.url_private || "",
+ name: fileUpload.file.name || "",
+ size: fileUpload.file.size || 0,
+ mimetype: fileUpload.file.mimetype || "text/plain",
+ title: fileUpload.file.title || "",
+ });
+
+ console.log("✓ Attachment processed:", processedAttachment);
+ }
+
+ // Cleanup
+ fs.unlinkSync(testFilePath);
+ console.log("\n✓ Test completed successfully");
+ } catch (error) {
+ console.error("Error:", error);
+ process.exit(1);
+ }
+}
+
+runExample().then(() => {
+ console.log("\n=== Example completed ===\n");
+ process.exit(0);
+});
diff --git a/packages/client-slack/src/examples/standalone-example.ts b/packages/client-slack/src/examples/standalone-example.ts
new file mode 100644
index 0000000000..77eee87fe4
--- /dev/null
+++ b/packages/client-slack/src/examples/standalone-example.ts
@@ -0,0 +1,200 @@
+import { SlackClientProvider } from '../providers/slack-client.provider';
+import { SlackConfig } from '../types/slack-types';
+import { EventHandler } from '../events';
+import { config } from 'dotenv';
+import { resolve } from 'path';
+import { createReadStream } from 'fs';
+import express from 'express';
+
+// Load environment variables
+const envPath = resolve(__dirname, '../../../../.env');
+console.log('Loading environment from:', envPath);
+config({ path: envPath });
+
+function validateEnvironment() {
+ const requiredEnvVars = [
+ 'SLACK_APP_ID',
+ 'SLACK_CLIENT_ID',
+ 'SLACK_CLIENT_SECRET',
+ 'SLACK_SIGNING_SECRET',
+ 'SLACK_VERIFICATION_TOKEN',
+ 'SLACK_BOT_TOKEN',
+ 'SLACK_CHANNEL_ID'
+ ];
+
+ const missing = requiredEnvVars.filter(key => !process.env[key]);
+ if (missing.length > 0) {
+ console.error('Missing required environment variables:', missing);
+ return false;
+ }
+
+ // Log masked versions of the tokens for debugging
+ console.log('Environment variables loaded:');
+ requiredEnvVars.forEach(key => {
+ const value = process.env[key] || '';
+ const maskedValue = value.length > 8
+ ? `${value.substring(0, 4)}...${value.substring(value.length - 4)}`
+ : '****';
+ console.log(`${key}: ${maskedValue}`);
+ });
+
+ return true;
+}
+
+async function startServer(app: express.Application, port: number): Promise {
+ try {
+ await new Promise((resolve, reject) => {
+ app.listen(port, () => resolve()).on('error', (err: any) => {
+ if (err.code === 'EADDRINUSE') {
+ console.log(`Port ${port} is busy, trying ${port + 1}...`);
+ resolve();
+ } else {
+ reject(err);
+ }
+ });
+ });
+ return port;
+ } catch (error) {
+ if (port < 3010) { // Try up to 10 ports
+ return startServer(app, port + 1);
+ }
+ throw error;
+ }
+}
+
+async function runExample() {
+ console.log('\n=== Starting Slack Client Example ===\n');
+
+ if (!validateEnvironment()) {
+ throw new Error('Environment validation failed');
+ }
+
+ // Initialize the client with your Slack credentials
+ const slackConfig: SlackConfig = {
+ appId: process.env.SLACK_APP_ID || '',
+ clientId: process.env.SLACK_CLIENT_ID || '',
+ clientSecret: process.env.SLACK_CLIENT_SECRET || '',
+ signingSecret: process.env.SLACK_SIGNING_SECRET || '',
+ verificationToken: process.env.SLACK_VERIFICATION_TOKEN || '',
+ botToken: process.env.SLACK_BOT_TOKEN || '',
+ botId: process.env.SLACK_BOT_ID || '', // This will be updated automatically
+ };
+
+ console.log('\nInitializing Slack client...');
+ const slackProvider = new SlackClientProvider(slackConfig);
+
+ try {
+ // Validate the connection
+ console.log('\nValidating Slack connection...');
+ const isConnected = await slackProvider.validateConnection();
+ if (!isConnected) {
+ throw new Error('Failed to connect to Slack');
+ }
+ console.log('✓ Successfully connected to Slack');
+
+ // Set up event handling
+ console.log('\nSetting up event handling...');
+ const eventHandler = new EventHandler(slackConfig, slackProvider.getContext().client);
+ const events = eventHandler.getEventAdapter();
+
+ // Create Express app
+ const app = express();
+ const basePort = parseInt(process.env.PORT || '3000');
+
+ // Mount the event handler
+ app.use('/slack/events', events.expressMiddleware());
+
+ // Send initial message
+ const channelId = process.env.SLACK_CHANNEL_ID || '';
+ console.log(`\nSending initial message to channel: ${channelId}`);
+
+ try {
+ // Send text message
+ const messageResult = await slackProvider.sendMessage(
+ channelId,
+ 'Hello! I am now active and ready to help. Here are my capabilities:'
+ );
+ console.log('✓ Initial message sent:', messageResult);
+
+ // Send message with image
+ const imagePath = resolve(__dirname, '../tests/test_image.png');
+ console.log('\nSending message with image...');
+ const imageResult = await slackProvider.getContext().client.files.uploadV2({
+ channel_id: channelId,
+ file: createReadStream(imagePath),
+ filename: 'test_image.png',
+ title: 'Test Image',
+ initial_comment: '1. I can send messages with images 🖼️'
+ });
+ console.log('✓ Image message sent:', imageResult);
+
+ // Send message in thread
+ if (messageResult.ts) {
+ console.log('\nSending message in thread...');
+ const threadResult = await slackProvider.replyInThread(
+ channelId,
+ messageResult.ts,
+ '2. I can reply in threads 🧵'
+ );
+ console.log('✓ Thread message sent:', threadResult);
+
+ // Send another image in the thread
+ console.log('\nSending image in thread...');
+ const threadImageResult = await slackProvider.getContext().client.files.uploadV2({
+ channel_id: channelId,
+ file: createReadStream(imagePath),
+ filename: 'test_image_thread.png',
+ title: 'Test Image in Thread',
+ thread_ts: messageResult.ts,
+ initial_comment: '3. I can also send images in threads! 🖼️🧵'
+ });
+ console.log('✓ Thread image sent:', threadImageResult);
+ }
+
+ // Start the server
+ const port = await startServer(app, basePort);
+ console.log(`\n✓ Slack event server is running on port ${port}`);
+ console.log('\n=== Bot is ready to interact! ===');
+ console.log('\nCore functionalities demonstrated:');
+ console.log('1. Sending regular messages');
+ console.log('2. Sending images and attachments');
+ console.log('3. Replying in threads');
+ console.log('4. Sending images in threads');
+ console.log('\nTry mentioning me with @eve_predict_client to interact!');
+
+ if (!process.env.SLACK_BOT_ID) {
+ console.log(`\nℹ️ Bot ID: ${slackConfig.botId}`);
+ }
+
+ } catch (error) {
+ console.error('\n❌ Error during initialization:', error);
+ // Continue even if initial messages fail
+ console.log('\nStarting server despite initialization errors...');
+
+ const port = await startServer(app, basePort);
+ console.log(`\n✓ Slack event server is running on port ${port}`);
+ console.log('\n=== Bot is ready to interact! ===');
+ }
+
+ } catch (error) {
+ console.error('\n❌ Error in Slack client example:');
+ if (error instanceof Error) {
+ console.error('Error message:', error.message);
+ console.error('Stack trace:', error.stack);
+ if ('data' in error) {
+ console.error('Error data:', (error as any).data);
+ }
+ } else {
+ console.error('Unknown error:', error);
+ }
+ process.exit(1);
+ }
+}
+
+// Run the example if this file is executed directly
+if (require.main === module) {
+ runExample().catch(error => {
+ console.error('Fatal error:', error);
+ process.exit(1);
+ });
+}
\ No newline at end of file
diff --git a/packages/client-slack/src/examples/standalone-summarize.ts b/packages/client-slack/src/examples/standalone-summarize.ts
new file mode 100644
index 0000000000..a2251ae888
--- /dev/null
+++ b/packages/client-slack/src/examples/standalone-summarize.ts
@@ -0,0 +1,101 @@
+import { SlackClientProvider } from '../providers/slack-client.provider';
+import { SlackConfig } from '../types/slack-types';
+import { config } from 'dotenv';
+import { resolve } from 'path';
+
+// Load environment variables from root .env
+const envPath = resolve(__dirname, '../../../../.env');
+console.log('Loading environment from:', envPath);
+config({ path: envPath });
+
+function validateEnvironment() {
+ const requiredEnvVars = [
+ 'SLACK_APP_ID',
+ 'SLACK_CLIENT_ID',
+ 'SLACK_CLIENT_SECRET',
+ 'SLACK_SIGNING_SECRET',
+ 'SLACK_VERIFICATION_TOKEN',
+ 'SLACK_BOT_TOKEN',
+ 'SLACK_CHANNEL_ID'
+ ];
+
+ const missing = requiredEnvVars.filter(key => !process.env[key]);
+ if (missing.length > 0) {
+ console.error('Missing required environment variables:', missing);
+ return false;
+ }
+
+ console.log('Environment variables loaded successfully');
+ return true;
+}
+
+async function main() {
+ console.log('\n=== Starting Summarize Conversation Example ===\n');
+
+ if (!validateEnvironment()) {
+ throw new Error('Environment validation failed');
+ }
+
+ // Initialize the client with Slack credentials
+ const slackConfig: SlackConfig = {
+ appId: process.env.SLACK_APP_ID || '',
+ clientId: process.env.SLACK_CLIENT_ID || '',
+ clientSecret: process.env.SLACK_CLIENT_SECRET || '',
+ signingSecret: process.env.SLACK_SIGNING_SECRET || '',
+ verificationToken: process.env.SLACK_VERIFICATION_TOKEN || '',
+ botToken: process.env.SLACK_BOT_TOKEN || '',
+ botId: process.env.SLACK_BOT_ID || '',
+ };
+
+ const slackProvider = new SlackClientProvider(slackConfig);
+
+ // Validate the connection
+ const isConnected = await slackProvider.validateConnection();
+ if (!isConnected) {
+ throw new Error('Failed to connect to Slack');
+ }
+ console.log('✓ Successfully connected to Slack');
+
+ const channel = process.env.SLACK_CHANNEL_ID!;
+ console.log(`\nSending messages to channel: ${channel}`);
+
+ // First, send some test messages
+ await slackProvider.sendMessage(
+ channel,
+ "Hello! Let's test the conversation summarization."
+ );
+
+ // Send message with attachment using WebClient directly
+ await slackProvider.getContext().client.chat.postMessage({
+ channel,
+ text: "Here's an important document to discuss.",
+ attachments: [{
+ title: "Test Document",
+ text: "This is a test document with some important information.",
+ }]
+ });
+
+ await slackProvider.sendMessage(
+ channel,
+ "What do you think about the document?"
+ );
+
+ // Wait a bit for messages to be processed
+ await new Promise(resolve => setTimeout(resolve, 2000));
+
+ // Request a summary
+ await slackProvider.sendMessage(
+ channel,
+ "Can you summarize our conversation so far?"
+ );
+
+ // Keep the process running
+ await new Promise(resolve => setTimeout(resolve, 10000));
+ console.log('\n✓ Example completed successfully');
+ process.exit(0);
+}
+
+main().catch(error => {
+ console.error('\n❌ Error:', error);
+ process.exit(1);
+});
\ No newline at end of file
diff --git a/packages/client-slack/src/examples/standalone-transcribe.ts b/packages/client-slack/src/examples/standalone-transcribe.ts
new file mode 100644
index 0000000000..76b0ec0715
--- /dev/null
+++ b/packages/client-slack/src/examples/standalone-transcribe.ts
@@ -0,0 +1,90 @@
+import { SlackClientProvider } from '../providers/slack-client.provider';
+import { SlackConfig } from '../types/slack-types';
+import { config } from 'dotenv';
+import { resolve } from 'path';
+
+// Load environment variables from root .env
+const envPath = resolve(__dirname, '../../../../.env');
+console.log('Loading environment from:', envPath);
+config({ path: envPath });
+
+function validateEnvironment() {
+ const requiredEnvVars = [
+ 'SLACK_APP_ID',
+ 'SLACK_CLIENT_ID',
+ 'SLACK_CLIENT_SECRET',
+ 'SLACK_SIGNING_SECRET',
+ 'SLACK_VERIFICATION_TOKEN',
+ 'SLACK_BOT_TOKEN',
+ 'SLACK_CHANNEL_ID'
+ ];
+
+ const missing = requiredEnvVars.filter(key => !process.env[key]);
+ if (missing.length > 0) {
+ console.error('Missing required environment variables:', missing);
+ return false;
+ }
+
+ console.log('Environment variables loaded successfully');
+ return true;
+}
+
+async function main() {
+ console.log('\n=== Starting Transcribe Media Example ===\n');
+
+ if (!validateEnvironment()) {
+ throw new Error('Environment validation failed');
+ }
+
+ // Initialize the client with Slack credentials
+ const slackConfig: SlackConfig = {
+ appId: process.env.SLACK_APP_ID || '',
+ clientId: process.env.SLACK_CLIENT_ID || '',
+ clientSecret: process.env.SLACK_CLIENT_SECRET || '',
+ signingSecret: process.env.SLACK_SIGNING_SECRET || '',
+ verificationToken: process.env.SLACK_VERIFICATION_TOKEN || '',
+ botToken: process.env.SLACK_BOT_TOKEN || '',
+ botId: process.env.SLACK_BOT_ID || '',
+ };
+
+ const slackProvider = new SlackClientProvider(slackConfig);
+
+ // Validate the connection
+ const isConnected = await slackProvider.validateConnection();
+ if (!isConnected) {
+ throw new Error('Failed to connect to Slack');
+ }
+ console.log('✓ Successfully connected to Slack');
+
+ const channel = process.env.SLACK_CHANNEL_ID!;
+ console.log(`\nSending messages to channel: ${channel}`);
+
+ // First, send a test message with a media attachment
+ await slackProvider.getContext().client.chat.postMessage({
+ channel,
+ text: "Here's a test audio recording to transcribe.",
+ attachments: [{
+ title: "Test Audio",
+ text: "This is a simulated transcription of an audio file: Hello everyone, welcome to our weekly standup meeting. Today we'll discuss our progress on the new features and any blockers we've encountered.",
+ }]
+ });
+
+ // Wait a bit for the message to be processed
+ await new Promise(resolve => setTimeout(resolve, 2000));
+
+ // Request transcription
+ await slackProvider.sendMessage(
+ channel,
+ "Can you transcribe the audio file I just shared?"
+ );
+
+ // Keep the process running
+ await new Promise(resolve => setTimeout(resolve, 10000));
+ console.log('\n✓ Example completed successfully');
+ process.exit(0);
+}
+
+main().catch(error => {
+ console.error('\n❌ Error:', error);
+ process.exit(1);
+});
\ No newline at end of file
diff --git a/packages/client-slack/src/index.ts b/packages/client-slack/src/index.ts
new file mode 100644
index 0000000000..f893db18e0
--- /dev/null
+++ b/packages/client-slack/src/index.ts
@@ -0,0 +1,345 @@
+import { Character, Client as ElizaClient, IAgentRuntime } from "@ai16z/eliza";
+import { elizaLogger } from "@ai16z/eliza";
+import { WebClient } from "@slack/web-api";
+import express, { Request } from "express";
+import { EventEmitter } from "events";
+import { MessageManager } from "./messages";
+import { validateSlackConfig } from "./environment";
+import chat_with_attachments from "./actions/chat_with_attachments";
+import summarize_conversation from "./actions/summarize_conversation";
+// import transcribe_media from './actions/transcribe_media';
+import { channelStateProvider } from "./providers/channelState";
+import { SlackService } from "./services/slack.service";
+
+interface SlackRequest extends Request {
+ rawBody?: Buffer;
+}
+
+export class SlackClient extends EventEmitter {
+ private client: WebClient;
+ private runtime: IAgentRuntime;
+ private server: express.Application;
+ private messageManager: MessageManager;
+ private botUserId: string;
+ private character: Character;
+ private signingSecret: string;
+
+ constructor(runtime: IAgentRuntime) {
+ super();
+ elizaLogger.log("🚀 Initializing SlackClient...");
+ this.runtime = runtime;
+ this.character = runtime.character;
+
+ const token = runtime.getSetting("SLACK_BOT_TOKEN");
+ this.signingSecret = runtime.getSetting("SLACK_SIGNING_SECRET");
+
+ if (!token) throw new Error("SLACK_BOT_TOKEN is required");
+ if (!this.signingSecret)
+ throw new Error("SLACK_SIGNING_SECRET is required");
+
+ this.client = new WebClient(token);
+ this.server = express();
+
+ this.server.use(express.raw({ type: "application/json" }));
+ this.server.use((req: SlackRequest, res, next) => {
+ if (req.body) {
+ req.rawBody = Buffer.from(req.body);
+ try {
+ req.body = JSON.parse(req.body.toString());
+ } catch (error) {
+ elizaLogger.error(
+ "❌ [PARSE] Failed to parse request body:",
+ error
+ );
+ }
+ }
+ next();
+ });
+ }
+
+ private async handleEvent(event: any) {
+ elizaLogger.debug("🎯 [EVENT] Processing event:", {
+ type: event.type,
+ user: event.user,
+ channel: event.channel,
+ text: event.text?.slice(0, 100),
+ });
+
+ try {
+ if (event.type === "message" || event.type === "app_mention") {
+ await this.messageManager.handleMessage(event);
+ }
+ } catch (error) {
+ elizaLogger.error("❌ [EVENT] Error handling event:", error);
+ }
+ }
+
+ private async verifyPermissions() {
+ elizaLogger.debug("🔒 [PERMISSIONS] Verifying bot permissions...");
+
+ try {
+ // Test channel list access with all types
+ const channels = await this.client.conversations.list({
+ types: "public_channel,private_channel,im,mpim",
+ });
+
+ if (!channels.ok) {
+ throw new Error(`Failed to list channels: ${channels.error}`);
+ }
+
+ elizaLogger.debug("📋 [PERMISSIONS] Channel access verified");
+
+ // Test message sending (to self)
+ const testMessage = await this.client.chat.postMessage({
+ channel: this.botUserId,
+ text: "Permission test message",
+ });
+
+ if (!testMessage.ok) {
+ throw new Error(
+ `Failed to send test message: ${testMessage.error}`
+ );
+ }
+
+ elizaLogger.debug("💬 [PERMISSIONS] Message sending verified");
+
+ elizaLogger.debug("✅ [PERMISSIONS] All permissions verified");
+ } catch (error: any) {
+ elizaLogger.error(
+ "❌ [PERMISSIONS] Permission verification failed:",
+ error
+ );
+ elizaLogger.error(
+ "Please ensure the following scopes are added to your Slack app:"
+ );
+ elizaLogger.error("- app_mentions:read (for mentions)");
+ elizaLogger.error("- channels:history (for public channels)");
+ elizaLogger.error("- channels:read (for channel info)");
+ elizaLogger.error("- chat:write (for sending messages)");
+ elizaLogger.error("- groups:history (for private channels)");
+ elizaLogger.error(
+ "- groups:read (for private channel info)"
+ );
+ elizaLogger.error("- im:history (for DMs)");
+ elizaLogger.error("- im:read (for DM info)");
+ elizaLogger.error("- im:write (for sending DMs)");
+ elizaLogger.error("- mpim:history (for group DMs)");
+ elizaLogger.error("- mpim:read (for group DM info)");
+ elizaLogger.error("- users:read (for user info)");
+ throw new Error("Permission verification failed");
+ }
+ }
+
+ async start() {
+ try {
+ elizaLogger.log("Starting Slack client...");
+
+ const config = await validateSlackConfig(this.runtime);
+
+ // Initialize and register Slack service
+ const slackService = new SlackService();
+ await slackService.initialize(this.runtime);
+ await this.runtime.registerService(slackService);
+
+ // Get detailed bot info
+ const auth = await this.client.auth.test();
+ if (!auth.ok) throw new Error("Failed to authenticate with Slack");
+
+ this.botUserId = auth.user_id as string;
+ elizaLogger.debug("🤖 [INIT] Bot info:", {
+ user_id: auth.user_id,
+ bot_id: auth.bot_id,
+ team_id: auth.team_id,
+ user: auth.user,
+ team: auth.team,
+ });
+
+ // Verify bot user details
+ try {
+ const botInfo = await this.client.users.info({
+ user: this.botUserId,
+ });
+
+ elizaLogger.debug("👤 [BOT] Bot user details:", {
+ name: botInfo.user?.name,
+ real_name: botInfo.user?.real_name,
+ is_bot: botInfo.user?.is_bot,
+ is_app_user: botInfo.user?.is_app_user,
+ status: botInfo.user?.profile?.status_text,
+ });
+ } catch (error) {
+ elizaLogger.error(
+ "❌ [BOT] Failed to verify bot details:",
+ error
+ );
+ }
+
+ // Verify permissions
+ await this.verifyPermissions();
+
+ // Initialize message manager
+ this.messageManager = new MessageManager(
+ this.client,
+ this.runtime,
+ this.botUserId
+ );
+
+ // Register actions and providers
+ this.runtime.registerAction(chat_with_attachments);
+ this.runtime.registerAction(summarize_conversation);
+ // this.runtime.registerAction(transcribe_media);
+ this.runtime.providers.push(channelStateProvider);
+
+ // Add request logging middleware
+ this.server.use((req: SlackRequest, res, next) => {
+ elizaLogger.debug("🌐 [HTTP] Incoming request:", {
+ method: req.method,
+ path: req.path,
+ headers: req.headers,
+ body: req.body,
+ query: req.query,
+ timestamp: new Date().toISOString(),
+ });
+ next();
+ });
+
+ // Setup event handling endpoint
+ this.server.post(
+ "/slack/events",
+ async (req: SlackRequest, res) => {
+ try {
+ elizaLogger.debug(
+ "📥 [REQUEST] Incoming Slack event:",
+ {
+ type: req.body?.type,
+ event: req.body?.event?.type,
+ challenge: req.body?.challenge,
+ raw: JSON.stringify(req.body, null, 2),
+ }
+ );
+
+ // Handle URL verification
+ if (req.body?.type === "url_verification") {
+ elizaLogger.debug(
+ "🔑 [VERIFICATION] Challenge received:",
+ req.body.challenge
+ );
+ return res.send(req.body.challenge);
+ }
+
+ // Process the event
+ if (req.body?.event) {
+ elizaLogger.debug("🎯 [EVENT] Processing event:", {
+ type: req.body.event.type,
+ user: req.body.event.user,
+ text: req.body.event.text,
+ channel: req.body.event.channel,
+ ts: req.body.event.ts,
+ });
+ await this.handleEvent(req.body.event);
+ } else {
+ elizaLogger.warn(
+ "⚠️ [EVENT] Received request without event data"
+ );
+ }
+
+ // Acknowledge receipt
+ res.status(200).send();
+ } catch (error) {
+ elizaLogger.error(
+ "❌ [ERROR] Error processing request:",
+ error
+ );
+ res.status(500).json({
+ error: "Internal server error",
+ });
+ }
+ }
+ );
+
+ // Setup interactions endpoint
+ this.server.post(
+ "/slack/interactions",
+ async (req: SlackRequest, res) => {
+ try {
+ elizaLogger.debug(
+ "🔄 [INTERACTION] Incoming interaction:",
+ {
+ type: req.body?.type,
+ action: req.body?.action,
+ callback_id: req.body?.callback_id,
+ raw: JSON.stringify(req.body, null, 2),
+ }
+ );
+
+ // Always acknowledge interaction
+ res.status(200).send();
+ } catch (error) {
+ elizaLogger.error(
+ "❌ [ERROR] Error processing interaction:",
+ error
+ );
+ res.status(500).json({
+ error: "Internal server error",
+ });
+ }
+ }
+ );
+
+ // Start server
+ const port = config.SLACK_SERVER_PORT;
+ this.server.listen(port, () => {
+ elizaLogger.success(
+ `🚀 [SERVER] Slack event server is running on port ${port}`
+ );
+ elizaLogger.success(
+ `✅ [INIT] Slack client successfully started for character ${this.character.name}`
+ );
+ elizaLogger.success(
+ `🤖 [READY] Bot user: @${auth.user} (${this.botUserId})`
+ );
+ elizaLogger.success(
+ `📡 [EVENTS] Listening for events at: /slack/events`
+ );
+ elizaLogger.success(
+ `💡 [INTERACTIONS] Listening for interactions at: /slack/interactions`
+ );
+ elizaLogger.success(`💡 [HELP] To interact with the bot:`);
+ elizaLogger.success(
+ ` 1. Direct message: Find @${auth.user} in DMs`
+ );
+ elizaLogger.success(
+ ` 2. Channel: Mention @${auth.user} in any channel`
+ );
+ });
+ } catch (error) {
+ elizaLogger.error("❌ [INIT] Failed to start Slack client:", error);
+ throw error;
+ }
+ }
+
+ async stop() {
+ elizaLogger.log("Stopping Slack client...");
+ if (this.server) {
+ await new Promise((resolve) => {
+ this.server.listen().close(() => {
+ elizaLogger.log("Server stopped");
+ resolve();
+ });
+ });
+ }
+ }
+}
+
+export const SlackClientInterface: ElizaClient = {
+ start: async (runtime: IAgentRuntime) => {
+ const client = new SlackClient(runtime);
+ await client.start();
+ return client;
+ },
+ stop: async (_runtime: IAgentRuntime) => {
+ elizaLogger.warn("Slack client stopping...");
+ },
+};
+
+export default SlackClientInterface;
diff --git a/packages/client-slack/src/messages.ts b/packages/client-slack/src/messages.ts
new file mode 100644
index 0000000000..3e2073380c
--- /dev/null
+++ b/packages/client-slack/src/messages.ts
@@ -0,0 +1,411 @@
+import {
+ stringToUuid,
+ getEmbeddingZeroVector,
+ composeContext,
+ generateMessageResponse,
+ generateShouldRespond,
+ ModelClass,
+ Memory,
+ Content,
+ State,
+ elizaLogger,
+ HandlerCallback,
+} from "@ai16z/eliza";
+import {
+ slackMessageHandlerTemplate,
+ slackShouldRespondTemplate,
+} from "./templates";
+import { WebClient } from "@slack/web-api";
+import { IAgentRuntime } from "@ai16z/eliza";
+
+export class MessageManager {
+ private client: WebClient;
+ private runtime: IAgentRuntime;
+ private botUserId: string;
+ private processedEvents: Set = new Set();
+ private messageProcessingLock: Set = new Set();
+ private processedMessages: Map = new Map();
+
+ constructor(client: WebClient, runtime: IAgentRuntime, botUserId: string) {
+ console.log("📱 Initializing MessageManager...");
+ this.client = client;
+ this.runtime = runtime;
+ this.botUserId = botUserId;
+ console.log("MessageManager initialized with botUserId:", botUserId);
+
+ // Clear old processed messages and events every hour
+ setInterval(() => {
+ const oneHourAgo = Date.now() - 3600000;
+
+ // Clear old processed messages
+ for (const [key, timestamp] of this.processedMessages.entries()) {
+ if (timestamp < oneHourAgo) {
+ this.processedMessages.delete(key);
+ }
+ }
+
+ // Clear old processed events
+ this.processedEvents.clear();
+ }, 3600000);
+ }
+
+ private generateEventKey(event: any): string {
+ // Create a unique key that includes all relevant event data
+ // Normalize event type to handle message and app_mention as the same type
+ const eventType = event.type === "app_mention" ? "message" : event.type;
+
+ const components = [
+ event.ts, // Timestamp
+ event.channel, // Channel ID
+ eventType, // Normalized event type
+ event.user, // User ID
+ event.thread_ts, // Thread timestamp (if any)
+ ].filter(Boolean); // Remove any undefined/null values
+
+ const key = components.join("-");
+ console.log("\n=== EVENT DETAILS ===");
+ console.log("Event Type:", event.type);
+ console.log("Event TS:", event.ts);
+ console.log("Channel:", event.channel);
+ console.log("User:", event.user);
+ console.log("Thread TS:", event.thread_ts);
+ console.log("Generated Key:", key);
+ return key;
+ }
+
+ private cleanMessage(text: string): string {
+ elizaLogger.debug("🧹 [CLEAN] Cleaning message text:", text);
+ // Remove bot mention
+ const cleaned = text
+ .replace(new RegExp(`<@${this.botUserId}>`, "g"), "")
+ .trim();
+ elizaLogger.debug("✨ [CLEAN] Cleaned result:", cleaned);
+ return cleaned;
+ }
+
+ private async _shouldRespond(message: any, state: State): Promise {
+ console.log("\n=== SHOULD_RESPOND PHASE ===");
+ console.log("🔍 Step 1: Evaluating if should respond to message");
+
+ // Always respond to direct mentions
+ if (
+ message.type === "app_mention" ||
+ message.text?.includes(`<@${this.botUserId}>`)
+ ) {
+ console.log("✅ Direct mention detected - will respond");
+ return true;
+ }
+
+ // Always respond in direct messages
+ if (message.channel_type === "im") {
+ console.log("✅ Direct message detected - will respond");
+ return true;
+ }
+
+ // Check if we're in a thread and we've participated
+ if (
+ message.thread_ts &&
+ state.recentMessages?.includes(this.runtime.agentId)
+ ) {
+ console.log("✅ Active thread participant - will respond");
+ return true;
+ }
+
+ // Only use LLM for ambiguous cases
+ console.log("🤔 Step 2: Using LLM to decide response");
+ const shouldRespondContext = composeContext({
+ state,
+ template:
+ this.runtime.character.templates?.slackShouldRespondTemplate ||
+ this.runtime.character.templates?.shouldRespondTemplate ||
+ slackShouldRespondTemplate,
+ });
+
+ console.log("🔄 Step 3: Calling generateShouldRespond");
+ const response = await generateShouldRespond({
+ runtime: this.runtime,
+ context: shouldRespondContext,
+ modelClass: ModelClass.SMALL,
+ });
+
+ console.log(`✅ Step 4: LLM decision received: ${response}`);
+ return response === "RESPOND";
+ }
+
+ private async _generateResponse(
+ memory: Memory,
+ state: State,
+ context: string
+ ): Promise {
+ console.log("\n=== GENERATE_RESPONSE PHASE ===");
+ console.log("🔍 Step 1: Starting response generation");
+
+ // Generate response only once
+ console.log("🔄 Step 2: Calling LLM for response");
+ const response = await generateMessageResponse({
+ runtime: this.runtime,
+ context,
+ modelClass: ModelClass.LARGE,
+ });
+ console.log("✅ Step 3: LLM response received");
+
+ if (!response) {
+ console.error("❌ No response from generateMessageResponse");
+ return {
+ text: "I apologize, but I'm having trouble generating a response right now.",
+ source: "slack",
+ };
+ }
+
+ // If response includes a CONTINUE action but there's no direct mention or thread,
+ // remove the action to prevent automatic continuation
+ if (
+ response.action === "CONTINUE" &&
+ !memory.content.text?.includes(`<@${this.botUserId}>`) &&
+ !state.recentMessages?.includes(memory.id)
+ ) {
+ console.log(
+ "⚠️ Step 4: Removing CONTINUE action - not a direct interaction"
+ );
+ delete response.action;
+ }
+
+ console.log("✅ Step 5: Returning generated response");
+ return response;
+ }
+
+ public async handleMessage(event: any) {
+ console.log("\n=== MESSAGE_HANDLING PHASE ===");
+ console.log("🔍 Step 1: Received new message event");
+
+ // Skip if no event data
+ if (!event || !event.ts || !event.channel) {
+ console.log("⚠️ Invalid event data - skipping");
+ return;
+ }
+
+ // Generate event key for deduplication
+ const eventKey = this.generateEventKey(event);
+
+ // Check if we've already processed this event
+ if (this.processedEvents.has(eventKey)) {
+ console.log("⚠️ Event already processed - skipping");
+ console.log("Existing event key:", eventKey);
+ console.log("Original event type:", event.type);
+ console.log("Duplicate prevention working as expected");
+ return;
+ }
+
+ // Add to processed events immediately
+ console.log("✅ New event - processing:", eventKey);
+ console.log("Event type being processed:", event.type);
+ this.processedEvents.add(eventKey);
+
+ // Generate message key for processing lock
+ const messageKey = eventKey; // Use same key for consistency
+ const currentTime = Date.now();
+
+ try {
+ // Check if message is currently being processed
+ if (this.messageProcessingLock.has(messageKey)) {
+ console.log(
+ "⚠️ Message is currently being processed - skipping"
+ );
+ return;
+ }
+
+ // Add to processing lock
+ console.log("🔒 Step 2: Adding message to processing lock");
+ this.messageProcessingLock.add(messageKey);
+
+ try {
+ // Ignore messages from bots (including ourselves)
+ if (event.bot_id || event.user === this.botUserId) {
+ console.log("⚠️ Message from bot or self - skipping");
+ return;
+ }
+
+ // Clean the message text
+ console.log("🧹 Step 3: Cleaning message text");
+ const cleanedText = this.cleanMessage(event.text || "");
+ if (!cleanedText) {
+ console.log("⚠️ Empty message after cleaning - skipping");
+ return;
+ }
+
+ // Generate unique IDs
+ console.log("🔑 Step 4: Generating conversation IDs");
+ const roomId = stringToUuid(
+ `${event.channel}-${this.runtime.agentId}`
+ );
+ const userId = stringToUuid(
+ `${event.user}-${this.runtime.agentId}`
+ );
+ const messageId = stringToUuid(
+ `${event.ts}-${this.runtime.agentId}`
+ );
+
+ // Create initial memory
+ console.log("💾 Step 5: Creating initial memory");
+ const content: Content = {
+ text: cleanedText,
+ source: "slack",
+ inReplyTo: event.thread_ts
+ ? stringToUuid(
+ `${event.thread_ts}-${this.runtime.agentId}`
+ )
+ : undefined,
+ };
+
+ const memory: Memory = {
+ id: messageId,
+ userId,
+ agentId: this.runtime.agentId,
+ roomId,
+ content,
+ createdAt: new Date(parseFloat(event.ts) * 1000).getTime(),
+ embedding: getEmbeddingZeroVector(),
+ };
+
+ // Add memory
+ if (content.text) {
+ console.log("💾 Step 6: Saving initial memory");
+ await this.runtime.messageManager.createMemory(memory);
+ }
+
+ // Initial state composition
+ console.log("🔄 Step 7: Composing initial state");
+ let state = await this.runtime.composeState(
+ { content, userId, agentId: this.runtime.agentId, roomId },
+ {
+ slackClient: this.client,
+ slackEvent: event,
+ agentName: this.runtime.character.name,
+ senderName: event.user_name || event.user,
+ }
+ );
+
+ // Update state with recent messages
+ console.log("🔄 Step 8: Updating state with recent messages");
+ state = await this.runtime.updateRecentMessageState(state);
+
+ // Check if we should respond
+ console.log("🤔 Step 9: Checking if we should respond");
+ const shouldRespond = await this._shouldRespond(event, state);
+
+ if (shouldRespond) {
+ console.log(
+ "✅ Step 10: Should respond - generating response"
+ );
+ const context = composeContext({
+ state,
+ template:
+ this.runtime.character.templates
+ ?.slackMessageHandlerTemplate ||
+ slackMessageHandlerTemplate,
+ });
+
+ const responseContent = await this._generateResponse(
+ memory,
+ state,
+ context
+ );
+
+ if (responseContent?.text) {
+ console.log("📤 Step 11: Preparing to send response");
+
+ const callback: HandlerCallback = async (
+ content: Content
+ ) => {
+ try {
+ console.log(
+ " Step 12: Executing response callback"
+ );
+ const result =
+ await this.client.chat.postMessage({
+ channel: event.channel,
+ text:
+ content.text ||
+ responseContent.text,
+ thread_ts: event.thread_ts,
+ });
+
+ console.log(
+ "💾 Step 13: Creating response memory"
+ );
+ const responseMemory: Memory = {
+ id: stringToUuid(
+ `${result.ts}-${this.runtime.agentId}`
+ ),
+ userId: this.runtime.agentId,
+ agentId: this.runtime.agentId,
+ roomId,
+ content: {
+ ...content,
+ text:
+ content.text ||
+ responseContent.text,
+ inReplyTo: messageId,
+ },
+ createdAt: Date.now(),
+ embedding: getEmbeddingZeroVector(),
+ };
+
+ console.log(
+ "✓ Step 14: Marking message as processed"
+ );
+ this.processedMessages.set(
+ messageKey,
+ currentTime
+ );
+
+ console.log(
+ "💾 Step 15: Saving response memory"
+ );
+ await this.runtime.messageManager.createMemory(
+ responseMemory
+ );
+
+ return [responseMemory];
+ } catch (error) {
+ console.error("❌ Error in callback:", error);
+ return [];
+ }
+ };
+
+ console.log("📤 Step 16: Sending initial response");
+ const responseMessages =
+ await callback(responseContent);
+
+ console.log(
+ "🔄 Step 17: Updating state after response"
+ );
+ state =
+ await this.runtime.updateRecentMessageState(state);
+
+ if (responseContent.action) {
+ console.log("⚡ Step 18: Processing actions");
+ await this.runtime.processActions(
+ memory,
+ responseMessages,
+ state,
+ callback
+ );
+ }
+ }
+ } else {
+ console.log("⏭️ Should not respond - skipping");
+ this.processedMessages.set(messageKey, currentTime);
+ }
+ } finally {
+ console.log(
+ "🔓 Final Step: Removing message from processing lock"
+ );
+ this.messageProcessingLock.delete(messageKey);
+ }
+ } catch (error) {
+ console.error("❌ Error in message handling:", error);
+ this.messageProcessingLock.delete(messageKey);
+ }
+ }
+}
diff --git a/packages/client-slack/src/providers/channelState.ts b/packages/client-slack/src/providers/channelState.ts
new file mode 100644
index 0000000000..1ef0f71bc7
--- /dev/null
+++ b/packages/client-slack/src/providers/channelState.ts
@@ -0,0 +1,43 @@
+import { IAgentRuntime, Memory, Provider, State } from "@ai16z/eliza";
+
+interface SlackEvent {
+ channel: string;
+ channel_type: string;
+ thread_ts?: string;
+ user?: string;
+ team?: string;
+}
+
+export const channelStateProvider: Provider = {
+ get: async (runtime: IAgentRuntime, message: Memory, state?: State) => {
+ const slackEvent = state?.slackEvent as SlackEvent | undefined;
+ if (!slackEvent) {
+ return "";
+ }
+
+ const agentName = state?.agentName || "The agent";
+ const senderName = state?.senderName || "someone";
+ const channelId = slackEvent.channel;
+ const channelType = slackEvent.channel_type;
+
+ // For direct messages
+ if (channelType === 'im') {
+ return `${agentName} is currently in a direct message conversation with ${senderName}`;
+ }
+
+ // For channel messages
+ let response = `${agentName} is currently having a conversation in the Slack channel <#${channelId}>`;
+
+ // Add thread context if in a thread
+ if (slackEvent.thread_ts) {
+ response += ` in a thread`;
+ }
+
+ // Add team context if available
+ if (slackEvent.team) {
+ response += ` in the workspace ${slackEvent.team}`;
+ }
+
+ return response;
+ },
+};
\ No newline at end of file
diff --git a/packages/client-slack/src/providers/slack-client.provider.ts b/packages/client-slack/src/providers/slack-client.provider.ts
new file mode 100644
index 0000000000..7499592ec9
--- /dev/null
+++ b/packages/client-slack/src/providers/slack-client.provider.ts
@@ -0,0 +1,80 @@
+import { WebClient } from '@slack/web-api';
+import { SlackConfig, SlackClientContext } from '../types/slack-types';
+import { SlackUtils, RetryOptions } from '../utils/slack-utils';
+
+export class SlackClientProvider {
+ private client: WebClient;
+ private config: SlackConfig;
+ private retryOptions: RetryOptions;
+
+ constructor(config: SlackConfig, retryOptions: RetryOptions = {}) {
+ this.config = config;
+ this.client = new WebClient(config.botToken);
+ this.retryOptions = {
+ maxRetries: 3,
+ initialDelay: 1000,
+ maxDelay: 5000,
+ ...retryOptions,
+ };
+ }
+
+ public getContext(): SlackClientContext {
+ return {
+ client: this.client,
+ config: this.config,
+ };
+ }
+
+ public async validateConnection(): Promise {
+ try {
+ const result = await SlackUtils.withRateLimit(
+ () => this.client.auth.test(),
+ this.retryOptions
+ );
+
+ if (result.ok) {
+ this.config.botId = result.user_id || this.config.botId;
+ console.log('Bot ID:', this.config.botId);
+ return true;
+ }
+ return false;
+ } catch (error) {
+ console.error('Slack connection validation failed:', error);
+ return false;
+ }
+ }
+
+ public async sendMessage(channel: string, text: string): Promise {
+ return SlackUtils.sendMessageWithRetry(
+ this.client,
+ channel,
+ text,
+ this.retryOptions
+ );
+ }
+
+ public async replyInThread(channel: string, threadTs: string, text: string): Promise {
+ return SlackUtils.replyInThread(
+ this.client,
+ channel,
+ threadTs,
+ text,
+ this.retryOptions
+ );
+ }
+
+ public async validateChannel(channelId: string): Promise {
+ return SlackUtils.validateChannel(this.client, channelId);
+ }
+
+ public formatMessage(text: string, options?: {
+ blocks?: any[];
+ attachments?: any[];
+ }) {
+ return SlackUtils.formatMessage(text, options);
+ }
+
+ public async withRateLimit(fn: () => Promise): Promise {
+ return SlackUtils.withRateLimit(fn, this.retryOptions);
+ }
+}
\ No newline at end of file
diff --git a/packages/client-slack/src/services/slack.service.ts b/packages/client-slack/src/services/slack.service.ts
new file mode 100644
index 0000000000..8cf241bcd0
--- /dev/null
+++ b/packages/client-slack/src/services/slack.service.ts
@@ -0,0 +1,23 @@
+import { Service, IAgentRuntime, ServiceType } from "@ai16z/eliza";
+import { WebClient } from "@slack/web-api";
+import { ISlackService } from "../types/slack-types";
+
+export class SlackService extends Service implements ISlackService {
+ public client: WebClient;
+
+ static get serviceType(): ServiceType {
+ return ServiceType.SLACK;
+ }
+
+ get serviceType(): ServiceType {
+ return ServiceType.SLACK;
+ }
+
+ async initialize(runtime: IAgentRuntime): Promise {
+ const token = runtime.getSetting("SLACK_BOT_TOKEN");
+ if (!token) {
+ throw new Error("SLACK_BOT_TOKEN is required");
+ }
+ this.client = new WebClient(token);
+ }
+}
\ No newline at end of file
diff --git a/packages/client-slack/src/templates.ts b/packages/client-slack/src/templates.ts
new file mode 100644
index 0000000000..dd7ecf6eb1
--- /dev/null
+++ b/packages/client-slack/src/templates.ts
@@ -0,0 +1,99 @@
+import { messageCompletionFooter, shouldRespondFooter } from "@ai16z/eliza";
+
+export const slackShouldRespondTemplate =
+ `# Task: Decide if {{agentName}} should respond.
+About {{agentName}}:
+{{bio}}
+
+# INSTRUCTIONS: Determine if {{agentName}} should respond to the message and participate in the conversation. Do not comment. Just respond with "RESPOND" or "IGNORE" or "STOP".
+
+# RESPONSE EXAMPLES
+: Hey everyone, what's up?
+: Not much, just working
+Result: [IGNORE]
+
+{{agentName}}: I can help with that task
+: thanks!
+: @{{agentName}} can you explain more?
+Result: [RESPOND]
+
+: @{{agentName}} shut up
+Result: [STOP]
+
+: Hey @{{agentName}}, can you help me with something?
+Result: [RESPOND]
+
+: @{{agentName}} please stop
+Result: [STOP]
+
+: I need help
+{{agentName}}: How can I help you?
+: Not you, I need someone else
+Result: [IGNORE]
+
+Response options are [RESPOND], [IGNORE] and [STOP].
+
+{{agentName}} is in a Slack channel with other users and is very mindful about not being disruptive.
+Respond with [RESPOND] to messages that:
+- Directly mention @{{agentName}}
+- Are follow-ups to {{agentName}}'s previous messages
+- Are relevant to ongoing conversations {{agentName}} is part of
+
+Respond with [IGNORE] to messages that:
+- Are not directed at {{agentName}}
+- Are general channel chatter
+- Are very short or lack context
+- Are part of conversations {{agentName}} isn't involved in
+
+Respond with [STOP] when:
+- Users explicitly ask {{agentName}} to stop or be quiet
+- The conversation with {{agentName}} has naturally concluded
+- Users express frustration with {{agentName}}
+
+IMPORTANT: {{agentName}} should err on the side of [IGNORE] if there's any doubt about whether to respond.
+Only respond when explicitly mentioned or when clearly part of an ongoing conversation.
+
+{{recentMessages}}
+
+# INSTRUCTIONS: Choose the option that best describes {{agentName}}'s response to the last message. Ignore messages if they are not directed at {{agentName}}.
+` + shouldRespondFooter;
+
+export const slackMessageHandlerTemplate =
+ `# Action Examples
+{{actionExamples}}
+(Action examples are for reference only. Do not use the information from them in your response.)
+
+# Knowledge
+{{knowledge}}
+
+# Task: Generate dialog and actions for the character {{agentName}} in Slack.
+About {{agentName}}:
+{{bio}}
+{{lore}}
+
+Examples of {{agentName}}'s dialog and actions:
+{{characterMessageExamples}}
+
+{{providers}}
+
+{{attachments}}
+
+{{actions}}
+
+# Capabilities
+Note that {{agentName}} is capable of reading/seeing/hearing various forms of media, including images, videos, audio, plaintext and PDFs. Recent attachments have been included above under the "Attachments" section.
+
+# Conversation Flow Rules
+1. Only continue the conversation if the user has explicitly mentioned {{agentName}} or is directly responding to {{agentName}}'s last message
+2. Do not use the CONTINUE action unless explicitly asked to continue by the user
+3. Wait for user input before generating additional responses
+4. Keep responses focused and concise
+5. If a conversation is naturally concluding, let it end gracefully
+
+{{messageDirections}}
+
+{{recentMessages}}
+
+# Instructions: Write the next message for {{agentName}}. Include an action, if appropriate. {{actionNames}}
+Remember to follow the conversation flow rules above.
+` + messageCompletionFooter;
\ No newline at end of file
diff --git a/packages/client-slack/src/tests/setup.ts b/packages/client-slack/src/tests/setup.ts
new file mode 100644
index 0000000000..fdb2f0ab95
--- /dev/null
+++ b/packages/client-slack/src/tests/setup.ts
@@ -0,0 +1,203 @@
+import { jest } from "@jest/globals";
+import type { Mocked } from "jest-mock";
+import { config } from "dotenv";
+import { resolve } from "path";
+import { WebClient } from "@slack/web-api";
+import type {
+ AuthTestResponse,
+ ChatPostMessageResponse,
+ ConversationsInfoResponse,
+ FilesUploadResponse,
+} from "@slack/web-api";
+
+// Load test environment variables
+const envPath = resolve(__dirname, "../../../../.env");
+console.log("Loading test environment from:", envPath);
+config({ path: envPath });
+
+// Set up test environment variables if not present
+const testEnvVars = {
+ SLACK_APP_ID: "test-app-id",
+ SLACK_CLIENT_ID: "test-client-id",
+ SLACK_CLIENT_SECRET: "test-client-secret",
+ SLACK_SIGNING_SECRET: "test-signing-secret",
+ SLACK_VERIFICATION_TOKEN: "test-verification-token",
+ SLACK_BOT_TOKEN: "test-bot-token",
+ SLACK_CHANNEL_ID: "test-channel-id",
+ SLACK_BOT_ID: "test-bot-id",
+};
+
+Object.entries(testEnvVars).forEach(([key, value]) => {
+ if (!process.env[key]) {
+ process.env[key] = value;
+ }
+});
+
+// Create base mock functions with proper return types
+const mockAuthTest = jest
+ .fn<() => Promise>()
+ .mockResolvedValue({
+ ok: true,
+ url: "https://test.slack.com",
+ team: "test-team",
+ user: "test-user",
+ team_id: "T123456",
+ user_id: "U123456",
+ });
+
+const mockPostMessage = jest
+ .fn<() => Promise>()
+ .mockResolvedValue({
+ ok: true,
+ channel: "C123456",
+ ts: "1234567890.123456",
+ message: {
+ text: "test message",
+ ts: "1234567890.123456",
+ type: "message",
+ },
+ });
+
+const mockConversationsInfo = jest
+ .fn<() => Promise>()
+ .mockResolvedValue({
+ ok: true,
+ channel: {
+ id: "C123456",
+ name: "test-channel",
+ is_channel: true,
+ created: 12345678,
+ },
+ });
+
+const mockFilesUpload = jest
+ .fn<() => Promise>()
+ .mockResolvedValue({
+ ok: true,
+ file: {
+ id: "F123456",
+ name: "test-file",
+ title: "test-file",
+ mimetype: "text/plain",
+ filetype: "text",
+ pretty_type: "Plain Text",
+ user: "U123456",
+ size: 12345,
+ mode: "hosted",
+ is_external: false,
+ external_type: "",
+ is_public: true,
+ public_url_shared: false,
+ display_as_bot: false,
+ username: "",
+ url_private: "https://test.slack.com/files/test-file",
+ url_private_download:
+ "https://test.slack.com/files/test-file/download",
+ permalink: "https://test.slack.com/files/test-file/permalink",
+ permalink_public: "https://test.slack.com/files/test-file/public",
+ created: 12345678,
+ timestamp: 12345678,
+ channels: ["C123456"],
+ groups: [],
+ ims: [],
+ comments_count: 0,
+ },
+ });
+
+const mockFilesUploadV2 = jest
+ .fn<() => Promise>()
+ .mockResolvedValue({
+ ok: true,
+ file: {
+ id: "F123456",
+ created: 12345678,
+ timestamp: 12345678,
+ name: "test-file",
+ title: "test-file",
+ mimetype: "text/plain",
+ filetype: "text",
+ pretty_type: "Plain Text",
+ user: "U123456",
+ size: 12345,
+ mode: "hosted",
+ is_external: false,
+ external_type: "",
+ is_public: true,
+ public_url_shared: false,
+ display_as_bot: false,
+ username: "",
+ url_private: "https://test.slack.com/files/test-file",
+ url_private_download:
+ "https://test.slack.com/files/test-file/download",
+ permalink: "https://test.slack.com/files/test-file/permalink",
+ permalink_public: "https://test.slack.com/files/test-file/public",
+ channels: ["C123456"],
+ groups: [],
+ ims: [],
+ comments_count: 0,
+ },
+ });
+
+// Create mock WebClient
+const mockWebClient = {
+ slackApiUrl: "https://slack.com/api/",
+ token: "test-token",
+ apiCall: jest.fn(),
+ auth: {
+ test: mockAuthTest,
+ },
+ chat: {
+ postMessage: mockPostMessage,
+ },
+ conversations: {
+ info: mockConversationsInfo,
+ },
+ files: {
+ upload: mockFilesUpload,
+ uploadV2: mockFilesUploadV2,
+ },
+} as unknown as Mocked;
+
+// Mock the WebClient constructor
+jest.mock("@slack/web-api", () => ({
+ WebClient: jest.fn().mockImplementation(() => mockWebClient),
+}));
+
+// Helper function to get mock WebClient
+export function getMockWebClient(): Mocked {
+ return mockWebClient;
+}
+
+// Helper function to create mock Slack API responses
+export function createMockSlackResponse(ok: boolean, data: any = {}) {
+ return {
+ ok,
+ ...data,
+ };
+}
+
+// Helper function to simulate rate limiting
+export function simulateRateLimit(client: Mocked) {
+ const mockPostMessage = client.chat.postMessage as Mocked<
+ typeof client.chat.postMessage
+ >;
+ mockPostMessage.mockRejectedValueOnce(new Error("rate_limited"));
+}
+
+// Helper function to simulate network errors
+export function simulateNetworkError(client: Mocked) {
+ const mockPostMessage = client.chat.postMessage as Mocked<
+ typeof client.chat.postMessage
+ >;
+ mockPostMessage.mockRejectedValueOnce(new Error("network_error"));
+}
+
+// Global test setup
+beforeAll(() => {
+ jest.clearAllMocks();
+});
+
+// Reset mocks after each test
+afterEach(() => {
+ jest.clearAllMocks();
+});
diff --git a/packages/client-slack/src/tests/slack-client.provider.test.ts b/packages/client-slack/src/tests/slack-client.provider.test.ts
new file mode 100644
index 0000000000..d78e7a2277
--- /dev/null
+++ b/packages/client-slack/src/tests/slack-client.provider.test.ts
@@ -0,0 +1,164 @@
+import { describe, expect, test, jest, beforeEach } from '@jest/globals';
+import type { Mocked } from 'jest-mock';
+import { SlackClientProvider } from '../providers/slack-client.provider';
+import { SlackConfig } from '../types/slack-types';
+import { getMockWebClient, createMockSlackResponse } from './setup';
+import { WebClient } from '@slack/web-api';
+import type { AuthTestResponse, ChatPostMessageResponse, ConversationsInfoResponse } from '@slack/web-api';
+
+jest.mock('@slack/web-api');
+
+describe('SlackClientProvider', () => {
+ let provider: SlackClientProvider;
+ let mockWebClient: Mocked;
+ let mockConfig: SlackConfig;
+
+ beforeEach(() => {
+ jest.clearAllMocks();
+ mockConfig = {
+ appId: 'test-app-id',
+ clientId: 'test-client-id',
+ clientSecret: 'test-client-secret',
+ signingSecret: 'test-signing-secret',
+ verificationToken: 'test-verification-token',
+ botToken: 'test-bot-token',
+ botId: 'test-bot-id'
+ };
+ mockWebClient = getMockWebClient();
+ provider = new SlackClientProvider(mockConfig);
+ });
+
+ describe('Initialization', () => {
+ test('should create a provider instance with default retry options', () => {
+ expect(provider).toBeInstanceOf(SlackClientProvider);
+ const context = provider.getContext();
+ expect(context).toHaveProperty('client');
+ expect(context).toHaveProperty('config');
+ expect(context.config).toEqual(mockConfig);
+ });
+
+ test('should create a provider instance with custom retry options', () => {
+ const retryOptions = {
+ maxRetries: 5,
+ initialDelay: 2000,
+ maxDelay: 10000,
+ };
+ const providerWithOptions = new SlackClientProvider(mockConfig, retryOptions);
+ expect(providerWithOptions).toBeInstanceOf(SlackClientProvider);
+ });
+ });
+
+ describe('Connection Validation', () => {
+ test('should successfully validate connection', async () => {
+ const mockResponse = createMockSlackResponse(true, { user_id: 'test-bot-id' }) as AuthTestResponse;
+ const mockTest = mockWebClient.auth.test as Mocked;
+ mockTest.mockResolvedValue(mockResponse);
+
+ const result = await provider.validateConnection();
+ expect(result).toBe(true);
+ expect(mockTest).toHaveBeenCalled();
+ });
+
+ test('should handle failed connection validation', async () => {
+ const mockResponse = createMockSlackResponse(false) as AuthTestResponse;
+ const mockTest = mockWebClient.auth.test as Mocked;
+ mockTest.mockResolvedValue(mockResponse);
+
+ const result = await provider.validateConnection();
+ expect(result).toBe(false);
+ });
+
+ test('should handle connection errors', async () => {
+ const mockTest = mockWebClient.auth.test as Mocked;
+ mockTest.mockRejectedValue(new Error('Connection failed'));
+
+ const result = await provider.validateConnection();
+ expect(result).toBe(false);
+ });
+ });
+
+ describe('Message Sending', () => {
+ const channelId = 'test-channel';
+ const text = 'Hello, world!';
+
+ test('should successfully send a message', async () => {
+ const expectedResponse = createMockSlackResponse(true, { ts: '1234567890.123456' }) as ChatPostMessageResponse;
+ const mockPostMessage = mockWebClient.chat.postMessage as Mocked;
+ mockPostMessage.mockResolvedValue(expectedResponse);
+
+ const result = await provider.sendMessage(channelId, text);
+ expect(result).toEqual(expectedResponse);
+ expect(mockPostMessage).toHaveBeenCalledWith({
+ channel: channelId,
+ text
+ });
+ });
+
+ test('should handle rate limiting', async () => {
+ const mockResponse = createMockSlackResponse(true) as ChatPostMessageResponse;
+ const mockPostMessage = mockWebClient.chat.postMessage as Mocked;
+
+ mockPostMessage
+ .mockRejectedValueOnce(new Error('rate_limited'))
+ .mockResolvedValueOnce(mockResponse);
+
+ const result = await provider.sendMessage(channelId, text);
+ expect(result.ok).toBe(true);
+ expect(mockPostMessage).toHaveBeenCalledTimes(2);
+ });
+
+ test('should handle network errors', async () => {
+ const mockResponse = createMockSlackResponse(true) as ChatPostMessageResponse;
+ const mockPostMessage = mockWebClient.chat.postMessage as Mocked;
+
+ mockPostMessage
+ .mockRejectedValueOnce(new Error('network_error'))
+ .mockResolvedValueOnce(mockResponse);
+
+ const result = await provider.sendMessage(channelId, text);
+ expect(result.ok).toBe(true);
+ expect(mockPostMessage).toHaveBeenCalledTimes(2);
+ });
+ });
+
+ describe('Thread Replies', () => {
+ const channelId = 'test-channel';
+ const threadTs = '1234567890.123456';
+ const text = 'Thread reply';
+
+ test('should successfully reply in thread', async () => {
+ const expectedResponse = createMockSlackResponse(true, { ts: '1234567890.123457' }) as ChatPostMessageResponse;
+ const mockPostMessage = mockWebClient.chat.postMessage as Mocked;
+ mockPostMessage.mockResolvedValue(expectedResponse);
+
+ const result = await provider.replyInThread(channelId, threadTs, text);
+ expect(result).toEqual(expectedResponse);
+ expect(mockPostMessage).toHaveBeenCalledWith({
+ channel: channelId,
+ text,
+ thread_ts: threadTs
+ });
+ });
+ });
+
+ describe('Channel Validation', () => {
+ const channelId = 'test-channel';
+
+ test('should successfully validate channel', async () => {
+ const mockResponse = createMockSlackResponse(true) as ConversationsInfoResponse;
+ const mockInfo = mockWebClient.conversations.info as Mocked;
+ mockInfo.mockResolvedValue(mockResponse);
+
+ const result = await provider.validateChannel(channelId);
+ expect(result).toBe(true);
+ });
+
+ test('should handle invalid channel', async () => {
+ const mockInfo = mockWebClient.conversations.info as Mocked;
+ mockInfo.mockRejectedValue(new Error('Channel not found'));
+
+ const result = await provider.validateChannel(channelId);
+ expect(result).toBe(false);
+ });
+ });
+});
\ No newline at end of file
diff --git a/packages/client-slack/src/tests/test_image.png b/packages/client-slack/src/tests/test_image.png
new file mode 100644
index 0000000000..b711feb1fa
Binary files /dev/null and b/packages/client-slack/src/tests/test_image.png differ
diff --git a/packages/client-slack/src/types/slack-types.ts b/packages/client-slack/src/types/slack-types.ts
new file mode 100644
index 0000000000..9a95d6b8ea
--- /dev/null
+++ b/packages/client-slack/src/types/slack-types.ts
@@ -0,0 +1,39 @@
+import { WebClient } from '@slack/web-api';
+import { Service, ServiceType } from '@ai16z/eliza';
+
+export interface SlackConfig {
+ appId: string;
+ clientId: string;
+ clientSecret: string;
+ signingSecret: string;
+ verificationToken: string;
+ botToken: string;
+ botId: string;
+}
+
+export interface SlackClientContext {
+ client: any;
+ config: SlackConfig;
+}
+
+export interface SlackMessage {
+ text: string;
+ userId: string;
+ channelId: string;
+ threadTs?: string;
+ attachments?: Array<{
+ type: string;
+ url: string;
+ title: string;
+ size: number;
+ }>;
+}
+
+// We'll temporarily use TEXT_GENERATION as our service type
+// This is not ideal but allows us to work within current constraints
+export const SLACK_SERVICE_TYPE = ServiceType.TEXT_GENERATION;
+
+// Interface extending core Service
+export interface ISlackService extends Service {
+ client: WebClient;
+}
\ No newline at end of file
diff --git a/packages/client-slack/src/utils/slack-utils.ts b/packages/client-slack/src/utils/slack-utils.ts
new file mode 100644
index 0000000000..04afd2384b
--- /dev/null
+++ b/packages/client-slack/src/utils/slack-utils.ts
@@ -0,0 +1,142 @@
+import { WebClient } from "@slack/web-api";
+
+export interface RetryOptions {
+ maxRetries?: number;
+ initialDelay?: number;
+ maxDelay?: number;
+}
+
+export interface MessageOptions extends RetryOptions {
+ threadTs?: string;
+}
+
+const DEFAULT_RETRY_OPTIONS: Required = {
+ maxRetries: 3,
+ initialDelay: 1000,
+ maxDelay: 5000,
+};
+
+export class SlackUtils {
+ /**
+ * Sends a message to a Slack channel with retry mechanism
+ */
+ static async sendMessageWithRetry(
+ client: WebClient,
+ channel: string,
+ text: string,
+ options: MessageOptions = {}
+ ) {
+ const { threadTs, ...retryOpts } = options;
+ const finalRetryOpts = { ...DEFAULT_RETRY_OPTIONS, ...retryOpts };
+ let lastError: Error | null = null;
+
+ for (let attempt = 0; attempt < finalRetryOpts.maxRetries; attempt++) {
+ try {
+ const result = await client.chat.postMessage({
+ channel,
+ text,
+ thread_ts: threadTs,
+ });
+ return result;
+ } catch (error) {
+ lastError = error as Error;
+ if (attempt < finalRetryOpts.maxRetries - 1) {
+ const delay = Math.min(
+ finalRetryOpts.initialDelay * Math.pow(2, attempt),
+ finalRetryOpts.maxDelay
+ );
+ await new Promise((resolve) => setTimeout(resolve, delay));
+ }
+ }
+ }
+
+ throw new Error(
+ `Failed to send message after ${finalRetryOpts.maxRetries} attempts: ${lastError?.message}`
+ );
+ }
+
+ /**
+ * Validates if a channel exists and is accessible
+ */
+ static async validateChannel(
+ client: WebClient,
+ channelId: string
+ ): Promise {
+ try {
+ const result = await client.conversations.info({
+ channel: channelId,
+ });
+ return result.ok === true;
+ } catch (error) {
+ console.error(error);
+ return false;
+ }
+ }
+
+ /**
+ * Formats a message for Slack with optional blocks
+ */
+ static formatMessage(
+ text: string,
+ options?: {
+ blocks?: any[];
+ attachments?: any[];
+ }
+ ) {
+ return {
+ text,
+ ...options,
+ };
+ }
+
+ /**
+ * Creates a thread reply
+ */
+ static async replyInThread(
+ client: WebClient,
+ channel: string,
+ threadTs: string,
+ text: string,
+ options: RetryOptions = {}
+ ) {
+ return this.sendMessageWithRetry(client, channel, text, {
+ ...options,
+ threadTs,
+ });
+ }
+
+ /**
+ * Handles rate limiting by implementing exponential backoff
+ */
+ static async withRateLimit(
+ fn: () => Promise,
+ options: RetryOptions = {}
+ ): Promise {
+ const retryOpts = { ...DEFAULT_RETRY_OPTIONS, ...options };
+ let lastError: Error | null = null;
+
+ for (let attempt = 0; attempt < retryOpts.maxRetries; attempt++) {
+ try {
+ return await fn();
+ } catch (error) {
+ lastError = error as Error;
+ if (
+ error instanceof Error &&
+ error.message.includes("rate_limited")
+ ) {
+ const delay = Math.min(
+ retryOpts.initialDelay * Math.pow(2, attempt),
+ retryOpts.maxDelay
+ );
+ await new Promise((resolve) => setTimeout(resolve, delay));
+ continue;
+ }
+ throw error;
+ }
+ }
+
+ throw new Error(
+ `Operation failed after ${retryOpts.maxRetries} attempts: ${lastError?.message}`
+ );
+ }
+}
diff --git a/packages/client-slack/tsconfig.json b/packages/client-slack/tsconfig.json
new file mode 100644
index 0000000000..2fdd804f2d
--- /dev/null
+++ b/packages/client-slack/tsconfig.json
@@ -0,0 +1,13 @@
+{
+ "extends": "../core/tsconfig.json",
+ "compilerOptions": {
+ "outDir": "dist",
+ "rootDir": "src",
+ "moduleResolution": "Bundler",
+ "allowImportingTsExtensions": true,
+ "allowArbitraryExtensions": true
+ },
+ "include": [
+ "src/**/*.ts"
+ ]
+}
\ No newline at end of file
diff --git a/packages/client-telegram/package.json b/packages/client-telegram/package.json
index c32af49710..ad29702bab 100644
--- a/packages/client-telegram/package.json
+++ b/packages/client-telegram/package.json
@@ -1,21 +1,21 @@
{
- "name": "@ai16z/client-telegram",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@telegraf/types": "7.1.0",
- "telegraf": "4.16.3",
- "zod": "3.23.8"
- },
- "devDependencies": {
- "tsup": "8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix"
- }
+ "name": "@ai16z/client-telegram",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@telegraf/types": "7.1.0",
+ "telegraf": "4.16.3",
+ "zod": "3.23.8"
+ },
+ "devDependencies": {
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache ."
+ }
}
diff --git a/packages/client-telegram/src/constants.ts b/packages/client-telegram/src/constants.ts
new file mode 100644
index 0000000000..f377019e1a
--- /dev/null
+++ b/packages/client-telegram/src/constants.ts
@@ -0,0 +1,38 @@
+export const MESSAGE_CONSTANTS = {
+ MAX_MESSAGES: 50,
+ RECENT_MESSAGE_COUNT: 5,
+ CHAT_HISTORY_COUNT: 10,
+ DEFAULT_SIMILARITY_THRESHOLD: 0.6,
+ DEFAULT_SIMILARITY_THRESHOLD_FOLLOW_UPS: 0.4,
+ INTEREST_DECAY_TIME: 5 * 60 * 1000, // 5 minutes
+ PARTIAL_INTEREST_DECAY: 3 * 60 * 1000, // 3 minutes
+} as const;
+
+export const TIMING_CONSTANTS = {
+ TEAM_MEMBER_DELAY: 1500, // 1.5 seconds
+ TEAM_MEMBER_DELAY_MIN: 1000, // 1 second
+ TEAM_MEMBER_DELAY_MAX: 3000, // 3 seconds
+ LEADER_DELAY_MIN: 2000, // 2 seconds
+ LEADER_DELAY_MAX: 4000 // 4 seconds
+} as const;
+
+export const RESPONSE_CHANCES = {
+ AFTER_LEADER: 0.5, // 50% chance to respond after leader
+} as const;
+
+export const TEAM_COORDINATION = {
+ KEYWORDS: [
+ 'team',
+ 'everyone',
+ 'all agents',
+ 'team update',
+ 'gm team',
+ 'hello team',
+ 'hey team',
+ 'hi team',
+ 'morning team',
+ 'evening team',
+ 'night team',
+ 'update team',
+ ]
+} as const;
\ No newline at end of file
diff --git a/packages/client-telegram/src/messageManager.ts b/packages/client-telegram/src/messageManager.ts
index 6c400d514e..6b37981f39 100644
--- a/packages/client-telegram/src/messageManager.ts
+++ b/packages/client-telegram/src/messageManager.ts
@@ -18,6 +18,14 @@ import { stringToUuid } from "@ai16z/eliza";
import { generateMessageResponse, generateShouldRespond } from "@ai16z/eliza";
import { messageCompletionFooter, shouldRespondFooter } from "@ai16z/eliza";
+import { cosineSimilarity } from "./utils";
+import {
+ MESSAGE_CONSTANTS,
+ TIMING_CONSTANTS,
+ RESPONSE_CHANCES,
+ TEAM_COORDINATION
+} from "./constants";
+
const MAX_MESSAGE_LENGTH = 4096; // Telegram's max message length
const telegramShouldRespondTemplate =
@@ -133,13 +141,226 @@ Thread of Tweets You Are Replying To:
{{formattedConversation}}
` + messageCompletionFooter;
+interface MessageContext {
+ content: string;
+ timestamp: number;
+}
+
+export type InterestChats = {
+ [key: string]: {
+ currentHandler: string | undefined;
+ lastMessageSent: number;
+ messages: { userId: UUID; userName: string; content: Content }[];
+ previousContext?: MessageContext;
+ contextSimilarityThreshold?: number;
+ };
+};
+
export class MessageManager {
public bot: Telegraf;
private runtime: IAgentRuntime;
+ private interestChats: InterestChats = {};
+ private teamMemberUsernames: Map = new Map();
constructor(bot: Telegraf, runtime: IAgentRuntime) {
this.bot = bot;
this.runtime = runtime;
+
+ this._initializeTeamMemberUsernames().catch(error =>
+ elizaLogger.error("Error initializing team member usernames:", error)
+ );
+ }
+
+ private async _initializeTeamMemberUsernames(): Promise {
+ if (!this.runtime.character.clientConfig?.telegram?.isPartOfTeam) return;
+
+ const teamAgentIds = this.runtime.character.clientConfig.telegram.teamAgentIds || [];
+
+ for (const id of teamAgentIds) {
+ try {
+ const chat = await this.bot.telegram.getChat(id);
+ if ('username' in chat && chat.username) {
+ this.teamMemberUsernames.set(id, chat.username);
+ elizaLogger.info(`Cached username for team member ${id}: ${chat.username}`);
+ }
+ } catch (error) {
+ elizaLogger.error(`Error getting username for team member ${id}:`, error);
+ }
+ }
+ }
+
+ private _getTeamMemberUsername(id: string): string | undefined {
+ return this.teamMemberUsernames.get(id);
+ }
+
+ private _getNormalizedUserId(id: string | number): string {
+ return id.toString().replace(/[^0-9]/g, '');
+ }
+
+ private _isTeamMember(userId: string | number): boolean {
+ const teamConfig = this.runtime.character.clientConfig?.telegram;
+ if (!teamConfig?.isPartOfTeam || !teamConfig.teamAgentIds) return false;
+
+ const normalizedUserId = this._getNormalizedUserId(userId);
+ return teamConfig.teamAgentIds.some(teamId =>
+ this._getNormalizedUserId(teamId) === normalizedUserId
+ );
+ }
+
+ private _isTeamLeader(): boolean {
+ return this.bot.botInfo?.id.toString() === this.runtime.character.clientConfig?.telegram?.teamLeaderId;
+ }
+
+ private _isTeamCoordinationRequest(content: string): boolean {
+ const contentLower = content.toLowerCase();
+ return TEAM_COORDINATION.KEYWORDS?.some(keyword =>
+ contentLower.includes(keyword.toLowerCase())
+ );
+ }
+
+ private _isRelevantToTeamMember(content: string, chatId: string, lastAgentMemory: Memory | null = null): boolean {
+ const teamConfig = this.runtime.character.clientConfig?.telegram;
+
+ // Check leader's context based on last message
+ if (this._isTeamLeader() && lastAgentMemory?.content.text) {
+ const timeSinceLastMessage = Date.now() - lastAgentMemory.createdAt;
+ if (timeSinceLastMessage > MESSAGE_CONSTANTS.INTEREST_DECAY_TIME) {
+ return false;
+ }
+
+ const similarity = cosineSimilarity(
+ content.toLowerCase(),
+ lastAgentMemory.content.text.toLowerCase()
+ );
+
+ return similarity >= MESSAGE_CONSTANTS.DEFAULT_SIMILARITY_THRESHOLD_FOLLOW_UPS;
+ }
+
+ // Check team member keywords
+ if (!teamConfig?.teamMemberInterestKeywords?.length) {
+ return false; // If no keywords defined, only leader maintains conversation
+ }
+
+ // Check if content matches any team member keywords
+ return teamConfig.teamMemberInterestKeywords.some(keyword =>
+ content.toLowerCase().includes(keyword.toLowerCase())
+ );
+ }
+
+ private async _analyzeContextSimilarity(currentMessage: string, previousContext?: MessageContext, agentLastMessage?: string): Promise {
+ if (!previousContext) return 1;
+
+ const timeDiff = Date.now() - previousContext.timestamp;
+ const timeWeight = Math.max(0, 1 - (timeDiff / (5 * 60 * 1000)));
+
+ const similarity = cosineSimilarity(
+ currentMessage.toLowerCase(),
+ previousContext.content.toLowerCase(),
+ agentLastMessage?.toLowerCase()
+ );
+
+ return similarity * timeWeight;
+ }
+
+ private async _shouldRespondBasedOnContext(message: Message, chatState: InterestChats[string]): Promise {
+ const messageText = 'text' in message ? message.text :
+ 'caption' in message ? (message as any).caption : '';
+
+ if (!messageText) return false;
+
+ // Always respond if mentioned
+ if (this._isMessageForMe(message)) return true;
+
+ // If we're not the current handler, don't respond
+ if (chatState?.currentHandler !== this.bot.botInfo?.id.toString()) return false;
+
+ // Check if we have messages to compare
+ if (!chatState.messages?.length) return false;
+
+ // Get last user message (not from the bot)
+ const lastUserMessage = [...chatState.messages]
+ .reverse()
+ .find((m, index) =>
+ index > 0 && // Skip first message (current)
+ m.userId !== this.runtime.agentId
+ );
+
+ if (!lastUserMessage) return false;
+
+ const lastSelfMemories = await this.runtime.messageManager.getMemories({
+ roomId: stringToUuid(message.chat.id.toString() + "-" + this.runtime.agentId),
+ unique: false,
+ count: 5
+ });
+
+ const lastSelfSortedMemories = lastSelfMemories?.filter(m => m.userId === this.runtime.agentId)
+ .sort((a, b) => (b.createdAt || 0) - (a.createdAt || 0));
+
+ // Calculate context similarity
+ const contextSimilarity = await this._analyzeContextSimilarity(
+ messageText,
+ {
+ content: lastUserMessage.content.text || '',
+ timestamp: Date.now()
+ },
+ lastSelfSortedMemories?.[0]?.content?.text
+ );
+
+ const similarityThreshold =
+ this.runtime.character.clientConfig?.telegram?.messageSimilarityThreshold ||
+ chatState.contextSimilarityThreshold ||
+ MESSAGE_CONSTANTS.DEFAULT_SIMILARITY_THRESHOLD;
+
+ return contextSimilarity >= similarityThreshold;
+ }
+
+ private _isMessageForMe(message: Message): boolean {
+ const botUsername = this.bot.botInfo?.username;
+ if (!botUsername) return false;
+
+ const messageText = 'text' in message ? message.text :
+ 'caption' in message ? (message as any).caption : '';
+ if (!messageText) return false;
+
+ const isReplyToBot = (message as any).reply_to_message?.from?.is_bot === true &&
+ (message as any).reply_to_message?.from?.username === botUsername;
+ const isMentioned = messageText.includes(`@${botUsername}`);
+ const hasUsername = messageText.toLowerCase().includes(botUsername.toLowerCase());
+
+ return isReplyToBot || isMentioned || (!this.runtime.character.clientConfig?.telegram?.shouldRespondOnlyToMentions && hasUsername);
+ }
+
+
+ private _checkInterest(chatId: string): boolean {
+ const chatState = this.interestChats[chatId];
+ if (!chatState) return false;
+
+ const lastMessage = chatState.messages[chatState.messages.length - 1];
+ const timeSinceLastMessage = Date.now() - chatState.lastMessageSent;
+
+ if (timeSinceLastMessage > MESSAGE_CONSTANTS.INTEREST_DECAY_TIME) {
+ delete this.interestChats[chatId];
+ return false;
+ } else if (timeSinceLastMessage > MESSAGE_CONSTANTS.PARTIAL_INTEREST_DECAY) {
+ return this._isRelevantToTeamMember(lastMessage?.content.text || '', chatId);
+ }
+
+ // Team leader specific checks
+ if (this._isTeamLeader() && chatState.messages.length > 0) {
+ if (!this._isRelevantToTeamMember(lastMessage?.content.text || '', chatId)) {
+ const recentTeamResponses = chatState.messages.slice(-3).some(m =>
+ m.userId !== this.runtime.agentId &&
+ this._isTeamMember(m.userId.toString())
+ );
+
+ if (recentTeamResponses) {
+ delete this.interestChats[chatId];
+ return false;
+ }
+ }
+ }
+
+ return true;
}
// Process image messages and generate descriptions
@@ -149,6 +370,8 @@ export class MessageManager {
try {
let imageUrl: string | null = null;
+ elizaLogger.info(`Telegram Message: ${message}`)
+
if ("photo" in message && message.photo?.length > 0) {
const photo = message.photo[message.photo.length - 1];
const fileLink = await this.bot.telegram.getFileLink(
@@ -186,11 +409,17 @@ export class MessageManager {
message: Message,
state: State
): Promise {
+
+ if (this.runtime.character.clientConfig?.telegram?.shouldRespondOnlyToMentions) {
+ return this._isMessageForMe(message);
+ }
+
// Respond if bot is mentioned
if (
"text" in message &&
message.text?.includes(`@${this.bot.botInfo?.username}`)
) {
+ elizaLogger.info(`Bot mentioned`)
return true;
}
@@ -208,6 +437,123 @@ export class MessageManager {
return false;
}
+ const chatId = message.chat.id.toString();
+ const chatState = this.interestChats[chatId];
+ const messageText = 'text' in message ? message.text :
+ 'caption' in message ? (message as any).caption : '';
+
+ // Check if team member has direct interest first
+ if (this.runtime.character.clientConfig?.discord?.isPartOfTeam &&
+ !this._isTeamLeader() &&
+ this._isRelevantToTeamMember(messageText, chatId)) {
+
+ return true;
+ }
+
+ // Team-based response logic
+ if (this.runtime.character.clientConfig?.telegram?.isPartOfTeam) {
+ // Team coordination
+ if(this._isTeamCoordinationRequest(messageText)) {
+ if (this._isTeamLeader()) {
+ return true;
+ } else {
+ const randomDelay = Math.floor(Math.random() * (TIMING_CONSTANTS.TEAM_MEMBER_DELAY_MAX - TIMING_CONSTANTS.TEAM_MEMBER_DELAY_MIN)) +
+ TIMING_CONSTANTS.TEAM_MEMBER_DELAY_MIN; // 1-3 second random delay
+ await new Promise(resolve => setTimeout(resolve, randomDelay));
+ return true;
+ }
+ }
+
+ if (!this._isTeamLeader() && this._isRelevantToTeamMember(messageText, chatId)) {
+ // Add small delay for non-leader responses
+ await new Promise(resolve => setTimeout(resolve, TIMING_CONSTANTS.TEAM_MEMBER_DELAY)); //1.5 second delay
+
+ // If leader has responded in last few seconds, reduce chance of responding
+ if (chatState.messages?.length) {
+ const recentMessages = chatState.messages.slice(-MESSAGE_CONSTANTS.RECENT_MESSAGE_COUNT);
+ const leaderResponded = recentMessages.some(m =>
+ m.userId === this.runtime.character.clientConfig?.telegram?.teamLeaderId &&
+ Date.now() - chatState.lastMessageSent < 3000
+ );
+
+ if (leaderResponded) {
+ // 50% chance to respond if leader just did
+ return Math.random() > RESPONSE_CHANCES.AFTER_LEADER;
+ }
+ }
+
+ return true;
+ }
+
+ // If I'm the leader but message doesn't match my keywords, add delay and check for team responses
+ if (this._isTeamLeader() && !this._isRelevantToTeamMember(messageText, chatId)) {
+ const randomDelay = Math.floor(Math.random() * (TIMING_CONSTANTS.LEADER_DELAY_MAX - TIMING_CONSTANTS.LEADER_DELAY_MIN)) +
+ TIMING_CONSTANTS.LEADER_DELAY_MIN; // 2-4 second random delay
+ await new Promise(resolve => setTimeout(resolve, randomDelay));
+
+ // After delay, check if another team member has already responded
+ if (chatState?.messages?.length) {
+ const recentResponses = chatState.messages.slice(-MESSAGE_CONSTANTS.RECENT_MESSAGE_COUNT);
+ const otherTeamMemberResponded = recentResponses.some(m =>
+ m.userId !== this.runtime.agentId &&
+ this._isTeamMember(m.userId)
+ );
+
+ if (otherTeamMemberResponded) {
+ return false;
+ }
+ }
+ }
+
+ // Update current handler if we're mentioned
+ if (this._isMessageForMe(message)) {
+ const channelState = this.interestChats[chatId];
+ if (channelState) {
+ channelState.currentHandler = this.bot.botInfo?.id.toString()
+ channelState.lastMessageSent = Date.now();
+ }
+ return true;
+ }
+
+ // Don't respond if another teammate is handling the conversation
+ if (chatState?.currentHandler) {
+ if (chatState.currentHandler !== this.bot.botInfo?.id.toString() &&
+ this._isTeamMember(chatState.currentHandler)) {
+ return false;
+ }
+ }
+
+ // Natural conversation cadence
+ if (!this._isMessageForMe(message) && this.interestChats[chatId]) {
+
+ const recentMessages = this.interestChats[chatId].messages
+ .slice(-MESSAGE_CONSTANTS.CHAT_HISTORY_COUNT);
+ const ourMessageCount = recentMessages.filter(m =>
+ m.userId === this.runtime.agentId
+ ).length;
+
+ if (ourMessageCount > 2) {
+
+ const responseChance = Math.pow(0.5, ourMessageCount - 2);
+ if (Math.random() > responseChance) {
+ return;
+ }
+ }
+ }
+
+ }
+
+ // Check context-based response for team conversations
+ if (chatState?.currentHandler) {
+ const shouldRespondContext = await this._shouldRespondBasedOnContext(message, chatState);
+
+ if (!shouldRespondContext) {
+ return false;
+ }
+
+ }
+
+
// Use AI to decide for text or captions
if ("text" in message || ("caption" in message && message.caption)) {
const shouldRespondContext = composeContext({
@@ -329,6 +675,124 @@ export class MessageManager {
}
const message = ctx.message;
+ const chatId = ctx.chat?.id.toString();
+ const messageText = 'text' in message ? message.text :
+ 'caption' in message ? (message as any).caption : '';
+
+ // Add team handling at the start
+ if (this.runtime.character.clientConfig?.telegram?.isPartOfTeam &&
+ !this.runtime.character.clientConfig?.telegram?.shouldRespondOnlyToMentions) {
+
+ const isDirectlyMentioned = this._isMessageForMe(message);
+ const hasInterest = this._checkInterest(chatId);
+
+
+ // Non-leader team member showing interest based on keywords
+ if (!this._isTeamLeader() && this._isRelevantToTeamMember(messageText, chatId)) {
+
+ this.interestChats[chatId] = {
+ currentHandler: this.bot.botInfo?.id.toString(),
+ lastMessageSent: Date.now(),
+ messages: []
+ };
+ }
+
+ const isTeamRequest = this._isTeamCoordinationRequest(messageText);
+ const isLeader = this._isTeamLeader();
+
+
+ // Check for continued interest
+ if (hasInterest && !isDirectlyMentioned) {
+ const lastSelfMemories = await this.runtime.messageManager.getMemories({
+ roomId: stringToUuid(chatId + "-" + this.runtime.agentId),
+ unique: false,
+ count: 5
+ });
+
+ const lastSelfSortedMemories = lastSelfMemories?.filter(m => m.userId === this.runtime.agentId)
+ .sort((a, b) => (b.createdAt || 0) - (a.createdAt || 0));
+
+ const isRelevant = this._isRelevantToTeamMember(
+ messageText,
+ chatId,
+ lastSelfSortedMemories?.[0]
+ );
+
+ if (!isRelevant) {
+ delete this.interestChats[chatId];
+ return;
+ }
+ }
+
+ // Handle team coordination requests
+ if (isTeamRequest) {
+ if (isLeader) {
+ this.interestChats[chatId] = {
+ currentHandler: this.bot.botInfo?.id.toString(),
+ lastMessageSent: Date.now(),
+ messages: []
+ };
+ } else {
+ this.interestChats[chatId] = {
+ currentHandler: this.bot.botInfo?.id.toString(),
+ lastMessageSent: Date.now(),
+ messages: []
+ };
+
+ if (!isDirectlyMentioned) {
+ this.interestChats[chatId].lastMessageSent = 0;
+ }
+
+ }
+ }
+
+ // Check for other team member mentions using cached usernames
+ const otherTeamMembers = this.runtime.character.clientConfig.telegram.teamAgentIds.filter(
+ id => id !== this.bot.botInfo?.id.toString()
+ );
+
+ const mentionedTeamMember = otherTeamMembers.find(id => {
+ const username = this._getTeamMemberUsername(id);
+ return username && messageText?.includes(`@${username}`);
+ });
+
+ // If another team member is mentioned, clear our interest
+ if (mentionedTeamMember) {
+ if (hasInterest || this.interestChats[chatId]?.currentHandler === this.bot.botInfo?.id.toString()) {
+ delete this.interestChats[chatId];
+
+ // Only return if we're not the mentioned member
+ if (!isDirectlyMentioned) {
+ return;
+ }
+ }
+ }
+
+ // Set/maintain interest only if we're mentioned or already have interest
+ if (isDirectlyMentioned) {
+ this.interestChats[chatId] = {
+ currentHandler: this.bot.botInfo?.id.toString(),
+ lastMessageSent: Date.now(),
+ messages: []
+ };
+ } else if (!isTeamRequest && !hasInterest) {
+ return;
+ }
+
+ // Update message tracking
+ if (this.interestChats[chatId]) {
+ this.interestChats[chatId].messages.push({
+ userId: stringToUuid(ctx.from.id.toString()),
+ userName: ctx.from.username || ctx.from.first_name || "Unknown User",
+ content: { text: messageText, source: "telegram" }
+ });
+
+ if (this.interestChats[chatId].messages.length > MESSAGE_CONSTANTS.MAX_MESSAGES) {
+ this.interestChats[chatId].messages =
+ this.interestChats[chatId].messages.slice(-MESSAGE_CONSTANTS.MAX_MESSAGES);
+ }
+ }
+ }
try {
// Convert IDs to UUIDs
@@ -505,4 +969,4 @@ export class MessageManager {
elizaLogger.error("Error sending message:", error);
}
}
-}
+}
\ No newline at end of file
diff --git a/packages/client-telegram/src/telegramClient.ts b/packages/client-telegram/src/telegramClient.ts
index 2900a1f648..37aabbb64d 100644
--- a/packages/client-telegram/src/telegramClient.ts
+++ b/packages/client-telegram/src/telegramClient.ts
@@ -1,4 +1,5 @@
import { Context, Telegraf } from "telegraf";
+import { message } from 'telegraf/filters';
import { IAgentRuntime, elizaLogger } from "@ai16z/eliza";
import { MessageManager } from "./messageManager.ts";
import { getOrCreateRecommenderInBe } from "./getOrCreateRecommenderInBe.ts";
@@ -47,11 +48,56 @@ export class TelegramClient {
this.messageManager.bot = this.bot;
}
+ private async isGroupAuthorized(ctx: Context): Promise {
+ const config = this.runtime.character.clientConfig?.telegram;
+ if (ctx.from?.id === ctx.botInfo?.id) {
+ return false;
+ }
+
+ if (!config?.shouldOnlyJoinInAllowedGroups) {
+ return true;
+ }
+
+ const allowedGroups = config.allowedGroupIds || [];
+ const currentGroupId = ctx.chat.id.toString();
+
+ if (!allowedGroups.includes(currentGroupId)) {
+ elizaLogger.info(`Unauthorized group detected: ${currentGroupId}`);
+ try {
+ await ctx.reply("Not authorized. Leaving.");
+ await ctx.leaveChat();
+ } catch (error) {
+ elizaLogger.error(`Error leaving unauthorized group ${currentGroupId}:`, error);
+ }
+ return false;
+ }
+
+ return true;
+ }
+
private setupMessageHandlers(): void {
elizaLogger.log("Setting up message handler...");
+ this.bot.on(message('new_chat_members'), async (ctx) => {
+ try {
+ const newMembers = ctx.message.new_chat_members;
+ const isBotAdded = newMembers.some(member => member.id === ctx.botInfo.id);
+
+ if (isBotAdded && !(await this.isGroupAuthorized(ctx))) {
+ return;
+ }
+ } catch (error) {
+ elizaLogger.error("Error handling new chat members:", error);
+ }
+ });
+
this.bot.on("message", async (ctx) => {
try {
+ // Check group authorization first
+ if (!(await this.isGroupAuthorized(ctx))) {
+ return;
+ }
+
if (this.tgTrader) {
const userId = ctx.from?.id.toString();
const username =
@@ -76,12 +122,18 @@ export class TelegramClient {
);
}
}
+
await this.messageManager.handleMessage(ctx);
} catch (error) {
elizaLogger.error("❌ Error handling message:", error);
- await ctx.reply(
- "An error occurred while processing your message."
- );
+ // Don't try to reply if we've left the group or been kicked
+ if (error?.response?.error_code !== 403) {
+ try {
+ await ctx.reply("An error occurred while processing your message.");
+ } catch (replyError) {
+ elizaLogger.error("Failed to send error message:", replyError);
+ }
+ }
}
});
diff --git a/packages/client-telegram/src/utils.ts b/packages/client-telegram/src/utils.ts
new file mode 100644
index 0000000000..86f0278f0e
--- /dev/null
+++ b/packages/client-telegram/src/utils.ts
@@ -0,0 +1,97 @@
+export function cosineSimilarity(text1: string, text2: string, text3?: string): number {
+ const preprocessText = (text: string) => text
+ .toLowerCase()
+ .replace(/[^\w\s'_-]/g, ' ')
+ .replace(/\s+/g, ' ')
+ .trim();
+
+ const getWords = (text: string) => {
+ return text.split(' ').filter(word => word.length > 1);
+ };
+
+ const words1 = getWords(preprocessText(text1));
+ const words2 = getWords(preprocessText(text2));
+ const words3 = text3 ? getWords(preprocessText(text3)) : [];
+
+ const freq1: { [key: string]: number } = {};
+ const freq2: { [key: string]: number } = {};
+ const freq3: { [key: string]: number } = {};
+
+ words1.forEach(word => freq1[word] = (freq1[word] || 0) + 1);
+ words2.forEach(word => freq2[word] = (freq2[word] || 0) + 1);
+ if (words3.length) {
+ words3.forEach(word => freq3[word] = (freq3[word] || 0) + 1);
+ }
+
+ const uniqueWords = new Set([...Object.keys(freq1), ...Object.keys(freq2), ...(words3.length ? Object.keys(freq3) : [])]);
+
+ let dotProduct = 0;
+ let magnitude1 = 0;
+ let magnitude2 = 0;
+ let magnitude3 = 0;
+
+ uniqueWords.forEach(word => {
+ const val1 = freq1[word] || 0;
+ const val2 = freq2[word] || 0;
+ const val3 = freq3[word] || 0;
+
+ if (words3.length) {
+ // For three-way, calculate pairwise similarities
+ const sim12 = val1 * val2;
+ const sim23 = val2 * val3;
+ const sim13 = val1 * val3;
+
+ // Take maximum similarity between any pair
+ dotProduct += Math.max(sim12, sim23, sim13);
+ } else {
+ dotProduct += val1 * val2;
+ }
+
+ magnitude1 += val1 * val1;
+ magnitude2 += val2 * val2;
+ if (words3.length) {
+ magnitude3 += val3 * val3;
+ }
+ });
+
+ magnitude1 = Math.sqrt(magnitude1);
+ magnitude2 = Math.sqrt(magnitude2);
+ magnitude3 = words3.length ? Math.sqrt(magnitude3) : 1;
+
+ if (magnitude1 === 0 || magnitude2 === 0 || (words3.length && magnitude3 === 0)) return 0;
+
+ // For two texts, use original calculation
+ if (!words3.length) {
+ return dotProduct / (magnitude1 * magnitude2);
+ }
+
+ // For three texts, use max magnitude pair to maintain scale
+ const maxMagnitude = Math.max(
+ magnitude1 * magnitude2,
+ magnitude2 * magnitude3,
+ magnitude1 * magnitude3
+ );
+
+ return dotProduct / maxMagnitude;
+}
+
+/**
+ * Splits a message into chunks that fit within Telegram's message length limit
+ */
+export function splitMessage(text: string, maxLength: number = 4096): string[] {
+ const chunks: string[] = [];
+ let currentChunk = "";
+
+ const lines = text.split("\n");
+ for (const line of lines) {
+ if (currentChunk.length + line.length + 1 <= maxLength) {
+ currentChunk += (currentChunk ? "\n" : "") + line;
+ } else {
+ if (currentChunk) chunks.push(currentChunk);
+ currentChunk = line;
+ }
+ }
+
+ if (currentChunk) chunks.push(currentChunk);
+ return chunks;
+}
\ No newline at end of file
diff --git a/packages/client-twitter/package.json b/packages/client-twitter/package.json
index 8978195345..8b5b885128 100644
--- a/packages/client-twitter/package.json
+++ b/packages/client-twitter/package.json
@@ -1,24 +1,24 @@
{
- "name": "@ai16z/client-twitter",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "agent-twitter-client": "0.0.16",
- "glob": "11.0.0",
- "zod": "3.23.8"
- },
- "devDependencies": {
- "tsup": "8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/client-twitter",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "agent-twitter-client": "0.0.16",
+ "glob": "11.0.0",
+ "zod": "3.23.8"
+ },
+ "devDependencies": {
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache ."
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/client-twitter/src/base.ts b/packages/client-twitter/src/base.ts
index fd469a4dbd..76fe766bf1 100644
--- a/packages/client-twitter/src/base.ts
+++ b/packages/client-twitter/src/base.ts
@@ -155,18 +155,24 @@ export class ClientBase extends EventEmitter {
async init() {
//test
const username = this.runtime.getSetting("TWITTER_USERNAME");
+ const password = this.runtime.getSetting("TWITTER_PASSWORD");
+ const email = this.runtime.getSetting("TWITTER_EMAIL");
+ const twitter2faSecret =
+ this.runtime.getSetting("TWITTER_2FA_SECRET") || undefined;
+ const cookies = this.runtime.getSetting("TWITTER_COOKIES");
if (!username) {
throw new Error("Twitter username not configured");
}
// Check for Twitter cookies
- if (this.runtime.getSetting("TWITTER_COOKIES")) {
- const cookiesArray = JSON.parse(
- this.runtime.getSetting("TWITTER_COOKIES")
- );
+ if (cookies) {
+ elizaLogger.debug("Using cookies from settings");
+ const cookiesArray = JSON.parse(cookies);
await this.setCookiesFromArray(cookiesArray);
} else {
+ elizaLogger.debug("No cookies found in settings");
+ elizaLogger.debug("Checking for cached cookies");
const cachedCookies = await this.getCachedCookies(username);
if (cachedCookies) {
await this.setCookiesFromArray(cachedCookies);
@@ -174,25 +180,41 @@ export class ClientBase extends EventEmitter {
}
elizaLogger.log("Waiting for Twitter login");
- while (true) {
- await this.twitterClient.login(
- username,
- this.runtime.getSetting("TWITTER_PASSWORD"),
- this.runtime.getSetting("TWITTER_EMAIL"),
- this.runtime.getSetting("TWITTER_2FA_SECRET") || undefined
- );
-
- if (await this.twitterClient.isLoggedIn()) {
- const cookies = await this.twitterClient.getCookies();
+ let retries = 5; // Optional: Set a retry limit
+ while (retries > 0) {
+ const cookies = await this.twitterClient.getCookies();
+ if ((await this.twitterClient.isLoggedIn()) && !!cookies) {
+ elizaLogger.info("Already logged in.");
await this.cacheCookies(username, cookies);
+ elizaLogger.info("Successfully logged in and cookies cached.");
break;
}
- elizaLogger.error("Failed to login to Twitter trying again...");
+ try {
+ await this.twitterClient.login(
+ username,
+ password,
+ email,
+ twitter2faSecret
+ );
+ } catch (error) {
+ elizaLogger.error(`Login attempt failed: ${error.message}`);
+ }
+
+ retries--;
+ elizaLogger.error(
+ `Failed to login to Twitter. Retrying... (${retries} attempts left)`
+ );
+
+ if (retries === 0) {
+ elizaLogger.error(
+ "Max retries reached. Exiting login process."
+ );
+ throw new Error("Twitter login failed after maximum retries.");
+ }
await new Promise((resolve) => setTimeout(resolve, 2000));
}
-
// Initialize Twitter profile
this.profile = await this.fetchProfile(username);
@@ -229,63 +251,72 @@ export class ClientBase extends EventEmitter {
async fetchHomeTimeline(count: number): Promise {
elizaLogger.debug("fetching home timeline");
- const homeTimeline = await this.twitterClient.fetchHomeTimeline(count, []);
+ const homeTimeline = await this.twitterClient.fetchHomeTimeline(
+ count,
+ []
+ );
elizaLogger.debug(homeTimeline, { depth: Infinity });
const processedTimeline = homeTimeline
- .filter((t) => t.__typename !== "TweetWithVisibilityResults") // what's this about?
- .map((tweet) => {
- //console.log("tweet is", tweet);
- const obj = {
- id: tweet.id,
- name:
- tweet.name ??
- tweet?.user_results?.result?.legacy.name,
- username:
- tweet.username ??
- tweet.core?.user_results?.result?.legacy.screen_name,
- text: tweet.text ?? tweet.legacy?.full_text,
- inReplyToStatusId:
- tweet.inReplyToStatusId ??
- tweet.legacy?.in_reply_to_status_id_str ??
- null,
- timestamp: new Date(tweet.legacy?.created_at).getTime() / 1000,
- createdAt: tweet.createdAt ?? tweet.legacy?.created_at ?? tweet.core?.user_results?.result?.legacy.created_at,
- userId: tweet.userId ?? tweet.legacy?.user_id_str,
- conversationId:
- tweet.conversationId ??
- tweet.legacy?.conversation_id_str,
- permanentUrl: `https://x.com/${tweet.core?.user_results?.result?.legacy?.screen_name}/status/${tweet.rest_id}`,
- hashtags: tweet.hashtags ?? tweet.legacy?.entities.hashtags,
- mentions:
- tweet.mentions ?? tweet.legacy?.entities.user_mentions,
- photos:
- tweet.photos ??
- tweet.legacy?.entities.media?.filter(
- (media) => media.type === "photo"
- ) ??
- [],
- thread: tweet.thread || [],
- urls: tweet.urls ?? tweet.legacy?.entities.urls,
- videos:
- tweet.videos ??
- tweet.legacy?.entities.media?.filter(
- (media) => media.type === "video"
- ) ??
- [],
- };
- //console.log("obj is", obj);
- return obj;
- });
+ .filter((t) => t.__typename !== "TweetWithVisibilityResults") // what's this about?
+ .map((tweet) => {
+ //console.log("tweet is", tweet);
+ const obj = {
+ id: tweet.id,
+ name:
+ tweet.name ?? tweet?.user_results?.result?.legacy.name,
+ username:
+ tweet.username ??
+ tweet.core?.user_results?.result?.legacy.screen_name,
+ text: tweet.text ?? tweet.legacy?.full_text,
+ inReplyToStatusId:
+ tweet.inReplyToStatusId ??
+ tweet.legacy?.in_reply_to_status_id_str ??
+ null,
+ timestamp:
+ new Date(tweet.legacy?.created_at).getTime() / 1000,
+ createdAt:
+ tweet.createdAt ??
+ tweet.legacy?.created_at ??
+ tweet.core?.user_results?.result?.legacy.created_at,
+ userId: tweet.userId ?? tweet.legacy?.user_id_str,
+ conversationId:
+ tweet.conversationId ??
+ tweet.legacy?.conversation_id_str,
+ permanentUrl: `https://x.com/${tweet.core?.user_results?.result?.legacy?.screen_name}/status/${tweet.rest_id}`,
+ hashtags: tweet.hashtags ?? tweet.legacy?.entities.hashtags,
+ mentions:
+ tweet.mentions ?? tweet.legacy?.entities.user_mentions,
+ photos:
+ tweet.photos ??
+ tweet.legacy?.entities.media?.filter(
+ (media) => media.type === "photo"
+ ) ??
+ [],
+ thread: tweet.thread || [],
+ urls: tweet.urls ?? tweet.legacy?.entities.urls,
+ videos:
+ tweet.videos ??
+ tweet.legacy?.entities.media?.filter(
+ (media) => media.type === "video"
+ ) ??
+ [],
+ };
+ //console.log("obj is", obj);
+ return obj;
+ });
//elizaLogger.debug("process homeTimeline", processedTimeline);
return processedTimeline;
}
async fetchTimelineForActions(count: number): Promise {
elizaLogger.debug("fetching timeline for actions");
- const homeTimeline = await this.twitterClient.fetchHomeTimeline(count, []);
+ const homeTimeline = await this.twitterClient.fetchHomeTimeline(
+ count,
+ []
+ );
- return homeTimeline.map(tweet => ({
+ return homeTimeline.map((tweet) => ({
id: tweet.rest_id,
name: tweet.core?.user_results?.result?.legacy?.name,
username: tweet.core?.user_results?.result?.legacy?.screen_name,
@@ -297,10 +328,16 @@ export class ClientBase extends EventEmitter {
permanentUrl: `https://twitter.com/${tweet.core?.user_results?.result?.legacy?.screen_name}/status/${tweet.rest_id}`,
hashtags: tweet.legacy?.entities?.hashtags || [],
mentions: tweet.legacy?.entities?.user_mentions || [],
- photos: tweet.legacy?.entities?.media?.filter(media => media.type === "photo") || [],
+ photos:
+ tweet.legacy?.entities?.media?.filter(
+ (media) => media.type === "photo"
+ ) || [],
thread: tweet.thread || [],
urls: tweet.legacy?.entities?.urls || [],
- videos: tweet.legacy?.entities?.media?.filter(media => media.type === "video") || []
+ videos:
+ tweet.legacy?.entities?.media?.filter(
+ (media) => media.type === "video"
+ ) || [],
}));
}
@@ -469,10 +506,11 @@ export class ClientBase extends EventEmitter {
}
const timeline = await this.fetchHomeTimeline(cachedTimeline ? 10 : 50);
+ const username = this.runtime.getSetting("TWITTER_USERNAME");
// Get the most recent 20 mentions and interactions
const mentionsAndInteractions = await this.fetchSearchTweets(
- `@${this.runtime.getSetting("TWITTER_USERNAME")}`,
+ `@${username}`,
20,
SearchMode.Latest
);
diff --git a/packages/client-twitter/src/environment.ts b/packages/client-twitter/src/environment.ts
index 8b22d0dc59..3340fc9674 100644
--- a/packages/client-twitter/src/environment.ts
+++ b/packages/client-twitter/src/environment.ts
@@ -23,7 +23,7 @@ export async function validateTwitterConfig(
runtime: IAgentRuntime
): Promise {
try {
- const config = {
+ const twitterConfig = {
TWITTER_DRY_RUN:
runtime.getSetting("TWITTER_DRY_RUN") ||
process.env.TWITTER_DRY_RUN ||
@@ -46,7 +46,7 @@ export async function validateTwitterConfig(
DEFAULT_MAX_TWEET_LENGTH.toString(),
};
- return twitterEnvSchema.parse(config);
+ return twitterEnvSchema.parse(twitterConfig);
} catch (error) {
if (error instanceof z.ZodError) {
const errorMessages = error.errors
diff --git a/packages/client-twitter/src/interactions.ts b/packages/client-twitter/src/interactions.ts
index 739b55bc28..1a069b6273 100644
--- a/packages/client-twitter/src/interactions.ts
+++ b/packages/client-twitter/src/interactions.ts
@@ -53,7 +53,7 @@ Here is the current post text again. Remember to include an action if the curren
{{currentPost}}
` + messageCompletionFooter;
-export const twitterShouldRespondTemplate = (targetUsersStr: string) =>
+export const twitterShouldRespondTemplate = (targetUsersStr: string) =>
`# INSTRUCTIONS: Determine if {{agentName}} (@{{twitterUserName}}) should respond to the message and participate in the conversation. Do not comment. Just respond with "true" or "false".
Response options are RESPOND, IGNORE and STOP.
@@ -89,7 +89,6 @@ Thread of Tweets You Are Replying To:
export class TwitterInteractionClient {
client: ClientBase;
runtime: IAgentRuntime;
-
constructor(client: ClientBase, runtime: IAgentRuntime) {
this.client = client;
this.runtime = runtime;
@@ -110,88 +109,116 @@ export class TwitterInteractionClient {
async handleTwitterInteractions() {
elizaLogger.log("Checking Twitter interactions");
- // Read from environment variable, fallback to default list if not set
- const targetUsersStr = this.runtime.getSetting("TWITTER_TARGET_USERS");
-
- const twitterUsername = this.client.profile.username;
- try {
- // Check for mentions
- const mentionCandidates = (
- await this.client.fetchSearchTweets(
- `@${twitterUsername}`,
- 20,
- SearchMode.Latest
- )
- ).tweets;
-
- elizaLogger.log("Completed checking mentioned tweets:", mentionCandidates.length);
- let uniqueTweetCandidates = [...mentionCandidates];
- // Only process target users if configured
- if (targetUsersStr && targetUsersStr.trim()) {
- const TARGET_USERS = targetUsersStr.split(',')
- .map(u => u.trim())
- .filter(u => u.length > 0); // Filter out empty strings after split
-
- elizaLogger.log("Processing target users:", TARGET_USERS);
-
- if (TARGET_USERS.length > 0) {
- // Create a map to store tweets by user
- const tweetsByUser = new Map();
-
- // Fetch tweets from all target users
- for (const username of TARGET_USERS) {
- try {
- const userTweets = (await this.client.twitterClient.fetchSearchTweets(
- `from:${username}`,
- 3,
- SearchMode.Latest
- )).tweets;
-
- // Filter for unprocessed, non-reply, recent tweets
- const validTweets = userTweets.filter(tweet => {
- const isUnprocessed = !this.client.lastCheckedTweetId ||
- parseInt(tweet.id) > this.client.lastCheckedTweetId;
- const isRecent = (Date.now() - (tweet.timestamp * 1000)) < 2 * 60 * 60 * 1000;
-
- elizaLogger.log(`Tweet ${tweet.id} checks:`, {
- isUnprocessed,
- isRecent,
- isReply: tweet.isReply,
- isRetweet: tweet.isRetweet
- });
-
- return isUnprocessed && !tweet.isReply && !tweet.isRetweet && isRecent;
- });
-
- if (validTweets.length > 0) {
- tweetsByUser.set(username, validTweets);
- elizaLogger.log(`Found ${validTweets.length} valid tweets from ${username}`);
- }
- } catch (error) {
- elizaLogger.error(`Error fetching tweets for ${username}:`, error);
- continue;
- }
- }
+ // Read from environment variable, fallback to default list if not set
+ const targetUsersStr = this.runtime.getSetting("TWITTER_TARGET_USERS");
- // Select one tweet from each user that has tweets
- const selectedTweets: Tweet[] = [];
- for (const [username, tweets] of tweetsByUser) {
- if (tweets.length > 0) {
- // Randomly select one tweet from this user
- const randomTweet = tweets[Math.floor(Math.random() * tweets.length)];
- selectedTweets.push(randomTweet);
- elizaLogger.log(`Selected tweet from ${username}: ${randomTweet.text?.substring(0, 100)}`);
- }
- }
+ const twitterUsername = this.client.profile.username;
+ try {
+ // Check for mentions
+ const mentionCandidates = (
+ await this.client.fetchSearchTweets(
+ `@${twitterUsername}`,
+ 20,
+ SearchMode.Latest
+ )
+ ).tweets;
+
+ elizaLogger.log(
+ "Completed checking mentioned tweets:",
+ mentionCandidates.length
+ );
+ let uniqueTweetCandidates = [...mentionCandidates];
+ // Only process target users if configured
+ if (targetUsersStr && targetUsersStr.trim()) {
+ const TARGET_USERS = targetUsersStr
+ .split(",")
+ .map((u) => u.trim())
+ .filter((u) => u.length > 0); // Filter out empty strings after split
+
+ elizaLogger.log("Processing target users:", TARGET_USERS);
+
+ if (TARGET_USERS.length > 0) {
+ // Create a map to store tweets by user
+ const tweetsByUser = new Map();
+
+ // Fetch tweets from all target users
+ for (const username of TARGET_USERS) {
+ try {
+ const userTweets = (
+ await this.client.twitterClient.fetchSearchTweets(
+ `from:${username}`,
+ 3,
+ SearchMode.Latest
+ )
+ ).tweets;
+
+ // Filter for unprocessed, non-reply, recent tweets
+ const validTweets = userTweets.filter((tweet) => {
+ const isUnprocessed =
+ !this.client.lastCheckedTweetId ||
+ parseInt(tweet.id) >
+ this.client.lastCheckedTweetId;
+ const isRecent =
+ Date.now() - tweet.timestamp * 1000 <
+ 2 * 60 * 60 * 1000;
+
+ elizaLogger.log(`Tweet ${tweet.id} checks:`, {
+ isUnprocessed,
+ isRecent,
+ isReply: tweet.isReply,
+ isRetweet: tweet.isRetweet,
+ });
+
+ return (
+ isUnprocessed &&
+ !tweet.isReply &&
+ !tweet.isRetweet &&
+ isRecent
+ );
+ });
+
+ if (validTweets.length > 0) {
+ tweetsByUser.set(username, validTweets);
+ elizaLogger.log(
+ `Found ${validTweets.length} valid tweets from ${username}`
+ );
+ }
+ } catch (error) {
+ elizaLogger.error(
+ `Error fetching tweets for ${username}:`,
+ error
+ );
+ continue;
+ }
+ }
- // Add selected tweets to candidates
- uniqueTweetCandidates = [...mentionCandidates, ...selectedTweets];
- }
- } else {
- elizaLogger.log("No target users configured, processing only mentions");
- }
+ // Select one tweet from each user that has tweets
+ const selectedTweets: Tweet[] = [];
+ for (const [username, tweets] of tweetsByUser) {
+ if (tweets.length > 0) {
+ // Randomly select one tweet from this user
+ const randomTweet =
+ tweets[
+ Math.floor(Math.random() * tweets.length)
+ ];
+ selectedTweets.push(randomTweet);
+ elizaLogger.log(
+ `Selected tweet from ${username}: ${randomTweet.text?.substring(0, 100)}`
+ );
+ }
+ }
-
+ // Add selected tweets to candidates
+ uniqueTweetCandidates = [
+ ...mentionCandidates,
+ ...selectedTweets,
+ ];
+ }
+ } else {
+ elizaLogger.log(
+ "No target users configured, processing only mentions"
+ );
+ }
// Sort tweet candidates by ID in ascending order
uniqueTweetCandidates
@@ -359,18 +386,23 @@ export class TwitterInteractionClient {
const targetUsersStr = this.runtime.getSetting("TWITTER_TARGET_USERS");
// 2. Process the string to get valid usernames
- const validTargetUsersStr = targetUsersStr && targetUsersStr.trim()
- ? targetUsersStr.split(',') // Split by commas: "user1,user2" -> ["user1", "user2"]
- .map(u => u.trim()) // Remove whitespace: [" user1 ", "user2 "] -> ["user1", "user2"]
- .filter(u => u.length > 0)
- .join(',')
- : '';
+ const validTargetUsersStr =
+ targetUsersStr && targetUsersStr.trim()
+ ? targetUsersStr
+ .split(",") // Split by commas: "user1,user2" -> ["user1", "user2"]
+ .map((u) => u.trim()) // Remove whitespace: [" user1 ", "user2 "] -> ["user1", "user2"]
+ .filter((u) => u.length > 0)
+ .join(",")
+ : "";
const shouldRespondContext = composeContext({
state,
- template: this.runtime.character.templates?.twitterShouldRespondTemplate?.(validTargetUsersStr) ||
- this.runtime.character?.templates?.shouldRespondTemplate ||
- twitterShouldRespondTemplate(validTargetUsersStr),
+ template:
+ this.runtime.character.templates?.twitterShouldRespondTemplate?.(
+ validTargetUsersStr
+ ) ||
+ this.runtime.character?.templates?.shouldRespondTemplate ||
+ twitterShouldRespondTemplate(validTargetUsersStr),
});
const shouldRespond = await generateShouldRespond({
@@ -399,7 +431,7 @@ export class TwitterInteractionClient {
const response = await generateMessageResponse({
runtime: this.runtime,
context,
- modelClass: ModelClass.MEDIUM,
+ modelClass: ModelClass.LARGE,
});
const removeQuotes = (str: string) =>
@@ -444,11 +476,11 @@ export class TwitterInteractionClient {
);
}
-
await this.runtime.processActions(
message,
responseMessages,
- state
+ state,
+ callback
);
const responseInfo = `Context:\n\n${context}\n\nSelected Post: ${tweet.id} - ${tweet.username}: ${tweet.text}\nAgent's Output:\n${response.text}`;
diff --git a/packages/client-twitter/src/post.ts b/packages/client-twitter/src/post.ts
index 1cae50bc8f..ef8e629de8 100644
--- a/packages/client-twitter/src/post.ts
+++ b/packages/client-twitter/src/post.ts
@@ -96,6 +96,7 @@ function truncateToCompleteSentence(
export class TwitterPostClient {
client: ClientBase;
runtime: IAgentRuntime;
+ twitterUsername: string;
private isProcessing: boolean = false;
private lastProcessTime: number = 0;
private stopProcessingActions: boolean = false;
@@ -111,7 +112,7 @@ export class TwitterPostClient {
timestamp: number;
}>(
"twitter/" +
- this.runtime.getSetting("TWITTER_USERNAME") +
+ this.twitterUsername +
"/lastPost"
);
@@ -136,7 +137,6 @@ export class TwitterPostClient {
elizaLogger.log(`Next tweet scheduled in ${randomMinutes} minutes`);
};
-
const processActionsLoop = async () => {
const actionInterval = parseInt(
this.runtime.getSetting("ACTION_INTERVAL")
@@ -185,11 +185,13 @@ export class TwitterPostClient {
} else {
elizaLogger.log("Action processing loop disabled by configuration");
}
+ generateNewTweetLoop();
}
constructor(client: ClientBase, runtime: IAgentRuntime) {
this.client = client;
this.runtime = runtime;
+ this.twitterUsername = runtime.getSetting("TWITTER_USERNAME");
}
private async generateNewTweet() {
@@ -256,6 +258,7 @@ export class TwitterPostClient {
.replace(/^\s*{?\s*"text":\s*"|"\s*}?\s*$/g, '') // Remove JSON-like wrapper
.replace(/^['"](.*)['"]$/g, '$1') // Remove quotes
.replace(/\\"/g, '"') // Unescape quotes
+ .replace(/\\n/g, '\n') // Unescape newlines
.trim();
}
@@ -273,8 +276,11 @@ export class TwitterPostClient {
const removeQuotes = (str: string) =>
str.replace(/^['"](.*)['"]$/, "$1");
+ const fixNewLines = (str: string) =>
+ str.replaceAll(/\\n/g, "\n");
+
// Final cleaning
- cleanedContent = removeQuotes(content);
+ cleanedContent = removeQuotes(fixNewLines(content));
if (this.runtime.getSetting("TWITTER_DRY_RUN") === "true") {
elizaLogger.info(
@@ -310,7 +316,7 @@ export class TwitterPostClient {
userId: this.client.profile.id,
inReplyToStatusId:
tweetResult.legacy.in_reply_to_status_id_str,
- permanentUrl: `https://twitter.com/${this.runtime.getSetting("TWITTER_USERNAME")}/status/${tweetResult.rest_id}`,
+ permanentUrl: `https://twitter.com/${this.twitterUsername}/status/${tweetResult.rest_id}`,
hashtags: [],
mentions: [],
photos: [],
@@ -432,7 +438,7 @@ export class TwitterPostClient {
await this.runtime.ensureUserExists(
this.runtime.agentId,
- this.runtime.getSetting("TWITTER_USERNAME"),
+ this.twitterUsername,
this.runtime.character.name,
"twitter"
);
@@ -463,7 +469,7 @@ export class TwitterPostClient {
content: { text: "", action: "" },
},
{
- twitterUserName: this.runtime.getSetting("TWITTER_USERNAME"),
+ twitterUserName: this.twitterUsername,
currentTweet: `ID: ${tweet.id}\nFrom: ${tweet.name} (@${tweet.username})\nText: ${tweet.text}`,
}
);
@@ -549,7 +555,7 @@ export class TwitterPostClient {
content: { text: tweet.text, action: "QUOTE" }
},
{
- twitterUserName: this.runtime.getSetting("TWITTER_USERNAME"),
+ twitterUserName: this.twitterUsername,
currentPost: `From @${tweet.username}: ${tweet.text}`,
formattedConversation,
imageContext: imageDescriptions.length > 0
@@ -698,7 +704,7 @@ export class TwitterPostClient {
content: { text: tweet.text, action: "" }
},
{
- twitterUserName: this.runtime.getSetting("TWITTER_USERNAME"),
+ twitterUserName: this.twitterUsername,
currentPost: `From @${tweet.username}: ${tweet.text}`,
formattedConversation,
imageContext: imageDescriptions.length > 0
diff --git a/packages/client-twitter/src/search.ts b/packages/client-twitter/src/search.ts
index 8cfeef8dc7..0e1662fd74 100644
--- a/packages/client-twitter/src/search.ts
+++ b/packages/client-twitter/src/search.ts
@@ -45,11 +45,13 @@ Your response should not contain any questions. Brief, concise statements only.
export class TwitterSearchClient {
client: ClientBase;
runtime: IAgentRuntime;
+ twitterUsername: string;
private respondedTweets: Set = new Set();
constructor(client: ClientBase, runtime: IAgentRuntime) {
this.client = client;
this.runtime = runtime;
+ this.twitterUsername = runtime.getSetting("TWITTER_USERNAME");
}
async start() {
@@ -108,13 +110,13 @@ export class TwitterSearchClient {
const prompt = `
Here are some tweets related to the search term "${searchTerm}":
-
+
${[...slicedTweets, ...homeTimeline]
.filter((tweet) => {
// ignore tweets where any of the thread tweets contain a tweet by the bot
const thread = tweet.thread;
const botTweet = thread.find(
- (t) => t.username === this.runtime.getSetting("TWITTER_USERNAME")
+ (t) => t.username === this.twitterUsername
);
return !botTweet;
})
@@ -126,7 +128,7 @@ export class TwitterSearchClient {
`
)
.join("\n")}
-
+
Which tweet is the most interesting and relevant for Ruby to reply to? Please provide only the ID of the tweet in your response.
Notes:
- Respond to English tweets only
@@ -155,10 +157,7 @@ export class TwitterSearchClient {
console.log("Selected tweet to reply to:", selectedTweet?.text);
- if (
- selectedTweet.username ===
- this.runtime.getSetting("TWITTER_USERNAME")
- ) {
+ if (selectedTweet.username === this.twitterUsername) {
console.log("Skipping tweet from bot itself");
return;
}
@@ -208,11 +207,7 @@ export class TwitterSearchClient {
// Fetch replies and retweets
const replies = selectedTweet.thread;
const replyContext = replies
- .filter(
- (reply) =>
- reply.username !==
- this.runtime.getSetting("TWITTER_USERNAME")
- )
+ .filter((reply) => reply.username !== this.twitterUsername)
.map((reply) => `@${reply.username}: ${reply.text}`)
.join("\n");
@@ -237,10 +232,10 @@ export class TwitterSearchClient {
let state = await this.runtime.composeState(message, {
twitterClient: this.client.twitterClient,
- twitterUserName: this.runtime.getSetting("TWITTER_USERNAME"),
+ twitterUserName: this.twitterUsername,
timeline: formattedHomeTimeline,
tweetContext: `${tweetBackground}
-
+
Original Post:
By @${selectedTweet.username}
${selectedTweet.text}${replyContext.length > 0 && `\nReplies to original post:\n${replyContext}`}
@@ -261,7 +256,7 @@ export class TwitterSearchClient {
const responseContent = await generateMessageResponse({
runtime: this.runtime,
context,
- modelClass: ModelClass.SMALL,
+ modelClass: ModelClass.LARGE,
});
responseContent.inReplyTo = message.id;
@@ -282,7 +277,7 @@ export class TwitterSearchClient {
this.client,
response,
message.roomId,
- this.runtime.getSetting("TWITTER_USERNAME"),
+ this.twitterUsername,
tweetId
);
return memories;
diff --git a/packages/client-twitter/src/utils.ts b/packages/client-twitter/src/utils.ts
index c69bf53130..2fcbc6a9a7 100644
--- a/packages/client-twitter/src/utils.ts
+++ b/packages/client-twitter/src/utils.ts
@@ -5,6 +5,9 @@ import { stringToUuid } from "@ai16z/eliza";
import { ClientBase } from "./base";
import { elizaLogger } from "@ai16z/eliza";
import { DEFAULT_MAX_TWEET_LENGTH } from "./environment";
+import { Media } from "@ai16z/eliza";
+import fs from "fs";
+import path from "path";
export const wait = (minTime: number = 1000, maxTime: number = 3000) => {
const waitTime =
@@ -162,6 +165,16 @@ export async function buildConversationThread(
return thread;
}
+export function getMediaType(attachment: Media) {
+ if (attachment.contentType?.startsWith("video")) {
+ return "video";
+ } else if (attachment.contentType?.startsWith("image")) {
+ return "image";
+ } else {
+ throw new Error(`Unsupported media type`);
+ }
+}
+
export async function sendTweet(
client: ClientBase,
content: Content,
@@ -178,11 +191,45 @@ export async function sendTweet(
let previousTweetId = inReplyTo;
for (const chunk of tweetChunks) {
+ let mediaData: { data: Buffer; mediaType: string }[] | undefined;
+
+ if (content.attachments && content.attachments.length > 0) {
+ mediaData = await Promise.all(
+ content.attachments.map(async (attachment: Media) => {
+ if (/^(http|https):\/\//.test(attachment.url)) {
+ // Handle HTTP URLs
+ const response = await fetch(attachment.url);
+ if (!response.ok) {
+ throw new Error(
+ `Failed to fetch file: ${attachment.url}`
+ );
+ }
+ const mediaBuffer = Buffer.from(
+ await response.arrayBuffer()
+ );
+ const mediaType = getMediaType(attachment);
+ return { data: mediaBuffer, mediaType };
+ } else if (fs.existsSync(attachment.url)) {
+ // Handle local file paths
+ const mediaBuffer = await fs.promises.readFile(
+ path.resolve(attachment.url)
+ );
+ const mediaType = getMediaType(attachment);
+ return { data: mediaBuffer, mediaType };
+ } else {
+ throw new Error(
+ `File not found: ${attachment.url}. Make sure the path is correct.`
+ );
+ }
+ })
+ );
+ }
const result = await client.requestQueue.add(
async () =>
await client.twitterClient.sendTweet(
chunk.trim(),
- previousTweetId
+ previousTweetId,
+ mediaData
)
);
const body = await result.json();
diff --git a/packages/core/README-TESTS.md b/packages/core/README-TESTS.md
index 2d9ab7d6d0..ca915ec5a3 100644
--- a/packages/core/README-TESTS.md
+++ b/packages/core/README-TESTS.md
@@ -1,6 +1,6 @@
# Core Package Tests
-This package contains a test suite for evaluating functionalities using **Jest**.
+This package contains a test suite for evaluating functionalities using **Vitest**.
## Prerequisites
diff --git a/packages/core/package.json b/packages/core/package.json
index 7b20169e41..3d761aea77 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -1,78 +1,79 @@
{
- "name": "@ai16z/eliza",
- "version": "0.1.5-alpha.5",
- "description": "",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "scripts": {
- "build": "tsup --format esm --dts",
- "lint": "eslint . --fix",
- "watch": "tsc --watch",
- "dev": "tsup --format esm --dts --watch",
- "build:docs": "cd docs && pnpm run build",
- "test": "vitest run",
- "test:coverage": "vitest run --coverage",
- "test:watch": "vitest"
- },
- "author": "",
- "license": "MIT",
- "devDependencies": {
- "@eslint/js": "9.16.0",
- "@rollup/plugin-commonjs": "25.0.8",
- "@rollup/plugin-json": "6.1.0",
- "@rollup/plugin-node-resolve": "15.3.0",
- "@rollup/plugin-replace": "5.0.7",
- "@rollup/plugin-terser": "0.1.0",
- "@rollup/plugin-typescript": "11.1.6",
- "@solana/web3.js": "1.95.8",
- "@types/fluent-ffmpeg": "2.1.27",
- "@types/jest": "29.5.14",
- "@types/mocha": "10.0.10",
- "@types/node": "22.8.4",
- "@types/pdfjs-dist": "2.10.378",
- "@types/tar": "6.1.13",
- "@types/wav-encoder": "1.3.3",
- "@typescript-eslint/eslint-plugin": "8.16.0",
- "@typescript-eslint/parser": "8.16.0",
- "@vitest/coverage-v8": "2.1.5",
- "dotenv": "16.4.5",
- "jest": "29.7.0",
- "lint-staged": "15.2.10",
- "nodemon": "3.1.7",
- "pm2": "5.4.3",
- "rimraf": "6.0.1",
- "rollup": "2.79.2",
- "ts-jest": "29.2.5",
- "ts-node": "10.9.2",
- "tslib": "2.8.1",
- "tsup": "8.3.5",
- "typescript": "5.6.3"
- },
- "dependencies": {
- "@ai-sdk/anthropic": "0.0.56",
- "@ai-sdk/google": "0.0.55",
- "@ai-sdk/google-vertex": "0.0.43",
- "@ai-sdk/groq": "0.0.3",
- "@ai-sdk/openai": "1.0.5",
- "@anthropic-ai/sdk": "0.30.1",
- "@fal-ai/client": "1.2.0",
- "@types/uuid": "10.0.0",
- "ai": "3.4.33",
- "anthropic-vertex-ai": "1.0.2",
- "fastembed": "1.14.1",
- "fastestsmallesttextencoderdecoder": "1.0.22",
- "gaxios": "6.7.1",
- "glob": "11.0.0",
- "js-sha1": "0.7.0",
- "js-tiktoken": "1.0.15",
- "langchain": "0.3.6",
- "ollama-ai-provider": "0.16.1",
- "openai": "4.73.0",
- "tinyld": "1.3.4",
- "together-ai": "0.7.0",
- "unique-names-generator": "4.7.1",
- "uuid": "11.0.3",
- "zod": "3.23.8"
- }
+ "name": "@ai16z/eliza",
+ "version": "0.1.6-alpha.4",
+ "description": "",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "lint": "eslint --fix --cache .",
+ "watch": "tsc --watch",
+ "dev": "tsup --format esm --dts --watch",
+ "build:docs": "cd docs && pnpm run build",
+ "test": "vitest run",
+ "test:coverage": "vitest run --coverage",
+ "test:watch": "vitest"
+ },
+ "author": "",
+ "license": "MIT",
+ "devDependencies": {
+ "@eslint/js": "9.16.0",
+ "@rollup/plugin-commonjs": "25.0.8",
+ "@rollup/plugin-json": "6.1.0",
+ "@rollup/plugin-node-resolve": "15.3.0",
+ "@rollup/plugin-replace": "5.0.7",
+ "@rollup/plugin-terser": "0.1.0",
+ "@rollup/plugin-typescript": "11.1.6",
+ "@solana/web3.js": "1.95.8",
+ "@types/fluent-ffmpeg": "2.1.27",
+ "@types/jest": "29.5.14",
+ "@types/mocha": "10.0.10",
+ "@types/node": "22.8.4",
+ "@types/pdfjs-dist": "2.10.378",
+ "@types/tar": "6.1.13",
+ "@types/wav-encoder": "1.3.3",
+ "@typescript-eslint/eslint-plugin": "8.16.0",
+ "@typescript-eslint/parser": "8.16.0",
+ "@vitest/coverage-v8": "2.1.5",
+ "dotenv": "16.4.5",
+ "jest": "29.7.0",
+ "lint-staged": "15.2.10",
+ "nodemon": "3.1.7",
+ "pm2": "5.4.3",
+ "rimraf": "6.0.1",
+ "rollup": "2.79.2",
+ "ts-jest": "29.2.5",
+ "ts-node": "10.9.2",
+ "tslib": "2.8.1",
+ "tsup": "8.3.5",
+ "typescript": "5.6.3"
+ },
+ "dependencies": {
+ "@ai-sdk/anthropic": "0.0.56",
+ "@ai-sdk/google": "0.0.55",
+ "@ai-sdk/google-vertex": "0.0.43",
+ "@ai-sdk/groq": "0.0.3",
+ "@ai-sdk/openai": "1.0.5",
+ "@anthropic-ai/sdk": "0.30.1",
+ "@fal-ai/client": "1.2.0",
+ "@types/uuid": "10.0.0",
+ "ai": "3.4.33",
+ "anthropic-vertex-ai": "1.0.2",
+ "fastembed": "1.14.1",
+ "fastestsmallesttextencoderdecoder": "1.0.22",
+ "gaxios": "6.7.1",
+ "glob": "11.0.0",
+ "handlebars": "^4.7.8",
+ "js-sha1": "0.7.0",
+ "js-tiktoken": "1.0.15",
+ "langchain": "0.3.6",
+ "ollama-ai-provider": "0.16.1",
+ "openai": "4.73.0",
+ "tinyld": "1.3.4",
+ "together-ai": "0.7.0",
+ "unique-names-generator": "4.7.1",
+ "uuid": "11.0.3",
+ "zod": "3.23.8"
+ }
}
diff --git a/packages/core/src/context.ts b/packages/core/src/context.ts
index e247210a38..190a876edd 100644
--- a/packages/core/src/context.ts
+++ b/packages/core/src/context.ts
@@ -1,3 +1,4 @@
+import handlebars from "handlebars";
import { type State } from "./types.ts";
/**
@@ -7,9 +8,12 @@ import { type State } from "./types.ts";
* It replaces each placeholder with the value from the state object that matches the placeholder's name.
* If a matching key is not found in the state object for a given placeholder, the placeholder is replaced with an empty string.
*
+ * By default, this function uses a simple string replacement approach. However, when `templatingEngine` is set to `'handlebars'`, it uses Handlebars templating engine instead, compiling the template into a reusable function and evaluating it with the provided state object.
+ *
* @param {Object} params - The parameters for composing the context.
* @param {State} params.state - The state object containing values to replace the placeholders in the template.
* @param {string} params.template - The template string containing placeholders to be replaced with state values.
+ * @param {"handlebars" | undefined} [params.templatingEngine] - The templating engine to use for compiling and evaluating the template (optional, default: `undefined`).
* @returns {string} The composed context string with placeholders replaced by corresponding state values.
*
* @example
@@ -17,17 +21,24 @@ import { type State } from "./types.ts";
* const state = { userName: "Alice", userAge: 30 };
* const template = "Hello, {{userName}}! You are {{userAge}} years old";
*
- * // Composing the context will result in:
+ * // Composing the context with simple string replacement will result in:
* // "Hello, Alice! You are 30 years old."
- * const context = composeContext({ state, template });
+ * const contextSimple = composeContext({ state, template });
*/
export const composeContext = ({
state,
template,
+ templatingEngine,
}: {
state: State;
template: string;
+ templatingEngine?: "handlebars";
}) => {
+ if (templatingEngine === "handlebars") {
+ const templateFunction = handlebars.compile(template);
+ return templateFunction(state);
+ }
+
// @ts-expect-error match isn't working as expected
const out = template.replace(/{{\w+}}/g, (match) => {
const key = match.replace(/{{|}}/g, "");
diff --git a/packages/core/src/environment.ts b/packages/core/src/environment.ts
index 8e5f338936..0758d0d31d 100644
--- a/packages/core/src/environment.ts
+++ b/packages/core/src/environment.ts
@@ -124,6 +124,11 @@ export const CharacterSchema = z.object({
nicknames: z.array(z.string()).optional(),
})
.optional(),
+ nft: z
+ .object({
+ prompt: z.string().optional(),
+ })
+ .optional(),
});
// Type inference
diff --git a/packages/core/src/generation.ts b/packages/core/src/generation.ts
index 61744cb3e4..59b620d648 100644
--- a/packages/core/src/generation.ts
+++ b/packages/core/src/generation.ts
@@ -21,7 +21,7 @@ import {
parseJsonArrayFromText,
parseJSONObjectFromText,
parseShouldRespondFromText,
- parseActionResponseFromText
+ parseActionResponseFromText,
} from "./parsing.ts";
import settings from "./settings.ts";
import {
@@ -33,7 +33,7 @@ import {
ModelProviderName,
ServiceType,
SearchResponse,
- ActionResponse
+ ActionResponse,
} from "./types.ts";
import { fal } from "@fal-ai/client";
@@ -537,7 +537,7 @@ export async function generateText({
elizaLogger.debug("Initializing Venice model.");
const venice = createOpenAI({
apiKey: apiKey,
- baseURL: endpoint
+ baseURL: endpoint,
});
const { text: veniceResponse } = await aiGenerateText({
@@ -797,7 +797,7 @@ export async function generateTextArray({
}
}
-export async function generateObjectDEPRECATED({
+export async function generateObjectDeprecated({
runtime,
context,
modelClass,
@@ -807,7 +807,7 @@ export async function generateObjectDEPRECATED({
modelClass: string;
}): Promise {
if (!context) {
- elizaLogger.error("generateObjectDEPRECATED context is empty");
+ elizaLogger.error("generateObjectDeprecated context is empty");
return null;
}
let retryDelay = 1000;
@@ -954,7 +954,8 @@ export const generateImage = async (
: (runtime.getSetting("HEURIST_API_KEY") ??
runtime.getSetting("TOGETHER_API_KEY") ??
runtime.getSetting("FAL_API_KEY") ??
- runtime.getSetting("OPENAI_API_KEY"));
+ runtime.getSetting("OPENAI_API_KEY") ??
+ runtime.getSetting("VENICE_API_KEY"));
try {
if (runtime.imageModelProvider === ModelProviderName.HEURIST) {
@@ -1064,7 +1065,8 @@ export const generateImage = async (
num_inference_steps: modelSettings?.steps ?? 50,
guidance_scale: data.guidanceScale || 3.5,
num_images: data.count,
- enable_safety_checker: true,
+ enable_safety_checker: runtime.getSetting("FAL_AI_ENABLE_SAFETY_CHECKER") === "true",
+ safety_tolerance: Number(runtime.getSetting("FAL_AI_SAFETY_TOLERANCE") || "2"),
output_format: "png" as const,
seed: data.seed ?? 6252023,
...(runtime.getSetting("FAL_AI_LORA_PATH")
@@ -1100,6 +1102,42 @@ export const generateImage = async (
});
const base64s = await Promise.all(base64Promises);
+ return { success: true, data: base64s };
+ } else if (runtime.imageModelProvider === ModelProviderName.VENICE) {
+ const response = await fetch(
+ "https://api.venice.ai/api/v1/image/generate",
+ {
+ method: "POST",
+ headers: {
+ Authorization: `Bearer ${apiKey}`,
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ model: data.modelId || "fluently-xl",
+ prompt: data.prompt,
+ negative_prompt: data.negativePrompt,
+ width: data.width || 1024,
+ height: data.height || 1024,
+ steps: data.numIterations || 20,
+ }),
+ }
+ );
+
+ const result = await response.json();
+
+ if (!result.images || !Array.isArray(result.images)) {
+ throw new Error("Invalid response format from Venice AI");
+ }
+
+ const base64s = result.images.map((base64String) => {
+ if (!base64String) {
+ throw new Error(
+ "Empty base64 string in Venice AI response"
+ );
+ }
+ return `data:image/png;base64,${base64String}`;
+ });
+
return { success: true, data: base64s };
} else {
let targetSize = `${data.width}x${data.height}`;
@@ -1225,7 +1263,7 @@ interface ModelSettings {
* @returns {Promise} - A promise that resolves to an array of generated objects.
* @throws {Error} - Throws an error if the provider is unsupported or if generation fails.
*/
-export const generateObjectV2 = async ({
+export const generateObject = async ({
runtime,
context,
modelClass,
@@ -1236,7 +1274,7 @@ export const generateObjectV2 = async ({
mode = "json",
}: GenerationOptions): Promise> => {
if (!context) {
- const errorMessage = "generateObjectV2 context is empty";
+ const errorMessage = "generateObject context is empty";
console.error(errorMessage);
throw new Error(errorMessage);
}
@@ -1330,7 +1368,7 @@ export async function handleProvider(
case ModelProviderName.GROQ:
return await handleGroq(options);
case ModelProviderName.LLAMALOCAL:
- return await generateObjectDEPRECATED({
+ return await generateObjectDeprecated({
runtime,
context,
modelClass,
@@ -1591,7 +1629,10 @@ export async function generateTweetActions({
context,
modelClass,
});
- console.debug("Received response from generateText for tweet actions:", response);
+ console.debug(
+ "Received response from generateText for tweet actions:",
+ response
+ );
const { actions } = parseActionResponseFromText(response.trim());
if (actions) {
console.debug("Parsed tweet actions:", actions);
@@ -1614,4 +1655,4 @@ export async function generateTweetActions({
await new Promise((resolve) => setTimeout(resolve, retryDelay));
retryDelay *= 2;
}
-}
\ No newline at end of file
+}
diff --git a/packages/core/src/models.ts b/packages/core/src/models.ts
index 06c7e564d3..53d3b8be24 100644
--- a/packages/core/src/models.ts
+++ b/packages/core/src/models.ts
@@ -87,10 +87,10 @@ export const models: Models = {
},
endpoint: "https://api.x.ai/v1",
model: {
- [ModelClass.SMALL]: "grok-beta",
- [ModelClass.MEDIUM]: "grok-beta",
- [ModelClass.LARGE]: "grok-beta",
- [ModelClass.EMBEDDING]: "grok-beta", // not sure about this one
+ [ModelClass.SMALL]: settings.SMALL_GROK_MODEL || "grok-2-1212",
+ [ModelClass.MEDIUM]: settings.MEDIUM_GROK_MODEL || "grok-2-1212",
+ [ModelClass.LARGE]: settings.LARGE_GROK_MODEL || "grok-2-1212",
+ [ModelClass.EMBEDDING]: settings.EMBEDDING_GROK_MODEL || "grok-2-1212", // not sure about this one
},
},
[ModelProviderName.GROQ]: {
@@ -463,6 +463,27 @@ export const models: Models = {
[ModelClass.SMALL]: settings.SMALL_VENICE_MODEL || "llama-3.3-70b",
[ModelClass.MEDIUM]: settings.MEDIUM_VENICE_MODEL || "llama-3.3-70b",
[ModelClass.LARGE]: settings.LARGE_VENICE_MODEL || "llama-3.1-405b",
+ [ModelClass.IMAGE]: settings.IMAGE_VENICE_MODEL || "fluently-xl",
+ },
+ },
+ [ModelProviderName.AKASH_CHAT_API]: {
+ endpoint: "https://chatapi.akash.network/api/v1",
+ settings: {
+ stop: [],
+ maxInputTokens: 128000,
+ maxOutputTokens: 8192,
+ temperature: 0.6,
+ },
+ model: {
+ [ModelClass.SMALL]:
+ settings.SMALL_AKASH_CHAT_API_MODEL ||
+ "Meta-Llama-3-2-3B-Instruct",
+ [ModelClass.MEDIUM]:
+ settings.MEDIUM_AKASH_CHAT_API_MODEL ||
+ "Meta-Llama-3-3-70B-Instruct",
+ [ModelClass.LARGE]:
+ settings.LARGE_AKASH_CHAT_API_MODEL ||
+ "Meta-Llama-3-1-405B-Instruct-FP8",
},
},
};
diff --git a/packages/core/src/tests/actions.test.ts b/packages/core/src/tests/actions.test.ts
index f3ac2e32de..ab0fcdfb91 100644
--- a/packages/core/src/tests/actions.test.ts
+++ b/packages/core/src/tests/actions.test.ts
@@ -4,13 +4,7 @@ import {
formatActionNames,
formatActions,
} from "../actions";
-import {
- Action,
- HandlerCallback,
- IAgentRuntime,
- Memory,
- State,
-} from "../types";
+import { Action } from "../types";
describe("Actions", () => {
const mockActions: Action[] = [
@@ -25,24 +19,14 @@ describe("Actions", () => {
content: { text: "Hi {{user1}}!", action: "wave" },
},
],
+ [
+ { user: "user1", content: { text: "Hey {{user2}}, how are you?" } },
+ { user: "user2", content: { text: "I'm good {{user1}}, thanks!" } },
+ ],
],
- similes: [],
- handler: function (
- _runtime: IAgentRuntime,
- _message: Memory,
- _state?: State,
- _options?: { [key: string]: unknown },
- _callback?: HandlerCallback
- ): Promise {
- throw new Error("Function not implemented.");
- },
- validate: function (
- _runtime: IAgentRuntime,
- _message: Memory,
- _state?: State
- ): Promise {
- throw new Error("Function not implemented.");
- },
+ similes: ["say hi", "welcome"],
+ handler: async () => { throw new Error("Not implemented"); },
+ validate: async () => { throw new Error("Not implemented"); },
},
{
name: "farewell",
@@ -50,73 +34,123 @@ describe("Actions", () => {
examples: [
[
{ user: "user1", content: { text: "Goodbye {{user2}}!" } },
+ { user: "user2", content: { text: "Bye {{user1}}!" } },
+ ],
+ ],
+ similes: ["say bye", "leave"],
+ handler: async () => { throw new Error("Not implemented"); },
+ validate: async () => { throw new Error("Not implemented"); },
+ },
+ {
+ name: "help",
+ description: "Get assistance",
+ examples: [
+ [
+ { user: "user1", content: { text: "Can you help me {{user2}}?" } },
{
user: "user2",
- content: { text: "See you later {{user1}}!" },
+ content: { text: "Of course {{user1}}, what do you need?", action: "assist" }
},
],
],
- similes: [],
- handler: function (
- _runtime: IAgentRuntime,
- _message: Memory,
- _state?: State,
- _options?: { [key: string]: unknown },
- _callback?: HandlerCallback
- ): Promise {
- throw new Error("Function not implemented.");
- },
- validate: function (
- _runtime: IAgentRuntime,
- _message: Memory,
- _state?: State
- ): Promise {
- throw new Error("Function not implemented.");
- },
+ similes: ["assist", "support"],
+ handler: async () => { throw new Error("Not implemented"); },
+ validate: async () => { throw new Error("Not implemented"); },
},
];
describe("composeActionExamples", () => {
- it("should generate the correct number of examples", () => {
- const result = composeActionExamples(mockActions, 1);
- const exampleLines = result
- .split("\n")
- .filter((line) => line.length > 0);
- expect(exampleLines.length).toBe(2); // Each example has 2 messages
+ it("should generate examples with correct format", () => {
+ const examples = composeActionExamples(mockActions, 1);
+ const lines = examples.trim().split("\n");
+ expect(lines.length).toBeGreaterThan(0);
+ expect(lines[0]).toMatch(/^user\d: .+/);
+ });
+
+ it("should replace user placeholders with generated names", () => {
+ const examples = composeActionExamples(mockActions, 1);
+ expect(examples).not.toContain("{{user1}}");
+ expect(examples).not.toContain("{{user2}}");
+ });
+
+ it("should handle empty actions array", () => {
+ const examples = composeActionExamples([], 5);
+ expect(examples).toBe("");
});
- it("should replace placeholder names with generated names", () => {
- const result = composeActionExamples(mockActions, 1);
- expect(result).not.toContain("{{user1}}");
- expect(result).not.toContain("{{user2}}");
+ it("should handle count larger than available examples", () => {
+ const examples = composeActionExamples(mockActions, 10);
+ expect(examples.length).toBeGreaterThan(0);
});
});
describe("formatActionNames", () => {
it("should format action names correctly", () => {
- const result = formatActionNames(mockActions);
- const names = result.split(", ").sort();
- expect(names).toEqual(["farewell", "greet"].sort());
+ const formatted = formatActionNames([mockActions[0], mockActions[1]]);
+ expect(formatted).toMatch(/^(greet|farewell)(, (greet|farewell))?$/);
+ });
+
+ it("should handle single action", () => {
+ const formatted = formatActionNames([mockActions[0]]);
+ expect(formatted).toBe("greet");
});
- it("should return empty string for empty array", () => {
- const result = formatActionNames([]);
- expect(result).toBe("");
+ it("should handle empty actions array", () => {
+ const formatted = formatActionNames([]);
+ expect(formatted).toBe("");
});
});
describe("formatActions", () => {
- it("should format actions with descriptions correctly", () => {
- const result = formatActions(mockActions);
- const formattedActions = result.split(",\n").sort();
- expect(formattedActions).toEqual(
- ["farewell: Say goodbye", "greet: Greet someone"].sort()
- );
+ it("should format actions with descriptions", () => {
+ const formatted = formatActions([mockActions[0]]);
+ expect(formatted).toBe("greet: Greet someone");
+ });
+
+ it("should include commas and newlines between multiple actions", () => {
+ const formatted = formatActions([mockActions[0], mockActions[1]]);
+ const parts = formatted.split(",\n");
+ expect(parts.length).toBe(2);
+ expect(parts[0]).toMatch(/^(greet|farewell): /);
+ expect(parts[1]).toMatch(/^(greet|farewell): /);
+ });
+
+ it("should handle empty actions array", () => {
+ const formatted = formatActions([]);
+ expect(formatted).toBe("");
+ });
+ });
+
+ describe("Action Structure", () => {
+ it("should validate action structure", () => {
+ mockActions.forEach(action => {
+ expect(action).toHaveProperty("name");
+ expect(action).toHaveProperty("description");
+ expect(action).toHaveProperty("examples");
+ expect(action).toHaveProperty("similes");
+ expect(action).toHaveProperty("handler");
+ expect(action).toHaveProperty("validate");
+ expect(Array.isArray(action.examples)).toBe(true);
+ expect(Array.isArray(action.similes)).toBe(true);
+ });
+ });
+
+ it("should validate example structure", () => {
+ mockActions.forEach(action => {
+ action.examples.forEach(example => {
+ example.forEach(message => {
+ expect(message).toHaveProperty("user");
+ expect(message).toHaveProperty("content");
+ expect(message.content).toHaveProperty("text");
+ });
+ });
+ });
});
- it("should return empty string for empty array", () => {
- const result = formatActions([]);
- expect(result).toBe("");
+ it("should have unique action names", () => {
+ const names = mockActions.map(action => action.name);
+ const uniqueNames = new Set(names);
+ expect(names.length).toBe(uniqueNames.size);
});
});
});
diff --git a/packages/core/src/tests/context.test.ts b/packages/core/src/tests/context.test.ts
new file mode 100644
index 0000000000..6bf391282b
--- /dev/null
+++ b/packages/core/src/tests/context.test.ts
@@ -0,0 +1,198 @@
+import { describe, expect, it } from "vitest";
+import { composeContext } from "../context";
+import handlebars from "handlebars";
+import { State } from "../types.ts";
+
+describe("composeContext", () => {
+ const baseState: State = {
+ actors: "",
+ recentMessages: "",
+ recentMessagesData: [],
+ roomId: "-----",
+ bio: "",
+ lore: "",
+ messageDirections: "",
+ postDirections: "",
+ userName: "",
+ };
+
+ // Test simple string replacement
+ describe("simple string replacement (default)", () => {
+ it("should replace placeholders with corresponding state values", () => {
+ const state: State = {
+ ...baseState,
+ userName: "Alice",
+ userAge: 30,
+ };
+ const template =
+ "Hello, {{userName}}! You are {{userAge}} years old.";
+
+ const result = composeContext({ state, template });
+
+ expect(result).toBe("Hello, Alice! You are 30 years old.");
+ });
+
+ it("should replace missing state values with empty string", () => {
+ const state: State = {
+ ...baseState,
+ userName: "Alice",
+ };
+ const template =
+ "Hello, {{userName}}! You are {{userAge}} years old.";
+
+ const result = composeContext({ state, template });
+
+ expect(result).toBe("Hello, Alice! You are years old.");
+ });
+
+ it("should handle templates with no placeholders", () => {
+ const state: State = {
+ ...baseState,
+ userName: "Alice",
+ };
+ const template = "Hello, world!";
+
+ const result = composeContext({ state, template });
+
+ expect(result).toBe("Hello, world!");
+ });
+
+ it("should handle empty template", () => {
+ const state: State = {
+ ...baseState,
+ userName: "Alice",
+ };
+ const template = "";
+
+ const result = composeContext({ state, template });
+
+ expect(result).toBe("");
+ });
+ });
+
+ // Test Handlebars templating
+ describe("handlebars templating", () => {
+ it("should process basic handlebars template", () => {
+ const state: State = {
+ ...baseState,
+ userName: "Alice",
+ userAge: 30,
+ };
+ const template =
+ "Hello, {{userName}}! You are {{userAge}} years old.";
+
+ const result = composeContext({
+ state,
+ template,
+ templatingEngine: "handlebars",
+ });
+
+ expect(result).toBe("Hello, Alice! You are 30 years old.");
+ });
+
+ it("should handle handlebars conditionals", () => {
+ const state: State = {
+ ...baseState,
+ userName: "Alice",
+ userAge: 30,
+ };
+ const template =
+ "{{#if userAge}}Age: {{userAge}}{{else}}Age unknown{{/if}}";
+
+ const result = composeContext({
+ state,
+ template,
+ templatingEngine: "handlebars",
+ });
+
+ expect(result).toBe("Age: 30");
+ });
+
+ it("should handle handlebars loops", () => {
+ const state: State = {
+ ...baseState,
+ colors: ["red", "blue", "green"],
+ };
+ const template =
+ "{{#each colors}}{{this}}{{#unless @last}}, {{/unless}}{{/each}}";
+
+ const result = composeContext({
+ state,
+ template,
+ templatingEngine: "handlebars",
+ });
+
+ expect(result).toBe("red, blue, green");
+ });
+
+ it("should handle complex handlebars template", () => {
+ // Register the 'gt' helper before running tests
+ handlebars.registerHelper("gt", function (a, b) {
+ return a > b;
+ });
+
+ const state = {
+ ...baseState,
+ userName: "Alice",
+ userAge: 30,
+ favoriteColors: ["blue", "green", "red"],
+ };
+ const template = `
+ {{#if userAge}}
+ Hello, {{userName}}! {{#if (gt userAge 18)}}You are an adult.{{else}}You are a minor.{{/if}}
+ {{else}}
+ Hello! We don't know your age.
+ {{/if}}
+ {{#each favoriteColors}}
+ - {{this}}
+ {{/each}}`;
+
+ const result = composeContext({
+ state,
+ template,
+ templatingEngine: "handlebars",
+ });
+
+ expect(result.trim()).toMatch(/Hello, Alice! You are an adult./);
+ expect(result).toContain("- blue");
+ expect(result).toContain("- green");
+ expect(result).toContain("- red");
+ });
+
+ it("should handle missing values in handlebars template", () => {
+ const state = {...baseState}
+ const template = "Hello, {{userName}}!";
+
+ const result = composeContext({
+ state,
+ template,
+ templatingEngine: "handlebars",
+ });
+
+ expect(result).toBe("Hello, !");
+ });
+ });
+
+ describe("error handling", () => {
+ it("should handle undefined state", () => {
+ const template = "Hello, {{userName}}!";
+
+ expect(() => {
+ // @ts-expect-error testing undefined state
+ composeContext({ template });
+ }).toThrow();
+ });
+
+ it("should handle undefined template", () => {
+ const state = {
+ ...baseState,
+ userName: "Alice",
+ };
+
+ expect(() => {
+ // @ts-expect-error testing undefined template
+ composeContext({ state });
+ }).toThrow();
+ });
+ });
+});
diff --git a/packages/core/src/tests/messages.test.ts b/packages/core/src/tests/messages.test.ts
index ce93e07db4..bbebe103a6 100644
--- a/packages/core/src/tests/messages.test.ts
+++ b/packages/core/src/tests/messages.test.ts
@@ -23,7 +23,7 @@ describe("Messages Library", () => {
} as unknown as IAgentRuntime;
// Mock user data with proper UUID format
- userId = "12345678-1234-1234-1234-123456789abc" as UUID;
+ userId = "123e4567-e89b-12d3-a456-426614174000" as UUID;
actors = [
{
id: userId,
@@ -39,7 +39,7 @@ describe("Messages Library", () => {
});
test("getActorDetails should return actors based on roomId", async () => {
- const roomId: UUID = "room1234-1234-1234-1234-123456789abc" as UUID;
+ const roomId: UUID = "123e4567-e89b-12d3-a456-426614174001" as UUID;
// Using vi.mocked() type assertion instead of jest.Mock casting
vi.mocked(
@@ -77,7 +77,7 @@ describe("Messages Library", () => {
{
content: { text: "Hello, world!" } as Content,
userId: userId,
- roomId: "room1234-1234-1234-1234-123456789abc" as UUID,
+ roomId: "123e4567-e89b-12d3-a456-426614174002" as UUID,
createdAt: new Date().getTime(),
agentId: "" as UUID, // assuming agentId is an empty string here
},
@@ -105,14 +105,14 @@ describe("Messages Library", () => {
text: "Check this attachment",
attachments: [
{
- id: "1",
+ id: "123e4567-e89b-12d3-a456-426614174003" as UUID,
title: "Image",
url: "http://example.com/image.jpg",
},
],
} as Content,
userId: userId,
- roomId: "room1234-1234-1234-1234-123456789abc" as UUID,
+ roomId: "123e4567-e89b-12d3-a456-426614174004" as UUID,
createdAt: new Date().getTime(),
agentId: "" as UUID, // assuming agentId is an empty string here
},
@@ -123,7 +123,7 @@ describe("Messages Library", () => {
// Assertions
expect(formattedMessages).toContain("Check this attachment");
expect(formattedMessages).toContain(
- "Attachments: [1 - Image (http://example.com/image.jpg)]"
+ "Attachments: ["
);
});
@@ -134,7 +134,7 @@ describe("Messages Library", () => {
text: "No attachments here",
} as Content,
userId: userId,
- roomId: "room1234-1234-1234-1234-123456789abc" as UUID,
+ roomId: "123e4567-e89b-12d3-a456-426614174005" as UUID,
createdAt: new Date().getTime(),
agentId: "" as UUID, // assuming agentId is an empty string here
},
@@ -147,3 +147,187 @@ describe("Messages Library", () => {
expect(formattedMessages).not.toContain("Attachments");
});
});
+
+describe('Messages', () => {
+ const mockActors: Actor[] = [
+ {
+ id: "123e4567-e89b-12d3-a456-426614174006" as UUID,
+ name: 'Alice',
+ username: 'alice',
+ details: {
+ tagline: 'Software Engineer',
+ summary: 'Full-stack developer with 5 years experience',
+ quote: ""
+ }
+ },
+ {
+ id: "123e4567-e89b-12d3-a456-426614174007" as UUID,
+ name: 'Bob',
+ username: 'bob',
+ details: {
+ tagline: 'Product Manager',
+ summary: 'Experienced in agile methodologies',
+ quote: ""
+ }
+ }
+ ];
+
+ const mockMessages: Memory[] = [
+ {
+ id: "123e4567-e89b-12d3-a456-426614174008" as UUID,
+ roomId: "123e4567-e89b-12d3-a456-426614174009" as UUID,
+ userId: mockActors[0].id,
+ createdAt: Date.now() - 5000, // 5 seconds ago
+ content: {
+ text: 'Hello everyone!',
+ action: 'wave'
+ } as Content,
+ agentId: "123e4567-e89b-12d3-a456-426614174001"
+ },
+ {
+ id: "123e4567-e89b-12d3-a456-426614174010" as UUID,
+ roomId: "123e4567-e89b-12d3-a456-426614174009" as UUID,
+ userId: mockActors[1].id,
+ createdAt: Date.now() - 60000, // 1 minute ago
+ content: {
+ text: 'Hi Alice!',
+ attachments: [
+ {
+ id: "123e4567-e89b-12d3-a456-426614174011" as UUID,
+ title: 'Document',
+ url: 'https://example.com/doc.pdf'
+ }
+ ]
+ } as Content,
+ agentId: "123e4567-e89b-12d3-a456-426614174001"
+ }
+ ];
+
+ describe('getActorDetails', () => {
+ it('should retrieve actor details from database', async () => {
+ const mockRuntime = {
+ databaseAdapter: {
+ getParticipantsForRoom: vi.fn().mockResolvedValue([mockActors[0].id, mockActors[1].id]),
+ getAccountById: vi.fn().mockImplementation((id) => {
+ const actor = mockActors.find(a => a.id === id);
+ return Promise.resolve(actor);
+ })
+ }
+ };
+
+ const actors = await getActorDetails({
+ runtime: mockRuntime as any,
+ roomId: "123e4567-e89b-12d3-a456-426614174009" as UUID
+ });
+
+ expect(actors).toHaveLength(2);
+ expect(actors[0].name).toBe('Alice');
+ expect(actors[1].name).toBe('Bob');
+ expect(mockRuntime.databaseAdapter.getParticipantsForRoom).toHaveBeenCalled();
+ });
+
+ it('should filter out null actors', async () => {
+ const invalidId = "123e4567-e89b-12d3-a456-426614174012" as UUID;
+ const mockRuntime = {
+ databaseAdapter: {
+ getParticipantsForRoom: vi.fn().mockResolvedValue([mockActors[0].id, invalidId]),
+ getAccountById: vi.fn().mockImplementation((id) => {
+ const actor = mockActors.find(a => a.id === id);
+ return Promise.resolve(actor || null);
+ })
+ }
+ };
+
+ const actors = await getActorDetails({
+ runtime: mockRuntime as any,
+ roomId: "123e4567-e89b-12d3-a456-426614174009" as UUID
+ });
+
+ expect(actors).toHaveLength(1);
+ expect(actors[0].name).toBe('Alice');
+ });
+ });
+
+ describe('formatActors', () => {
+ it('should format actors with complete details', () => {
+ const formatted = formatActors({ actors: mockActors });
+ expect(formatted).toContain('Alice: Software Engineer');
+ expect(formatted).toContain('Full-stack developer with 5 years experience');
+ expect(formatted).toContain('Bob: Product Manager');
+ expect(formatted).toContain('Experienced in agile methodologies');
+ });
+
+ it('should handle actors without details', () => {
+ const actorsWithoutDetails: Actor[] = [
+ {
+ id: "123e4567-e89b-12d3-a456-426614174013" as UUID,
+ name: 'Charlie',
+ username: 'charlie',
+ details: {
+ tagline: "Tag",
+ summary: "Summary",
+ quote: "Quote"
+ }
+ }
+ ];
+ const formatted = formatActors({ actors: actorsWithoutDetails });
+ expect(formatted).toBe('Charlie: Tag\nSummary');
+ });
+
+ it('should handle empty actors array', () => {
+ const formatted = formatActors({ actors: [] });
+ expect(formatted).toBe('');
+ });
+ });
+
+ describe('formatMessages', () => {
+ it('should format messages with all details', () => {
+ const formatted = formatMessages({ messages: mockMessages, actors: mockActors });
+ const lines = formatted.split('\n');
+ expect(lines[1]).toContain("Alice");
+ expect(lines[1]).toContain("(wave)");
+ expect(lines[1]).toContain("(just now)");
+ });
+
+ it('should handle messages from unknown users', () => {
+ const messagesWithUnknownUser: Memory[] = [{
+ id: "123e4567-e89b-12d3-a456-426614174014" as UUID,
+ roomId: "123e4567-e89b-12d3-a456-426614174009" as UUID,
+ userId: "123e4567-e89b-12d3-a456-426614174015" as UUID,
+ createdAt: Date.now(),
+ content: { text: 'Test message' } as Content,
+ agentId: "123e4567-e89b-12d3-a456-426614174001"
+ }];
+
+ const formatted = formatMessages({ messages: messagesWithUnknownUser, actors: mockActors });
+ expect(formatted).toContain('Unknown User: Test message');
+ });
+
+ it('should handle messages with no action', () => {
+ const messagesWithoutAction: Memory[] = [{
+ id: "123e4567-e89b-12d3-a456-426614174016" as UUID,
+ roomId: "123e4567-e89b-12d3-a456-426614174009" as UUID,
+ userId: mockActors[0].id,
+ createdAt: Date.now(),
+ content: { text: 'Simple message' } as Content,
+ agentId: "123e4567-e89b-12d3-a456-426614174001"
+ }];
+
+ const formatted = formatMessages({ messages: messagesWithoutAction, actors: mockActors });
+ expect(formatted).not.toContain('()');
+ expect(formatted).toContain('Simple message');
+ });
+
+ it('should handle empty messages array', () => {
+ const formatted = formatMessages({ messages: [], actors: mockActors });
+ expect(formatted).toBe('');
+ });
+ });
+
+ describe('formatTimestamp', () => {
+ it('should handle exact time boundaries', () => {
+ const now = Date.now();
+ expect(formatTimestamp(now)).toContain('just now');
+ });
+ });
+});
diff --git a/packages/core/src/tests/models.test.ts b/packages/core/src/tests/models.test.ts
index 249dd587e6..f336093cfd 100644
--- a/packages/core/src/tests/models.test.ts
+++ b/packages/core/src/tests/models.test.ts
@@ -1,54 +1,173 @@
-import { getModel, getEndpoint } from "../models.ts";
+import { getModel, getEndpoint, models } from "../models.ts";
import { ModelProviderName, ModelClass } from "../types.ts";
import { describe, test, expect, vi } from "vitest";
+// Mock settings
vi.mock("../settings", () => {
return {
default: {
SMALL_OPENROUTER_MODEL: "mock-small-model",
+ LARGE_OPENROUTER_MODEL: "mock-large-model",
OPENROUTER_MODEL: "mock-default-model",
OPENAI_API_KEY: "mock-openai-key",
ANTHROPIC_API_KEY: "mock-anthropic-key",
OPENROUTER_API_KEY: "mock-openrouter-key",
+ ETERNALAI_MODEL: "mock-eternal-model",
+ ETERNALAI_URL: "https://mock.eternal.ai",
+ LLAMACLOUD_MODEL_SMALL: "mock-llama-small",
+ LLAMACLOUD_MODEL_LARGE: "mock-llama-large",
+ TOGETHER_MODEL_SMALL: "mock-together-small",
+ TOGETHER_MODEL_LARGE: "mock-together-large",
},
loadEnv: vi.fn(),
};
});
-describe("Model Provider Tests", () => {
- test("should retrieve the correct model for OpenAI SMALL", () => {
- const model = getModel(ModelProviderName.OPENAI, ModelClass.SMALL);
- expect(model).toBe("gpt-4o-mini");
+describe("Model Provider Configuration", () => {
+ describe("OpenAI Provider", () => {
+ test("should have correct endpoint", () => {
+ expect(models[ModelProviderName.OPENAI].endpoint).toBe("https://api.openai.com/v1");
+ });
+
+ test("should have correct model mappings", () => {
+ const openAIModels = models[ModelProviderName.OPENAI].model;
+ expect(openAIModels[ModelClass.SMALL]).toBe("gpt-4o-mini");
+ expect(openAIModels[ModelClass.MEDIUM]).toBe("gpt-4o");
+ expect(openAIModels[ModelClass.LARGE]).toBe("gpt-4o");
+ expect(openAIModels[ModelClass.EMBEDDING]).toBe("text-embedding-3-small");
+ expect(openAIModels[ModelClass.IMAGE]).toBe("dall-e-3");
+ });
+
+ test("should have correct settings configuration", () => {
+ const settings = models[ModelProviderName.OPENAI].settings;
+ expect(settings.maxInputTokens).toBe(128000);
+ expect(settings.maxOutputTokens).toBe(8192);
+ expect(settings.temperature).toBe(0.6);
+ expect(settings.frequency_penalty).toBe(0.0);
+ expect(settings.presence_penalty).toBe(0.0);
+ });
+ });
+
+ describe("Anthropic Provider", () => {
+ test("should have correct endpoint", () => {
+ expect(models[ModelProviderName.ANTHROPIC].endpoint).toBe("https://api.anthropic.com/v1");
+ });
+
+ test("should have correct model mappings", () => {
+ const anthropicModels = models[ModelProviderName.ANTHROPIC].model;
+ expect(anthropicModels[ModelClass.SMALL]).toBe("claude-3-haiku-20240307");
+ expect(anthropicModels[ModelClass.MEDIUM]).toBe("claude-3-5-sonnet-20241022");
+ expect(anthropicModels[ModelClass.LARGE]).toBe("claude-3-5-sonnet-20241022");
+ });
+
+ test("should have correct settings configuration", () => {
+ const settings = models[ModelProviderName.ANTHROPIC].settings;
+ expect(settings.maxInputTokens).toBe(200000);
+ expect(settings.maxOutputTokens).toBe(4096);
+ expect(settings.temperature).toBe(0.7);
+ expect(settings.frequency_penalty).toBe(0.4);
+ expect(settings.presence_penalty).toBe(0.4);
+ });
+ });
+
+ describe("LlamaCloud Provider", () => {
+ test("should have correct endpoint", () => {
+ expect(models[ModelProviderName.LLAMACLOUD].endpoint).toBe("https://api.llamacloud.com/v1");
+ });
+
+ test("should have correct model mappings", () => {
+ const llamaCloudModels = models[ModelProviderName.LLAMACLOUD].model;
+ expect(llamaCloudModels[ModelClass.SMALL]).toBe("meta-llama/Llama-3.2-3B-Instruct-Turbo");
+ expect(llamaCloudModels[ModelClass.MEDIUM]).toBe("meta-llama-3.1-8b-instruct");
+ expect(llamaCloudModels[ModelClass.LARGE]).toBe("meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo");
+ expect(llamaCloudModels[ModelClass.EMBEDDING]).toBe("togethercomputer/m2-bert-80M-32k-retrieval");
+ expect(llamaCloudModels[ModelClass.IMAGE]).toBe("black-forest-labs/FLUX.1-schnell");
+ });
+
+ test("should have correct settings configuration", () => {
+ const settings = models[ModelProviderName.LLAMACLOUD].settings;
+ expect(settings.maxInputTokens).toBe(128000);
+ expect(settings.maxOutputTokens).toBe(8192);
+ expect(settings.temperature).toBe(0.7);
+ expect(settings.repetition_penalty).toBe(0.4);
+ });
});
- test("should retrieve the correct model for Google MEDIUM", () => {
- const model = getModel(ModelProviderName.GOOGLE, ModelClass.MEDIUM);
- expect(model).toBe("gemini-1.5-flash-latest");
+ describe("Google Provider", () => {
+ test("should have correct model mappings", () => {
+ const googleModels = models[ModelProviderName.GOOGLE].model;
+ expect(googleModels[ModelClass.SMALL]).toBe("gemini-1.5-flash-latest");
+ expect(googleModels[ModelClass.MEDIUM]).toBe("gemini-1.5-flash-latest");
+ expect(googleModels[ModelClass.LARGE]).toBe("gemini-1.5-pro-latest");
+ });
});
+});
+
+describe("Model Retrieval Functions", () => {
+ describe("getModel function", () => {
+ test("should retrieve correct models for different providers and classes", () => {
+ expect(getModel(ModelProviderName.OPENAI, ModelClass.SMALL)).toBe("gpt-4o-mini");
+ expect(getModel(ModelProviderName.ANTHROPIC, ModelClass.LARGE)).toBe("claude-3-5-sonnet-20241022");
+ expect(getModel(ModelProviderName.LLAMACLOUD, ModelClass.MEDIUM)).toBe("meta-llama-3.1-8b-instruct");
+ });
- test("should retrieve the correct model for Groq LARGE", () => {
- const model = getModel(ModelProviderName.GROQ, ModelClass.LARGE);
- expect(model).toBe("llama-3.2-90b-vision-preview");
+ test("should handle environment variable overrides", () => {
+ expect(getModel(ModelProviderName.OPENROUTER, ModelClass.SMALL)).toBe("mock-small-model");
+ expect(getModel(ModelProviderName.OPENROUTER, ModelClass.LARGE)).toBe("mock-large-model");
+ expect(getModel(ModelProviderName.ETERNALAI, ModelClass.SMALL)).toBe("mock-eternal-model");
+ });
+
+ test("should throw error for invalid model provider", () => {
+ expect(() => getModel("INVALID_PROVIDER" as any, ModelClass.SMALL)).toThrow();
+ });
});
- test("should retrieve the correct model for OpenRouter SMALL", () => {
- const model = getModel(ModelProviderName.OPENROUTER, ModelClass.SMALL);
- expect(model).toBe("mock-small-model");
+ describe("getEndpoint function", () => {
+ test("should retrieve correct endpoints for different providers", () => {
+ expect(getEndpoint(ModelProviderName.OPENAI)).toBe("https://api.openai.com/v1");
+ expect(getEndpoint(ModelProviderName.ANTHROPIC)).toBe("https://api.anthropic.com/v1");
+ expect(getEndpoint(ModelProviderName.LLAMACLOUD)).toBe("https://api.llamacloud.com/v1");
+ expect(getEndpoint(ModelProviderName.ETERNALAI)).toBe("https://mock.eternal.ai");
+ });
+
+ test("should throw error for invalid provider", () => {
+ expect(() => getEndpoint("INVALID_PROVIDER" as any)).toThrow();
+ });
+ });
+});
+
+describe("Model Settings Validation", () => {
+ test("all providers should have required settings", () => {
+ Object.values(ModelProviderName).forEach(provider => {
+ const providerConfig = models[provider];
+ expect(providerConfig.settings).toBeDefined();
+ expect(providerConfig.settings.maxInputTokens).toBeGreaterThan(0);
+ expect(providerConfig.settings.maxOutputTokens).toBeGreaterThan(0);
+ expect(providerConfig.settings.temperature).toBeDefined();
+ });
});
- test("should retrieve the correct endpoint for OpenAI", () => {
- const endpoint = getEndpoint(ModelProviderName.OPENAI);
- expect(endpoint).toBe("https://api.openai.com/v1");
+ test("all providers should have model mappings for basic model classes", () => {
+ Object.values(ModelProviderName).forEach(provider => {
+ const providerConfig = models[provider];
+ expect(providerConfig.model).toBeDefined();
+ expect(providerConfig.model[ModelClass.SMALL]).toBeDefined();
+ expect(providerConfig.model[ModelClass.MEDIUM]).toBeDefined();
+ expect(providerConfig.model[ModelClass.LARGE]).toBeDefined();
+ });
});
+});
- test("should retrieve the correct endpoint for Anthropic", () => {
- const endpoint = getEndpoint(ModelProviderName.ANTHROPIC);
- expect(endpoint).toBe("https://api.anthropic.com/v1");
+describe("Environment Variable Integration", () => {
+ test("should use environment variables for LlamaCloud models", () => {
+ const llamaConfig = models[ModelProviderName.LLAMACLOUD];
+ expect(llamaConfig.model[ModelClass.SMALL]).toBe("meta-llama/Llama-3.2-3B-Instruct-Turbo");
+ expect(llamaConfig.model[ModelClass.LARGE]).toBe("meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo");
});
- test("should handle invalid model provider for getModel", () => {
- expect(() =>
- getModel("INVALID_PROVIDER" as any, ModelClass.SMALL)
- ).toThrow();
+ test("should use environment variables for Together models", () => {
+ const togetherConfig = models[ModelProviderName.TOGETHER];
+ expect(togetherConfig.model[ModelClass.SMALL]).toBe("meta-llama/Llama-3.2-3B-Instruct-Turbo");
+ expect(togetherConfig.model[ModelClass.LARGE]).toBe("meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo");
});
});
diff --git a/packages/core/src/tests/runtime.test.ts b/packages/core/src/tests/runtime.test.ts
new file mode 100644
index 0000000000..292de6670a
--- /dev/null
+++ b/packages/core/src/tests/runtime.test.ts
@@ -0,0 +1,139 @@
+import { describe, it, expect, beforeEach, vi } from "vitest";
+import { AgentRuntime } from "../runtime";
+import {
+ IDatabaseAdapter,
+ ModelProviderName,
+ Action,
+ Memory,
+ UUID,
+} from "../types";
+import { defaultCharacter } from "../defaultCharacter";
+
+// Mock dependencies with minimal implementations
+const mockDatabaseAdapter: IDatabaseAdapter = {
+ db: {},
+ init: vi.fn().mockResolvedValue(undefined),
+ close: vi.fn().mockResolvedValue(undefined),
+ getAccountById: vi.fn().mockResolvedValue(null),
+ createAccount: vi.fn().mockResolvedValue(true),
+ getMemories: vi.fn().mockResolvedValue([]),
+ getMemoryById: vi.fn().mockResolvedValue(null),
+ getMemoriesByRoomIds: vi.fn().mockResolvedValue([]),
+ getCachedEmbeddings: vi.fn().mockResolvedValue([]),
+ log: vi.fn().mockResolvedValue(undefined),
+ getActorDetails: vi.fn().mockResolvedValue([]),
+ searchMemories: vi.fn().mockResolvedValue([]),
+ updateGoalStatus: vi.fn().mockResolvedValue(undefined),
+ searchMemoriesByEmbedding: vi.fn().mockResolvedValue([]),
+ createMemory: vi.fn().mockResolvedValue(undefined),
+ removeMemory: vi.fn().mockResolvedValue(undefined),
+ removeAllMemories: vi.fn().mockResolvedValue(undefined),
+ countMemories: vi.fn().mockResolvedValue(0),
+ getGoals: vi.fn().mockResolvedValue([]),
+ updateGoal: vi.fn().mockResolvedValue(undefined),
+ createGoal: vi.fn().mockResolvedValue(undefined),
+ removeGoal: vi.fn().mockResolvedValue(undefined),
+ removeAllGoals: vi.fn().mockResolvedValue(undefined),
+ getRoom: vi.fn().mockResolvedValue(null),
+ createRoom: vi.fn().mockResolvedValue("test-room-id" as UUID),
+ removeRoom: vi.fn().mockResolvedValue(undefined),
+ getRoomsForParticipant: vi.fn().mockResolvedValue([]),
+ getRoomsForParticipants: vi.fn().mockResolvedValue([]),
+ addParticipant: vi.fn().mockResolvedValue(true),
+ removeParticipant: vi.fn().mockResolvedValue(true),
+ getParticipantsForAccount: vi.fn().mockResolvedValue([]),
+ getParticipantsForRoom: vi.fn().mockResolvedValue([]),
+ getParticipantUserState: vi.fn().mockResolvedValue(null),
+ setParticipantUserState: vi.fn().mockResolvedValue(undefined),
+ createRelationship: vi.fn().mockResolvedValue(true),
+ getRelationship: vi.fn().mockResolvedValue(null),
+ getRelationships: vi.fn().mockResolvedValue([])
+};
+
+const mockCacheManager = {
+ get: vi.fn().mockResolvedValue(null),
+ set: vi.fn().mockResolvedValue(undefined),
+ delete: vi.fn().mockResolvedValue(undefined),
+};
+
+// Mock action creator
+const createMockAction = (name: string): Action => ({
+ name,
+ description: `Test action ${name}`,
+ similes: [`like ${name}`],
+ examples: [],
+ handler: vi.fn().mockResolvedValue(undefined),
+ validate: vi.fn().mockImplementation(async () => true),
+});
+
+describe("AgentRuntime", () => {
+ let runtime: AgentRuntime;
+
+ beforeEach(() => {
+ vi.clearAllMocks();
+ runtime = new AgentRuntime({
+ token: "test-token",
+ character: defaultCharacter,
+ databaseAdapter: mockDatabaseAdapter,
+ cacheManager: mockCacheManager,
+ modelProvider: ModelProviderName.OPENAI,
+ });
+ });
+
+ describe("action management", () => {
+ it("should register an action", () => {
+ const action = createMockAction("testAction");
+ runtime.registerAction(action);
+ expect(runtime.actions).toContain(action);
+ });
+
+ it("should allow registering multiple actions", () => {
+ const action1 = createMockAction("testAction1");
+ const action2 = createMockAction("testAction2");
+ runtime.registerAction(action1);
+ runtime.registerAction(action2);
+ expect(runtime.actions).toContain(action1);
+ expect(runtime.actions).toContain(action2);
+ });
+
+ it("should process registered actions", async () => {
+ const action = createMockAction("testAction");
+ runtime.registerAction(action);
+
+ const message: Memory = {
+ id: "123e4567-e89b-12d3-a456-426614174003",
+ userId: "123e4567-e89b-12d3-a456-426614174004",
+ agentId: "123e4567-e89b-12d3-a456-426614174005",
+ roomId: "123e4567-e89b-12d3-a456-426614174003",
+ content: { type: "text", text: "test message" },
+ };
+
+ const response: Memory = {
+ id: "123e4567-e89b-12d3-a456-426614174006",
+ userId: "123e4567-e89b-12d3-a456-426614174005",
+ agentId: "123e4567-e89b-12d3-a456-426614174005",
+ roomId: "123e4567-e89b-12d3-a456-426614174003",
+ content: { type: "text", text: "test response", action: "testAction" },
+ };
+
+ await runtime.processActions(message, [response], {
+ bio: "Test agent bio",
+ lore: "Test agent lore and background",
+ messageDirections: "How to respond to messages",
+ postDirections: "How to create posts",
+ roomId: "123e4567-e89b-12d3-a456-426614174003",
+ actors: "List of actors in conversation",
+ recentMessages: "Recent conversation history",
+ recentMessagesData: [],
+ goals: "Current conversation goals",
+ goalsData: [],
+ actionsData: [],
+ knowledgeData: [],
+ recentInteractionsData: [],
+ });
+
+ expect(action.handler).toBeDefined();
+ expect(action.validate).toBeDefined();
+ });
+ });
+});
diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts
index 860e68a6d0..92106e50fc 100644
--- a/packages/core/src/types.ts
+++ b/packages/core/src/types.ts
@@ -208,6 +208,7 @@ export type Models = {
[ModelProviderName.NANOGPT]: Model;
[ModelProviderName.HYPERBOLIC]: Model;
[ModelProviderName.VENICE]: Model;
+ [ModelProviderName.AKASH_CHAT_API]: Model;
};
/**
@@ -236,6 +237,7 @@ export enum ModelProviderName {
NANOGPT = "nanogpt",
HYPERBOLIC = "hyperbolic",
VENICE = "venice",
+ AKASH_CHAT_API = "akash_chat_api",
}
/**
@@ -561,6 +563,9 @@ export type Media = {
/** Text content */
text: string;
+
+ /** Content type */
+ contentType?: string;
};
/**
@@ -605,13 +610,19 @@ export type Plugin = {
*/
export enum Clients {
DISCORD = "discord",
-// you can't specify this in characters
-// all characters are registered with this
-// DIRECT = "direct",
+ DIRECT = "direct",
TWITTER = "twitter",
TELEGRAM = "telegram",
FARCASTER = "farcaster",
+ LENS = "lens",
+ AUTO = "auto",
+ SLACK = "slack",
+}
+
+export interface IAgentConfig {
+ [key: string]: string;
}
+
/**
* Configuration for an agent character
*/
@@ -650,13 +661,18 @@ export type Character = {
twitterMessageHandlerTemplate?: string;
twitterShouldRespondTemplate?: string;
farcasterPostTemplate?: string;
+ lensPostTemplate?: string;
farcasterMessageHandlerTemplate?: string;
+ lensMessageHandlerTemplate?: string;
farcasterShouldRespondTemplate?: string;
+ lensShouldRespondTemplate?: string;
telegramMessageHandlerTemplate?: string;
telegramShouldRespondTemplate?: string;
discordVoiceHandlerTemplate?: string;
discordShouldRespondTemplate?: string;
discordMessageHandlerTemplate?: string;
+ slackMessageHandlerTemplate?: string;
+ slackShouldRespondTemplate?: string;
};
/** Character biography */
@@ -717,6 +733,7 @@ export type Character = {
discord?: {
shouldIgnoreBotMessages?: boolean;
shouldIgnoreDirectMessages?: boolean;
+ shouldRespondOnlyToMentions?: boolean;
messageSimilarityThreshold?: number;
isPartOfTeam?: boolean;
teamAgentIds?: string[];
@@ -726,6 +743,19 @@ export type Character = {
telegram?: {
shouldIgnoreBotMessages?: boolean;
shouldIgnoreDirectMessages?: boolean;
+ shouldRespondOnlyToMentions?: boolean;
+ shouldOnlyJoinInAllowedGroups?: boolean;
+ allowedGroupIds?: string[];
+ messageSimilarityThreshold?: number;
+ isPartOfTeam?: boolean;
+ teamAgentIds?: string[];
+ teamLeaderId?: string;
+ teamMemberInterestKeywords?: string[];
+ };
+ slack?: {
+ shouldIgnoreBotMessages?: boolean;
+ shouldIgnoreDirectMessages?: boolean;
+
};
};
@@ -744,6 +774,10 @@ export type Character = {
bio: string;
nicknames?: string[];
};
+ /** Optional NFT prompt */
+ nft?: {
+ prompt: string;
+ }
};
/**
@@ -1138,12 +1172,17 @@ export interface IPdfService extends Service {
}
export interface IAwsS3Service extends Service {
- uploadFile(imagePath: string, useSignedUrl: boolean, expiresIn: number ): Promise<{
+ uploadFile(
+ imagePath: string,
+ subDirectory: string,
+ useSignedUrl: boolean,
+ expiresIn: number
+ ): Promise<{
success: boolean;
url?: string;
error?: string;
}>;
- generateSignedUrl(fileName: string, expiresIn: number): Promise
+ generateSignedUrl(fileName: string, expiresIn: number): Promise;
}
export type SearchResult = {
@@ -1173,6 +1212,8 @@ export enum ServiceType {
PDF = "pdf",
INTIFACE = "intiface",
AWS_S3 = "aws_s3",
+ BUTTPLUG = "buttplug",
+ SLACK = "slack",
}
export enum LoggingLevel {
@@ -1192,3 +1233,7 @@ export interface ActionResponse {
quote?: boolean;
reply?: boolean;
}
+
+export interface ISlackService extends Service {
+ client: any;
+}
diff --git a/packages/create-eliza-app/package.json b/packages/create-eliza-app/package.json
index 0206679e79..724d6a20ba 100644
--- a/packages/create-eliza-app/package.json
+++ b/packages/create-eliza-app/package.json
@@ -1,31 +1,31 @@
{
- "name": "create-eliza-app",
- "version": "0.1.5-alpha.5",
- "description": "",
- "sideEffects": false,
- "files": [
- "dist"
- ],
- "main": "dist/index.cjs",
- "bin": {
- "create-eliza-app": "dist/index.mjs"
- },
- "scripts": {
- "build": "unbuild",
- "lint": "eslint . --fix",
- "start": "node ./dist/index.cjs",
- "automd": "automd"
- },
- "keywords": [],
- "author": "",
- "license": "ISC",
- "dependencies": {
- "citty": "0.1.6",
- "giget": "1.2.3"
- },
- "devDependencies": {
- "automd": "0.3.12",
- "jiti": "2.4.0",
- "unbuild": "2.0.0"
- }
+ "name": "create-eliza-app",
+ "version": "0.1.6-alpha.4",
+ "description": "",
+ "sideEffects": false,
+ "files": [
+ "dist"
+ ],
+ "main": "dist/index.cjs",
+ "bin": {
+ "create-eliza-app": "dist/index.mjs"
+ },
+ "scripts": {
+ "build": "unbuild",
+ "lint": "eslint --fix --cache .",
+ "start": "node ./dist/index.cjs",
+ "automd": "automd"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "citty": "0.1.6",
+ "giget": "1.2.3"
+ },
+ "devDependencies": {
+ "automd": "0.3.12",
+ "jiti": "2.4.0",
+ "unbuild": "2.0.0"
+ }
}
diff --git a/packages/plugin-0g/package.json b/packages/plugin-0g/package.json
index fa36f6367e..56345c1add 100644
--- a/packages/plugin-0g/package.json
+++ b/packages/plugin-0g/package.json
@@ -1,18 +1,18 @@
{
- "name": "@ai16z/plugin-0g",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@0glabs/0g-ts-sdk": "0.2.1",
- "@ai16z/eliza": "workspace:*",
- "ethers": "6.13.4",
- "tsup": "8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "test": "vitest"
- }
+ "name": "@ai16z/plugin-0g",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@0glabs/0g-ts-sdk": "0.2.1",
+ "@ai16z/eliza": "workspace:*",
+ "ethers": "6.13.4",
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "test": "vitest"
+ }
}
diff --git a/packages/plugin-0g/src/actions/upload.ts b/packages/plugin-0g/src/actions/upload.ts
index d4d4e70277..12abad5c45 100644
--- a/packages/plugin-0g/src/actions/upload.ts
+++ b/packages/plugin-0g/src/actions/upload.ts
@@ -7,7 +7,7 @@ import {
ModelClass,
Content,
ActionExample,
- generateObjectV2,
+ generateObject,
} from "@ai16z/eliza";
import { Indexer, ZgFile, getFlowContract } from "@0glabs/0g-ts-sdk";
import { ethers } from "ethers";
@@ -68,7 +68,7 @@ export const zgUpload: Action = {
});
// Generate upload content
- const content = await generateObjectV2({
+ const content = await generateObject({
runtime,
context: uploadContext,
modelClass: ModelClass.LARGE,
diff --git a/packages/plugin-aptos/package.json b/packages/plugin-aptos/package.json
index 026a58d158..ab349239ee 100644
--- a/packages/plugin-aptos/package.json
+++ b/packages/plugin-aptos/package.json
@@ -1,27 +1,26 @@
{
- "name": "@ai16z/plugin-aptos",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@ai16z/plugin-trustdb": "workspace:*",
- "@aptos-labs/ts-sdk": "^1.26.0",
- "bignumber": "1.1.0",
- "bignumber.js": "9.1.2",
- "node-cache": "5.1.2",
- "tsup": "8.3.5",
- "vitest": "2.1.4"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix",
- "test": "vitest run"
- },
- "peerDependencies": {
- "form-data": "4.0.1",
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/plugin-aptos",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@aptos-labs/ts-sdk": "^1.26.0",
+ "bignumber": "1.1.0",
+ "bignumber.js": "9.1.2",
+ "node-cache": "5.1.2",
+ "tsup": "8.3.5",
+ "vitest": "2.1.4"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache .",
+ "test": "vitest run"
+ },
+ "peerDependencies": {
+ "form-data": "4.0.1",
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/plugin-aptos/src/actions/transfer.ts b/packages/plugin-aptos/src/actions/transfer.ts
index 19b3c86fcc..2eb3f8c7c8 100644
--- a/packages/plugin-aptos/src/actions/transfer.ts
+++ b/packages/plugin-aptos/src/actions/transfer.ts
@@ -10,7 +10,7 @@ import {
type Action,
} from "@ai16z/eliza";
import { composeContext } from "@ai16z/eliza";
-import { generateObjectDEPRECATED } from "@ai16z/eliza";
+import { generateObjectDeprecated } from "@ai16z/eliza";
import {
Account,
Aptos,
@@ -111,7 +111,7 @@ export default {
});
// Generate transfer content
- const content = await generateObjectDEPRECATED({
+ const content = await generateObjectDeprecated({
runtime,
context: transferContext,
modelClass: ModelClass.SMALL,
diff --git a/packages/plugin-bootstrap/package.json b/packages/plugin-bootstrap/package.json
index fe6104f639..6233aa95f7 100644
--- a/packages/plugin-bootstrap/package.json
+++ b/packages/plugin-bootstrap/package.json
@@ -1,19 +1,19 @@
{
- "name": "@ai16z/plugin-bootstrap",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "tsup": "8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/plugin-bootstrap",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache ."
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/plugin-coinbase/package-lock.json b/packages/plugin-coinbase/package-lock.json
deleted file mode 100644
index ae64da3750..0000000000
--- a/packages/plugin-coinbase/package-lock.json
+++ /dev/null
@@ -1,2534 +0,0 @@
-{
- "name": "@ai16z/plugin-coinbase",
- "version": "0.1.5-alpha.5",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "@ai16z/plugin-coinbase",
- "version": "0.1.5-alpha.5",
- "dependencies": {
- "coinbase-api": "1.0.5"
- },
- "devDependencies": {
- "tsup": "8.3.5"
- },
- "peerDependencies": {
- "onnxruntime-node": "1.20.1",
- "vue": "3.5.13",
- "whatwg-url": "7.1.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
- "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.25.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
- "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
- "license": "MIT",
- "peer": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.26.2",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz",
- "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/types": "^7.26.0"
- },
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.26.0",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz",
- "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/helper-string-parser": "^7.25.9",
- "@babel/helper-validator-identifier": "^7.25.9"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@esbuild/aix-ppc64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.0.tgz",
- "integrity": "sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "aix"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-arm": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.0.tgz",
- "integrity": "sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.0.tgz",
- "integrity": "sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/android-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.0.tgz",
- "integrity": "sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz",
- "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.0.tgz",
- "integrity": "sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.0.tgz",
- "integrity": "sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.0.tgz",
- "integrity": "sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-arm": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.0.tgz",
- "integrity": "sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.0.tgz",
- "integrity": "sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.0.tgz",
- "integrity": "sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.0.tgz",
- "integrity": "sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.0.tgz",
- "integrity": "sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.0.tgz",
- "integrity": "sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.0.tgz",
- "integrity": "sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.0.tgz",
- "integrity": "sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.0.tgz",
- "integrity": "sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.0.tgz",
- "integrity": "sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openbsd-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.0.tgz",
- "integrity": "sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.0.tgz",
- "integrity": "sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.0.tgz",
- "integrity": "sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.0.tgz",
- "integrity": "sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-ia32": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.0.tgz",
- "integrity": "sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.0.tgz",
- "integrity": "sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/@isaacs/cliui": {
- "version": "8.0.2",
- "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
- "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
- "license": "ISC",
- "dependencies": {
- "string-width": "^5.1.2",
- "string-width-cjs": "npm:string-width@^4.2.0",
- "strip-ansi": "^7.0.1",
- "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
- "wrap-ansi": "^8.1.0",
- "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@isaacs/fs-minipass": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
- "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "minipass": "^7.0.4"
- },
- "engines": {
- "node": ">=18.0.0"
- }
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/set-array": "^1.2.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.24"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
- "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
- "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
- "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
- "license": "MIT"
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.25",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
- "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.1.0",
- "@jridgewell/sourcemap-codec": "^1.4.14"
- }
- },
- "node_modules/@pkgjs/parseargs": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
- "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
- "license": "MIT",
- "optional": true,
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.27.4.tgz",
- "integrity": "sha512-2Y3JT6f5MrQkICUyRVCw4oa0sutfAsgaSsb0Lmmy1Wi2y7X5vT9Euqw4gOsCyy0YfKURBg35nhUKZS4mDcfULw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-android-arm64": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.27.4.tgz",
- "integrity": "sha512-wzKRQXISyi9UdCVRqEd0H4cMpzvHYt1f/C3CoIjES6cG++RHKhrBj2+29nPF0IB5kpy9MS71vs07fvrNGAl/iA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "android"
- ]
- },
- "node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.27.4.tgz",
- "integrity": "sha512-PlNiRQapift4LNS8DPUHuDX/IdXiLjf8mc5vdEmUR0fF/pyy2qWwzdLjB+iZquGr8LuN4LnUoSEvKRwjSVYz3Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.27.4.tgz",
- "integrity": "sha512-o9bH2dbdgBDJaXWJCDTNDYa171ACUdzpxSZt+u/AAeQ20Nk5x+IhA+zsGmrQtpkLiumRJEYef68gcpn2ooXhSQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.27.4.tgz",
- "integrity": "sha512-NBI2/i2hT9Q+HySSHTBh52da7isru4aAAo6qC3I7QFVsuhxi2gM8t/EI9EVcILiHLj1vfi+VGGPaLOUENn7pmw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.27.4.tgz",
- "integrity": "sha512-wYcC5ycW2zvqtDYrE7deary2P2UFmSh85PUpAx+dwTCO9uw3sgzD6Gv9n5X4vLaQKsrfTSZZ7Z7uynQozPVvWA==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "freebsd"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.27.4.tgz",
- "integrity": "sha512-9OwUnK/xKw6DyRlgx8UizeqRFOfi9mf5TYCw1uolDaJSbUmBxP85DE6T4ouCMoN6pXw8ZoTeZCSEfSaYo+/s1w==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.27.4.tgz",
- "integrity": "sha512-Vgdo4fpuphS9V24WOV+KwkCVJ72u7idTgQaBoLRD0UxBAWTF9GWurJO9YD9yh00BzbkhpeXtm6na+MvJU7Z73A==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.27.4.tgz",
- "integrity": "sha512-pleyNgyd1kkBkw2kOqlBx+0atfIIkkExOTiifoODo6qKDSpnc6WzUY5RhHdmTdIJXBdSnh6JknnYTtmQyobrVg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.27.4.tgz",
- "integrity": "sha512-caluiUXvUuVyCHr5DxL8ohaaFFzPGmgmMvwmqAITMpV/Q+tPoaHZ/PWa3t8B2WyoRcIIuu1hkaW5KkeTDNSnMA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.27.4.tgz",
- "integrity": "sha512-FScrpHrO60hARyHh7s1zHE97u0KlT/RECzCKAdmI+LEoC1eDh/RDji9JgFqyO+wPDb86Oa/sXkily1+oi4FzJQ==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.27.4.tgz",
- "integrity": "sha512-qyyprhyGb7+RBfMPeww9FlHwKkCXdKHeGgSqmIXw9VSUtvyFZ6WZRtnxgbuz76FK7LyoN8t/eINRbPUcvXB5fw==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.27.4.tgz",
- "integrity": "sha512-PFz+y2kb6tbh7m3A7nA9++eInGcDVZUACulf/KzDtovvdTizHpZaJty7Gp0lFwSQcrnebHOqxF1MaKZd7psVRg==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.27.4.tgz",
- "integrity": "sha512-Ni8mMtfo+o/G7DVtweXXV/Ol2TFf63KYjTtoZ5f078AUgJTmaIJnj4JFU7TK/9SVWTaSJGxPi5zMDgK4w+Ez7Q==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.27.4.tgz",
- "integrity": "sha512-5AeeAF1PB9TUzD+3cROzFTnAJAcVUGLuR8ng0E0WXGkYhp6RD6L+6szYVX+64Rs0r72019KHZS1ka1q+zU/wUw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "linux"
- ]
- },
- "node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.27.4.tgz",
- "integrity": "sha512-yOpVsA4K5qVwu2CaS3hHxluWIK5HQTjNV4tWjQXluMiiiu4pJj4BN98CvxohNCpcjMeTXk/ZMJBRbgRg8HBB6A==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.27.4.tgz",
- "integrity": "sha512-KtwEJOaHAVJlxV92rNYiG9JQwQAdhBlrjNRp7P9L8Cb4Rer3in+0A+IPhJC9y68WAi9H0sX4AiG2NTsVlmqJeQ==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.27.4.tgz",
- "integrity": "sha512-3j4jx1TppORdTAoBJRd+/wJRGCPC0ETWkXOecJ6PPZLj6SptXkrXcNqdj0oclbKML6FkQltdz7bBA3rUSirZug==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "win32"
- ]
- },
- "node_modules/@types/estree": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
- "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@vue/compiler-core": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz",
- "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/parser": "^7.25.3",
- "@vue/shared": "3.5.13",
- "entities": "^4.5.0",
- "estree-walker": "^2.0.2",
- "source-map-js": "^1.2.0"
- }
- },
- "node_modules/@vue/compiler-dom": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz",
- "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vue/compiler-core": "3.5.13",
- "@vue/shared": "3.5.13"
- }
- },
- "node_modules/@vue/compiler-sfc": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz",
- "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@babel/parser": "^7.25.3",
- "@vue/compiler-core": "3.5.13",
- "@vue/compiler-dom": "3.5.13",
- "@vue/compiler-ssr": "3.5.13",
- "@vue/shared": "3.5.13",
- "estree-walker": "^2.0.2",
- "magic-string": "^0.30.11",
- "postcss": "^8.4.48",
- "source-map-js": "^1.2.0"
- }
- },
- "node_modules/@vue/compiler-ssr": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz",
- "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vue/compiler-dom": "3.5.13",
- "@vue/shared": "3.5.13"
- }
- },
- "node_modules/@vue/reactivity": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.13.tgz",
- "integrity": "sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vue/shared": "3.5.13"
- }
- },
- "node_modules/@vue/runtime-core": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.13.tgz",
- "integrity": "sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vue/reactivity": "3.5.13",
- "@vue/shared": "3.5.13"
- }
- },
- "node_modules/@vue/runtime-dom": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.13.tgz",
- "integrity": "sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vue/reactivity": "3.5.13",
- "@vue/runtime-core": "3.5.13",
- "@vue/shared": "3.5.13",
- "csstype": "^3.1.3"
- }
- },
- "node_modules/@vue/server-renderer": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.13.tgz",
- "integrity": "sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vue/compiler-ssr": "3.5.13",
- "@vue/shared": "3.5.13"
- },
- "peerDependencies": {
- "vue": "3.5.13"
- }
- },
- "node_modules/@vue/shared": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz",
- "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/ansi-regex": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz",
- "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
- },
- "node_modules/ansi-styles": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
- "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
- "license": "MIT"
- },
- "node_modules/axios": {
- "version": "1.7.8",
- "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.8.tgz",
- "integrity": "sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==",
- "license": "MIT",
- "dependencies": {
- "follow-redirects": "^1.15.6",
- "form-data": "^4.0.0",
- "proxy-from-env": "^1.1.0"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "license": "MIT"
- },
- "node_modules/brace-expansion": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
- "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
- "license": "MIT",
- "dependencies": {
- "balanced-match": "^1.0.0"
- }
- },
- "node_modules/buffer-equal-constant-time": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
- "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==",
- "license": "BSD-3-Clause"
- },
- "node_modules/bundle-require": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/bundle-require/-/bundle-require-5.0.0.tgz",
- "integrity": "sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "load-tsconfig": "^0.2.3"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "peerDependencies": {
- "esbuild": ">=0.18"
- }
- },
- "node_modules/cac": {
- "version": "6.7.14",
- "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
- "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/chokidar": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz",
- "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "readdirp": "^4.0.1"
- },
- "engines": {
- "node": ">= 14.16.0"
- },
- "funding": {
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/coinbase-api": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/coinbase-api/-/coinbase-api-1.0.5.tgz",
- "integrity": "sha512-5Rq6hYKnJNc9v4diD8M6PStSc2hwMgfOlB+pb1LSyh5q2xg9ZKi3Gu8ZVxaDnKXmgQgrjI4xJLMpc3fiLgzsew==",
- "license": "MIT",
- "dependencies": {
- "axios": "^1.7.4",
- "isomorphic-ws": "^4.0.1",
- "jsonwebtoken": "^9.0.2",
- "nanoid": "^3.3.7",
- "ws": "^7.4.0"
- },
- "funding": {
- "type": "individual",
- "url": "https://github.com/sponsors/tiagosiebler"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "license": "MIT",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "license": "MIT"
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "license": "MIT",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/commander": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
- "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/consola": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz",
- "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^14.18.0 || >=16.10.0"
- }
- },
- "node_modules/cross-spawn": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
- "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
- "license": "MIT",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/csstype": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ms": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "license": "MIT",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "license": "MIT"
- },
- "node_modules/ecdsa-sig-formatter": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
- "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
- "license": "Apache-2.0",
- "dependencies": {
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "license": "MIT"
- },
- "node_modules/entities": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
- "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "license": "BSD-2-Clause",
- "peer": true,
- "engines": {
- "node": ">=0.12"
- },
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
- }
- },
- "node_modules/esbuild": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz",
- "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "esbuild": "bin/esbuild"
- },
- "engines": {
- "node": ">=18"
- },
- "optionalDependencies": {
- "@esbuild/aix-ppc64": "0.24.0",
- "@esbuild/android-arm": "0.24.0",
- "@esbuild/android-arm64": "0.24.0",
- "@esbuild/android-x64": "0.24.0",
- "@esbuild/darwin-arm64": "0.24.0",
- "@esbuild/darwin-x64": "0.24.0",
- "@esbuild/freebsd-arm64": "0.24.0",
- "@esbuild/freebsd-x64": "0.24.0",
- "@esbuild/linux-arm": "0.24.0",
- "@esbuild/linux-arm64": "0.24.0",
- "@esbuild/linux-ia32": "0.24.0",
- "@esbuild/linux-loong64": "0.24.0",
- "@esbuild/linux-mips64el": "0.24.0",
- "@esbuild/linux-ppc64": "0.24.0",
- "@esbuild/linux-riscv64": "0.24.0",
- "@esbuild/linux-s390x": "0.24.0",
- "@esbuild/linux-x64": "0.24.0",
- "@esbuild/netbsd-x64": "0.24.0",
- "@esbuild/openbsd-arm64": "0.24.0",
- "@esbuild/openbsd-x64": "0.24.0",
- "@esbuild/sunos-x64": "0.24.0",
- "@esbuild/win32-arm64": "0.24.0",
- "@esbuild/win32-ia32": "0.24.0",
- "@esbuild/win32-x64": "0.24.0"
- }
- },
- "node_modules/estree-walker": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/fdir": {
- "version": "6.4.2",
- "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz",
- "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==",
- "dev": true,
- "license": "MIT",
- "peerDependencies": {
- "picomatch": "^3 || ^4"
- },
- "peerDependenciesMeta": {
- "picomatch": {
- "optional": true
- }
- }
- },
- "node_modules/follow-redirects": {
- "version": "1.15.9",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
- "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
- "license": "MIT",
- "engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
- }
- },
- "node_modules/foreground-child": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz",
- "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==",
- "license": "ISC",
- "dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^4.0.1"
- },
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/form-data": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz",
- "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==",
- "license": "MIT",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "license": "MIT",
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "license": "ISC"
- },
- "node_modules/isomorphic-ws": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz",
- "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==",
- "license": "MIT",
- "peerDependencies": {
- "ws": "*"
- }
- },
- "node_modules/joycon": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz",
- "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/jsonwebtoken": {
- "version": "9.0.2",
- "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
- "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==",
- "license": "MIT",
- "dependencies": {
- "jws": "^3.2.2",
- "lodash.includes": "^4.3.0",
- "lodash.isboolean": "^3.0.3",
- "lodash.isinteger": "^4.0.4",
- "lodash.isnumber": "^3.0.3",
- "lodash.isplainobject": "^4.0.6",
- "lodash.isstring": "^4.0.1",
- "lodash.once": "^4.0.0",
- "ms": "^2.1.1",
- "semver": "^7.5.4"
- },
- "engines": {
- "node": ">=12",
- "npm": ">=6"
- }
- },
- "node_modules/jsonwebtoken/node_modules/jwa": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
- "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
- "license": "MIT",
- "dependencies": {
- "buffer-equal-constant-time": "1.0.1",
- "ecdsa-sig-formatter": "1.0.11",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/jsonwebtoken/node_modules/jws": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
- "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
- "license": "MIT",
- "dependencies": {
- "jwa": "^1.4.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/lilconfig": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
- "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/antonk52"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/load-tsconfig": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz",
- "integrity": "sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- }
- },
- "node_modules/lodash.includes": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
- "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==",
- "license": "MIT"
- },
- "node_modules/lodash.isboolean": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
- "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==",
- "license": "MIT"
- },
- "node_modules/lodash.isinteger": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
- "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==",
- "license": "MIT"
- },
- "node_modules/lodash.isnumber": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
- "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==",
- "license": "MIT"
- },
- "node_modules/lodash.isplainobject": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==",
- "license": "MIT"
- },
- "node_modules/lodash.isstring": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
- "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==",
- "license": "MIT"
- },
- "node_modules/lodash.once": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
- "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
- "license": "MIT"
- },
- "node_modules/lodash.sortby": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
- "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==",
- "license": "MIT"
- },
- "node_modules/magic-string": {
- "version": "0.30.14",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.14.tgz",
- "integrity": "sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@jridgewell/sourcemap-codec": "^1.5.0"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "license": "MIT",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "license": "MIT",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/minipass": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
- "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
- "license": "ISC",
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "license": "MIT"
- },
- "node_modules/mz": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
- "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0",
- "object-assign": "^4.0.1",
- "thenify-all": "^1.0.0"
- }
- },
- "node_modules/nanoid": {
- "version": "3.3.8",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
- "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/onnxruntime-common": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.20.1.tgz",
- "integrity": "sha512-YiU0s0IzYYC+gWvqD1HzLc46Du1sXpSiwzKb63PACIJr6LfL27VsXSXQvt68EzD3V0D5Bc0vyJTjmMxp0ylQiw==",
- "license": "MIT",
- "peer": true
- },
- "node_modules/onnxruntime-node": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/onnxruntime-node/-/onnxruntime-node-1.20.1.tgz",
- "integrity": "sha512-di/I4HDXRw+FLgq+TyHmQEDd3cEp9iFFZm0r4uJ1Wd7b/WE1VXtKWo8yemex347c6GNF/3Pv86ZfPhIWxORr0w==",
- "hasInstallScript": true,
- "license": "MIT",
- "os": [
- "win32",
- "darwin",
- "linux"
- ],
- "peer": true,
- "dependencies": {
- "onnxruntime-common": "1.20.1",
- "tar": "^7.0.1"
- }
- },
- "node_modules/onnxruntime-node/node_modules/chownr": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
- "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
- "license": "BlueOak-1.0.0",
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/onnxruntime-node/node_modules/minizlib": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.0.1.tgz",
- "integrity": "sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "minipass": "^7.0.4",
- "rimraf": "^5.0.5"
- },
- "engines": {
- "node": ">= 18"
- }
- },
- "node_modules/onnxruntime-node/node_modules/mkdirp": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz",
- "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==",
- "license": "MIT",
- "peer": true,
- "bin": {
- "mkdirp": "dist/cjs/src/bin.js"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/onnxruntime-node/node_modules/tar": {
- "version": "7.4.3",
- "resolved": "https://registry.npmjs.org/tar/-/tar-7.4.3.tgz",
- "integrity": "sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "@isaacs/fs-minipass": "^4.0.0",
- "chownr": "^3.0.0",
- "minipass": "^7.1.2",
- "minizlib": "^3.0.1",
- "mkdirp": "^3.0.1",
- "yallist": "^5.0.0"
- },
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/onnxruntime-node/node_modules/yallist": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
- "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
- "license": "BlueOak-1.0.0",
- "peer": true,
- "engines": {
- "node": ">=18"
- }
- },
- "node_modules/package-json-from-dist": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
- "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
- "license": "BlueOak-1.0.0"
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/picocolors": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
- "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "license": "ISC"
- },
- "node_modules/picomatch": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
- "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pirates": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
- "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/postcss": {
- "version": "8.4.49",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
- "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/postcss"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "nanoid": "^3.3.7",
- "picocolors": "^1.1.1",
- "source-map-js": "^1.2.1"
- },
- "engines": {
- "node": "^10 || ^12 || >=14"
- }
- },
- "node_modules/postcss-load-config": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz",
- "integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- },
- {
- "type": "github",
- "url": "https://github.com/sponsors/ai"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "lilconfig": "^3.1.1"
- },
- "engines": {
- "node": ">= 18"
- },
- "peerDependencies": {
- "jiti": ">=1.21.0",
- "postcss": ">=8.0.9",
- "tsx": "^4.8.1",
- "yaml": "^2.4.2"
- },
- "peerDependenciesMeta": {
- "jiti": {
- "optional": true
- },
- "postcss": {
- "optional": true
- },
- "tsx": {
- "optional": true
- },
- "yaml": {
- "optional": true
- }
- }
- },
- "node_modules/proxy-from-env": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
- "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
- "license": "MIT"
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/readdirp": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz",
- "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 14.16.0"
- },
- "funding": {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- },
- "node_modules/resolve-from": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
- "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/rimraf": {
- "version": "5.0.10",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz",
- "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "glob": "^10.3.7"
- },
- "bin": {
- "rimraf": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/rimraf/node_modules/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/rimraf/node_modules/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "license": "BlueOak-1.0.0",
- "peer": true,
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/rimraf/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "license": "ISC",
- "peer": true
- },
- "node_modules/rimraf/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "license": "ISC",
- "peer": true,
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/rimraf/node_modules/path-scurry": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "license": "BlueOak-1.0.0",
- "peer": true,
- "dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/rollup": {
- "version": "4.27.4",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.27.4.tgz",
- "integrity": "sha512-RLKxqHEMjh/RGLsDxAEsaLO3mWgyoU6x9w6n1ikAzet4B3gI2/3yP6PWY2p9QzRTh6MfEIXB3MwsOY0Iv3vNrw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@types/estree": "1.0.6"
- },
- "bin": {
- "rollup": "dist/bin/rollup"
- },
- "engines": {
- "node": ">=18.0.0",
- "npm": ">=8.0.0"
- },
- "optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.27.4",
- "@rollup/rollup-android-arm64": "4.27.4",
- "@rollup/rollup-darwin-arm64": "4.27.4",
- "@rollup/rollup-darwin-x64": "4.27.4",
- "@rollup/rollup-freebsd-arm64": "4.27.4",
- "@rollup/rollup-freebsd-x64": "4.27.4",
- "@rollup/rollup-linux-arm-gnueabihf": "4.27.4",
- "@rollup/rollup-linux-arm-musleabihf": "4.27.4",
- "@rollup/rollup-linux-arm64-gnu": "4.27.4",
- "@rollup/rollup-linux-arm64-musl": "4.27.4",
- "@rollup/rollup-linux-powerpc64le-gnu": "4.27.4",
- "@rollup/rollup-linux-riscv64-gnu": "4.27.4",
- "@rollup/rollup-linux-s390x-gnu": "4.27.4",
- "@rollup/rollup-linux-x64-gnu": "4.27.4",
- "@rollup/rollup-linux-x64-musl": "4.27.4",
- "@rollup/rollup-win32-arm64-msvc": "4.27.4",
- "@rollup/rollup-win32-ia32-msvc": "4.27.4",
- "@rollup/rollup-win32-x64-msvc": "4.27.4",
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
- "node_modules/semver": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
- "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==",
- "license": "ISC",
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "license": "MIT",
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/signal-exit": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
- "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
- "license": "ISC",
- "engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/source-map": {
- "version": "0.8.0-beta.0",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz",
- "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==",
- "dev": true,
- "license": "BSD-3-Clause",
- "dependencies": {
- "whatwg-url": "^7.0.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/source-map-js": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
- "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "license": "BSD-3-Clause",
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "license": "MIT",
- "dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/string-width-cjs": {
- "name": "string-width",
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/string-width-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/string-width-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
- "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^6.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
- }
- },
- "node_modules/strip-ansi-cjs": {
- "name": "strip-ansi",
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/sucrase": {
- "version": "3.35.0",
- "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
- "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@jridgewell/gen-mapping": "^0.3.2",
- "commander": "^4.0.0",
- "glob": "^10.3.10",
- "lines-and-columns": "^1.1.6",
- "mz": "^2.7.0",
- "pirates": "^4.0.1",
- "ts-interface-checker": "^0.1.9"
- },
- "bin": {
- "sucrase": "bin/sucrase",
- "sucrase-node": "bin/sucrase-node"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- }
- },
- "node_modules/sucrase/node_modules/glob": {
- "version": "10.4.5",
- "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
- "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "foreground-child": "^3.1.0",
- "jackspeak": "^3.1.2",
- "minimatch": "^9.0.4",
- "minipass": "^7.1.2",
- "package-json-from-dist": "^1.0.0",
- "path-scurry": "^1.11.1"
- },
- "bin": {
- "glob": "dist/esm/bin.mjs"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/sucrase/node_modules/jackspeak": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
- "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "@isaacs/cliui": "^8.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- },
- "optionalDependencies": {
- "@pkgjs/parseargs": "^0.11.0"
- }
- },
- "node_modules/sucrase/node_modules/lru-cache": {
- "version": "10.4.3",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
- "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/sucrase/node_modules/minimatch": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
- "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "brace-expansion": "^2.0.1"
- },
- "engines": {
- "node": ">=16 || 14 >=14.17"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/sucrase/node_modules/path-scurry": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
- "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
- "dev": true,
- "license": "BlueOak-1.0.0",
- "dependencies": {
- "lru-cache": "^10.2.0",
- "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
- },
- "engines": {
- "node": ">=16 || 14 >=14.18"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/thenify": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
- "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "any-promise": "^1.0.0"
- }
- },
- "node_modules/thenify-all": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
- "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "thenify": ">= 3.1.0 < 4"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/tinyexec": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz",
- "integrity": "sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/tinyglobby": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz",
- "integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "fdir": "^6.4.2",
- "picomatch": "^4.0.2"
- },
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/tr46": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz",
- "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==",
- "license": "MIT",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/tree-kill": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
- "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
- "dev": true,
- "license": "MIT",
- "bin": {
- "tree-kill": "cli.js"
- }
- },
- "node_modules/ts-interface-checker": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
- "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
- "dev": true,
- "license": "Apache-2.0"
- },
- "node_modules/tsup": {
- "version": "8.3.5",
- "resolved": "https://registry.npmjs.org/tsup/-/tsup-8.3.5.tgz",
- "integrity": "sha512-Tunf6r6m6tnZsG9GYWndg0z8dEV7fD733VBFzFJ5Vcm1FtlXB8xBD/rtrBi2a3YKEV7hHtxiZtW5EAVADoe1pA==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "bundle-require": "^5.0.0",
- "cac": "^6.7.14",
- "chokidar": "^4.0.1",
- "consola": "^3.2.3",
- "debug": "^4.3.7",
- "esbuild": "^0.24.0",
- "joycon": "^3.1.1",
- "picocolors": "^1.1.1",
- "postcss-load-config": "^6.0.1",
- "resolve-from": "^5.0.0",
- "rollup": "^4.24.0",
- "source-map": "0.8.0-beta.0",
- "sucrase": "^3.35.0",
- "tinyexec": "^0.3.1",
- "tinyglobby": "^0.2.9",
- "tree-kill": "^1.2.2"
- },
- "bin": {
- "tsup": "dist/cli-default.js",
- "tsup-node": "dist/cli-node.js"
- },
- "engines": {
- "node": ">=18"
- },
- "peerDependencies": {
- "@microsoft/api-extractor": "^7.36.0",
- "@swc/core": "^1",
- "postcss": "^8.4.12",
- "typescript": ">=4.5.0"
- },
- "peerDependenciesMeta": {
- "@microsoft/api-extractor": {
- "optional": true
- },
- "@swc/core": {
- "optional": true
- },
- "postcss": {
- "optional": true
- },
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/vue": {
- "version": "3.5.13",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.13.tgz",
- "integrity": "sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==",
- "license": "MIT",
- "peer": true,
- "dependencies": {
- "@vue/compiler-dom": "3.5.13",
- "@vue/compiler-sfc": "3.5.13",
- "@vue/runtime-dom": "3.5.13",
- "@vue/server-renderer": "3.5.13",
- "@vue/shared": "3.5.13"
- },
- "peerDependencies": {
- "typescript": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
- }
- },
- "node_modules/webidl-conversions": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
- "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
- "license": "BSD-2-Clause"
- },
- "node_modules/whatwg-url": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
- "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
- "license": "MIT",
- "dependencies": {
- "lodash.sortby": "^4.7.0",
- "tr46": "^1.0.1",
- "webidl-conversions": "^4.0.2"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "license": "ISC",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/wrap-ansi": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
- "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^6.1.0",
- "string-width": "^5.0.1",
- "strip-ansi": "^7.0.1"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs": {
- "name": "wrap-ansi",
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "license": "MIT",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "license": "MIT",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "license": "MIT"
- },
- "node_modules/wrap-ansi-cjs/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "license": "MIT",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ws": {
- "version": "7.5.10",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz",
- "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==",
- "license": "MIT",
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/yaml": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz",
- "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==",
- "dev": true,
- "license": "ISC",
- "optional": true,
- "peer": true,
- "bin": {
- "yaml": "bin.mjs"
- },
- "engines": {
- "node": ">= 14"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/packages/plugin-coinbase/package.json b/packages/plugin-coinbase/package.json
index 01b4bd3a1a..4e38b629e4 100644
--- a/packages/plugin-coinbase/package.json
+++ b/packages/plugin-coinbase/package.json
@@ -1,24 +1,24 @@
{
- "name": "@ai16z/plugin-coinbase",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "coinbase-api": "1.0.5",
- "coinbase-advanced-sdk": "file:../../packages/plugin-coinbase/advanced-sdk-ts",
- "jsonwebtoken": "^9.0.2",
- "@types/jsonwebtoken": "^9.0.7",
- "node-fetch": "^2.6.1"
- },
- "devDependencies": {
- "tsup": "8.3.5",
- "@types/node": "^20.0.0"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix"
- }
+ "name": "@ai16z/plugin-coinbase",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "coinbase-api": "1.0.5",
+ "coinbase-advanced-sdk": "file:../../packages/plugin-coinbase/advanced-sdk-ts",
+ "jsonwebtoken": "^9.0.2",
+ "@types/jsonwebtoken": "^9.0.7",
+ "node-fetch": "^2.6.1"
+ },
+ "devDependencies": {
+ "tsup": "8.3.5",
+ "@types/node": "^20.0.0"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache ."
+ }
}
diff --git a/packages/plugin-coinbase/src/plugins/advancedTrade.ts b/packages/plugin-coinbase/src/plugins/advancedTrade.ts
index 472616e2d1..64916f7421 100644
--- a/packages/plugin-coinbase/src/plugins/advancedTrade.ts
+++ b/packages/plugin-coinbase/src/plugins/advancedTrade.ts
@@ -1,4 +1,4 @@
-import { RESTClient } from '../../advanced-sdk-ts/src/rest';
+import { RESTClient } from "../../advanced-sdk-ts/src/rest";
import {
Action,
Plugin,
@@ -8,7 +8,7 @@ import {
HandlerCallback,
State,
composeContext,
- generateObjectV2,
+ generateObject,
ModelClass,
Provider,
} from "@ai16z/eliza";
@@ -20,8 +20,11 @@ import path from "path";
import { fileURLToPath } from "url";
import fs from "fs";
import { createArrayCsvWriter } from "csv-writer";
-import { OrderSide, OrderConfiguration } from '../../advanced-sdk-ts/src/rest/types/common-types';
-import { CreateOrderResponse } from '../../advanced-sdk-ts/src/rest/types/orders-types';
+import {
+ OrderSide,
+ OrderConfiguration,
+} from "../../advanced-sdk-ts/src/rest/types/common-types";
+import { CreateOrderResponse } from "../../advanced-sdk-ts/src/rest/types/orders-types";
// File path setup remains the same
const __filename = fileURLToPath(import.meta.url);
@@ -33,8 +36,10 @@ const tradeProvider: Provider = {
get: async (runtime: IAgentRuntime, _message: Memory) => {
try {
const client = new RESTClient(
- runtime.getSetting("COINBASE_API_KEY") ?? process.env.COINBASE_API_KEY,
- runtime.getSetting("COINBASE_PRIVATE_KEY") ?? process.env.COINBASE_PRIVATE_KEY
+ runtime.getSetting("COINBASE_API_KEY") ??
+ process.env.COINBASE_API_KEY,
+ runtime.getSetting("COINBASE_PRIVATE_KEY") ??
+ process.env.COINBASE_PRIVATE_KEY
);
// Get accounts and products information
@@ -88,7 +93,7 @@ const tradeProvider: Provider = {
return {
accounts: accounts.accounts,
products: products.products,
- trades: records
+ trades: records,
};
} catch (error) {
elizaLogger.error("Error in tradeProvider:", error);
@@ -101,20 +106,16 @@ export async function appendTradeToCsv(tradeResult: any) {
try {
const csvWriter = createArrayCsvWriter({
path: tradeCsvFilePath,
- header: [
- "Order ID",
- "Success",
- "Order Configuration",
- "Response",
- ],
+ header: ["Order ID", "Success", "Order Configuration", "Response"],
append: true,
});
elizaLogger.info("Trade result:", tradeResult);
-
// Format trade data based on success/failure
const formattedTrade = [
- tradeResult.success_response?.order_id || tradeResult.failure_response?.order_id || '',
+ tradeResult.success_response?.order_id ||
+ tradeResult.failure_response?.order_id ||
+ "",
tradeResult.success,
// JSON.stringify(tradeResult.order_configuration || {}),
// JSON.stringify(tradeResult.success_response || tradeResult.failure_response || {})
@@ -132,18 +133,28 @@ export async function appendTradeToCsv(tradeResult: any) {
}
}
-async function hasEnoughBalance(client: RESTClient, currency: string, amount: number, side: string): Promise {
+async function hasEnoughBalance(
+ client: RESTClient,
+ currency: string,
+ amount: number,
+ side: string
+): Promise {
try {
const response = await client.listAccounts({});
const accounts = JSON.parse(response);
elizaLogger.info("Accounts:", accounts);
const checkCurrency = side === "BUY" ? "USD" : currency;
- elizaLogger.info(`Checking balance for ${side} order of ${amount} ${checkCurrency}`);
+ elizaLogger.info(
+ `Checking balance for ${side} order of ${amount} ${checkCurrency}`
+ );
// Find account with exact currency match
- const account = accounts?.accounts.find(acc =>
- acc.currency === checkCurrency &&
- (checkCurrency === "USD" ? acc.type === "ACCOUNT_TYPE_FIAT" : acc.type === "ACCOUNT_TYPE_CRYPTO")
+ const account = accounts?.accounts.find(
+ (acc) =>
+ acc.currency === checkCurrency &&
+ (checkCurrency === "USD"
+ ? acc.type === "ACCOUNT_TYPE_FIAT"
+ : acc.type === "ACCOUNT_TYPE_CRYPTO")
);
if (!account) {
@@ -154,7 +165,9 @@ async function hasEnoughBalance(client: RESTClient, currency: string, amount: nu
const available = parseFloat(account.available_balance.value);
// Add buffer for fees only on USD purchases
const requiredAmount = side === "BUY" ? amount * 1.01 : amount;
- elizaLogger.info(`Required amount (including buffer): ${requiredAmount} ${checkCurrency}`);
+ elizaLogger.info(
+ `Required amount (including buffer): ${requiredAmount} ${checkCurrency}`
+ );
const hasBalance = available >= requiredAmount;
elizaLogger.info(`Has sufficient balance: ${hasBalance}`);
@@ -162,10 +175,10 @@ async function hasEnoughBalance(client: RESTClient, currency: string, amount: nu
return hasBalance;
} catch (error) {
elizaLogger.error("Balance check failed with error:", {
- error: error instanceof Error ? error.message : 'Unknown error',
+ error: error instanceof Error ? error.message : "Unknown error",
currency,
amount,
- side
+ side,
});
return false;
}
@@ -175,15 +188,23 @@ export const executeAdvancedTradeAction: Action = {
name: "EXECUTE_ADVANCED_TRADE",
description: "Execute a trade using Coinbase Advanced Trading API",
validate: async (runtime: IAgentRuntime) => {
- return !!(runtime.getSetting("COINBASE_API_KEY") || process.env.COINBASE_API_KEY) &&
- !!(runtime.getSetting("COINBASE_PRIVATE_KEY") || process.env.COINBASE_PRIVATE_KEY);
+ return (
+ !!(
+ runtime.getSetting("COINBASE_API_KEY") ||
+ process.env.COINBASE_API_KEY
+ ) &&
+ !!(
+ runtime.getSetting("COINBASE_PRIVATE_KEY") ||
+ process.env.COINBASE_PRIVATE_KEY
+ )
+ );
},
similes: [
"EXECUTE_ADVANCED_TRADE",
"ADVANCED_MARKET_ORDER",
"ADVANCED_LIMIT_ORDER",
"COINBASE_PRO_TRADE",
- "PROFESSIONAL_TRADE"
+ "PROFESSIONAL_TRADE",
],
handler: async (
runtime: IAgentRuntime,
@@ -197,60 +218,78 @@ export const executeAdvancedTradeAction: Action = {
// Initialize client
try {
client = new RESTClient(
- runtime.getSetting("COINBASE_API_KEY") ?? process.env.COINBASE_API_KEY,
- runtime.getSetting("COINBASE_PRIVATE_KEY") ?? process.env.COINBASE_PRIVATE_KEY
+ runtime.getSetting("COINBASE_API_KEY") ??
+ process.env.COINBASE_API_KEY,
+ runtime.getSetting("COINBASE_PRIVATE_KEY") ??
+ process.env.COINBASE_PRIVATE_KEY
);
elizaLogger.info("Advanced trade client initialized");
} catch (error) {
elizaLogger.error("Client initialization failed:", error);
- callback({
- text: "Failed to initialize trading client. Please check your API credentials."
- }, []);
+ callback(
+ {
+ text: "Failed to initialize trading client. Please check your API credentials.",
+ },
+ []
+ );
return;
}
// Generate trade details
let tradeDetails;
try {
- tradeDetails = await generateObjectV2({
+ tradeDetails = await generateObject({
runtime,
- context: composeContext({ state, template: advancedTradeTemplate }),
+ context: composeContext({
+ state,
+ template: advancedTradeTemplate,
+ }),
modelClass: ModelClass.LARGE,
schema: AdvancedTradeSchema,
});
elizaLogger.info("Trade details generated:", tradeDetails.object);
} catch (error) {
elizaLogger.error("Trade details generation failed:", error);
- callback({
- text: "Failed to generate trade details. Please provide valid trading parameters."
- }, []);
+ callback(
+ {
+ text: "Failed to generate trade details. Please provide valid trading parameters.",
+ },
+ []
+ );
return;
}
// Validate trade content
if (!isAdvancedTradeContent(tradeDetails.object)) {
elizaLogger.error("Invalid trade content:", tradeDetails.object);
- callback({
- text: "Invalid trade details. Please check your input parameters."
- }, []);
+ callback(
+ {
+ text: "Invalid trade details. Please check your input parameters.",
+ },
+ []
+ );
return;
}
- const { productId, amount, side, orderType, limitPrice } = tradeDetails.object;
+ const { productId, amount, side, orderType, limitPrice } =
+ tradeDetails.object;
// Configure order
let orderConfiguration: OrderConfiguration;
try {
if (orderType === "MARKET") {
- orderConfiguration = side === "BUY" ? {
- market_market_ioc: {
- quote_size: amount.toString()
- }
- } : {
- market_market_ioc: {
- base_size: amount.toString()
- }
- };
+ orderConfiguration =
+ side === "BUY"
+ ? {
+ market_market_ioc: {
+ quote_size: amount.toString(),
+ },
+ }
+ : {
+ market_market_ioc: {
+ base_size: amount.toString(),
+ },
+ };
} else {
if (!limitPrice) {
throw new Error("Limit price is required for limit orders");
@@ -259,54 +298,77 @@ export const executeAdvancedTradeAction: Action = {
limit_limit_gtc: {
baseSize: amount.toString(),
limitPrice: limitPrice.toString(),
- postOnly: false
- }
+ postOnly: false,
+ },
};
}
- elizaLogger.info("Order configuration created:", orderConfiguration);
+ elizaLogger.info(
+ "Order configuration created:",
+ orderConfiguration
+ );
} catch (error) {
elizaLogger.error("Order configuration failed:", error);
- callback({
- text: error instanceof Error ? error.message : "Failed to configure order parameters."
- }, []);
+ callback(
+ {
+ text:
+ error instanceof Error
+ ? error.message
+ : "Failed to configure order parameters.",
+ },
+ []
+ );
return;
}
// Execute trade
let order: CreateOrderResponse;
try {
- if (!(await hasEnoughBalance(client, productId.split('-')[0], amount, side))) {
- callback({
- text: `Insufficient ${side === "BUY" ? "USD" : productId.split('-')[0]} balance to execute this trade`
- }, []);
+ if (
+ !(await hasEnoughBalance(
+ client,
+ productId.split("-")[0],
+ amount,
+ side
+ ))
+ ) {
+ callback(
+ {
+ text: `Insufficient ${side === "BUY" ? "USD" : productId.split("-")[0]} balance to execute this trade`,
+ },
+ []
+ );
return;
}
order = await client.createOrder({
- clientOrderId: crypto.randomUUID(),
+ clientOrderId: crypto.randomUUID(),
productId,
side: side === "BUY" ? OrderSide.BUY : OrderSide.SELL,
- orderConfiguration
+ orderConfiguration,
});
elizaLogger.info("Trade executed successfully:", order);
} catch (error) {
elizaLogger.error("Trade execution failed:", error?.message);
- callback({
- text: `Failed to execute trade: ${error instanceof Error ? error.message : "Unknown error occurred"}`
- }, []);
+ callback(
+ {
+ text: `Failed to execute trade: ${error instanceof Error ? error.message : "Unknown error occurred"}`,
+ },
+ []
+ );
return;
}
- // Log trade to CSV
- try {
- // await appendTradeToCsv(order);
- elizaLogger.info("Trade logged to CSV");
- } catch (csvError) {
- elizaLogger.warn("Failed to log trade to CSV:", csvError);
- // Continue execution as this is non-critical
- }
+ // Log trade to CSV
+ try {
+ // await appendTradeToCsv(order);
+ elizaLogger.info("Trade logged to CSV");
+ } catch (csvError) {
+ elizaLogger.warn("Failed to log trade to CSV:", csvError);
+ // Continue execution as this is non-critical
+ }
- callback({
+ callback(
+ {
text: `Advanced Trade executed successfully:
- Product: ${productId}
- Type: ${orderType} Order
@@ -316,14 +378,18 @@ export const executeAdvancedTradeAction: Action = {
- Status: ${order.success}
- Order Id: ${order.order_id}
- Response: ${JSON.stringify(order.response)}
-- Order Configuration: ${JSON.stringify(order.order_configuration)}`
- }, []);
+- Order Configuration: ${JSON.stringify(order.order_configuration)}`,
+ },
+ []
+ );
},
examples: [
[
{
user: "{{user1}}",
- content: { text: "Place an advanced market order to buy $1 worth of BTC" }
+ content: {
+ text: "Place an advanced market order to buy $1 worth of BTC",
+ },
},
{
user: "{{agentName}}",
@@ -336,14 +402,14 @@ export const executeAdvancedTradeAction: Action = {
- Order ID: CB-ADV-12345
- Success: true
- Response: {"success_response":{}}
-- Order Configuration: {"market_market_ioc":{"quote_size":"1000"}}`
- }
- }
+- Order Configuration: {"market_market_ioc":{"quote_size":"1000"}}`,
+ },
+ },
],
[
{
user: "{{user1}}",
- content: { text: "Set a limit order to sell 0.5 ETH at $2000" }
+ content: { text: "Set a limit order to sell 0.5 ETH at $2000" },
},
{
user: "{{agentName}}",
@@ -357,11 +423,11 @@ export const executeAdvancedTradeAction: Action = {
- Order ID: CB-ADV-67890
- Success: true
- Response: {"success_response":{}}
-- Order Configuration: {"limit_limit_gtc":{"baseSize":"0.5","limitPrice":"2000","postOnly":false}}`
- }
- }
- ]
- ]
+- Order Configuration: {"limit_limit_gtc":{"baseSize":"0.5","limitPrice":"2000","postOnly":false}}`,
+ },
+ },
+ ],
+ ],
};
export const advancedTradePlugin: Plugin = {
@@ -369,4 +435,4 @@ export const advancedTradePlugin: Plugin = {
description: "Enables advanced trading using Coinbase Advanced Trading API",
actions: [executeAdvancedTradeAction],
providers: [tradeProvider],
-};
\ No newline at end of file
+};
diff --git a/packages/plugin-coinbase/src/plugins/commerce.ts b/packages/plugin-coinbase/src/plugins/commerce.ts
index 95d651df6d..7152cbcc84 100644
--- a/packages/plugin-coinbase/src/plugins/commerce.ts
+++ b/packages/plugin-coinbase/src/plugins/commerce.ts
@@ -1,7 +1,7 @@
import {
composeContext,
elizaLogger,
- generateObjectV2,
+ generateObject,
ModelClass,
Provider,
} from "@ai16z/eliza";
@@ -123,7 +123,8 @@ export const createCoinbaseChargeAction: Action = {
"GET_CHARGE_STATUS",
"LIST_CHARGES",
],
- description: "Create and manage payment charges using Coinbase Commerce. Supports fixed and dynamic pricing, multiple currencies (USD, EUR, USDC), and provides charge status tracking and management features.",
+ description:
+ "Create and manage payment charges using Coinbase Commerce. Supports fixed and dynamic pricing, multiple currencies (USD, EUR, USDC), and provides charge status tracking and management features.",
validate: async (runtime: IAgentRuntime, _message: Memory) => {
const coinbaseCommerceKeyOk = !!runtime.getSetting(
"COINBASE_COMMERCE_KEY"
@@ -151,7 +152,7 @@ export const createCoinbaseChargeAction: Action = {
template: chargeTemplate,
});
- const chargeDetails = await generateObjectV2({
+ const chargeDetails = await generateObject({
runtime,
context,
modelClass: ModelClass.LARGE,
@@ -407,7 +408,7 @@ export const getChargeDetailsAction: Action = {
state,
template: getChargeTemplate,
});
- const chargeDetails = await generateObjectV2({
+ const chargeDetails = await generateObject({
runtime,
context,
modelClass: ModelClass.LARGE,
@@ -506,7 +507,7 @@ export const chargeProvider: Provider = {
elizaLogger.log("Current Balances:", balances);
elizaLogger.log("Last Transactions:", transactions);
}
- const formattedCharges = charges.map(charge => ({
+ const formattedCharges = charges.map((charge) => ({
id: charge.id,
name: charge.name,
description: charge.description,
diff --git a/packages/plugin-coinbase/src/plugins/massPayments.ts b/packages/plugin-coinbase/src/plugins/massPayments.ts
index 41110615f9..bec340e58a 100644
--- a/packages/plugin-coinbase/src/plugins/massPayments.ts
+++ b/packages/plugin-coinbase/src/plugins/massPayments.ts
@@ -2,7 +2,7 @@ import { Coinbase, Wallet } from "@coinbase/coinbase-sdk";
import {
composeContext,
elizaLogger,
- generateObjectV2,
+ generateObject,
ModelClass,
Action,
IAgentRuntime,
@@ -118,97 +118,102 @@ async function executeMassPayout(
}
for (const address of receivingAddresses) {
elizaLogger.log("Processing payout for address:", address);
- if (address) {
- try {
- // Check balance before initiating transfer
+ if (address) {
+ try {
+ // Check balance before initiating transfer
- const walletBalance =
- await sendingWallet.getBalance(assetIdLowercase);
+ const walletBalance =
+ await sendingWallet.getBalance(assetIdLowercase);
- elizaLogger.log("Wallet balance for asset:", {
- assetId,
- walletBalance,
- });
+ elizaLogger.log("Wallet balance for asset:", {
+ assetId,
+ walletBalance,
+ });
- if (walletBalance.lessThan(transferAmount)) {
- const insufficientFunds = `Insufficient funds for address ${sendingWallet.getDefaultAddress()} to send to ${address}. Required: ${transferAmount}, Available: ${walletBalance}`;
- elizaLogger.error(insufficientFunds);
-
- transactions.push({
- address,
- amount: transferAmount,
- status: "Failed",
- errorCode: insufficientFunds,
- transactionUrl: null,
- });
- continue;
- }
-
- // Execute the transfer
- const transfer = await executeTransfer(
- sendingWallet,
- transferAmount,
- assetIdLowercase,
- address
- );
+ if (walletBalance.lessThan(transferAmount)) {
+ const insufficientFunds = `Insufficient funds for address ${sendingWallet.getDefaultAddress()} to send to ${address}. Required: ${transferAmount}, Available: ${walletBalance}`;
+ elizaLogger.error(insufficientFunds);
- transactions.push({
- address,
- amount: transfer.getAmount().toNumber(),
- status: "Success",
- errorCode: null,
- transactionUrl: transfer.getTransactionLink(),
- });
- } catch (error) {
- elizaLogger.error(
- "Error during transfer for address:",
- address,
- error
- );
transactions.push({
address,
amount: transferAmount,
status: "Failed",
- errorCode: error?.code || "Unknown Error",
+ errorCode: insufficientFunds,
transactionUrl: null,
});
+ continue;
}
- } else {
- elizaLogger.log("Skipping invalid or empty address.");
+
+ // Execute the transfer
+ const transfer = await executeTransfer(
+ sendingWallet,
+ transferAmount,
+ assetIdLowercase,
+ address
+ );
+
+ transactions.push({
+ address,
+ amount: transfer.getAmount().toNumber(),
+ status: "Success",
+ errorCode: null,
+ transactionUrl: transfer.getTransactionLink(),
+ });
+ } catch (error) {
+ elizaLogger.error(
+ "Error during transfer for address:",
+ address,
+ error
+ );
transactions.push({
- address: "Invalid or Empty",
+ address,
amount: transferAmount,
status: "Failed",
- errorCode: "Invalid Address",
+ errorCode: error?.code || "Unknown Error",
transactionUrl: null,
});
}
+ } else {
+ elizaLogger.log("Skipping invalid or empty address.");
+ transactions.push({
+ address: "Invalid or Empty",
+ amount: transferAmount,
+ status: "Failed",
+ errorCode: "Invalid Address",
+ transactionUrl: null,
+ });
}
- // Send 1% to charity
- const charityAddress = getCharityAddress(networkId);
+ }
+ // Send 1% to charity
+ const charityAddress = getCharityAddress(networkId);
- try {
- const charityTransfer = await executeTransfer(sendingWallet, transferAmount * 0.01, assetId, charityAddress);
+ try {
+ const charityTransfer = await executeTransfer(
+ sendingWallet,
+ transferAmount * 0.01,
+ assetId,
+ charityAddress
+ );
- transactions.push({
+ transactions.push({
address: charityAddress,
amount: charityTransfer.getAmount().toNumber(),
status: "Success",
errorCode: null,
- transactionUrl: charityTransfer.getTransactionLink(),
- });
- } catch (error) {
- elizaLogger.error("Error during charity transfer:", error);
- transactions.push({
- address: charityAddress,
- amount: transferAmount * 0.01,
- status: "Failed",
- errorCode: error?.message || "Unknown Error",
- transactionUrl: null,
- });
- }
- await appendTransactionsToCsv(transactions);
- elizaLogger.log("Finished processing mass payouts.");
+ transactionUrl: charityTransfer.getTransactionLink(),
+ });
+ } catch (error) {
+ elizaLogger.error("Error during charity transfer:", error);
+ transactions.push({
+ address: charityAddress,
+ amount: transferAmount * 0.01,
+ status: "Failed",
+ errorCode: error?.message || "Unknown Error",
+ transactionUrl: null,
+ });
+ }
+ await appendTransactionsToCsv(transactions);
+ elizaLogger.log("Finished processing mass payouts.");
return transactions;
}
@@ -261,7 +266,7 @@ export const sendMassPayoutAction: Action = {
template: transferTemplate,
});
- const transferDetails = await generateObjectV2({
+ const transferDetails = await generateObject({
runtime,
context,
modelClass: ModelClass.LARGE,
diff --git a/packages/plugin-coinbase/src/plugins/tokenContract.ts b/packages/plugin-coinbase/src/plugins/tokenContract.ts
index 5eaf10b632..3d587d79c2 100644
--- a/packages/plugin-coinbase/src/plugins/tokenContract.ts
+++ b/packages/plugin-coinbase/src/plugins/tokenContract.ts
@@ -8,7 +8,7 @@ import {
HandlerCallback,
State,
composeContext,
- generateObjectV2,
+ generateObject,
ModelClass,
} from "@ai16z/eliza";
import { initializeWallet } from "../utils";
@@ -39,13 +39,13 @@ const contractsCsvFilePath = path.join(baseDir, "contracts.csv");
// Add this helper at the top level
const serializeBigInt = (value: any): any => {
- if (typeof value === 'bigint') {
+ if (typeof value === "bigint") {
return value.toString();
}
if (Array.isArray(value)) {
return value.map(serializeBigInt);
}
- if (typeof value === 'object' && value !== null) {
+ if (typeof value === "object" && value !== null) {
return Object.fromEntries(
Object.entries(value).map(([k, v]) => [k, serializeBigInt(v)])
);
@@ -112,7 +112,7 @@ export const deployTokenContractAction: Action = {
template: tokenContractTemplate,
});
- const contractDetails = await generateObjectV2({
+ const contractDetails = await generateObject({
runtime,
context,
modelClass: ModelClass.SMALL,
@@ -323,7 +323,7 @@ export const invokeContractAction: Action = {
template: contractInvocationTemplate,
});
- const invocationDetails = await generateObjectV2({
+ const invocationDetails = await generateObject({
runtime,
context,
modelClass: ModelClass.LARGE,
@@ -340,8 +340,14 @@ export const invokeContractAction: Action = {
return;
}
- const { contractAddress, method, args, amount, assetId, networkId } =
- invocationDetails.object;
+ const {
+ contractAddress,
+ method,
+ args,
+ amount,
+ assetId,
+ networkId,
+ } = invocationDetails.object;
const wallet = await initializeWallet(runtime, networkId);
// Prepare invocation options
@@ -351,10 +357,10 @@ export const invokeContractAction: Action = {
abi: ABI,
args: {
...args,
- amount: args.amount || amount // Ensure amount is passed in args
+ amount: args.amount || amount, // Ensure amount is passed in args
},
networkId,
- assetId
+ assetId,
};
elizaLogger.log("Invocation options:", invocationOptions);
// Invoke the contract
@@ -445,15 +451,19 @@ Contract invocation has been logged to the CSV file.`,
export const readContractAction: Action = {
name: "READ_CONTRACT",
- description: "Read data from a deployed smart contract using the Coinbase SDK",
+ description:
+ "Read data from a deployed smart contract using the Coinbase SDK",
validate: async (runtime: IAgentRuntime, _message: Memory) => {
elizaLogger.log("Validating runtime for READ_CONTRACT...");
- return !!(
- runtime.character.settings.secrets?.COINBASE_API_KEY ||
- process.env.COINBASE_API_KEY
- ) && !!(
- runtime.character.settings.secrets?.COINBASE_PRIVATE_KEY ||
- process.env.COINBASE_PRIVATE_KEY
+ return (
+ !!(
+ runtime.character.settings.secrets?.COINBASE_API_KEY ||
+ process.env.COINBASE_API_KEY
+ ) &&
+ !!(
+ runtime.character.settings.secrets?.COINBASE_PRIVATE_KEY ||
+ process.env.COINBASE_PRIVATE_KEY
+ )
);
},
handler: async (
@@ -467,8 +477,12 @@ export const readContractAction: Action = {
try {
Coinbase.configure({
- apiKeyName: runtime.getSetting("COINBASE_API_KEY") ?? process.env.COINBASE_API_KEY,
- privateKey: runtime.getSetting("COINBASE_PRIVATE_KEY") ?? process.env.COINBASE_PRIVATE_KEY,
+ apiKeyName:
+ runtime.getSetting("COINBASE_API_KEY") ??
+ process.env.COINBASE_API_KEY,
+ privateKey:
+ runtime.getSetting("COINBASE_PRIVATE_KEY") ??
+ process.env.COINBASE_PRIVATE_KEY,
});
const context = composeContext({
@@ -476,7 +490,7 @@ export const readContractAction: Action = {
template: readContractTemplate,
});
- const readDetails = await generateObjectV2({
+ const readDetails = await generateObject({
runtime,
context,
modelClass: ModelClass.SMALL,
@@ -493,8 +507,15 @@ export const readContractAction: Action = {
return;
}
- const { contractAddress, method, args, networkId, abi } = readDetails.object;
- elizaLogger.log("Reading contract:", { contractAddress, method, args, networkId, abi });
+ const { contractAddress, method, args, networkId, abi } =
+ readDetails.object;
+ elizaLogger.log("Reading contract:", {
+ contractAddress,
+ method,
+ args,
+ networkId,
+ abi,
+ });
const result = await readContract({
networkId,
@@ -509,19 +530,24 @@ export const readContractAction: Action = {
elizaLogger.info("Contract read result:", serializedResult);
- callback({
- text: `Contract read successful:
+ callback(
+ {
+ text: `Contract read successful:
- Contract Address: ${contractAddress}
- Method: ${method}
- Network: ${networkId}
-- Result: ${JSON.stringify(serializedResult, null, 2)}`
- }, []);
-
+- Result: ${JSON.stringify(serializedResult, null, 2)}`,
+ },
+ []
+ );
} catch (error) {
elizaLogger.error("Error reading contract:", error);
- callback({
- text: `Failed to read contract: ${error instanceof Error ? error.message : "Unknown error"}`
- }, []);
+ callback(
+ {
+ text: `Failed to read contract: ${error instanceof Error ? error.message : "Unknown error"}`,
+ },
+ []
+ );
}
},
examples: [
@@ -549,6 +575,11 @@ export const readContractAction: Action = {
export const tokenContractPlugin: Plugin = {
name: "tokenContract",
- description: "Enables deployment, invocation, and reading of ERC20, ERC721, and ERC1155 token contracts using the Coinbase SDK",
- actions: [deployTokenContractAction, invokeContractAction, readContractAction],
+ description:
+ "Enables deployment, invocation, and reading of ERC20, ERC721, and ERC1155 token contracts using the Coinbase SDK",
+ actions: [
+ deployTokenContractAction,
+ invokeContractAction,
+ readContractAction,
+ ],
};
diff --git a/packages/plugin-coinbase/src/plugins/trade.ts b/packages/plugin-coinbase/src/plugins/trade.ts
index 9045261ba5..b0510f633d 100644
--- a/packages/plugin-coinbase/src/plugins/trade.ts
+++ b/packages/plugin-coinbase/src/plugins/trade.ts
@@ -1,4 +1,4 @@
-import { Coinbase} from "@coinbase/coinbase-sdk";
+import { Coinbase } from "@coinbase/coinbase-sdk";
import {
Action,
Plugin,
@@ -8,7 +8,7 @@ import {
HandlerCallback,
State,
composeContext,
- generateObjectV2,
+ generateObject,
ModelClass,
Provider,
} from "@ai16z/eliza";
@@ -132,7 +132,7 @@ export const executeTradeAction: Action = {
template: tradeTemplate,
});
- const tradeDetails = await generateObjectV2({
+ const tradeDetails = await generateObject({
runtime,
context,
modelClass: ModelClass.LARGE,
@@ -165,7 +165,13 @@ export const executeTradeAction: Action = {
return;
}
- const { trade, transfer } = await executeTradeAndCharityTransfer(runtime, network, amount, sourceAsset, targetAsset);
+ const { trade, transfer } = await executeTradeAndCharityTransfer(
+ runtime,
+ network,
+ amount,
+ sourceAsset,
+ targetAsset
+ );
let responseText = `Trade executed successfully:
- Network: ${network}
@@ -181,10 +187,7 @@ export const executeTradeAction: Action = {
responseText += "\n(Note: Charity transfer was not completed)";
}
- callback(
- { text: responseText },
- []
- );
+ callback({ text: responseText }, []);
} catch (error) {
elizaLogger.error("Error during trade execution:", error);
callback(
@@ -282,13 +285,13 @@ export const executeTradeAction: Action = {
],
],
similes: [
- "EXECUTE_TRADE", // Primary action name
- "SWAP_TOKENS", // For token swaps
- "CONVERT_CURRENCY", // For currency conversion
- "EXCHANGE_ASSETS", // For asset exchange
- "MARKET_BUY", // For buying assets
- "MARKET_SELL", // For selling assets
- "TRADE_CRYPTO", // Generic crypto trading
+ "EXECUTE_TRADE", // Primary action name
+ "SWAP_TOKENS", // For token swaps
+ "CONVERT_CURRENCY", // For currency conversion
+ "EXCHANGE_ASSETS", // For asset exchange
+ "MARKET_BUY", // For buying assets
+ "MARKET_SELL", // For selling assets
+ "TRADE_CRYPTO", // Generic crypto trading
],
};
diff --git a/packages/plugin-coinbase/src/plugins/webhooks.ts b/packages/plugin-coinbase/src/plugins/webhooks.ts
index 33be86c496..fedd2c0556 100644
--- a/packages/plugin-coinbase/src/plugins/webhooks.ts
+++ b/packages/plugin-coinbase/src/plugins/webhooks.ts
@@ -8,7 +8,7 @@ import {
HandlerCallback,
State,
composeContext,
- generateObjectV2,
+ generateObject,
ModelClass,
Provider,
} from "@ai16z/eliza";
@@ -93,7 +93,7 @@ export const createWebhookAction: Action = {
template: webhookTemplate,
});
- const webhookDetails = await generateObjectV2({
+ const webhookDetails = await generateObject({
runtime,
context,
modelClass: ModelClass.LARGE,
@@ -110,8 +110,11 @@ export const createWebhookAction: Action = {
return;
}
- const { networkId, eventType, eventFilters, eventTypeFilter } = webhookDetails.object as WebhookContent;
- const notificationUri = runtime.getSetting("COINBASE_NOTIFICATION_URI") ?? process.env.COINBASE_NOTIFICATION_URI;
+ const { networkId, eventType, eventFilters, eventTypeFilter } =
+ webhookDetails.object as WebhookContent;
+ const notificationUri =
+ runtime.getSetting("COINBASE_NOTIFICATION_URI") ??
+ process.env.COINBASE_NOTIFICATION_URI;
if (!notificationUri) {
callback(
@@ -122,9 +125,23 @@ export const createWebhookAction: Action = {
);
return;
}
- elizaLogger.log("Creating webhook with details:", {networkId, notificationUri, eventType, eventTypeFilter, eventFilters});
- const webhook = await Webhook.create({networkId, notificationUri, eventType, eventFilters});
- elizaLogger.log("Webhook created successfully:", webhook.toString());
+ elizaLogger.log("Creating webhook with details:", {
+ networkId,
+ notificationUri,
+ eventType,
+ eventTypeFilter,
+ eventFilters,
+ });
+ const webhook = await Webhook.create({
+ networkId,
+ notificationUri,
+ eventType,
+ eventFilters,
+ });
+ elizaLogger.log(
+ "Webhook created successfully:",
+ webhook.toString()
+ );
callback(
{
text: `Webhook created successfully: ${webhook.toString()}`,
@@ -160,7 +177,7 @@ export const createWebhookAction: Action = {
},
},
],
- ]
+ ],
};
export const webhookPlugin: Plugin = {
@@ -168,4 +185,4 @@ export const webhookPlugin: Plugin = {
description: "Manages webhooks using the Coinbase SDK.",
actions: [createWebhookAction],
providers: [webhookProvider],
-};
\ No newline at end of file
+};
diff --git a/packages/plugin-coinbase/src/utils.ts b/packages/plugin-coinbase/src/utils.ts
index c3e801a45f..74a0c4b9ae 100644
--- a/packages/plugin-coinbase/src/utils.ts
+++ b/packages/plugin-coinbase/src/utils.ts
@@ -1,5 +1,12 @@
-import { Coinbase, Trade, Transfer, Wallet, WalletData, Webhook } from "@coinbase/coinbase-sdk";
-import { elizaLogger, IAgentRuntime } from "@ai16z/eliza";
+import {
+ Coinbase,
+ Trade,
+ Transfer,
+ Wallet,
+ WalletData,
+ Webhook,
+} from "@coinbase/coinbase-sdk";
+import { elizaLogger, IAgentRuntime, settings } from "@ai16z/eliza";
import fs from "fs";
import path from "path";
import { EthereumTransaction } from "@coinbase/coinbase-sdk/dist/client";
@@ -56,7 +63,10 @@ export async function initializeWallet(
// save it to gitignored file
wallet.saveSeed(seedFilePath);
}
- elizaLogger.log("Wallet created and stored new wallet:", walletAddress);
+ elizaLogger.log(
+ "Wallet created and stored new wallet:",
+ walletAddress
+ );
} catch (error) {
elizaLogger.error("Error updating character secrets:", error);
throw error;
@@ -92,7 +102,13 @@ export async function initializeWallet(
* @param {string} sourceAsset - The source asset to trade.
* @param {string} targetAsset - The target asset to trade.
*/
-export async function executeTradeAndCharityTransfer(runtime: IAgentRuntime, network: string, amount: number, sourceAsset: string, targetAsset: string) {
+export async function executeTradeAndCharityTransfer(
+ runtime: IAgentRuntime,
+ network: string,
+ amount: number,
+ sourceAsset: string,
+ targetAsset: string
+) {
const wallet = await initializeWallet(runtime, network);
elizaLogger.log("Wallet initialized:", {
@@ -112,18 +128,25 @@ export async function executeTradeAndCharityTransfer(runtime: IAgentRuntime, net
let transfer: Transfer;
if (charityAddress && charityAmount > 0) {
- transfer = await executeTransfer(wallet, charityAmount, assetIdLowercase, charityAddress);
+ transfer = await executeTransfer(
+ wallet,
+ charityAmount,
+ assetIdLowercase,
+ charityAddress
+ );
elizaLogger.log("Charity Transfer successful:", {
address: charityAddress,
transactionUrl: transfer.getTransactionLink(),
});
- await appendTransactionsToCsv([{
- address: charityAddress,
- amount: charityAmount,
- status: "Success",
- errorCode: null,
- transactionUrl: transfer.getTransactionLink(),
- }]);
+ await appendTransactionsToCsv([
+ {
+ address: charityAddress,
+ amount: charityAmount,
+ status: "Success",
+ errorCode: null,
+ transactionUrl: transfer.getTransactionLink(),
+ },
+ ]);
}
const trade: Trade = await wallet.createTrade(tradeParams);
@@ -219,7 +242,7 @@ export async function appendWebhooksToCsv(webhooks: Webhook[]) {
});
await csvWriter.writeRecords([]); // Create an empty file with headers
elizaLogger.log("New CSV file created with headers.");
- }
+ }
const csvWriter = createArrayCsvWriter({
path: webhookCsvFilePath,
header: [
@@ -387,7 +410,13 @@ export async function getWalletDetails(
* @param {string} sourceAsset - The source asset to transfer.
* @param {string} targetAddress - The target address to transfer to.
*/
-export async function executeTransferAndCharityTransfer(wallet: Wallet, amount: number, sourceAsset: string, targetAddress: string, network: string) {
+export async function executeTransferAndCharityTransfer(
+ wallet: Wallet,
+ amount: number,
+ sourceAsset: string,
+ targetAddress: string,
+ network: string
+) {
const charityAddress = getCharityAddress(network);
const charityAmount = charityAddress ? amount * 0.01 : 0;
const transferAmount = charityAddress ? amount - charityAmount : amount;
@@ -395,8 +424,16 @@ export async function executeTransferAndCharityTransfer(wallet: Wallet, amount:
let charityTransfer: Transfer;
if (charityAddress && charityAmount > 0) {
- charityTransfer = await executeTransfer(wallet, charityAmount, assetIdLowercase, charityAddress);
- elizaLogger.log("Charity Transfer successful:", charityTransfer.toString());
+ charityTransfer = await executeTransfer(
+ wallet,
+ charityAmount,
+ assetIdLowercase,
+ charityAddress
+ );
+ elizaLogger.log(
+ "Charity Transfer successful:",
+ charityTransfer.toString()
+ );
}
const transferDetails = {
@@ -430,7 +467,7 @@ export async function executeTransferAndCharityTransfer(wallet: Wallet, amount:
transfer,
charityTransfer,
responseText,
- }
+ };
}
/**
@@ -440,7 +477,12 @@ export async function executeTransferAndCharityTransfer(wallet: Wallet, amount:
* @param {string} sourceAsset - The source asset to transfer.
* @param {string} targetAddress - The target address to transfer to.
*/
-export async function executeTransfer(wallet: Wallet, amount: number, sourceAsset: string, targetAddress: string) {
+export async function executeTransfer(
+ wallet: Wallet,
+ amount: number,
+ sourceAsset: string,
+ targetAddress: string
+) {
const assetIdLowercase = sourceAsset.toLowerCase();
const transferDetails = {
amount,
@@ -454,8 +496,8 @@ export async function executeTransfer(wallet: Wallet, amount: number, sourceAsse
transfer = await wallet.createTransfer(transferDetails);
elizaLogger.log("Transfer initiated:", transfer.toString());
await transfer.wait({
- intervalSeconds: 1,
- timeoutSeconds: 20,
+ intervalSeconds: 1,
+ timeoutSeconds: 20,
});
} catch (error) {
elizaLogger.error("Error executing transfer:", error);
@@ -465,20 +507,29 @@ export async function executeTransfer(wallet: Wallet, amount: number, sourceAsse
/**
* Gets the charity address based on the network.
- * For now we are giving to the following charity, but will make this configurable in the future
- * https://www.givedirectly.org/crypto/?_gl=1*va5e6k*_gcl_au*MTM1NDUzNTk5Mi4xNzMzMDczNjA3*_ga*OTIwMDMwNTMwLjE3MzMwNzM2MDg.*_ga_GV8XF9FJ16*MTczMzA3MzYwNy4xLjEuMTczMzA3MzYyMi40NS4wLjA.
* @param {string} network - The network to use.
+ * @param {boolean} isCharitable - Whether charity donations are enabled
+ * @throws {Error} If charity address for the network is not configured when charity is enabled
*/
-export function getCharityAddress(network: string): string | null {
- let charityAddress = null;
- if (network === "base") {
- charityAddress = "0x750EF1D7a0b4Ab1c97B7A623D7917CcEb5ea779C";
- } else if (network === "sol") {
- charityAddress = "pWvDXKu6CpbKKvKQkZvDA66hgsTB6X2AgFxksYogHLV";
- } else if (network === "eth") {
- charityAddress = "0x750EF1D7a0b4Ab1c97B7A623D7917CcEb5ea779C";
- } else {
+export function getCharityAddress(
+ network: string,
+ isCharitable: boolean = false
+): string | null {
+ // Check both environment variable and passed parameter
+ const isCharityEnabled =
+ process.env.IS_CHARITABLE === "true" && isCharitable;
+
+ if (!isCharityEnabled) {
return null;
}
+ const networkKey = `CHARITY_ADDRESS_${network.toUpperCase()}`;
+ const charityAddress = settings[networkKey];
+
+ if (!charityAddress) {
+ throw new Error(
+ `Charity address not configured for network ${network}. Please set ${networkKey} in your environment variables.`
+ );
+ }
+
return charityAddress;
}
diff --git a/packages/plugin-conflux/package.json b/packages/plugin-conflux/package.json
index dff1e471ac..1804d8f602 100644
--- a/packages/plugin-conflux/package.json
+++ b/packages/plugin-conflux/package.json
@@ -1,15 +1,15 @@
{
- "name": "@ai16z/plugin-conflux",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "cive": "0.7.1"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch"
- }
+ "name": "@ai16z/plugin-conflux",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "cive": "0.7.1"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch"
+ }
}
diff --git a/packages/plugin-conflux/src/actions/bridgeTransfer.ts b/packages/plugin-conflux/src/actions/bridgeTransfer.ts
index 8b34817c1b..e598df79ee 100644
--- a/packages/plugin-conflux/src/actions/bridgeTransfer.ts
+++ b/packages/plugin-conflux/src/actions/bridgeTransfer.ts
@@ -6,7 +6,7 @@ import {
HandlerCallback,
} from "@ai16z/eliza";
import {
- generateObjectV2,
+ generateObject,
composeContext,
ModelClass,
Content,
@@ -117,7 +117,7 @@ export const bridgeTransfer: Action = {
template: confluxBridgeTransferTemplate,
});
- const content = await generateObjectV2({
+ const content = await generateObject({
runtime,
context,
modelClass: ModelClass.LARGE,
diff --git a/packages/plugin-conflux/src/actions/confiPump.ts b/packages/plugin-conflux/src/actions/confiPump.ts
index 7346c8b4c7..ae0e9bb3ea 100644
--- a/packages/plugin-conflux/src/actions/confiPump.ts
+++ b/packages/plugin-conflux/src/actions/confiPump.ts
@@ -5,7 +5,7 @@ import {
State,
HandlerCallback,
} from "@ai16z/eliza";
-import { generateObjectV2, composeContext, ModelClass } from "@ai16z/eliza";
+import { generateObject, composeContext, ModelClass } from "@ai16z/eliza";
import {
createPublicClient,
createWalletClient,
@@ -184,7 +184,7 @@ export const confiPump: Action = {
template: confluxTransferTemplate,
});
- const content = await generateObjectV2({
+ const content = await generateObject({
runtime,
context,
modelClass: ModelClass.LARGE,
diff --git a/packages/plugin-conflux/src/actions/transfer.ts b/packages/plugin-conflux/src/actions/transfer.ts
index 553d0fb595..43e941e43f 100644
--- a/packages/plugin-conflux/src/actions/transfer.ts
+++ b/packages/plugin-conflux/src/actions/transfer.ts
@@ -6,7 +6,7 @@ import {
HandlerCallback,
} from "@ai16z/eliza";
import {
- generateObjectV2,
+ generateObject,
composeContext,
ModelClass,
Content,
@@ -94,7 +94,7 @@ export const transfer: Action = {
template: confluxTransferTemplate,
});
- const content = await generateObjectV2({
+ const content = await generateObject({
runtime,
context,
modelClass: ModelClass.SMALL,
diff --git a/packages/plugin-echochambers/package.json b/packages/plugin-echochambers/package.json
index 19723d0e59..511a06ea9f 100644
--- a/packages/plugin-echochambers/package.json
+++ b/packages/plugin-echochambers/package.json
@@ -1,15 +1,15 @@
-{
- "name": "@ai16z/plugin-echochambers",
- "version": "0.1.5-alpha.3",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@ai16z/plugin-node": "workspace:*"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch"
- }
-}
+{
+ "name": "@ai16z/plugin-echochambers",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@ai16z/plugin-node": "workspace:*"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch"
+ }
+}
diff --git a/packages/plugin-echochambers/src/interactions.ts b/packages/plugin-echochambers/src/interactions.ts
index be824e50dd..bf83d1c793 100644
--- a/packages/plugin-echochambers/src/interactions.ts
+++ b/packages/plugin-echochambers/src/interactions.ts
@@ -362,7 +362,7 @@ export class InteractionClient {
const response = await generateMessageResponse({
runtime: this.runtime,
context: responseContext,
- modelClass: ModelClass.SMALL,
+ modelClass: ModelClass.LARGE,
});
if (!response || !response.text) {
diff --git a/packages/plugin-evm/README.md b/packages/plugin-evm/README.md
new file mode 100644
index 0000000000..e09e6d6775
--- /dev/null
+++ b/packages/plugin-evm/README.md
@@ -0,0 +1,93 @@
+# `@ai16z/plugin-evm`
+
+This plugin provides actions and providers for interacting with EVM-compatible chains.
+
+---
+
+## Configuration
+
+### Default Setup
+
+By default, **Ethereum mainnet** is enabled. To use it, simply add your private key to the `.env` file:
+
+```env
+EVM_PRIVATE_KEY=your-private-key-here
+```
+
+### Adding Support for Other Chains
+
+To enable support for additional chains, add them to the character config like this:
+
+```json
+"settings": {
+ "chains": {
+ "evm": [
+ "base", "arbitrum", "iotex"
+ ]
+ }
+}
+```
+
+Note: The chain names must match those in the viem/chains.
+
+### Custom RPC URLs
+
+By default, the RPC URL is inferred from the `viem/chains` config. To use a custom RPC URL for a specific chain, add the following to your `.env` file:
+
+```env
+ETHEREUM_PROVIDER_=https://your-custom-rpc-url
+```
+
+**Example usage:**
+
+```env
+ETHEREUM_PROVIDER_IOTEX=https://iotex-network.rpc.thirdweb.com
+```
+
+#### Custom RPC for Ethereum Mainnet
+
+To set a custom RPC URL for Ethereum mainnet, use:
+
+```env
+EVM_PROVIDER_URL=https://your-custom-mainnet-rpc-url
+```
+
+## Provider
+
+The **Wallet Provider** initializes with the **first chain in the list** as the default (or Ethereum mainnet if none are added). It:
+
+- Provides the **context** of the currently connected address and its balance.
+- Creates **Public** and **Wallet clients** to interact with the supported chains.
+- Allows adding chains dynamically at runtime.
+
+---
+
+## Actions
+
+### Transfer
+
+Transfer tokens from one address to another on any EVM-compatible chain. Just specify the:
+
+- **Amount**
+- **Chain**
+- **Recipient Address**
+
+**Example usage:**
+
+```bash
+Transfer 1 ETH to 0xRecipient on arbitrum.
+```
+
+---
+
+## Contribution
+
+The plugin contains tests. Whether you're using **TDD** or not, please make sure to run the tests before submitting a PR.
+
+### Running Tests
+
+Navigate to the `plugin-evm` directory and run:
+
+```bash
+pnpm test
+```
diff --git a/packages/plugin-evm/package.json b/packages/plugin-evm/package.json
index b24d1045c7..c2c2148214 100644
--- a/packages/plugin-evm/package.json
+++ b/packages/plugin-evm/package.json
@@ -1,24 +1,23 @@
{
- "name": "@ai16z/plugin-evm",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@ai16z/plugin-trustdb": "workspace:*",
- "@lifi/data-types": "5.15.5",
- "@lifi/sdk": "3.4.1",
- "@lifi/types": "16.3.0",
- "tsup": "8.3.5",
- "viem": "2.21.53"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "test": "vitest run"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/plugin-evm",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@lifi/data-types": "5.15.5",
+ "@lifi/sdk": "3.4.1",
+ "@lifi/types": "16.3.0",
+ "tsup": "8.3.5",
+ "viem": "2.21.53"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "test": "vitest run"
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/plugin-evm/src/actions/transfer.ts b/packages/plugin-evm/src/actions/transfer.ts
index 5c3cb71957..61b2bacbbe 100644
--- a/packages/plugin-evm/src/actions/transfer.ts
+++ b/packages/plugin-evm/src/actions/transfer.ts
@@ -1,7 +1,7 @@
import { ByteArray, formatEther, parseEther, type Hex } from "viem";
import {
composeContext,
- generateObjectDEPRECATED,
+ generateObjectDeprecated,
HandlerCallback,
ModelClass,
type IAgentRuntime,
@@ -14,6 +14,8 @@ import type { Transaction, TransferParams } from "../types";
import { transferTemplate } from "../templates";
export { transferTemplate };
+
+// Exported for tests
export class TransferAction {
constructor(private walletProvider: WalletProvider) {}
@@ -22,6 +24,12 @@ export class TransferAction {
`Transferring: ${params.amount} tokens to (${params.toAddress} on ${params.fromChain})`
);
+ if (!params.data) {
+ params.data = "0x";
+ }
+
+ await this.walletProvider.switchChain(params.fromChain);
+
const walletClient = this.walletProvider.getWalletClient(
params.fromChain
);
@@ -76,7 +84,7 @@ const buildTransferDetails = async (
chains.toString()
);
- const transferDetails = (await generateObjectDEPRECATED({
+ const transferDetails = (await generateObjectDeprecated({
runtime,
context: contextWithChains,
modelClass: ModelClass.SMALL,
@@ -106,29 +114,44 @@ export const transferAction = {
options: any,
callback?: HandlerCallback
) => {
- try {
- const walletProvider = initWalletProvider(runtime);
- const action = new TransferAction(walletProvider);
- const transferDetails = await buildTransferDetails(
- state,
- runtime,
- walletProvider
- );
- const tx = await action.transfer(transferDetails);
+ console.log("Transfer action handler called");
+ const walletProvider = initWalletProvider(runtime);
+ const action = new TransferAction(walletProvider);
+
+ // Compose transfer context
+ const transferContext = composeContext({
+ state,
+ template: transferTemplate,
+ });
+
+ // Generate transfer content
+ const content = await generateObjectDeprecated({
+ runtime,
+ context: transferContext,
+ modelClass: ModelClass.LARGE,
+ });
+
+ const paramOptions: TransferParams = {
+ fromChain: content.fromChain,
+ toAddress: content.toAddress,
+ amount: content.amount,
+ data: content.data,
+ };
+ try {
+ const transferResp = await action.transfer(paramOptions);
if (callback) {
callback({
- text: `Successfully transferred ${formatEther(tx.value)} tokens to ${tx.to}\nTransaction hash: ${tx.hash}\nChain: ${transferDetails.fromChain}`,
+ text: `Successfully transferred ${paramOptions.amount} tokens to ${paramOptions.toAddress}\nTransaction Hash: ${transferResp.hash}`,
content: {
success: true,
- hash: tx.hash,
- amount: formatEther(tx.value),
- recipient: tx.to,
- chain: transferDetails.fromChain,
+ hash: transferResp.hash,
+ amount: formatEther(transferResp.value),
+ recipient: transferResp.to,
+ chain: content.fromChain,
},
});
}
-
return true;
} catch (error) {
console.error("Error during token transfer:", error);
diff --git a/packages/plugin-evm/src/templates/index.ts b/packages/plugin-evm/src/templates/index.ts
index 20d6ef19af..68c6be91d7 100644
--- a/packages/plugin-evm/src/templates/index.ts
+++ b/packages/plugin-evm/src/templates/index.ts
@@ -5,17 +5,19 @@ export const transferTemplate = `Given the recent messages and wallet informatio
{{walletInfo}}
Extract the following information about the requested transfer:
-- Chain to execute on (like in viem/chains)
-- Amount to transfer (only number without coin symbol)
-- Recipient address
+- Chain to execute on: Must be one of ["ethereum", "base", ...] (like in viem/chains)
+- Amount to transfer: Must be a string representing the amount in ETH (only number without coin symbol, e.g., "0.1")
+- Recipient address: Must be a valid Ethereum address starting with "0x"
+- Token symbol or address (if not native token): Optional, leave as null for ETH transfers
-Respond with a JSON markdown block containing only the extracted values:
+Respond with a JSON markdown block containing only the extracted values. All fields except 'token' are required:
\`\`\`json
{
"fromChain": SUPPORTED_CHAINS,
"amount": string,
- "toAddress": string
+ "toAddress": string,
+ "token": string | null
}
\`\`\`
`;
diff --git a/packages/plugin-flow/package.json b/packages/plugin-flow/package.json
index ae0fd2976b..8f3e0e84d5 100644
--- a/packages/plugin-flow/package.json
+++ b/packages/plugin-flow/package.json
@@ -1,37 +1,36 @@
{
- "name": "@ai16z/plugin-flow",
- "version": "0.1.5-alpha.0",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@ai16z/plugin-trustdb": "workspace:*",
- "@onflow/config": "1.5.1",
- "@onflow/fcl": "1.13.1",
- "@onflow/typedefs": "1.4.0",
- "bignumber.js": "9.1.2",
- "bs58": "6.0.0",
- "elliptic": "6.6.1",
- "node-cache": "5.1.2",
- "sha3": "2.1.4",
- "uuid": "11.0.3",
- "zod": "3.23.8"
- },
- "devDependencies": {
- "@types/elliptic": "6.4.18",
- "@types/uuid": "10.0.0",
- "tsup": "8.3.5",
- "vitest": "2.1.4"
- },
- "scripts": {
- "lines": "find . \\( -name '*.cdc' -o -name '*.ts' \\) -not -path '*/node_modules/*' -not -path '*/tests/*' -not -path '*/deps/*' -not -path '*/dist/*' -not -path '*/imports*' | xargs wc -l",
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix",
- "test": "vitest run"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/plugin-flow",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@onflow/config": "1.5.1",
+ "@onflow/fcl": "1.13.1",
+ "@onflow/typedefs": "1.4.0",
+ "bignumber.js": "9.1.2",
+ "bs58": "6.0.0",
+ "elliptic": "6.6.1",
+ "node-cache": "5.1.2",
+ "sha3": "2.1.4",
+ "uuid": "11.0.3",
+ "zod": "3.23.8"
+ },
+ "devDependencies": {
+ "@types/elliptic": "6.4.18",
+ "@types/uuid": "10.0.0",
+ "tsup": "8.3.5",
+ "vitest": "2.1.4"
+ },
+ "scripts": {
+ "lines": "find . \\( -name '*.cdc' -o -name '*.ts' \\) -not -path '*/node_modules/*' -not -path '*/tests/*' -not -path '*/deps/*' -not -path '*/dist/*' -not -path '*/imports*' | xargs wc -l",
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache .",
+ "test": "vitest run"
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/plugin-goat/package.json b/packages/plugin-goat/package.json
index 3581f8343b..2fa2ff69f0 100644
--- a/packages/plugin-goat/package.json
+++ b/packages/plugin-goat/package.json
@@ -1,22 +1,23 @@
{
- "name": "@ai16z/plugin-goat",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@goat-sdk/core": "0.3.8",
- "@goat-sdk/plugin-erc20": "0.1.7",
- "@goat-sdk/wallet-viem": "0.1.3",
- "tsup": "8.3.5",
- "viem": "2.21.53"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/plugin-goat",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@goat-sdk/core": "0.3.8",
+ "@goat-sdk/plugin-erc20": "0.1.7",
+ "@goat-sdk/wallet-viem": "0.1.3",
+ "@goat-sdk/plugin-coingecko": "0.1.4",
+ "tsup": "8.3.5",
+ "viem": "2.21.53"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch"
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/plugin-goat/src/actions.ts b/packages/plugin-goat/src/actions.ts
index df4f1c906b..9b767ab154 100644
--- a/packages/plugin-goat/src/actions.ts
+++ b/packages/plugin-goat/src/actions.ts
@@ -14,7 +14,7 @@ import {
ModelClass,
type State,
composeContext,
- generateObjectV2,
+ generateObject,
} from "@ai16z/eliza";
type GetOnChainActionsParams = {
@@ -125,7 +125,7 @@ async function generateParameters(
context: string,
tool: Tool
): Promise {
- const { object } = await generateObjectV2({
+ const { object } = await generateObject({
runtime,
context,
modelClass: ModelClass.LARGE,
diff --git a/packages/plugin-icp/package.json b/packages/plugin-icp/package.json
index 4c14bacbf3..9cc544a052 100644
--- a/packages/plugin-icp/package.json
+++ b/packages/plugin-icp/package.json
@@ -1,24 +1,24 @@
{
- "name": "@ai16z/plugin-icp",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@dfinity/agent": "2.1.3",
- "@dfinity/candid": "2.1.3",
- "@dfinity/identity": "2.1.3",
- "@dfinity/principal": "2.1.3"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch"
- },
- "devDependencies": {
- "@types/jest": "29.5.14",
- "jest": "29.7.0",
- "tsup": "8.3.5",
- "typescript": "5.6.3"
- }
+ "name": "@ai16z/plugin-icp",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@dfinity/agent": "2.1.3",
+ "@dfinity/candid": "2.1.3",
+ "@dfinity/identity": "2.1.3",
+ "@dfinity/principal": "2.1.3"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch"
+ },
+ "devDependencies": {
+ "@types/jest": "29.5.14",
+ "jest": "29.7.0",
+ "tsup": "8.3.5",
+ "typescript": "5.6.3"
+ }
}
diff --git a/packages/plugin-icp/src/actions/createToken.ts b/packages/plugin-icp/src/actions/createToken.ts
index b33c0f302f..726c2abffa 100644
--- a/packages/plugin-icp/src/actions/createToken.ts
+++ b/packages/plugin-icp/src/actions/createToken.ts
@@ -2,7 +2,7 @@ import {
composeContext,
generateImage,
generateText,
- generateObjectDEPRECATED,
+ generateObjectDeprecated,
} from "@ai16z/eliza";
import {
ActionExample,
@@ -148,7 +148,7 @@ export const executeCreateToken: Action = {
template: createTokenTemplate,
});
- const response = await generateObjectDEPRECATED({
+ const response = await generateObjectDeprecated({
runtime,
context: createTokenContext,
modelClass: ModelClass.LARGE,
diff --git a/packages/plugin-image-generation/package.json b/packages/plugin-image-generation/package.json
index 950df7ead5..2a332bd324 100644
--- a/packages/plugin-image-generation/package.json
+++ b/packages/plugin-image-generation/package.json
@@ -1,19 +1,19 @@
{
- "name": "@ai16z/plugin-image-generation",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "tsup": "8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/plugin-image-generation",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache ."
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/plugin-image-generation/src/environment.ts b/packages/plugin-image-generation/src/environment.ts
index 3426b4bf34..b5189fe097 100644
--- a/packages/plugin-image-generation/src/environment.ts
+++ b/packages/plugin-image-generation/src/environment.ts
@@ -8,6 +8,7 @@ export const imageGenEnvSchema = z
HEURIST_API_KEY: z.string().optional(),
FAL_API_KEY: z.string().optional(),
OPENAI_API_KEY: z.string().optional(),
+ VENICE_API_KEY: z.string().optional(),
})
.refine(
(data) => {
@@ -16,12 +17,13 @@ export const imageGenEnvSchema = z
data.TOGETHER_API_KEY ||
data.HEURIST_API_KEY ||
data.FAL_API_KEY ||
- data.OPENAI_API_KEY
+ data.OPENAI_API_KEY ||
+ data.VENICE_API_KEY
);
},
{
message:
- "At least one of ANTHROPIC_API_KEY, TOGETHER_API_KEY, HEURIST_API_KEY, FAL_API_KEY or OPENAI_API_KEY is required",
+ "At least one of ANTHROPIC_API_KEY, TOGETHER_API_KEY, HEURIST_API_KEY, FAL_API_KEY, OPENAI_API_KEY or VENICE_API_KEY is required",
}
);
@@ -46,6 +48,9 @@ export async function validateImageGenConfig(
OPENAI_API_KEY:
runtime.getSetting("OPENAI_API_KEY") ||
process.env.OPENAI_API_KEY,
+ VENICE_API_KEY:
+ runtime.getSetting("VENICE_API_KEY") ||
+ process.env.VENICE_API_KEY,
};
return imageGenEnvSchema.parse(config);
diff --git a/packages/plugin-image-generation/src/index.ts b/packages/plugin-image-generation/src/index.ts
index 4a9a702334..fd7f8b5246 100644
--- a/packages/plugin-image-generation/src/index.ts
+++ b/packages/plugin-image-generation/src/index.ts
@@ -84,13 +84,15 @@ const imageGeneration: Action = {
const heuristApiKeyOk = !!runtime.getSetting("HEURIST_API_KEY");
const falApiKeyOk = !!runtime.getSetting("FAL_API_KEY");
const openAiApiKeyOk = !!runtime.getSetting("OPENAI_API_KEY");
+ const veniceApiKeyOk = !!runtime.getSetting("VENICE_API_KEY");
return (
anthropicApiKeyOk ||
togetherApiKeyOk ||
heuristApiKeyOk ||
falApiKeyOk ||
- openAiApiKeyOk
+ openAiApiKeyOk ||
+ veniceApiKeyOk
);
},
handler: async (
@@ -205,6 +207,7 @@ const imageGeneration: Action = {
source: "imageGeneration",
description: "...", //caption.title,
text: "...", //caption.description,
+ contentType: "image",
},
],
},
diff --git a/packages/plugin-intiface/package.json b/packages/plugin-intiface/package.json
index 16cc574f3e..baeb6864fd 100644
--- a/packages/plugin-intiface/package.json
+++ b/packages/plugin-intiface/package.json
@@ -1,21 +1,21 @@
{
- "name": "@ai16z/plugin-intiface",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "buttplug": "3.2.2",
- "net": "1.0.2",
- "tsup": "8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "test-via-bun": "bun test/simulate.ts"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/plugin-intiface",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "buttplug": "3.2.2",
+ "net": "1.0.2",
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "test-via-bun": "bun test/simulate.ts"
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/plugin-multiversx/.npmignore b/packages/plugin-multiversx/.npmignore
new file mode 100644
index 0000000000..078562ecea
--- /dev/null
+++ b/packages/plugin-multiversx/.npmignore
@@ -0,0 +1,6 @@
+*
+
+!dist/**
+!package.json
+!readme.md
+!tsup.config.ts
\ No newline at end of file
diff --git a/packages/plugin-multiversx/eslint.config.mjs b/packages/plugin-multiversx/eslint.config.mjs
new file mode 100644
index 0000000000..92fe5bbebe
--- /dev/null
+++ b/packages/plugin-multiversx/eslint.config.mjs
@@ -0,0 +1,3 @@
+import eslintGlobalConfig from "../../eslint.config.mjs";
+
+export default [...eslintGlobalConfig];
diff --git a/packages/plugin-multiversx/package.json b/packages/plugin-multiversx/package.json
new file mode 100644
index 0000000000..b28afbc545
--- /dev/null
+++ b/packages/plugin-multiversx/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "@ai16z/plugin-multiversx",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@multiversx/sdk-core": "13.15.0",
+ "bignumber.js": "9.1.2",
+ "browserify": "^17.0.1",
+ "esbuild-plugin-polyfill-node": "^0.3.0",
+ "esmify": "^2.1.1",
+ "tsup": "8.3.5",
+ "vitest": "2.1.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "test": "vitest run",
+ "test:watch": "vitest",
+ "lint": "eslint . --fix"
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
+}
diff --git a/packages/plugin-multiversx/readme.md b/packages/plugin-multiversx/readme.md
new file mode 100644
index 0000000000..0c26c8b537
--- /dev/null
+++ b/packages/plugin-multiversx/readme.md
@@ -0,0 +1,12 @@
+# MultiversX Plugin
+
+## Overview
+
+This plugin aims to be the basis of all interactions with the MultiversX ecosystem.
+
+## Adding a new action
+
+Reuse providers and utilities from the existing actions where possible. Add more utilities if you think they will be useful for other actions.
+
+1. Add the action to the `actions` directory. Try to follow the naming convention of the other actions.
+2. Export the action in the `index.ts` file.
diff --git a/packages/plugin-multiversx/src/actions/createToken.ts b/packages/plugin-multiversx/src/actions/createToken.ts
new file mode 100644
index 0000000000..a64f784dc0
--- /dev/null
+++ b/packages/plugin-multiversx/src/actions/createToken.ts
@@ -0,0 +1,161 @@
+import {
+ elizaLogger,
+ ActionExample,
+ Content,
+ HandlerCallback,
+ IAgentRuntime,
+ Memory,
+ ModelClass,
+ State,
+ generateObject,
+ composeContext,
+ type Action,
+} from "@ai16z/eliza";
+import { WalletProvider } from "../providers/wallet";
+import { validateMultiversxConfig } from "../enviroment";
+
+export interface CreateTokenContent extends Content {
+ tokenName: string;
+ tokenTicker: string;
+ decimals: string;
+ amount: string;
+}
+
+function isCreateTokenContent(
+ runtime: IAgentRuntime,
+ content: any
+): content is CreateTokenContent {
+ console.log("Content for create token", content);
+ return content.tokenName && content.tokenTicker && content.amount;
+}
+
+const createTokenTemplate = `Respond with a JSON markdown block containing only the extracted values. Use null for any values that cannot be determined.
+
+Example response:
+\`\`\`json
+{
+ "tokenName": "TEST",
+ "tokenTicker": "TST",
+ "amount: 100,
+ "decimals": 18
+}
+\`\`\`
+
+{{recentMessages}}
+
+Given the recent messages, extract the following information about the requested token creation:
+- Token name
+- Token ticker
+- Amount
+- Decimals
+
+Respond with a JSON markdown block containing only the extracted values.`;
+
+export default {
+ name: "CREATE_TOKEN",
+ similes: ["DEPLOY_TOKEN"],
+ validate: async (runtime: IAgentRuntime, message: Memory) => {
+ console.log("Validating config for user:", message.userId);
+ await validateMultiversxConfig(runtime);
+ return true;
+ },
+ description: "Create a new token.",
+ handler: async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State,
+ _options: { [key: string]: unknown },
+ callback?: HandlerCallback
+ ) => {
+ elizaLogger.log("Starting CREATE_TOKEN handler...");
+
+ // Initialize or update state
+ if (!state) {
+ state = (await runtime.composeState(message)) as State;
+ } else {
+ state = await runtime.updateRecentMessageState(state);
+ }
+
+ // Compose transfer context
+ const transferContext = composeContext({
+ state,
+ template: createTokenTemplate,
+ });
+
+ // Generate transfer content
+ const content = await generateObject({
+ runtime,
+ context: transferContext,
+ modelClass: ModelClass.SMALL,
+ });
+
+ // Validate transfer content
+ if (!isCreateTokenContent(runtime, content)) {
+ console.error("Invalid content for TRANSFER_TOKEN action.");
+ if (callback) {
+ callback({
+ text: "Unable to process transfer request. Invalid content provided.",
+ content: { error: "Invalid transfer content" },
+ });
+ }
+ return false;
+ }
+
+ try {
+ const privateKey = runtime.getSetting("MVX_PRIVATE_KEY");
+ const network = runtime.getSetting("MVX_NETWORK");
+
+ const walletProvider = new WalletProvider(privateKey, network);
+
+ await walletProvider.createESDT({
+ tokenName: content.tokenName,
+ amount: content.amount,
+ decimals: Number(content.decimals) || 18,
+ tokenTicker: content.tokenTicker,
+ });
+ return true;
+ } catch (error) {
+ console.error("Error during creating token:", error);
+ if (callback) {
+ callback({
+ text: `Error creating token: ${error.message}`,
+ content: { error: error.message },
+ });
+ }
+ return false;
+ }
+ },
+
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Create a token XTREME with ticker XTR and supply of 10000",
+ action: "CREATE_TOKEN",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Succesfully created token.",
+ },
+ },
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Create a token TEST with ticker TST, 18 decimals and supply of 10000",
+ action: "CREATE_TOKEN",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Succesfully created token.",
+ },
+ },
+ ],
+ ] as ActionExample[][],
+} as Action;
diff --git a/packages/plugin-multiversx/src/actions/transfer.ts b/packages/plugin-multiversx/src/actions/transfer.ts
new file mode 100644
index 0000000000..076cef248c
--- /dev/null
+++ b/packages/plugin-multiversx/src/actions/transfer.ts
@@ -0,0 +1,177 @@
+import {
+ elizaLogger,
+ ActionExample,
+ Content,
+ HandlerCallback,
+ IAgentRuntime,
+ Memory,
+ ModelClass,
+ State,
+ composeContext,
+ generateObject,
+ type Action,
+} from "@ai16z/eliza";
+import { WalletProvider } from "../providers/wallet";
+import { validateMultiversxConfig } from "../enviroment";
+
+export interface TransferContent extends Content {
+ tokenAddress: string;
+ amount: string;
+ tokenIdentifier?: string;
+}
+
+function isTransferContent(
+ _runtime: IAgentRuntime,
+ content: any
+): content is TransferContent {
+ console.log("Content for transfer", content);
+ return (
+ typeof content.tokenAddress === "string" &&
+ typeof content.amount === "string"
+ );
+}
+
+const transferTemplate = `Respond with a JSON markdown block containing only the extracted values. Use null for any values that cannot be determined.
+
+Example response:
+\`\`\`json
+{
+ "tokenAddress": "erd12r22hx2q4jjt8e0gukxt5shxqjp9ys5nwdtz0gpds25zf8qwtjdqyzfgzm",
+ "amount": "1",
+ "tokenIdentifier": "PEPE-3eca7c"
+}
+\`\`\`
+
+{{recentMessages}}
+
+Given the recent messages, extract the following information about the requested token transfer:
+- Token address
+- Amount to transfer
+- Token identifier
+
+Respond with a JSON markdown block containing only the extracted values.`;
+
+export default {
+ name: "SEND_TOKEN",
+ similes: [
+ "TRANSFER_TOKEN",
+ "TRANSFER_TOKENS",
+ "SEND_TOKENS",
+ "SEND_EGLD",
+ "PAY",
+ ],
+ validate: async (runtime: IAgentRuntime, message: Memory) => {
+ console.log("Validating config for user:", message.userId);
+ await validateMultiversxConfig(runtime);
+ return true;
+ },
+ description: "Transfer tokens from the agent wallet to another address",
+ handler: async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State,
+ _options: { [key: string]: unknown },
+ callback?: HandlerCallback
+ ) => {
+ elizaLogger.log("Starting SEND_TOKEN handler...");
+
+ // Initialize or update state
+ if (!state) {
+ state = (await runtime.composeState(message)) as State;
+ } else {
+ state = await runtime.updateRecentMessageState(state);
+ }
+
+ // Compose transfer context
+ const transferContext = composeContext({
+ state,
+ template: transferTemplate,
+ });
+
+ // Generate transfer content
+ const content = await generateObject({
+ runtime,
+ context: transferContext,
+ modelClass: ModelClass.SMALL,
+ });
+
+ // Validate transfer content
+ if (!isTransferContent(runtime, content)) {
+ console.error("Invalid content for TRANSFER_TOKEN action.");
+ if (callback) {
+ callback({
+ text: "Unable to process transfer request. Invalid content provided.",
+ content: { error: "Invalid transfer content" },
+ });
+ }
+ return false;
+ }
+
+ try {
+ const privateKey = runtime.getSetting("MVX_PRIVATE_KEY");
+ const network = runtime.getSetting("MVX_NETWORK");
+
+ const walletProvider = new WalletProvider(privateKey, network);
+
+ if (
+ content.tokenIdentifier &&
+ content.tokenIdentifier.toLowerCase() !== "egld"
+ ) {
+ await walletProvider.sendESDT({
+ receiverAddress: content.tokenAddress,
+ amount: content.amount,
+ identifier: content.tokenIdentifier,
+ });
+ return true;
+ }
+
+ await walletProvider.sendEGLD({
+ receiverAddress: content.tokenAddress,
+ amount: content.amount,
+ });
+ return true;
+ } catch (error) {
+ console.error("Error during token transfer:", error);
+ if (callback) {
+ callback({
+ text: `Error transferring tokens: ${error.message}`,
+ content: { error: error.message },
+ });
+ }
+ return "";
+ }
+ },
+
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Send 1 EGLD to erd12r22hx2q4jjt8e0gukxt5shxqjp9ys5nwdtz0gpds25zf8qwtjdqyzfgzm",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "I'll send 1 EGLD tokens now...",
+ action: "SEND_TOKEN",
+ },
+ },
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Send 1 TST-a8b23d to erd12r22hx2q4jjt8e0gukxt5shxqjp9ys5nwdtz0gpds25zf8qwtjdqyzfgzm",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "I'll send 1 TST-a8b23d tokens now...",
+ action: "SEND_TOKEN",
+ },
+ },
+ ],
+ ] as ActionExample[][],
+} as Action;
diff --git a/packages/plugin-multiversx/src/enviroment.ts b/packages/plugin-multiversx/src/enviroment.ts
new file mode 100644
index 0000000000..b1d9b2d3e8
--- /dev/null
+++ b/packages/plugin-multiversx/src/enviroment.ts
@@ -0,0 +1,37 @@
+import { IAgentRuntime } from "@ai16z/eliza";
+import { z } from "zod";
+
+export const multiversxEnvSchema = z.object({
+ MVX_PRIVATE_KEY: z
+ .string()
+ .min(1, "MultiversX wallet private key is required"),
+ MVX_NETWORK: z.enum(["mainnet", "devnet", "testnet"]),
+});
+
+export type MultiversxConfig = z.infer;
+
+export async function validateMultiversxConfig(
+ runtime: IAgentRuntime
+): Promise {
+ try {
+ const config = {
+ MVX_PRIVATE_KEY:
+ runtime.getSetting("MVX_PRIVATE_KEY") ||
+ process.env.MVX_PRIVATE_KEY,
+ MVX_NETWORK:
+ runtime.getSetting("MVX_NETWORK") || process.env.MVX_NETWORK,
+ };
+
+ return multiversxEnvSchema.parse(config);
+ } catch (error) {
+ if (error instanceof z.ZodError) {
+ const errorMessages = error.errors
+ .map((err) => `${err.path.join(".")}: ${err.message}`)
+ .join("\n");
+ throw new Error(
+ `MultiversX configuration validation failed:\n${errorMessages}`
+ );
+ }
+ throw error;
+ }
+}
diff --git a/packages/plugin-multiversx/src/index.ts b/packages/plugin-multiversx/src/index.ts
new file mode 100644
index 0000000000..70f60deaae
--- /dev/null
+++ b/packages/plugin-multiversx/src/index.ts
@@ -0,0 +1,13 @@
+import { Plugin } from "@ai16z/eliza";
+import transfer from "./actions/transfer";
+import createToken from "./actions/createToken";
+
+export const multiversxPlugin: Plugin = {
+ name: "multiversx",
+ description: "MultiversX Plugin for Eliza",
+ actions: [transfer, createToken],
+ evaluators: [],
+ providers: [],
+};
+
+export default multiversxPlugin;
diff --git a/packages/plugin-multiversx/src/providers/wallet.ts b/packages/plugin-multiversx/src/providers/wallet.ts
new file mode 100644
index 0000000000..8d6d2d02a5
--- /dev/null
+++ b/packages/plugin-multiversx/src/providers/wallet.ts
@@ -0,0 +1,301 @@
+import { elizaLogger } from "@ai16z/eliza";
+import {
+ UserSigner,
+ Address,
+ TransactionComputer,
+ ApiNetworkProvider,
+ UserSecretKey,
+ TokenTransfer,
+ TransferTransactionsFactory,
+ TransactionsFactoryConfig,
+ Token,
+ Transaction,
+ TokenManagementTransactionsFactory,
+} from "@multiversx/sdk-core";
+import { denominateAmount } from "../utils/amount";
+
+// Network configuration object for different environments (mainnet, devnet, testnet)
+const MVX_NETWORK_CONFIG = {
+ mainnet: {
+ chainID: "1", // Mainnet chain ID
+ apiURL: "https://api.multiversx.com", // Mainnet API URL
+ explorerURL: "https://explorer.multiversx.com",
+ },
+ devnet: {
+ chainID: "D", // Devnet chain ID
+ apiURL: "https://devnet-api.multiversx.com", // Devnet API URL,
+ explorerURL: "https://devnet-explorer.multiversx.com",
+ },
+ testnet: {
+ chainID: "T", // Testnet chain ID
+ apiURL: "https://testnet-api.multiversx.com", // Testnet API URL
+ explorerURL: "https://testnet-explorer.multiversx.com",
+ },
+};
+
+// WalletProvider class handles wallet-related operations, such as signing transactions, retrieving balance, and sending tokens
+export class WalletProvider {
+ private signer: UserSigner; // Handles cryptographic signing
+ private apiNetworkProvider: ApiNetworkProvider; // Interacts with the MultiversX network
+ private chainID: string; // Current network chain ID
+ private explorerURL: string; // Current network explorer URL
+
+ /**
+ * Constructor to initialize WalletProvider with a private key and network configuration
+ * @param privateKey - User's private key for signing transactions
+ * @param network - Target network (mainnet, devnet, or testnet)
+ */
+ constructor(privateKey: string, network: string) {
+ if (!MVX_NETWORK_CONFIG[network]) {
+ throw new Error(`Unsupported network: ${network}`); // Validate network
+ }
+
+ const networkConfig = MVX_NETWORK_CONFIG[network];
+ this.chainID = networkConfig.chainID;
+ this.explorerURL = networkConfig.explorerURL;
+
+ // Initialize the signer with the user's private key
+ const secretKey = UserSecretKey.fromString(privateKey);
+ this.signer = new UserSigner(secretKey);
+
+ // Set up the network provider for API interactions
+ this.apiNetworkProvider = new ApiNetworkProvider(networkConfig.apiURL, {
+ clientName: "eliza-mvx",
+ });
+ }
+
+ /**
+ * Retrieve the wallet address derived from the private key
+ * @returns Address object
+ */
+ public getAddress(): Address {
+ return this.signer.getAddress();
+ }
+
+ /**
+ * Fetch the wallet's current EGLD balance
+ * @returns Promise resolving to the wallet's balance as a string
+ */
+ public async getBalance(): Promise {
+ const address = new Address(this.getAddress());
+ const account = await this.apiNetworkProvider.getAccount(address);
+ return account.balance.toString(); // Return balance as a string
+ }
+
+ /**
+ * Sign a transaction using the wallet's private key
+ * @param transaction - The transaction object to sign
+ * @returns The transaction signature as a string
+ */
+ public async signTransaction(transaction: Transaction) {
+ const computer = new TransactionComputer();
+ const serializedTx = computer.computeBytesForSigning(transaction); // Prepare transaction for signing
+ const signature = await this.signer.sign(serializedTx); // Sign the transaction
+ return signature;
+ }
+
+ /**
+ * Send EGLD tokens to another wallet
+ * @param receiverAddress - Recipient's wallet address
+ * @param amount - Amount of EGLD to send
+ * @returns Transaction hash as a string
+ */
+ public async sendEGLD({
+ receiverAddress,
+ amount,
+ }: {
+ receiverAddress: string;
+ amount: string;
+ }): Promise {
+ try {
+ const receiver = new Address(receiverAddress);
+ const value = denominateAmount({ amount, decimals: 18 }); // Convert amount to the smallest unit
+ const senderAddress = this.getAddress();
+
+ // Prepare the transaction factory with the current chain ID
+ const factoryConfig = new TransactionsFactoryConfig({
+ chainID: this.chainID,
+ });
+ const factory = new TransferTransactionsFactory({
+ config: factoryConfig,
+ });
+
+ // Create a native EGLD transfer transaction
+ const transaction = factory.createTransactionForNativeTokenTransfer(
+ {
+ sender: this.getAddress(),
+ receiver: receiver,
+ nativeAmount: BigInt(value),
+ }
+ );
+
+ // Get the sender's account details to set the nonce
+ const account =
+ await this.apiNetworkProvider.getAccount(senderAddress);
+ transaction.nonce = BigInt(account.nonce);
+
+ // Sign the transaction
+ const signature = await this.signTransaction(transaction);
+ transaction.signature = signature;
+
+ // Broadcast the transaction to the network
+ const txHash =
+ await this.apiNetworkProvider.sendTransaction(transaction);
+
+ elizaLogger.log(`TxHash: ${txHash}`); // Log transaction hash
+ elizaLogger.log(
+ `Transaction URL: ${this.explorerURL}/transactions/${txHash}`
+ ); // View Transaction
+ return txHash;
+ } catch (error) {
+ console.error("Error sending EGLD transaction:", error);
+ throw new Error(
+ `Failed to send EGLD: ${error.message || "Unknown error"}`
+ );
+ }
+ }
+
+ /**
+ * Send ESDT (eStandard Digital Token) tokens to another wallet
+ * @param receiverAddress - Recipient's wallet address
+ * @param amount - Amount of ESDT to send
+ * @param identifier - ESDT token identifier (e.g., PEPE-3eca7c)
+ * @returns Transaction hash as a string
+ */
+ public async sendESDT({
+ receiverAddress,
+ amount,
+ identifier,
+ }: {
+ receiverAddress: string;
+ amount: string;
+ identifier: string;
+ }): Promise {
+ try {
+ const address = this.getAddress();
+
+ // Set up transaction factory for ESDT transfers
+ const config = new TransactionsFactoryConfig({
+ chainID: this.chainID,
+ });
+ const factory = new TransferTransactionsFactory({ config });
+
+ // Retrieve token details to determine the token's decimals
+ const token =
+ await this.apiNetworkProvider.getFungibleTokenOfAccount(
+ address,
+ identifier
+ );
+
+ // Convert amount to the token's smallest unit
+ const value = denominateAmount({
+ amount,
+ decimals: token.rawResponse.decimals,
+ });
+
+ // Create an ESDT transfer transaction
+ const transaction = factory.createTransactionForESDTTokenTransfer({
+ sender: this.getAddress(),
+ receiver: new Address(receiverAddress),
+ tokenTransfers: [
+ new TokenTransfer({
+ token: new Token({ identifier }),
+ amount: BigInt(value),
+ }),
+ ],
+ });
+
+ // Set the transaction nonce
+ const account = await this.apiNetworkProvider.getAccount(address);
+ transaction.nonce = BigInt(account.nonce);
+
+ // Sign and broadcast the transaction
+ const signature = await this.signTransaction(transaction);
+ transaction.signature = signature;
+ const txHash =
+ await this.apiNetworkProvider.sendTransaction(transaction);
+
+ elizaLogger.log(`TxHash: ${txHash}`); // Log transaction hash
+ elizaLogger.log(
+ `Transaction URL: ${this.explorerURL}/transactions/${txHash}`
+ ); // View Transaction
+ return txHash;
+ } catch (error) {
+ console.error("Error sending ESDT transaction:", error);
+ throw new Error(
+ `Failed to send ESDT: ${error.message || "Unknown error"}`
+ );
+ }
+ }
+
+ /**
+ * Create a new eStandard Digital Token (ESDT).
+ * @param tokenName - The name of the token to be created.
+ * @param tokenTicker - The ticker symbol for the token.
+ * @param amount - The initial supply of the token.
+ * @param decimals - The number of decimal places for the token.
+ * @returns The transaction hash of the created ESDT.
+ */
+ public async createESDT({
+ tokenName,
+ tokenTicker,
+ amount,
+ decimals,
+ }: {
+ tokenName: string;
+ tokenTicker: string;
+ amount: string;
+ decimals: number;
+ }): Promise {
+ try {
+ const address = this.getAddress(); // Retrieve the sender's address
+
+ const factoryConfig = new TransactionsFactoryConfig({
+ chainID: this.chainID, // Set the chain ID for the transaction factory
+ });
+ const factory = new TokenManagementTransactionsFactory({
+ config: factoryConfig, // Initialize the factory with the configuration
+ });
+
+ const totalSupply = denominateAmount({ amount, decimals });
+
+ // Create a transaction for issuing a fungible token
+ const transaction = factory.createTransactionForIssuingFungible({
+ sender: new Address(address), // Specify the sender's address
+ tokenName, // Name of the token
+ tokenTicker: tokenTicker.toUpperCase(), // Token ticker in uppercase
+ initialSupply: BigInt(totalSupply), // Initial supply as a BigInt
+ numDecimals: BigInt(decimals), // Number of decimals as a BigInt
+ canFreeze: false, // Token cannot be frozen
+ canWipe: false, // Token cannot be wiped
+ canPause: false, // Token cannot be paused
+ canChangeOwner: true, // Ownership can be changed
+ canUpgrade: true, // Token can be upgraded
+ canAddSpecialRoles: true, // Special roles can be added
+ });
+
+ // Fetch the account details to set the nonce
+ const account = await this.apiNetworkProvider.getAccount(address);
+ transaction.nonce = BigInt(account.nonce); // Set the nonce for the transaction
+
+ const signature = await this.signTransaction(transaction); // Sign the transaction
+ transaction.signature = signature; // Attach the signature to the transaction
+
+ // Send the transaction to the network and get the transaction hash
+ const txHash =
+ await this.apiNetworkProvider.sendTransaction(transaction);
+
+ elizaLogger.log(`TxHash: ${txHash}`); // Log the transaction hash
+ elizaLogger.log(
+ `Transaction URL: ${this.explorerURL}/transactions/${txHash}`
+ ); // View Transaction
+
+ return txHash; // Return the transaction hash
+ } catch (error) {
+ console.error("Error creating ESDT:", error);
+ throw new Error(
+ `Failed to create ESDT: ${error.message || "Unknown error"}`
+ ); // Throw an error if creation fails
+ }
+ }
+}
diff --git a/packages/plugin-multiversx/src/tests/wallet.test.ts b/packages/plugin-multiversx/src/tests/wallet.test.ts
new file mode 100644
index 0000000000..c147c4dc9a
--- /dev/null
+++ b/packages/plugin-multiversx/src/tests/wallet.test.ts
@@ -0,0 +1,19 @@
+import { describe, it, expect, beforeEach } from "vitest";
+import { WalletProvider } from "../providers/wallet";
+
+describe("WalletProvider", () => {
+ let walletProvider: WalletProvider;
+
+ beforeEach(() => {
+ // Test wallet private key
+ const privateKey =
+ "b5a356fb7e5563e6b07887f1de0376f9c74f2affaa71d41941dbc002ea13f656";
+ const network = "devnet";
+ walletProvider = new WalletProvider(privateKey, network);
+ });
+
+ it("should retrieve the wallet address", () => {
+ const address = walletProvider.getAddress();
+ expect(address).toBeDefined();
+ });
+});
diff --git a/packages/plugin-multiversx/src/utils/amount.ts b/packages/plugin-multiversx/src/utils/amount.ts
new file mode 100644
index 0000000000..a3f8f90161
--- /dev/null
+++ b/packages/plugin-multiversx/src/utils/amount.ts
@@ -0,0 +1,15 @@
+import BigNumber from "bignumber.js";
+
+BigNumber.config({ ROUNDING_MODE: BigNumber.ROUND_FLOOR });
+
+type PayloadType = {
+ amount: string;
+ decimals: number;
+};
+
+export const denominateAmount = ({ amount, decimals }: PayloadType) => {
+ return new BigNumber(amount)
+ .shiftedBy(decimals)
+ .decimalPlaces(0)
+ .toFixed(0);
+};
diff --git a/packages/plugin-multiversx/tsconfig.json b/packages/plugin-multiversx/tsconfig.json
new file mode 100644
index 0000000000..005fbac9d3
--- /dev/null
+++ b/packages/plugin-multiversx/tsconfig.json
@@ -0,0 +1,8 @@
+{
+ "extends": "../core/tsconfig.json",
+ "compilerOptions": {
+ "outDir": "dist",
+ "rootDir": "src"
+ },
+ "include": ["src/**/*.ts"]
+}
diff --git a/packages/plugin-multiversx/tsup.config.ts b/packages/plugin-multiversx/tsup.config.ts
new file mode 100644
index 0000000000..4f0ac8513d
--- /dev/null
+++ b/packages/plugin-multiversx/tsup.config.ts
@@ -0,0 +1,20 @@
+import { defineConfig } from "tsup";
+import { polyfillNode } from "esbuild-plugin-polyfill-node";
+
+export default defineConfig({
+ entry: ["src/index.ts"],
+ outDir: "dist",
+ sourcemap: true,
+ clean: true,
+ format: ["esm"], // Ensure you're targeting CommonJS
+ external: [
+ "dotenv", // Externalize dotenv to prevent bundling
+ "@reflink/reflink",
+ "@node-llama-cpp",
+ "agentkeepalive",
+ "zod",
+ "zlib",
+ // Add other modules you want to externalize
+ ],
+ esbuildPlugins: [polyfillNode()],
+});
diff --git a/packages/plugin-near/.npmignore b/packages/plugin-near/.npmignore
new file mode 100644
index 0000000000..078562ecea
--- /dev/null
+++ b/packages/plugin-near/.npmignore
@@ -0,0 +1,6 @@
+*
+
+!dist/**
+!package.json
+!readme.md
+!tsup.config.ts
\ No newline at end of file
diff --git a/packages/plugin-near/eslint.config.mjs b/packages/plugin-near/eslint.config.mjs
new file mode 100644
index 0000000000..92fe5bbebe
--- /dev/null
+++ b/packages/plugin-near/eslint.config.mjs
@@ -0,0 +1,3 @@
+import eslintGlobalConfig from "../../eslint.config.mjs";
+
+export default [...eslintGlobalConfig];
diff --git a/packages/plugin-near/package.json b/packages/plugin-near/package.json
new file mode 100644
index 0000000000..58470e79c3
--- /dev/null
+++ b/packages/plugin-near/package.json
@@ -0,0 +1,25 @@
+{
+ "name": "@ai16z/plugin-near",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@ref-finance/ref-sdk": "^1.4.6",
+ "tsup": "8.3.5",
+ "near-api-js": "5.0.1",
+ "bignumber.js": "9.1.2",
+ "node-cache": "5.1.2"
+ },
+ "scripts": {
+ "build": "tsup --format esm,cjs --dts",
+ "test": "vitest run",
+ "test:watch": "vitest",
+ "lint": "eslint . --fix"
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0",
+ "form-data": "4.0.1"
+ }
+}
diff --git a/packages/plugin-near/src/actions/swap.ts b/packages/plugin-near/src/actions/swap.ts
new file mode 100644
index 0000000000..e12f5774b8
--- /dev/null
+++ b/packages/plugin-near/src/actions/swap.ts
@@ -0,0 +1,336 @@
+import {
+ ActionExample,
+ HandlerCallback,
+ IAgentRuntime,
+ Memory,
+ ModelClass,
+ State,
+ type Action,
+ composeContext,
+ generateObject,
+} from "@ai16z/eliza";
+import { connect, keyStores, utils } from "near-api-js";
+import {
+ init_env,
+ ftGetTokenMetadata,
+ estimateSwap,
+ instantSwap,
+ fetchAllPools,
+ FT_MINIMUM_STORAGE_BALANCE_LARGE,
+ ONE_YOCTO_NEAR,
+} from "@ref-finance/ref-sdk";
+import { walletProvider } from "../providers/wallet";
+import { KeyPairString } from "near-api-js/lib/utils";
+
+async function checkStorageBalance(
+ account: any,
+ contractId: string
+): Promise {
+ try {
+ const balance = await account.viewFunction({
+ contractId,
+ methodName: "storage_balance_of",
+ args: { account_id: account.accountId },
+ });
+ return balance !== null && balance.total !== "0";
+ } catch (error) {
+ console.log(`Error checking storage balance: ${error}`);
+ return false;
+ }
+}
+
+async function swapToken(
+ runtime: IAgentRuntime,
+ inputTokenId: string,
+ outputTokenId: string,
+ amount: string,
+ slippageTolerance: number = Number(
+ runtime.getSetting("SLIPPAGE_TOLERANCE")
+ ) || 0.01
+): Promise {
+ try {
+ // Get token metadata
+ const tokenIn = await ftGetTokenMetadata(inputTokenId);
+ const tokenOut = await ftGetTokenMetadata(outputTokenId);
+ const networkId = runtime.getSetting("NEAR_NETWORK") || "testnet";
+ const nodeUrl =
+ runtime.getSetting("RPC_URL") || "https://rpc.testnet.near.org";
+
+ // Get all pools for estimation
+ // ratedPools, unRatedPools,
+ const { simplePools } = await fetchAllPools();
+ const swapTodos = await estimateSwap({
+ tokenIn,
+ tokenOut,
+ amountIn: amount,
+ simplePools,
+ options: {
+ enableSmartRouting: true,
+ },
+ });
+
+ if (!swapTodos || swapTodos.length === 0) {
+ throw new Error("No valid swap route found");
+ }
+
+ // Get account ID from runtime settings
+ const accountId = runtime.getSetting("NEAR_ADDRESS");
+ if (!accountId) {
+ throw new Error("NEAR_ADDRESS not configured");
+ }
+
+ const secretKey = runtime.getSetting("NEAR_WALLET_SECRET_KEY");
+ const keyStore = new keyStores.InMemoryKeyStore();
+ const keyPair = utils.KeyPair.fromString(secretKey as KeyPairString);
+ await keyStore.setKey(networkId, accountId, keyPair);
+
+ const nearConnection = await connect({
+ networkId,
+ keyStore,
+ nodeUrl,
+ });
+
+ const account = await nearConnection.account(accountId);
+
+ // Check storage balance for both tokens
+ const hasStorageIn = await checkStorageBalance(account, inputTokenId);
+ const hasStorageOut = await checkStorageBalance(account, outputTokenId);
+
+ const transactions = await instantSwap({
+ tokenIn,
+ tokenOut,
+ amountIn: amount,
+ swapTodos,
+ slippageTolerance,
+ AccountId: accountId,
+ });
+
+ // If storage deposit is needed, add it to transactions
+ if (!hasStorageIn) {
+ transactions.unshift({
+ receiverId: inputTokenId,
+ functionCalls: [
+ {
+ methodName: "storage_deposit",
+ args: {
+ account_id: accountId,
+ registration_only: true,
+ },
+ gas: "30000000000000",
+ amount: FT_MINIMUM_STORAGE_BALANCE_LARGE,
+ },
+ ],
+ });
+ }
+
+ if (!hasStorageOut) {
+ transactions.unshift({
+ receiverId: outputTokenId,
+ functionCalls: [
+ {
+ methodName: "storage_deposit",
+ args: {
+ account_id: accountId,
+ registration_only: true,
+ },
+ gas: "30000000000000",
+ amount: FT_MINIMUM_STORAGE_BALANCE_LARGE,
+ },
+ ],
+ });
+ }
+
+ return transactions;
+ } catch (error) {
+ console.error("Error in swapToken:", error);
+ throw error;
+ }
+}
+
+const swapTemplate = `Respond with a JSON markdown block containing only the extracted values. Use null for any values that cannot be determined.
+
+Example response:
+\`\`\`json
+{
+ "inputTokenId": "wrap.testnet",
+ "outputTokenId": "ref.fakes.testnet",
+ "amount": "1.5"
+}
+\`\`\`
+
+{{recentMessages}}
+
+Given the recent messages and wallet information below:
+
+{{walletInfo}}
+
+Extract the following information about the requested token swap:
+- Input token ID (the token being sold)
+- Output token ID (the token being bought)
+- Amount to swap
+
+Respond with a JSON markdown block containing only the extracted values. Use null for any values that cannot be determined. The result should be a valid JSON object with the following schema:
+\`\`\`json
+{
+ "inputTokenId": string | null,
+ "outputTokenId": string | null,
+ "amount": string | null
+}
+\`\`\``;
+
+export const executeSwap: Action = {
+ name: "EXECUTE_SWAP_NEAR",
+ similes: [
+ "SWAP_TOKENS_NEAR",
+ "TOKEN_SWAP_NEAR",
+ "TRADE_TOKENS_NEAR",
+ "EXCHANGE_TOKENS_NEAR",
+ ],
+ validate: async (runtime: IAgentRuntime, message: Memory) => {
+ console.log("Message:", message);
+ return true;
+ },
+ description: "Perform a token swap using Ref Finance.",
+ handler: async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State,
+ _options: { [key: string]: unknown },
+ callback?: HandlerCallback
+ ): Promise => {
+ // Initialize Ref SDK with testnet environment
+ init_env(runtime.getSetting("NEAR_NETWORK") || "testnet");
+ // Compose state
+ if (!state) {
+ state = (await runtime.composeState(message)) as State;
+ } else {
+ state = await runtime.updateRecentMessageState(state);
+ }
+
+ const walletInfo = await walletProvider.get(runtime, message, state);
+ state.walletInfo = walletInfo;
+
+ const swapContext = composeContext({
+ state,
+ template: swapTemplate,
+ });
+
+ const response = await generateObject({
+ runtime,
+ context: swapContext,
+ modelClass: ModelClass.LARGE,
+ });
+
+ console.log("Response:", response);
+
+ if (
+ !response.inputTokenId ||
+ !response.outputTokenId ||
+ !response.amount
+ ) {
+ console.log("Missing required parameters, skipping swap");
+ const responseMsg = {
+ text: "I need the input token ID, output token ID, and amount to perform the swap",
+ };
+ callback?.(responseMsg);
+ return true;
+ }
+
+ try {
+ // Get account credentials
+ const accountId = runtime.getSetting("NEAR_ADDRESS");
+ const secretKey = runtime.getSetting("NEAR_WALLET_SECRET_KEY");
+
+ if (!accountId || !secretKey) {
+ throw new Error("NEAR wallet credentials not configured");
+ }
+
+ // Create keystore and connect to NEAR
+ const keyStore = new keyStores.InMemoryKeyStore();
+ const keyPair = utils.KeyPair.fromString(
+ secretKey as KeyPairString
+ );
+ await keyStore.setKey("testnet", accountId, keyPair);
+
+ const nearConnection = await connect({
+ networkId: runtime.getSetting("NEAR_NETWORK") || "testnet",
+ keyStore,
+ nodeUrl:
+ runtime.getSetting("RPC_URL") ||
+ "https://rpc.testnet.near.org",
+ });
+
+ // Execute swap
+ const swapResult = await swapToken(
+ runtime,
+ response.inputTokenId,
+ response.outputTokenId,
+ response.amount,
+ Number(runtime.getSetting("SLIPPAGE_TOLERANCE")) || 0.01
+ );
+
+ // Sign and send transactions
+ const account = await nearConnection.account(accountId);
+ const results = [];
+
+ for (const tx of swapResult) {
+ for (const functionCall of tx.functionCalls) {
+ const result = await account.functionCall({
+ contractId: tx.receiverId,
+ methodName: functionCall.methodName,
+ args: functionCall.args,
+ gas: functionCall.gas,
+ attachedDeposit: BigInt(
+ functionCall.amount === ONE_YOCTO_NEAR
+ ? "1"
+ : functionCall.amount
+ ),
+ });
+ results.push(result);
+ }
+ }
+
+ console.log("Swap completed successfully!");
+ const txHashes = results.map((r) => r.transaction.hash).join(", ");
+
+ const responseMsg = {
+ text: `Swap completed successfully! Transaction hashes: ${txHashes}`,
+ };
+
+ callback?.(responseMsg);
+ return true;
+ } catch (error) {
+ console.error("Error during token swap:", error);
+ const responseMsg = {
+ text: `Error during swap: ${error instanceof Error ? error.message : String(error)}`,
+ };
+ callback?.(responseMsg);
+ return false;
+ }
+ },
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ inputTokenId: "wrap.testnet",
+ outputTokenId: "ref.fakes.testnet",
+ amount: "1.0",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Swapping 1.0 NEAR for REF...",
+ action: "TOKEN_SWAP",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Swap completed successfully! Transaction hash: ...",
+ },
+ },
+ ],
+ ] as ActionExample[][],
+} as Action;
diff --git a/packages/plugin-near/src/actions/transfer.ts b/packages/plugin-near/src/actions/transfer.ts
new file mode 100644
index 0000000000..181c5645de
--- /dev/null
+++ b/packages/plugin-near/src/actions/transfer.ts
@@ -0,0 +1,200 @@
+import {
+ ActionExample,
+ Content,
+ HandlerCallback,
+ IAgentRuntime,
+ Memory,
+ ModelClass,
+ State,
+ type Action,
+ composeContext,
+ generateObject,
+} from "@ai16z/eliza";
+import { connect, keyStores, utils } from "near-api-js";
+import { KeyPairString } from "near-api-js/lib/utils";
+import { utils as nearUtils } from "near-api-js";
+// import BigNumber from "bignumber.js";
+
+export interface TransferContent extends Content {
+ recipient: string;
+ amount: string | number;
+ tokenAddress?: string; // Optional for native NEAR transfers
+}
+
+function isTransferContent(
+ runtime: IAgentRuntime,
+ content: any
+): content is TransferContent {
+ return (
+ typeof content.recipient === "string" &&
+ (typeof content.amount === "string" ||
+ typeof content.amount === "number")
+ );
+}
+
+const transferTemplate = `Respond with a JSON markdown block containing only the extracted values. Use null for any values that cannot be determined.
+
+Example response:
+\`\`\`json
+{
+ "recipient": "bob.near",
+ "amount": "1.5",
+ "tokenAddress": null
+}
+\`\`\`
+
+{{recentMessages}}
+
+Given the recent messages and wallet information below:
+
+{{walletInfo}}
+
+Extract the following information about the requested token transfer:
+- Recipient address (NEAR account)
+- Amount to transfer
+- Token contract address (null for native NEAR transfers)
+
+Respond with a JSON markdown block containing only the extracted values.`;
+
+async function transferNEAR(
+ runtime: IAgentRuntime,
+ recipient: string,
+ amount: string
+): Promise {
+ const networkId = runtime.getSetting("NEAR_NETWORK") || "testnet";
+ const nodeUrl =
+ runtime.getSetting("RPC_URL") || "https://rpc.testnet.near.org";
+ const accountId = runtime.getSetting("NEAR_ADDRESS");
+ const secretKey = runtime.getSetting("NEAR_WALLET_SECRET_KEY");
+
+ if (!accountId || !secretKey) {
+ throw new Error("NEAR wallet credentials not configured");
+ }
+
+ // Convert amount to yoctoNEAR (1 NEAR = 10^24 yoctoNEAR)
+ // const yoctoAmount = new BigNumber(amount).multipliedBy(new BigNumber(10).pow(24)).toFixed(0);
+
+ // Create keystore and connect to NEAR
+ const keyStore = new keyStores.InMemoryKeyStore();
+ const keyPair = utils.KeyPair.fromString(secretKey as KeyPairString);
+ await keyStore.setKey(networkId, accountId, keyPair);
+
+ const nearConnection = await connect({
+ networkId,
+ keyStore,
+ nodeUrl,
+ });
+
+ const account = await nearConnection.account(accountId);
+
+ // Execute transfer
+ const result = await account.sendMoney(
+ recipient,
+ BigInt(nearUtils.format.parseNearAmount(amount)!)
+ );
+
+ return result.transaction.hash;
+}
+
+export const executeTransfer: Action = {
+ name: "SEND_NEAR",
+ similes: ["TRANSFER_NEAR", "SEND_TOKENS", "TRANSFER_TOKENS", "PAY_NEAR"],
+ validate: async (_runtime: IAgentRuntime, _message: Memory) => {
+ return true; // Add your validation logic here
+ },
+ description: "Transfer NEAR tokens to another account",
+ handler: async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State,
+ _options: { [key: string]: unknown },
+ callback?: HandlerCallback
+ ): Promise => {
+ // Initialize or update state
+ if (!state) {
+ state = (await runtime.composeState(message)) as State;
+ } else {
+ state = await runtime.updateRecentMessageState(state);
+ }
+
+ // Compose transfer context
+ const transferContext = composeContext({
+ state,
+ template: transferTemplate,
+ });
+
+ // Generate transfer content
+ const content = await generateObject({
+ runtime,
+ context: transferContext,
+ modelClass: ModelClass.SMALL,
+ });
+
+ // Validate transfer content
+ if (!isTransferContent(runtime, content)) {
+ console.error("Invalid content for TRANSFER_NEAR action.");
+ if (callback) {
+ callback({
+ text: "Unable to process transfer request. Invalid content provided.",
+ content: { error: "Invalid transfer content" },
+ });
+ }
+ return false;
+ }
+
+ try {
+ const txHash = await transferNEAR(
+ runtime,
+ content.recipient,
+ content.amount.toString()
+ );
+
+ if (callback) {
+ callback({
+ text: `Successfully transferred ${content.amount} NEAR to ${content.recipient}\nTransaction: ${txHash}`,
+ content: {
+ success: true,
+ signature: txHash,
+ amount: content.amount,
+ recipient: content.recipient,
+ },
+ });
+ }
+
+ return true;
+ } catch (error) {
+ console.error("Error during NEAR transfer:", error);
+ if (callback) {
+ callback({
+ text: `Error transferring NEAR: ${error}`,
+ content: { error: error },
+ });
+ }
+ return false;
+ }
+ },
+
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Send 1.5 NEAR to bob.testnet",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "I'll send 1.5 NEAR now...",
+ action: "SEND_NEAR",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Successfully sent 1.5 NEAR to bob.testnet\nTransaction: ABC123XYZ",
+ },
+ },
+ ],
+ ] as ActionExample[][],
+} as Action;
diff --git a/packages/plugin-near/src/environment.ts b/packages/plugin-near/src/environment.ts
new file mode 100644
index 0000000000..cc51187027
--- /dev/null
+++ b/packages/plugin-near/src/environment.ts
@@ -0,0 +1,104 @@
+import { IAgentRuntime } from "@ai16z/eliza";
+import { z } from "zod";
+
+// Add ENV variable at the top
+let ENV: string = "testnet";
+
+export const nearEnvSchema = z.object({
+ NEAR_WALLET_SECRET_KEY: z.string().min(1, "Wallet secret key is required"),
+ NEAR_WALLET_PUBLIC_KEY: z.string().min(1, "Wallet public key is required"),
+ NEAR_ADDRESS: z.string().min(1, "Near address is required"),
+ SLIPPAGE: z.string().min(1, "Slippage is required"),
+ RPC_URL: z.string().min(1, "RPC URL is required"),
+ networkId: z.string(),
+ nodeUrl: z.string(),
+ walletUrl: z.string(),
+ WRAP_NEAR_CONTRACT_ID: z.string(),
+ REF_FI_CONTRACT_ID: z.string(),
+ REF_TOKEN_ID: z.string(),
+ indexerUrl: z.string(),
+ explorerUrl: z.string(),
+ REF_DCL_SWAP_CONTRACT_ID: z.string(),
+});
+
+export type NearConfig = z.infer;
+
+export function getConfig(
+ env: string | undefined | null = ENV ||
+ process.env.NEAR_ENV ||
+ process.env.REACT_APP_REF_SDK_ENV
+) {
+ ENV = env || "testnet";
+ switch (env) {
+ case 'mainnet':
+ return {
+ networkId: 'mainnet',
+ nodeUrl: 'https://rpc.mainnet.near.org',
+ walletUrl: 'https://wallet.near.org',
+ WRAP_NEAR_CONTRACT_ID: 'wrap.near',
+ REF_FI_CONTRACT_ID: 'v2.ref-finance.near',
+ REF_TOKEN_ID: 'token.v2.ref-finance.near',
+ indexerUrl: 'https://indexer.ref.finance',
+ explorerUrl: 'https://testnet.nearblocks.io',
+ REF_DCL_SWAP_CONTRACT_ID: 'dclv2.ref-labs.near',
+ };
+ case 'testnet':
+ return {
+ networkId: 'testnet',
+ nodeUrl: 'https://rpc.testnet.near.org',
+ walletUrl: 'https://wallet.testnet.near.org',
+ indexerUrl: 'https://testnet-indexer.ref-finance.com',
+ WRAP_NEAR_CONTRACT_ID: 'wrap.testnet',
+ REF_FI_CONTRACT_ID: 'ref-finance-101.testnet',
+ REF_TOKEN_ID: 'ref.fakes.testnet',
+ explorerUrl: 'https://testnet.nearblocks.io',
+ REF_DCL_SWAP_CONTRACT_ID: 'dclv2.ref-dev.testnet',
+ };
+ default:
+ return {
+ networkId: 'mainnet',
+ nodeUrl: 'https://rpc.mainnet.near.org',
+ walletUrl: 'https://wallet.near.org',
+ REF_FI_CONTRACT_ID: 'v2.ref-finance.near',
+ WRAP_NEAR_CONTRACT_ID: 'wrap.near',
+ REF_TOKEN_ID: 'token.v2.ref-finance.near',
+ indexerUrl: 'https://indexer.ref.finance',
+ explorerUrl: 'https://nearblocks.io',
+ REF_DCL_SWAP_CONTRACT_ID: 'dclv2.ref-labs.near',
+ };
+ }
+}
+
+export async function validateNearConfig(
+ runtime: IAgentRuntime
+): Promise {
+ try {
+ const envConfig = getConfig(runtime.getSetting("NEAR_ENV") ?? undefined);
+ const config = {
+ NEAR_WALLET_SECRET_KEY:
+ runtime.getSetting("NEAR_WALLET_SECRET_KEY") ||
+ process.env.NEAR_WALLET_SECRET_KEY,
+ NEAR_WALLET_PUBLIC_KEY:
+ runtime.getSetting("NEAR_PUBLIC_KEY") ||
+ runtime.getSetting("NEAR_WALLET_PUBLIC_KEY") ||
+ process.env.NEAR_WALLET_PUBLIC_KEY,
+ NEAR_ADDRESS:
+ runtime.getSetting("NEAR_ADDRESS") || process.env.NEAR_ADDRESS,
+ SLIPPAGE: runtime.getSetting("SLIPPAGE") || process.env.SLIPPAGE,
+ RPC_URL: runtime.getSetting("RPC_URL") || process.env.RPC_URL,
+ ...envConfig // Spread the environment-specific config
+ };
+
+ return nearEnvSchema.parse(config);
+ } catch (error) {
+ if (error instanceof z.ZodError) {
+ const errorMessages = error.errors
+ .map((err) => `${err.path.join(".")}: ${err.message}`)
+ .join("\n");
+ throw new Error(
+ `Near configuration validation failed:\n${errorMessages}`
+ );
+ }
+ throw error;
+ }
+}
diff --git a/packages/plugin-near/src/index.ts b/packages/plugin-near/src/index.ts
new file mode 100644
index 0000000000..6c57aa5ad3
--- /dev/null
+++ b/packages/plugin-near/src/index.ts
@@ -0,0 +1,15 @@
+import { Plugin } from "@ai16z/eliza/src/types";
+import { walletProvider } from "./providers/wallet";
+// import { executeCreateToken } from "./actions/createToken";
+import { executeSwap } from "./actions/swap";
+import { executeTransfer } from './actions/transfer';
+
+export const nearPlugin: Plugin = {
+ name: "NEAR",
+ description: "Near Protocol Plugin for Eliza",
+ providers: [walletProvider],
+ actions: [executeSwap, executeTransfer],
+ evaluators: [],
+};
+
+export default nearPlugin;
diff --git a/packages/plugin-near/src/providers/wallet.ts b/packages/plugin-near/src/providers/wallet.ts
new file mode 100644
index 0000000000..a5fdb149c2
--- /dev/null
+++ b/packages/plugin-near/src/providers/wallet.ts
@@ -0,0 +1,226 @@
+import { IAgentRuntime, Memory, Provider, State } from "@ai16z/eliza";
+import { KeyPair, keyStores, connect, Account, utils } from "near-api-js";
+import BigNumber from "bignumber.js";
+import { KeyPairString } from "near-api-js/lib/utils";
+import NodeCache from "node-cache";
+
+const PROVIDER_CONFIG = {
+ networkId: process.env.NEAR_NETWORK || "testnet",
+ nodeUrl: process.env.RPC_URL || `https://rpc.${process.env.NEAR_NETWORK || "testnet"}.near.org`,
+ walletUrl: `https://${process.env.NEAR_NETWORK || "testnet"}.mynearwallet.com/`,
+ helperUrl: `https://helper.${process.env.NEAR_NETWORK || "testnet"}.near.org`,
+ explorerUrl: `https://${process.env.NEAR_NETWORK || "testnet"}.nearblocks.io`,
+ MAX_RETRIES: 3,
+ RETRY_DELAY: 2000,
+ SLIPPAGE: process.env.SLIPPAGE ? parseInt(process.env.SLIPPAGE) : 1,
+};
+
+export interface NearToken {
+ name: string;
+ symbol: string;
+ decimals: number;
+ balance: string;
+ uiAmount: string;
+ priceUsd: string;
+ valueUsd: string;
+ valueNear?: string;
+}
+
+interface WalletPortfolio {
+ totalUsd: string;
+ totalNear?: string;
+ tokens: Array;
+}
+
+export class WalletProvider implements Provider {
+ private cache: NodeCache;
+ private account: Account | null = null;
+ private keyStore: keyStores.InMemoryKeyStore;
+ constructor(private accountId: string) {
+ this.cache = new NodeCache({ stdTTL: 300 }); // Cache TTL set to 5 minutes
+ this.keyStore = new keyStores.InMemoryKeyStore();
+ }
+
+ async get(
+ runtime: IAgentRuntime,
+ _message: Memory,
+ _state?: State
+ ): Promise {
+ try {
+ return await this.getFormattedPortfolio(runtime);
+ } catch (error) {
+ console.error("Error in wallet provider:", error);
+ return null;
+ }
+ }
+
+ public async connect(runtime: IAgentRuntime) {
+ if (this.account) return this.account;
+
+ const secretKey = runtime.getSetting("NEAR_WALLET_SECRET_KEY");
+ const publicKey = runtime.getSetting("NEAR_WALLET_PUBLIC_KEY");
+
+ if (!secretKey || !publicKey) {
+ throw new Error("NEAR wallet credentials not configured");
+ }
+
+ // Create KeyPair from secret key
+ const keyPair = KeyPair.fromString(secretKey as KeyPairString);
+
+ // Set the key in the keystore
+ await this.keyStore.setKey(PROVIDER_CONFIG.networkId, this.accountId, keyPair);
+
+ const nearConnection = await connect({
+ networkId: PROVIDER_CONFIG.networkId,
+ keyStore: this.keyStore,
+ nodeUrl: PROVIDER_CONFIG.nodeUrl,
+ walletUrl: PROVIDER_CONFIG.walletUrl,
+ helperUrl: PROVIDER_CONFIG.helperUrl,
+ });
+
+ this.account = await nearConnection.account(this.accountId);
+ return this.account;
+ }
+
+ private async fetchWithRetry(
+ url: string,
+ options: RequestInit = {}
+ ): Promise {
+ let lastError: Error;
+
+ for (let i = 0; i < PROVIDER_CONFIG.MAX_RETRIES; i++) {
+ try {
+ const response = await fetch(url, options);
+ if (!response.ok) {
+ throw new Error(`HTTP error! status: ${response.status}`);
+ }
+ return await response.json();
+ } catch (error) {
+ console.error(`Attempt ${i + 1} failed:`, error);
+ lastError = error as Error;
+ if (i < PROVIDER_CONFIG.MAX_RETRIES - 1) {
+ await new Promise(resolve =>
+ setTimeout(resolve, PROVIDER_CONFIG.RETRY_DELAY * Math.pow(2, i))
+ );
+ }
+ }
+ }
+ throw lastError!;
+ }
+
+ async fetchPortfolioValue(runtime: IAgentRuntime): Promise {
+ try {
+ const cacheKey = `portfolio-${this.accountId}`;
+ const cachedValue = this.cache.get(cacheKey);
+
+ if (cachedValue) {
+ console.log("Cache hit for fetchPortfolioValue");
+ return cachedValue;
+ }
+
+ const account = await this.connect(runtime);
+ const balance = await account.getAccountBalance();
+
+ // Convert yoctoNEAR to NEAR
+ const nearBalance = utils.format.formatNearAmount(balance.available);
+
+ // Fetch NEAR price in USD
+ const nearPrice = await this.fetchNearPrice();
+ const valueUsd = new BigNumber(nearBalance).times(nearPrice);
+
+ const portfolio: WalletPortfolio = {
+ totalUsd: valueUsd.toString(),
+ totalNear: nearBalance,
+ tokens: [{
+ name: "NEAR Protocol",
+ symbol: "NEAR",
+ decimals: 24,
+ balance: balance.available,
+ uiAmount: nearBalance,
+ priceUsd: nearPrice.toString(),
+ valueUsd: valueUsd.toString(),
+ }]
+ };
+
+ this.cache.set(cacheKey, portfolio);
+ return portfolio;
+ } catch (error) {
+ console.error("Error fetching portfolio:", error);
+ throw error;
+ }
+ }
+
+ private async fetchNearPrice(): Promise {
+ const cacheKey = "near-price";
+ const cachedPrice = this.cache.get(cacheKey);
+
+ if (cachedPrice) {
+ return cachedPrice;
+ }
+
+ try {
+ const response = await this.fetchWithRetry(
+ "https://api.coingecko.com/api/v3/simple/price?ids=near&vs_currencies=usd"
+ );
+ const price = response.near.usd;
+ this.cache.set(cacheKey, price);
+ return price;
+ } catch (error) {
+ console.error("Error fetching NEAR price:", error);
+ return 0;
+ }
+ }
+
+ formatPortfolio(runtime: IAgentRuntime, portfolio: WalletPortfolio): string {
+ let output = `${runtime.character.system}\n`;
+ output += `Account ID: ${this.accountId}\n\n`;
+
+ const totalUsdFormatted = new BigNumber(portfolio.totalUsd).toFixed(2);
+ const totalNearFormatted = portfolio.totalNear;
+
+ output += `Total Value: $${totalUsdFormatted} (${totalNearFormatted} NEAR)\n\n`;
+ output += "Token Balances:\n";
+
+ for (const token of portfolio.tokens) {
+ output += `${token.name} (${token.symbol}): ${token.uiAmount} ($${new BigNumber(token.valueUsd).toFixed(2)})\n`;
+ }
+
+ output += "\nMarket Prices:\n";
+ output += `NEAR: $${new BigNumber(portfolio.tokens[0].priceUsd).toFixed(2)}\n`;
+
+ return output;
+ }
+
+ async getFormattedPortfolio(runtime: IAgentRuntime): Promise {
+ try {
+ const portfolio = await this.fetchPortfolioValue(runtime);
+ return this.formatPortfolio(runtime, portfolio);
+ } catch (error) {
+ console.error("Error generating portfolio report:", error);
+ return "Unable to fetch wallet information. Please try again later.";
+ }
+ }
+}
+
+const walletProvider: Provider = {
+ get: async (
+ runtime: IAgentRuntime,
+ _message: Memory,
+ _state?: State
+ ): Promise => {
+ try {
+ const accountId = runtime.getSetting("NEAR_ADDRESS");
+ if (!accountId) {
+ throw new Error("NEAR_ADDRESS not configured");
+ }
+ const provider = new WalletProvider(accountId);
+ return await provider.getFormattedPortfolio(runtime);
+ } catch (error) {
+ console.error("Error in wallet provider:", error);
+ return null;
+ }
+ },
+};
+
+
+export { walletProvider };
\ No newline at end of file
diff --git a/packages/plugin-near/tsconfig.json b/packages/plugin-near/tsconfig.json
new file mode 100644
index 0000000000..95cbe371ac
--- /dev/null
+++ b/packages/plugin-near/tsconfig.json
@@ -0,0 +1,21 @@
+{
+ "compilerOptions": {
+ "target": "ES2020",
+ "module": "ESNext",
+ "moduleResolution": "node",
+ "outDir": "dist",
+ "rootDir": "./src",
+ "strict": true,
+ "esModuleInterop": true,
+ "skipLibCheck": true,
+ "forceConsistentCasingInFileNames": true,
+ "typeRoots": [
+ "./node_modules/@types",
+ "./src/types"
+ ],
+ "declaration": true
+ },
+ "include": [
+ "src"
+ ]
+}
\ No newline at end of file
diff --git a/packages/plugin-near/tsup.config.ts b/packages/plugin-near/tsup.config.ts
new file mode 100644
index 0000000000..96d9c23733
--- /dev/null
+++ b/packages/plugin-near/tsup.config.ts
@@ -0,0 +1,12 @@
+import { defineConfig } from "tsup";
+
+export default defineConfig({
+ entry: ["src/index.ts"],
+ format: ["esm", "cjs"],
+ dts: true,
+ splitting: false,
+ sourcemap: true,
+ clean: true,
+ shims: true,
+ treeshake: true
+});
diff --git a/packages/plugin-nft-generation/.npmignore b/packages/plugin-nft-generation/.npmignore
new file mode 100644
index 0000000000..078562ecea
--- /dev/null
+++ b/packages/plugin-nft-generation/.npmignore
@@ -0,0 +1,6 @@
+*
+
+!dist/**
+!package.json
+!readme.md
+!tsup.config.ts
\ No newline at end of file
diff --git a/packages/plugin-nft-generation/eslint.config.mjs b/packages/plugin-nft-generation/eslint.config.mjs
new file mode 100644
index 0000000000..92fe5bbebe
--- /dev/null
+++ b/packages/plugin-nft-generation/eslint.config.mjs
@@ -0,0 +1,3 @@
+import eslintGlobalConfig from "../../eslint.config.mjs";
+
+export default [...eslintGlobalConfig];
diff --git a/packages/plugin-nft-generation/package.json b/packages/plugin-nft-generation/package.json
new file mode 100644
index 0000000000..85199a6cf2
--- /dev/null
+++ b/packages/plugin-nft-generation/package.json
@@ -0,0 +1,30 @@
+{
+ "name": "@ai16z/plugin-nft-generation",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@ai16z/plugin-image-generation": "workspace:*",
+ "@ai16z/plugin-node": "workspace:*",
+ "@metaplex-foundation/mpl-token-metadata": "^3.3.0",
+ "@metaplex-foundation/mpl-toolbox": "^0.9.4",
+ "@metaplex-foundation/umi": "^0.9.2",
+ "@metaplex-foundation/umi-bundle-defaults": "^0.9.2",
+ "@solana-developers/helpers": "^2.5.6",
+ "@solana/web3.js": "1.95.5",
+ "bs58": "6.0.0",
+ "express": "4.21.1",
+ "node-cache": "5.1.2",
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint . --fix"
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
+}
diff --git a/packages/plugin-nft-generation/src/api.ts b/packages/plugin-nft-generation/src/api.ts
new file mode 100644
index 0000000000..ed64d86cf3
--- /dev/null
+++ b/packages/plugin-nft-generation/src/api.ts
@@ -0,0 +1,164 @@
+import express from "express";
+
+import { AgentRuntime } from "@ai16z/eliza";
+import { createCollection } from "./handlers/createCollection.ts";
+import { createNFT, createNFTMetadata } from "./handlers/createNFT.ts";
+import { verifyNFT } from "./handlers/verifyNFT.ts";
+
+export function createNFTApiRouter(
+ agents: Map
+): express.Router {
+ const router = express.Router();
+
+ router.post(
+ "/api/nft-generation/create-collection",
+ async (req: express.Request, res: express.Response) => {
+ const agentId = req.body.agentId;
+ const fee = req.body.fee || 0;
+ const runtime = agents.get(agentId);
+ if (!runtime) {
+ res.status(404).send("Agent not found");
+ return;
+ }
+ try {
+ const collectionAddressRes = await createCollection({
+ runtime,
+ collectionName: runtime.character.name,
+ fee,
+ });
+
+ res.json({
+ success: true,
+ data: collectionAddressRes,
+ });
+ } catch (e: any) {
+ console.log(e);
+ res.json({
+ success: false,
+ data: JSON.stringify(e),
+ });
+ }
+ }
+ );
+
+ router.post(
+ "/api/nft-generation/create-nft-metadata",
+ async (req: express.Request, res: express.Response) => {
+ const agentId = req.body.agentId;
+ const collectionName = req.body.collectionName;
+ const collectionAddress = req.body.collectionAddress;
+ const collectionAdminPublicKey = req.body.collectionAdminPublicKey;
+ const collectionFee = req.body.collectionFee;
+ const tokenId = req.body.tokenId;
+ const runtime = agents.get(agentId);
+ if (!runtime) {
+ res.status(404).send("Agent not found");
+ return;
+ }
+
+ try {
+ const nftInfo = await createNFTMetadata({
+ runtime,
+ collectionName,
+ collectionAdminPublicKey,
+ collectionFee,
+ tokenId,
+ });
+
+ res.json({
+ success: true,
+ data: {
+ ...nftInfo,
+ collectionAddress,
+ },
+ });
+ } catch (e: any) {
+ console.log(e);
+ res.json({
+ success: false,
+ data: JSON.stringify(e),
+ });
+ }
+ }
+ );
+
+ router.post(
+ "/api/nft-generation/create-nft",
+ async (req: express.Request, res: express.Response) => {
+ const agentId = req.body.agentId;
+ const collectionName = req.body.collectionName;
+ const collectionAddress = req.body.collectionAddress;
+ const collectionAdminPublicKey = req.body.collectionAdminPublicKey;
+ const collectionFee = req.body.collectionFee;
+ const tokenId = req.body.tokenId;
+ const runtime = agents.get(agentId);
+ if (!runtime) {
+ res.status(404).send("Agent not found");
+ return;
+ }
+
+ try {
+ const nftRes = await createNFT({
+ runtime,
+ collectionName,
+ collectionAddress,
+ collectionAdminPublicKey,
+ collectionFee,
+ tokenId,
+ });
+
+ res.json({
+ success: true,
+ data: nftRes,
+ });
+ } catch (e: any) {
+ console.log(e);
+ res.json({
+ success: false,
+ data: JSON.stringify(e),
+ });
+ }
+ }
+ );
+
+ router.post(
+ "/api/nft-generation/verify-nft",
+ async (req: express.Request, res: express.Response) => {
+ const agentId = req.body.agentId;
+ const collectionAddress = req.body.collectionAddress;
+ const NFTAddress = req.body.nftAddress;
+ const token = req.body.token;
+
+ const runtime = agents.get(agentId);
+ if (!runtime) {
+ res.status(404).send("Agent not found");
+ return;
+ }
+ const verifyToken = runtime.getSetting("SOLANA_VERIFY_TOKEN");
+ if (token !== verifyToken) {
+ res.status(401).send(" Access denied for translation");
+ return;
+ }
+ try {
+ const { success } = await verifyNFT({
+ runtime,
+ collectionAddress,
+ NFTAddress,
+ });
+
+ res.json({
+ success: true,
+ data: success ? "verified" : "unverified",
+ });
+ } catch (e: any) {
+ console.log(e);
+ res.json({
+ success: false,
+ data: JSON.stringify(e),
+ });
+ }
+ }
+ );
+
+ return router;
+}
diff --git a/packages/plugin-nft-generation/src/handlers/createCollection.ts b/packages/plugin-nft-generation/src/handlers/createCollection.ts
new file mode 100644
index 0000000000..21960c2a2d
--- /dev/null
+++ b/packages/plugin-nft-generation/src/handlers/createCollection.ts
@@ -0,0 +1,118 @@
+import { AwsS3Service } from "@ai16z/plugin-node";
+import {
+ composeContext,
+ elizaLogger,
+ generateImage,
+ getEmbeddingZeroVector,
+ IAgentRuntime,
+ Memory,
+ ServiceType,
+ stringToUuid,
+} from "@ai16z/eliza";
+import {
+ saveBase64Image,
+ saveHeuristImage,
+} from "@ai16z/plugin-image-generation";
+import { PublicKey } from "@solana/web3.js";
+import WalletSolana from "../provider/wallet/walletSolana.ts";
+
+const collectionImageTemplate = `
+Generate a logo with the text "{{collectionName}}", using orange as the main color, with a sci-fi and mysterious background theme
+`;
+
+export async function createCollection({
+ runtime,
+ collectionName,
+ fee,
+}: {
+ runtime: IAgentRuntime;
+ collectionName: string;
+ fee?: number;
+}) {
+ const userId = runtime.agentId;
+ elizaLogger.log("User ID:", userId);
+ const awsS3Service: AwsS3Service = runtime.getService(ServiceType.AWS_S3);
+ const agentName = runtime.character.name;
+ const roomId = stringToUuid("nft_generate_room-" + agentName);
+ // Create memory for the message
+ const memory: Memory = {
+ agentId: userId,
+ userId,
+ roomId,
+ content: {
+ text: "",
+
+ source: "nft-generator",
+ },
+ createdAt: Date.now(),
+ embedding: getEmbeddingZeroVector(),
+ };
+ const state = await runtime.composeState(memory, {
+ collectionName,
+ });
+
+ const prompt = composeContext({
+ state,
+ template: collectionImageTemplate,
+ });
+ const images = await generateImage(
+ {
+ prompt,
+ width: 300,
+ height: 300,
+ },
+ runtime
+ );
+ if (images.success && images.data && images.data.length > 0) {
+ const image = images.data[0];
+ const filename = `collection-image`;
+ if (image.startsWith("http")) {
+ elizaLogger.log("Generating image url:", image);
+ }
+ // Choose save function based on image data format
+ const filepath = image.startsWith("http")
+ ? await saveHeuristImage(image, filename)
+ : saveBase64Image(image, filename);
+
+ const logoPath = await awsS3Service.uploadFile(
+ filepath,
+ `/${collectionName}`,
+ false
+ );
+ const publicKey = runtime.getSetting("SOLANA_PUBLIC_KEY");
+ const privateKey = runtime.getSetting("SOLANA_PRIVATE_KEY");
+ const adminPublicKey = runtime.getSetting("SOLANA_ADMIN_PUBLIC_KEY");
+ const collectionInfo = {
+ name: `${collectionName}`,
+ symbol: `${collectionName.toUpperCase()[0]}`,
+ adminPublicKey,
+ fee: fee || 0,
+ uri: "",
+ };
+ const jsonFilePath = await awsS3Service.uploadJson(
+ {
+ name: collectionInfo.name,
+ description: `${collectionInfo.name}`,
+ image: logoPath.url,
+ },
+ "metadata.json",
+ `${collectionName}`
+ );
+ collectionInfo.uri = jsonFilePath.url;
+
+ const wallet = new WalletSolana(new PublicKey(publicKey), privateKey);
+
+ const collectionAddressRes = await wallet.createCollection({
+ ...collectionInfo,
+ });
+
+ return {
+ network: "solana",
+ address: collectionAddressRes.address,
+ link: collectionAddressRes.link,
+ collectionInfo,
+ };
+ }
+
+ return;
+}
diff --git a/packages/plugin-nft-generation/src/handlers/createNFT.ts b/packages/plugin-nft-generation/src/handlers/createNFT.ts
new file mode 100644
index 0000000000..281b444b16
--- /dev/null
+++ b/packages/plugin-nft-generation/src/handlers/createNFT.ts
@@ -0,0 +1,182 @@
+import { AwsS3Service } from "@ai16z/plugin-node";
+import {
+ composeContext,
+ elizaLogger,
+ generateImage,
+ generateText,
+ getEmbeddingZeroVector,
+ IAgentRuntime,
+ Memory,
+ ModelClass,
+ ServiceType,
+ stringToUuid,
+} from "@ai16z/eliza";
+import {
+ saveBase64Image,
+ saveHeuristImage,
+} from "@ai16z/plugin-image-generation";
+import { PublicKey } from "@solana/web3.js";
+import WalletSolana from "../provider/wallet/walletSolana.ts";
+
+const nftTemplate = `
+# Areas of Expertise
+{{knowledge}}
+
+# About {{agentName}} (@{{twitterUserName}}):
+{{bio}}
+{{lore}}
+{{topics}}
+
+{{providers}}
+
+{{characterPostExamples}}
+
+{{postDirections}}
+# Task: Generate an image to Prompt the {{agentName}}'s appearance, with the total character count MUST be less than 280.
+`;
+
+export async function createNFTMetadata({
+ runtime,
+ collectionName,
+ collectionAdminPublicKey,
+ collectionFee,
+ tokenId,
+}: {
+ runtime: IAgentRuntime;
+ collectionName: string;
+ collectionAdminPublicKey: string;
+ collectionFee: number;
+ tokenId: number;
+}) {
+ const userId = runtime.agentId;
+ elizaLogger.log("User ID:", userId);
+ const awsS3Service: AwsS3Service = runtime.getService(ServiceType.AWS_S3);
+ const agentName = runtime.character.name;
+ const roomId = stringToUuid("nft_generate_room-" + agentName);
+ // Create memory for the message
+ const memory: Memory = {
+ agentId: userId,
+ userId,
+ roomId,
+ content: {
+ text: "",
+ source: "nft-generator",
+ },
+ createdAt: Date.now(),
+ embedding: getEmbeddingZeroVector(),
+ };
+ const state = await runtime.composeState(memory, {
+ collectionName,
+ });
+
+ const context = composeContext({
+ state,
+ template: nftTemplate,
+ });
+
+ let nftPrompt = await generateText({
+ runtime,
+ context,
+ modelClass: ModelClass.MEDIUM,
+ });
+
+ nftPrompt += runtime.character?.nft?.prompt || "";
+ nftPrompt += "The image should only feature one person.";
+
+ const images = await generateImage(
+ {
+ prompt: nftPrompt,
+ width: 1024,
+ height: 1024,
+ },
+ runtime
+ );
+ elizaLogger.log("NFT Prompt:", nftPrompt);
+ if (images.success && images.data && images.data.length > 0) {
+ const image = images.data[0];
+ const filename = `${tokenId}`;
+ if (image.startsWith("http")) {
+ elizaLogger.log("Generating image url:", image);
+ }
+ // Choose save function based on image data format
+ const filepath = image.startsWith("http")
+ ? await saveHeuristImage(image, filename)
+ : saveBase64Image(image, filename);
+ const nftImage = await awsS3Service.uploadFile(
+ filepath,
+ `/${collectionName}/items/${tokenId}`,
+ false
+ );
+ const nftInfo = {
+ name: `${collectionName} #${tokenId}`,
+ description: `${collectionName} #${tokenId}`,
+ symbol: `#${tokenId}`,
+ adminPublicKey: collectionAdminPublicKey,
+ fee: collectionFee,
+ uri: "",
+ };
+ const jsonFilePath = await awsS3Service.uploadJson(
+ {
+ name: nftInfo.name,
+ description: nftInfo.description,
+ image: nftImage.url,
+ },
+ "metadata.json",
+ `/${collectionName}/items/${tokenId}`
+ );
+
+ nftInfo.uri = jsonFilePath.url;
+ return {
+ ...nftInfo,
+ imageUri: nftImage.url
+ };
+ }
+ return null;
+}
+
+export async function createNFT({
+ runtime,
+ collectionName,
+ collectionAddress,
+ collectionAdminPublicKey,
+ collectionFee,
+ tokenId,
+}: {
+ runtime: IAgentRuntime;
+ collectionName: string;
+ collectionAddress: string;
+ collectionAdminPublicKey: string;
+ collectionFee: number;
+ tokenId: number;
+}) {
+ const nftInfo = await createNFTMetadata({
+ runtime,
+ collectionName,
+ collectionAdminPublicKey,
+ collectionFee,
+ tokenId,
+ });
+ if (nftInfo) {
+ const publicKey = runtime.getSetting("SOLANA_PUBLIC_KEY");
+ const privateKey = runtime.getSetting("SOLANA_PRIVATE_KEY");
+
+ const wallet = new WalletSolana(new PublicKey(publicKey), privateKey);
+
+ const nftAddressRes = await wallet.mintNFT({
+ name: nftInfo.name,
+ uri: nftInfo.uri,
+ symbol: nftInfo.symbol,
+ collectionAddress,
+ adminPublicKey: collectionAdminPublicKey,
+ fee: collectionFee,
+ });
+ elizaLogger.log("NFT ID:", nftAddressRes.address);
+ return {
+ network: "solana",
+ address: nftAddressRes.address,
+ link: nftAddressRes.link,
+ nftInfo,
+ };
+ }
+ return;
+}
diff --git a/packages/plugin-nft-generation/src/handlers/verifyNFT.ts b/packages/plugin-nft-generation/src/handlers/verifyNFT.ts
new file mode 100644
index 0000000000..792c38ffc5
--- /dev/null
+++ b/packages/plugin-nft-generation/src/handlers/verifyNFT.ts
@@ -0,0 +1,27 @@
+import { IAgentRuntime } from "@ai16z/eliza";
+import { PublicKey } from "@solana/web3.js";
+import WalletSolana from "../provider/wallet/walletSolana.ts";
+
+export async function verifyNFT({
+ runtime,
+ collectionAddress,
+ NFTAddress,
+}: {
+ runtime: IAgentRuntime;
+ collectionAddress: string;
+ NFTAddress: string;
+}) {
+ const adminPublicKey = runtime.getSetting("SOLANA_ADMIN_PUBLIC_KEY");
+ const adminPrivateKey = runtime.getSetting("SOLANA_ADMIN_PRIVATE_KEY");
+ const adminWallet = new WalletSolana(
+ new PublicKey(adminPublicKey),
+ adminPrivateKey
+ );
+ await adminWallet.verifyNft({
+ collectionAddress,
+ nftAddress: NFTAddress,
+ });
+ return {
+ success: true,
+ };
+}
diff --git a/packages/plugin-nft-generation/src/index.ts b/packages/plugin-nft-generation/src/index.ts
new file mode 100644
index 0000000000..f5f442b97e
--- /dev/null
+++ b/packages/plugin-nft-generation/src/index.ts
@@ -0,0 +1,203 @@
+import {
+ Action,
+ elizaLogger,
+ HandlerCallback,
+ IAgentRuntime,
+ Memory,
+ Plugin,
+ State,
+} from "@ai16z/eliza";
+
+import { createCollection } from "./handlers/createCollection.ts";
+import { createNFT } from "./handlers/createNFT.ts";
+import { verifyNFT } from "./handlers/verifyNFT.ts";
+
+export * from "./provider/wallet/walletSolana.ts";
+export * from "./api.ts";
+
+
+export async function sleep(ms: number = 3000) {
+ return new Promise((resolve) => {
+ setTimeout(resolve, ms);
+ });
+}
+
+const nftCollectionGeneration: Action = {
+ name: "GENERATE_COLLECTION",
+ similes: [
+ "COLLECTION_GENERATION",
+ "COLLECTION_GEN",
+ "CREATE_COLLECTION",
+ "MAKE_COLLECTION",
+ "GENERATE_COLLECTION",
+ ],
+ description: "Generate an NFT collection for the message",
+ validate: async (runtime: IAgentRuntime, _message: Memory) => {
+ const AwsAccessKeyIdOk = !!runtime.getSetting("AWS_ACCESS_KEY_ID");
+ const AwsSecretAccessKeyOk = !!runtime.getSetting(
+ "AWS_SECRET_ACCESS_KEY"
+ );
+ const AwsRegionOk = !!runtime.getSetting("AWS_REGION");
+ const AwsS3BucketOk = !!runtime.getSetting("AWS_S3_BUCKET");
+
+ return (
+ AwsAccessKeyIdOk ||
+ AwsSecretAccessKeyOk ||
+ AwsRegionOk ||
+ AwsS3BucketOk
+ );
+ },
+ handler: async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State,
+ options: { [key: string]: unknown },
+ callback: HandlerCallback
+ ) => {
+ try {
+ elizaLogger.log("Composing state for message:", message);
+ const userId = runtime.agentId;
+ elizaLogger.log("User ID:", userId);
+
+ const collectionAddressRes = await createCollection({
+ runtime,
+ collectionName: runtime.character.name,
+ });
+
+ const collectionInfo = collectionAddressRes.collectionInfo;
+
+ elizaLogger.log("Collection Address:", collectionAddressRes);
+
+ const nftRes = await createNFT({
+ runtime,
+ collectionName: collectionInfo.name,
+ collectionAddress: collectionAddressRes.address,
+ collectionAdminPublicKey: collectionInfo.adminPublicKey,
+ collectionFee: collectionInfo.fee,
+ tokenId: 1,
+ });
+
+ elizaLogger.log("NFT Address:", nftRes);
+
+
+ callback({
+ text: `Congratulations to you! 🎉🎉🎉 \nCollection : ${collectionAddressRes.link}\n NFT: ${nftRes.link}`, //caption.description,
+ attachments: [],
+ });
+ await sleep(15000);
+ await verifyNFT({
+ runtime,
+ collectionAddress: collectionAddressRes.address,
+ NFTAddress: nftRes.address,
+ });
+ return [];
+ } catch (e: any) {
+ console.log(e);
+ }
+
+ // callback();
+ },
+ examples: [
+ // TODO: We want to generate images in more abstract ways, not just when asked to generate an image
+
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "Generate a collection" },
+ },
+ {
+ user: "{{agentName}}",
+ content: {
+ text: "Here's the collection you requested.",
+ action: "GENERATE_COLLECTION",
+ },
+ },
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "Generate a collection using {{agentName}}" },
+ },
+ {
+ user: "{{agentName}}",
+ content: {
+ text: "We've successfully created a collection.",
+ action: "GENERATE_COLLECTION",
+ },
+ },
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "Create a collection using {{agentName}}" },
+ },
+ {
+ user: "{{agentName}}",
+ content: {
+ text: "Here's the collection you requested.",
+ action: "GENERATE_COLLECTION",
+ },
+ },
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "Build a Collection" },
+ },
+ {
+ user: "{{agentName}}",
+ content: {
+ text: "The collection has been successfully built.",
+ action: "GENERATE_COLLECTION",
+ },
+ },
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "Assemble a collection with {{agentName}}" },
+ },
+ {
+ user: "{{agentName}}",
+ content: {
+ text: "The collection has been assembled",
+ action: "GENERATE_COLLECTION",
+ },
+ },
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "Make a collection" },
+ },
+ {
+ user: "{{agentName}}",
+ content: {
+ text: "The collection has been produced successfully.",
+ action: "GENERATE_COLLECTION",
+ },
+ },
+ ],
+ [
+ {
+ user: "{{user1}}",
+ content: { text: "Compile a collection" },
+ },
+ {
+ user: "{{agentName}}",
+ content: {
+ text: "The collection has been compiled.",
+ action: "GENERATE_COLLECTION",
+ },
+ },
+ ],
+ ],
+} as Action;
+
+export const nftGenerationPlugin: Plugin = {
+ name: "nftCollectionGeneration",
+ description: "Generate NFT Collections",
+ actions: [nftCollectionGeneration],
+ evaluators: [],
+ providers: [],
+};
diff --git a/packages/plugin-nft-generation/src/provider/wallet/walletSolana.ts b/packages/plugin-nft-generation/src/provider/wallet/walletSolana.ts
new file mode 100644
index 0000000000..cdd29ffe13
--- /dev/null
+++ b/packages/plugin-nft-generation/src/provider/wallet/walletSolana.ts
@@ -0,0 +1,250 @@
+import NodeCache from "node-cache";
+import {
+ Cluster,
+ clusterApiUrl,
+ Connection,
+ LAMPORTS_PER_SOL,
+ PublicKey,
+} from "@solana/web3.js";
+import {
+ createNft,
+ findMetadataPda,
+ mplTokenMetadata,
+ updateV1,
+ verifyCollectionV1,
+} from "@metaplex-foundation/mpl-token-metadata";
+import { createUmi } from "@metaplex-foundation/umi-bundle-defaults";
+import {
+ generateSigner,
+ keypairIdentity,
+ percentAmount,
+ publicKey,
+ // sol,
+ TransactionBuilder,
+ Umi,
+} from "@metaplex-foundation/umi";
+import { getExplorerLink } from "@solana-developers/helpers";
+// import { transferSol } from "@metaplex-foundation/mpl-toolbox";
+import bs58 from "bs58";
+import { elizaLogger } from "@ai16z/eliza";
+
+export class WalletSolana {
+ private cache: NodeCache;
+ private umi: Umi;
+ private cluster: Cluster;
+
+ constructor(
+ private walletPublicKey: PublicKey,
+ private walletPrivateKeyKey: string,
+ private connection?: Connection
+ ) {
+ this.cache = new NodeCache({ stdTTL: 300 }); // Cache TTL set to 5 minutes
+
+ if (!connection) {
+ this.cluster = (process.env.SOLANA_CLUSTER as Cluster) || "devnet";
+ this.connection = new Connection(clusterApiUrl(this.cluster), {
+ commitment: "finalized",
+ });
+ }
+ const umi = createUmi(this.connection.rpcEndpoint);
+ umi.use(mplTokenMetadata());
+ const umiUser = umi.eddsa.createKeypairFromSecretKey(
+ this.privateKeyUint8Array
+ );
+ umi.use(keypairIdentity(umiUser));
+ this.umi = umi;
+ }
+
+ async getBalance() {
+ const balance = await this.connection.getBalance(this.walletPublicKey);
+ return {
+ value: balance,
+ formater: `${balance / LAMPORTS_PER_SOL} SOL`,
+ };
+ }
+
+ get privateKeyUint8Array() {
+ return bs58.decode(this.walletPrivateKeyKey);
+ }
+
+ async createCollection({
+ name,
+ symbol,
+ adminPublicKey,
+ uri,
+ fee,
+ }: {
+ name: string;
+ symbol: string;
+ adminPublicKey: string;
+ uri: string;
+ fee: number;
+ }): Promise<{
+ success: boolean;
+ link: string;
+ address: string;
+ error?: string | null;
+ }> {
+ try {
+ const collectionMint = generateSigner(this.umi);
+ let transaction = new TransactionBuilder();
+ const info = {
+ name,
+ symbol,
+ uri,
+ };
+ transaction = transaction.add(
+ createNft(this.umi, {
+ ...info,
+ mint: collectionMint,
+ sellerFeeBasisPoints: percentAmount(fee),
+ isCollection: true,
+ })
+ );
+
+ transaction = transaction.add(
+ updateV1(this.umi, {
+ mint: collectionMint.publicKey,
+ newUpdateAuthority: publicKey(adminPublicKey), // updateAuthority's public key
+ })
+ );
+
+ await transaction.sendAndConfirm(this.umi, {
+ confirm: {},
+ });
+
+ const address = collectionMint.publicKey;
+ return {
+ success: true,
+ link: getExplorerLink("address", address, this.cluster),
+ address,
+ error: null,
+ };
+ } catch (e) {
+ return {
+ success: false,
+ link: "",
+ address: "",
+ error: e.message,
+ };
+ }
+ }
+
+ async mintNFT({
+ collectionAddress,
+ adminPublicKey,
+ name,
+ symbol,
+ uri,
+ fee,
+ }: {
+ collectionAddress: string;
+ adminPublicKey: string;
+ name: string;
+ symbol: string;
+ uri: string;
+ fee: number;
+ }): Promise<{
+ success: boolean;
+ link: string;
+ address: string;
+ error?: string | null;
+ }> {
+ try {
+ const umi = this.umi;
+ const mint = generateSigner(umi);
+
+ let transaction = new TransactionBuilder();
+ elizaLogger.log("collection address", collectionAddress);
+ const collectionAddressKey = publicKey(collectionAddress);
+
+ const info = {
+ name,
+ uri,
+ symbol,
+ };
+ transaction = transaction.add(
+ createNft(umi, {
+ mint,
+ ...info,
+ sellerFeeBasisPoints: percentAmount(fee),
+ collection: {
+ key: collectionAddressKey,
+ verified: false,
+ },
+ })
+ );
+
+ transaction = transaction.add(
+ updateV1(umi, {
+ mint: mint.publicKey,
+ newUpdateAuthority: publicKey(adminPublicKey), // updateAuthority's public key
+ })
+ );
+
+ await transaction.sendAndConfirm(umi);
+
+ const address = mint.publicKey;
+ return {
+ success: true,
+ link: getExplorerLink("address", address, this.cluster),
+ address,
+ error: null,
+ };
+ } catch (e) {
+ return {
+ success: false,
+ link: "",
+ address: "",
+ error: e.message,
+ };
+ }
+ }
+
+ async verifyNft({
+ collectionAddress,
+ nftAddress,
+ }: {
+ collectionAddress: string;
+ nftAddress: string;
+ }): Promise<{
+ isVerified: boolean;
+ error: string | null;
+ }> {
+ try {
+ const umi = this.umi;
+ const collectionAddressKey = publicKey(collectionAddress);
+ const nftAddressKey = publicKey(nftAddress);
+
+ let transaction = new TransactionBuilder();
+ transaction = transaction.add(
+ verifyCollectionV1(umi, {
+ metadata: findMetadataPda(umi, { mint: nftAddressKey }),
+ collectionMint: collectionAddressKey,
+ authority: umi.identity,
+ })
+ );
+
+ await transaction.sendAndConfirm(umi);
+
+ elizaLogger.log(
+ `✅ NFT ${nftAddress} verified as member of collection ${collectionAddress}! See Explorer at ${getExplorerLink(
+ "address",
+ nftAddress,
+ this.cluster
+ )}`
+ );
+ return {
+ isVerified: true,
+ error: null,
+ };
+ } catch (e) {
+ return {
+ isVerified: false,
+ error: e.message,
+ };
+ }
+ }
+}
+
+export default WalletSolana;
diff --git a/packages/plugin-nft-generation/tsconfig.json b/packages/plugin-nft-generation/tsconfig.json
new file mode 100644
index 0000000000..834c4dce26
--- /dev/null
+++ b/packages/plugin-nft-generation/tsconfig.json
@@ -0,0 +1,13 @@
+{
+ "extends": "../core/tsconfig.json",
+ "compilerOptions": {
+ "outDir": "dist",
+ "rootDir": "src",
+ "types": [
+ "node"
+ ]
+ },
+ "include": [
+ "src/**/*.ts"
+ ]
+}
\ No newline at end of file
diff --git a/packages/plugin-nft-generation/tsup.config.ts b/packages/plugin-nft-generation/tsup.config.ts
new file mode 100644
index 0000000000..1a96f24afa
--- /dev/null
+++ b/packages/plugin-nft-generation/tsup.config.ts
@@ -0,0 +1,21 @@
+import { defineConfig } from "tsup";
+
+export default defineConfig({
+ entry: ["src/index.ts"],
+ outDir: "dist",
+ sourcemap: true,
+ clean: true,
+ format: ["esm"], // Ensure you're targeting CommonJS
+ external: [
+ "dotenv", // Externalize dotenv to prevent bundling
+ "fs", // Externalize fs to use Node.js built-in module
+ "path", // Externalize other built-ins if necessary
+ "@reflink/reflink",
+ "@node-llama-cpp",
+ "https",
+ "http",
+ "agentkeepalive",
+ "safe-buffer",
+ // Add other modules you want to externalize
+ ],
+});
diff --git a/packages/plugin-node/package.json b/packages/plugin-node/package.json
index 630305c903..4a48f0ad58 100644
--- a/packages/plugin-node/package.json
+++ b/packages/plugin-node/package.json
@@ -1,89 +1,89 @@
{
- "name": "@ai16z/plugin-node",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "files": [
- "dist",
- "scripts",
- "package.json",
- "LICENSE",
- "tsup.config.ts"
- ],
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@aws-sdk/client-s3": "^3.705.0",
- "@aws-sdk/s3-request-presigner": "^3.705.0",
- "@cliqz/adblocker-playwright": "1.34.0",
- "@echogarden/espeak-ng-emscripten": "0.3.3",
- "@echogarden/kissfft-wasm": "0.2.0",
- "@echogarden/speex-resampler-wasm": "0.2.1",
- "@huggingface/transformers": "3.0.2",
- "@opendocsg/pdf2md": "0.1.32",
- "@types/uuid": "10.0.0",
- "alawmulaw": "6.0.0",
- "bignumber": "1.1.0",
- "bignumber.js": "9.1.2",
- "capsolver-npm": "2.0.2",
- "cldr-segmentation": "2.2.1",
- "command-exists": "1.2.9",
- "csv-writer": "1.6.0",
- "echogarden": "2.0.7",
- "espeak-ng": "1.0.2",
- "ffmpeg-static": "5.2.0",
- "fluent-ffmpeg": "2.1.3",
- "formdata-node": "6.0.3",
- "fs-extra": "11.2.0",
- "gaxios": "6.7.1",
- "gif-frames": "0.4.1",
- "glob": "11.0.0",
- "graceful-fs": "4.2.11",
- "html-escaper": "3.0.3",
- "html-to-text": "9.0.5",
- "import-meta-resolve": "4.1.0",
- "jieba-wasm": "2.2.0",
- "json5": "2.2.3",
- "kuromoji": "0.1.2",
- "libsodium-wrappers": "0.7.15",
- "multer": "1.4.5-lts.1",
- "node-cache": "5.1.2",
- "node-llama-cpp": "3.1.1",
- "nodejs-whisper": "0.1.18",
- "onnxruntime-node": "1.20.1",
- "pdfjs-dist": "4.7.76",
- "playwright": "1.48.2",
- "pm2": "5.4.3",
- "puppeteer-extra": "3.3.6",
- "puppeteer-extra-plugin-capsolver": "2.0.1",
- "sharp": "0.33.5",
- "srt": "0.0.3",
- "systeminformation": "5.23.5",
- "tar": "7.4.3",
- "tinyld": "1.3.4",
- "uuid": "11.0.3",
- "wav": "1.0.2",
- "wav-encoder": "1.3.0",
- "wavefile": "11.0.0",
- "yargs": "17.7.2",
- "youtube-dl-exec": "3.0.10"
- },
- "devDependencies": {
- "@types/node": "22.8.4",
- "tsup": "8.3.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix",
- "postinstall": "node scripts/postinstall.js"
- },
- "peerDependencies": {
- "onnxruntime-node": "1.20.1",
- "whatwg-url": "7.1.0"
- },
- "trustedDependencies": {
- "onnxruntime-node": "1.20.1",
- "sharp": "0.33.5"
- }
+ "name": "@ai16z/plugin-node",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "files": [
+ "dist",
+ "scripts",
+ "package.json",
+ "LICENSE",
+ "tsup.config.ts"
+ ],
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@aws-sdk/client-s3": "^3.705.0",
+ "@aws-sdk/s3-request-presigner": "^3.705.0",
+ "@cliqz/adblocker-playwright": "1.34.0",
+ "@echogarden/espeak-ng-emscripten": "0.3.3",
+ "@echogarden/kissfft-wasm": "0.2.0",
+ "@echogarden/speex-resampler-wasm": "0.2.1",
+ "@huggingface/transformers": "3.0.2",
+ "@opendocsg/pdf2md": "0.1.32",
+ "@types/uuid": "10.0.0",
+ "alawmulaw": "6.0.0",
+ "bignumber": "1.1.0",
+ "bignumber.js": "9.1.2",
+ "capsolver-npm": "2.0.2",
+ "cldr-segmentation": "2.2.1",
+ "command-exists": "1.2.9",
+ "csv-writer": "1.6.0",
+ "echogarden": "2.0.7",
+ "espeak-ng": "1.0.2",
+ "ffmpeg-static": "5.2.0",
+ "fluent-ffmpeg": "2.1.3",
+ "formdata-node": "6.0.3",
+ "fs-extra": "11.2.0",
+ "gaxios": "6.7.1",
+ "gif-frames": "0.4.1",
+ "glob": "11.0.0",
+ "graceful-fs": "4.2.11",
+ "html-escaper": "3.0.3",
+ "html-to-text": "9.0.5",
+ "import-meta-resolve": "4.1.0",
+ "jieba-wasm": "2.2.0",
+ "json5": "2.2.3",
+ "kuromoji": "0.1.2",
+ "libsodium-wrappers": "0.7.15",
+ "multer": "1.4.5-lts.1",
+ "node-cache": "5.1.2",
+ "node-llama-cpp": "3.1.1",
+ "nodejs-whisper": "0.1.18",
+ "onnxruntime-node": "1.20.1",
+ "pdfjs-dist": "4.7.76",
+ "playwright": "1.48.2",
+ "pm2": "5.4.3",
+ "puppeteer-extra": "3.3.6",
+ "puppeteer-extra-plugin-capsolver": "2.0.1",
+ "sharp": "0.33.5",
+ "srt": "0.0.3",
+ "systeminformation": "5.23.5",
+ "tar": "7.4.3",
+ "tinyld": "1.3.4",
+ "uuid": "11.0.3",
+ "wav": "1.0.2",
+ "wav-encoder": "1.3.0",
+ "wavefile": "11.0.0",
+ "yargs": "17.7.2",
+ "youtube-dl-exec": "3.0.10"
+ },
+ "devDependencies": {
+ "@types/node": "22.8.4",
+ "tsup": "8.3.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache .",
+ "postinstall": "node scripts/postinstall.js"
+ },
+ "peerDependencies": {
+ "onnxruntime-node": "1.20.1",
+ "whatwg-url": "7.1.0"
+ },
+ "trustedDependencies": {
+ "onnxruntime-node": "1.20.1",
+ "sharp": "0.33.5"
+ }
}
diff --git a/packages/plugin-node/src/services/awsS3.ts b/packages/plugin-node/src/services/awsS3.ts
index 57600ada5b..c8622d13ab 100644
--- a/packages/plugin-node/src/services/awsS3.ts
+++ b/packages/plugin-node/src/services/awsS3.ts
@@ -63,6 +63,7 @@ export class AwsS3Service extends Service implements IAwsS3Service {
async uploadFile(
filePath: string,
+ subDirectory: string = '',
useSignedUrl: boolean = false,
expiresIn: number = 900
): Promise {
@@ -85,7 +86,7 @@ export class AwsS3Service extends Service implements IAwsS3Service {
const baseFileName = `${Date.now()}-${path.basename(filePath)}`;
// Determine storage path based on public access
- const fileName =`${this.fileUploadPath}/${baseFileName}`.replaceAll('//', '/');
+ const fileName =`${this.fileUploadPath}${subDirectory}/${baseFileName}`.replaceAll('//', '/');
// Set upload parameters
const uploadParams = {
Bucket: this.bucket,
diff --git a/packages/plugin-node/src/services/image.ts b/packages/plugin-node/src/services/image.ts
index 8d1ec458c2..540065a4aa 100644
--- a/packages/plugin-node/src/services/image.ts
+++ b/packages/plugin-node/src/services/image.ts
@@ -195,21 +195,22 @@ export class ImageDescriptionService
},
];
- const response = await fetch(
- "https://api.openai.com/v1/chat/completions",
- {
- method: "POST",
- headers: {
- "Content-Type": "application/json",
- Authorization: `Bearer ${this.runtime.getSetting("OPENAI_API_KEY")}`,
- },
- body: JSON.stringify({
- model: "gpt-4o-mini",
- messages: [{ role: "user", content }],
- max_tokens: isGif ? 500 : 300,
- }),
- }
- );
+ const endpoint =
+ models[this.runtime.imageModelProvider].endpoint ??
+ "https://api.openai.com/v1";
+
+ const response = await fetch(endpoint + "/chat/completions", {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ Authorization: `Bearer ${this.runtime.getSetting("OPENAI_API_KEY")}`,
+ },
+ body: JSON.stringify({
+ model: "gpt-4o-mini",
+ messages: [{ role: "user", content }],
+ max_tokens: isGif ? 500 : 300,
+ }),
+ });
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
diff --git a/packages/plugin-solana/package.json b/packages/plugin-solana/package.json
index 2aa671fb7a..fb213a94a8 100644
--- a/packages/plugin-solana/package.json
+++ b/packages/plugin-solana/package.json
@@ -1,32 +1,33 @@
{
- "name": "@ai16z/plugin-solana",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@ai16z/plugin-trustdb": "workspace:*",
- "@ai16z/plugin-tee": "workspace:*",
- "@coral-xyz/anchor": "0.30.1",
- "@solana/spl-token": "0.4.9",
- "@solana/web3.js": "1.95.8",
- "bignumber": "1.1.0",
- "bignumber.js": "9.1.2",
- "bs58": "6.0.0",
- "node-cache": "5.1.2",
- "pumpdotfun-sdk": "1.3.2",
- "tsup": "8.3.5",
- "vitest": "2.1.4"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "lint": "eslint . --fix",
- "test": "vitest run"
- },
- "peerDependencies": {
- "form-data": "4.0.1",
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/plugin-solana",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@ai16z/plugin-trustdb": "workspace:*",
+ "@ai16z/plugin-tee": "workspace:*",
+ "@coral-xyz/anchor": "0.30.1",
+ "@solana/spl-token": "0.4.9",
+ "@solana/web3.js": "1.95.8",
+ "bignumber": "1.1.0",
+ "bignumber.js": "9.1.2",
+ "bs58": "6.0.0",
+ "fomo-sdk-solana": "1.3.2",
+ "node-cache": "5.1.2",
+ "pumpdotfun-sdk": "1.3.2",
+ "tsup": "8.3.5",
+ "vitest": "2.1.4"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "lint": "eslint --fix --cache .",
+ "test": "vitest run"
+ },
+ "peerDependencies": {
+ "form-data": "4.0.1",
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/plugin-solana/src/actions/fomo.ts b/packages/plugin-solana/src/actions/fomo.ts
new file mode 100644
index 0000000000..6914be959c
--- /dev/null
+++ b/packages/plugin-solana/src/actions/fomo.ts
@@ -0,0 +1,627 @@
+import { generateImage } from "@ai16z/eliza";
+import {
+ Connection,
+ Keypair,
+ PublicKey,
+ VersionedTransaction,
+} from "@solana/web3.js";
+import { Fomo, PurchaseCurrency } from "fomo-sdk-solana";
+import { getAssociatedTokenAddressSync } from "@solana/spl-token";
+import bs58 from "bs58";
+import {
+ settings,
+ ActionExample,
+ Content,
+ HandlerCallback,
+ IAgentRuntime,
+ Memory,
+ ModelClass,
+ State,
+ generateObject,
+ composeContext,
+ type Action,
+} from "@ai16z/eliza";
+
+import { walletProvider } from "../providers/wallet.ts";
+
+interface CreateTokenMetadata {
+ name: string;
+ symbol: string;
+ uri: string;
+}
+
+export interface CreateAndBuyContent extends Content {
+ tokenMetadata: {
+ name: string;
+ symbol: string;
+ description: string;
+ image_description: string;
+ };
+ buyAmountSol: string | number;
+ requiredLiquidity: string | number;
+}
+
+export function isCreateAndBuyContentForFomo(
+ content: any
+): content is CreateAndBuyContent {
+ console.log("Content for create & buy", content);
+ return (
+ typeof content.tokenMetadata === "object" &&
+ content.tokenMetadata !== null &&
+ typeof content.tokenMetadata.name === "string" &&
+ typeof content.tokenMetadata.symbol === "string" &&
+ typeof content.tokenMetadata.description === "string" &&
+ typeof content.tokenMetadata.image_description === "string" &&
+ (typeof content.buyAmountSol === "string" ||
+ typeof content.buyAmountSol === "number") &&
+ typeof content.requiredLiquidity === "number"
+ );
+}
+
+export const createAndBuyToken = async ({
+ deployer,
+ mint,
+ tokenMetadata,
+ buyAmountSol,
+ priorityFee,
+ requiredLiquidity = 85,
+ allowOffCurve,
+ commitment = "finalized",
+ fomo,
+ connection,
+}: {
+ deployer: Keypair;
+ mint: Keypair;
+ tokenMetadata: CreateTokenMetadata;
+ buyAmountSol: bigint;
+ priorityFee: number;
+ requiredLiquidity: number;
+ allowOffCurve: boolean;
+ commitment?:
+ | "processed"
+ | "confirmed"
+ | "finalized"
+ | "recent"
+ | "single"
+ | "singleGossip"
+ | "root"
+ | "max";
+ fomo: Fomo;
+ connection: Connection;
+ slippage: string;
+}) => {
+ const { transaction: versionedTx } = await fomo.createToken(
+ deployer.publicKey,
+ tokenMetadata.name,
+ tokenMetadata.symbol,
+ tokenMetadata.uri,
+ priorityFee,
+ bs58.encode(mint.secretKey),
+ requiredLiquidity,
+ Number(buyAmountSol) / 10 ** 9
+ );
+
+ const { blockhash, lastValidBlockHeight } =
+ await connection.getLatestBlockhash();
+ versionedTx.message.recentBlockhash = blockhash;
+ versionedTx.sign([mint]);
+
+ const serializedTransaction = versionedTx.serialize();
+ const serializedTransactionBase64 = Buffer.from(
+ serializedTransaction
+ ).toString("base64");
+
+ const deserializedTx = VersionedTransaction.deserialize(
+ Buffer.from(serializedTransactionBase64, "base64")
+ );
+
+ const txid = await connection.sendTransaction(deserializedTx, {
+ skipPreflight: false,
+ maxRetries: 3,
+ preflightCommitment: "confirmed",
+ });
+
+ console.log("Transaction sent:", txid);
+
+ // Confirm transaction using the blockhash
+ const confirmation = await connection.confirmTransaction(
+ {
+ signature: txid,
+ blockhash: blockhash,
+ lastValidBlockHeight: lastValidBlockHeight,
+ },
+ commitment
+ );
+
+ if (!confirmation.value.err) {
+ console.log(
+ "Success:",
+ `https://fomo.fund/token/${mint.publicKey.toBase58()}`
+ );
+ const ata = getAssociatedTokenAddressSync(
+ mint.publicKey,
+ deployer.publicKey,
+ allowOffCurve
+ );
+ const balance = await connection.getTokenAccountBalance(
+ ata,
+ "processed"
+ );
+ const amount = balance.value.uiAmount;
+ if (amount === null) {
+ console.log(
+ `${deployer.publicKey.toBase58()}:`,
+ "No Account Found"
+ );
+ } else {
+ console.log(`${deployer.publicKey.toBase58()}:`, amount);
+ }
+
+ return {
+ success: true,
+ ca: mint.publicKey.toBase58(),
+ creator: deployer.publicKey.toBase58(),
+ };
+ } else {
+ console.log("Create and Buy failed");
+ return {
+ success: false,
+ ca: mint.publicKey.toBase58(),
+ error: confirmation.value.err || "Transaction failed",
+ };
+ }
+};
+
+export const buyToken = async ({
+ fomo,
+ buyer,
+ mint,
+ amount,
+ priorityFee,
+ allowOffCurve,
+ slippage,
+ connection,
+ currency = "sol",
+ commitment = "finalized",
+}: {
+ fomo: Fomo;
+ buyer: Keypair;
+ mint: PublicKey;
+ amount: number;
+ priorityFee: number;
+ allowOffCurve: boolean;
+ slippage: number;
+ connection: Connection;
+ currency: PurchaseCurrency;
+ commitment?:
+ | "processed"
+ | "confirmed"
+ | "finalized"
+ | "recent"
+ | "single"
+ | "singleGossip"
+ | "root"
+ | "max";
+}) => {
+ const buyVersionedTx = await fomo.buyToken(
+ buyer.publicKey,
+ mint,
+ amount,
+ slippage,
+ priorityFee,
+ currency || "sol"
+ );
+
+ const { blockhash, lastValidBlockHeight } =
+ await connection.getLatestBlockhash();
+ buyVersionedTx.message.recentBlockhash = blockhash;
+
+ const serializedTransaction = buyVersionedTx.serialize();
+ const serializedTransactionBase64 = Buffer.from(
+ serializedTransaction
+ ).toString("base64");
+
+ const deserializedTx = VersionedTransaction.deserialize(
+ Buffer.from(serializedTransactionBase64, "base64")
+ );
+
+ const txid = await connection.sendTransaction(deserializedTx, {
+ skipPreflight: false,
+ maxRetries: 3,
+ preflightCommitment: "confirmed",
+ });
+
+ console.log("Transaction sent:", txid);
+
+ // Confirm transaction using the blockhash
+ const confirmation = await connection.confirmTransaction(
+ {
+ signature: txid,
+ blockhash: blockhash,
+ lastValidBlockHeight: lastValidBlockHeight,
+ },
+ commitment
+ );
+
+ if (!confirmation.value.err) {
+ console.log("Success:", `https://fomo.fund/token/${mint.toBase58()}`);
+ const ata = getAssociatedTokenAddressSync(
+ mint,
+ buyer.publicKey,
+ allowOffCurve
+ );
+ const balance = await connection.getTokenAccountBalance(
+ ata,
+ "processed"
+ );
+ const amount = balance.value.uiAmount;
+ if (amount === null) {
+ console.log(`${buyer.publicKey.toBase58()}:`, "No Account Found");
+ } else {
+ console.log(`${buyer.publicKey.toBase58()}:`, amount);
+ }
+ } else {
+ console.log("Buy failed");
+ }
+};
+
+export const sellToken = async ({
+ fomo,
+ seller,
+ mint,
+ amount,
+ priorityFee,
+ allowOffCurve,
+ slippage,
+ connection,
+ currency = "token",
+ commitment = "finalized",
+}: {
+ fomo: Fomo;
+ seller: Keypair;
+ mint: PublicKey;
+ amount: number;
+ priorityFee: number;
+ allowOffCurve: boolean;
+ slippage: number;
+ connection: Connection;
+ currency: PurchaseCurrency;
+ commitment?:
+ | "processed"
+ | "confirmed"
+ | "finalized"
+ | "recent"
+ | "single"
+ | "singleGossip"
+ | "root"
+ | "max";
+}) => {
+ const sellVersionedTx = await fomo.sellToken(
+ seller.publicKey,
+ mint,
+ amount,
+ slippage,
+ priorityFee,
+ currency || "token"
+ );
+
+ const { blockhash, lastValidBlockHeight } =
+ await connection.getLatestBlockhash();
+ sellVersionedTx.message.recentBlockhash = blockhash;
+
+ const serializedTransaction = sellVersionedTx.serialize();
+ const serializedTransactionBase64 = Buffer.from(
+ serializedTransaction
+ ).toString("base64");
+
+ const deserializedTx = VersionedTransaction.deserialize(
+ Buffer.from(serializedTransactionBase64, "base64")
+ );
+
+ const txid = await connection.sendTransaction(deserializedTx, {
+ skipPreflight: false,
+ maxRetries: 3,
+ preflightCommitment: "confirmed",
+ });
+
+ console.log("Transaction sent:", txid);
+
+ // Confirm transaction using the blockhash
+ const confirmation = await connection.confirmTransaction(
+ {
+ signature: txid,
+ blockhash: blockhash,
+ lastValidBlockHeight: lastValidBlockHeight,
+ },
+ commitment
+ );
+
+ if (!confirmation.value.err) {
+ console.log("Success:", `https://fomo.fund/token/${mint.toBase58()}`);
+ const ata = getAssociatedTokenAddressSync(
+ mint,
+ seller.publicKey,
+ allowOffCurve
+ );
+ const balance = await connection.getTokenAccountBalance(
+ ata,
+ "processed"
+ );
+ const amount = balance.value.uiAmount;
+ if (amount === null) {
+ console.log(`${seller.publicKey.toBase58()}:`, "No Account Found");
+ } else {
+ console.log(`${seller.publicKey.toBase58()}:`, amount);
+ }
+ } else {
+ console.log("Sell failed");
+ }
+};
+
+const promptConfirmation = async (): Promise => {
+ return true;
+};
+
+const fomoTemplate = `Respond with a JSON markdown block containing only the extracted values. Use null for any values that cannot be determined.
+
+Example response:
+\`\`\`json
+{
+ "tokenMetadata": {
+ "name": "Test Token",
+ "symbol": "TEST",
+ "description": "A test token",
+ "image_description": "create an image of a rabbit"
+ },
+ "buyAmountSol": "0.00069",
+ "requiredLiquidity": "85"
+}
+\`\`\`
+
+{{recentMessages}}
+
+Given the recent messages, extract or generate (come up with if not included) the following information about the requested token creation:
+- Token name
+- Token symbol
+- Token description
+- Token image description
+- Amount of SOL to buy
+
+Respond with a JSON markdown block containing only the extracted values.`;
+
+export default {
+ name: "CREATE_AND_BUY_TOKEN",
+ similes: ["CREATE_AND_PURCHASE_TOKEN", "DEPLOY_AND_BUY_TOKEN"],
+ validate: async (_runtime: IAgentRuntime, _message: Memory) => {
+ return true; //return isCreateAndBuyContent(runtime, message.content);
+ },
+ description:
+ "Create a new token and buy a specified amount using SOL. Requires deployer private key, token metadata, buy amount in SOL, priority fee, and allowOffCurve flag.",
+ handler: async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State,
+ _options: { [key: string]: unknown },
+ callback?: HandlerCallback
+ ): Promise => {
+ console.log("Starting CREATE_AND_BUY_TOKEN handler...");
+
+ // Compose state if not provided
+ if (!state) {
+ state = (await runtime.composeState(message)) as State;
+ } else {
+ state = await runtime.updateRecentMessageState(state);
+ }
+
+ // Get wallet info for context
+ const walletInfo = await walletProvider.get(runtime, message, state);
+ state.walletInfo = walletInfo;
+
+ // Generate structured content from natural language
+ const pumpContext = composeContext({
+ state,
+ template: fomoTemplate,
+ });
+
+ const content = await generateObject({
+ runtime,
+ context: pumpContext,
+ modelClass: ModelClass.LARGE,
+ });
+
+ // Validate the generated content
+ if (!isCreateAndBuyContentForFomo(content)) {
+ console.error("Invalid content for CREATE_AND_BUY_TOKEN action.");
+ return false;
+ }
+
+ const { tokenMetadata, buyAmountSol, requiredLiquidity } = content;
+ /*
+ // Generate image if tokenMetadata.file is empty or invalid
+ if (!tokenMetadata.file || tokenMetadata.file.length < 100) { // Basic validation
+ try {
+ const imageResult = await generateImage({
+ prompt: `logo for ${tokenMetadata.name} (${tokenMetadata.symbol}) token - ${tokenMetadata.description}`,
+ width: 512,
+ height: 512,
+ count: 1
+ }, runtime);
+
+ if (imageResult.success && imageResult.data && imageResult.data.length > 0) {
+ // Remove the "data:image/png;base64," prefix if present
+ tokenMetadata.file = imageResult.data[0].replace(/^data:image\/[a-z]+;base64,/, '');
+ } else {
+ console.error("Failed to generate image:", imageResult.error);
+ return false;
+ }
+ } catch (error) {
+ console.error("Error generating image:", error);
+ return false;
+ }
+ } */
+
+ const imageResult = await generateImage(
+ {
+ prompt: `logo for ${tokenMetadata.name} (${tokenMetadata.symbol}) token - ${tokenMetadata.description}`,
+ width: 256,
+ height: 256,
+ count: 1,
+ },
+ runtime
+ );
+
+ const imageBuffer = Buffer.from(imageResult.data[0], "base64");
+ const formData = new FormData();
+ const blob = new Blob([imageBuffer], { type: "image/png" });
+ formData.append("file", blob, `${tokenMetadata.name}.png`);
+ formData.append("name", tokenMetadata.name);
+ formData.append("symbol", tokenMetadata.symbol);
+ formData.append("description", tokenMetadata.description);
+
+ // FIXME: does fomo.fund have an ipfs call?
+ const metadataResponse = await fetch("https://pump.fun/api/ipfs", {
+ method: "POST",
+ body: formData,
+ });
+ const metadataResponseJSON = (await metadataResponse.json()) as {
+ name: string;
+ symbol: string;
+ metadataUri: string;
+ };
+ // Add the default decimals and convert file to Blob
+ const fullTokenMetadata: CreateTokenMetadata = {
+ name: tokenMetadata.name,
+ symbol: tokenMetadata.symbol,
+ uri: metadataResponseJSON.metadataUri,
+ };
+
+ // Default priority fee for high network load
+ const priorityFee = {
+ unitLimit: 100_000_000,
+ unitPrice: 100_000,
+ };
+ const slippage = "2000";
+ try {
+ // Get private key from settings and create deployer keypair
+ const privateKeyString =
+ runtime.getSetting("SOLANA_PRIVATE_KEY") ??
+ runtime.getSetting("WALLET_PRIVATE_KEY");
+ const secretKey = bs58.decode(privateKeyString);
+ const deployerKeypair = Keypair.fromSecretKey(secretKey);
+
+ // Generate new mint keypair
+ const mintKeypair = Keypair.generate();
+ console.log(
+ `Generated mint address: ${mintKeypair.publicKey.toBase58()}`
+ );
+
+ // Setup connection and SDK
+ const connection = new Connection(settings.RPC_URL!, {
+ commitment: "confirmed",
+ confirmTransactionInitialTimeout: 500000, // 120 seconds
+ wsEndpoint: settings.RPC_URL!.replace("https", "wss"),
+ });
+
+ const sdk = new Fomo(connection, "devnet", deployerKeypair);
+ // const slippage = runtime.getSetting("SLIPPAGE");
+
+ const createAndBuyConfirmation = await promptConfirmation();
+ if (!createAndBuyConfirmation) {
+ console.log("Create and buy token canceled by user");
+ return false;
+ }
+
+ // Convert SOL to lamports (1 SOL = 1_000_000_000 lamports)
+ const lamports = Math.floor(Number(buyAmountSol) * 1_000_000_000);
+
+ console.log("Executing create and buy transaction...");
+ const result = await createAndBuyToken({
+ deployer: deployerKeypair,
+ mint: mintKeypair,
+ tokenMetadata: fullTokenMetadata,
+ buyAmountSol: BigInt(lamports),
+ priorityFee: priorityFee.unitPrice,
+ requiredLiquidity: Number(requiredLiquidity),
+ allowOffCurve: false,
+ fomo: sdk,
+ connection,
+ slippage,
+ });
+
+ if (callback) {
+ if (result.success) {
+ callback({
+ text: `Token ${tokenMetadata.name} (${tokenMetadata.symbol}) created successfully!\nURL: https://fomo.fund/token/${result.ca}\nCreator: ${result.creator}\nView at: https://fomo.fund/token/${result.ca}`,
+ content: {
+ tokenInfo: {
+ symbol: tokenMetadata.symbol,
+ address: result.ca,
+ creator: result.creator,
+ name: tokenMetadata.name,
+ description: tokenMetadata.description,
+ timestamp: Date.now(),
+ },
+ },
+ });
+ } else {
+ callback({
+ text: `Failed to create token: ${result.error}\nAttempted mint address: ${result.ca}`,
+ content: {
+ error: result.error,
+ mintAddress: result.ca,
+ },
+ });
+ }
+ }
+ //await trustScoreDb.addToken(tokenInfo);
+ /*
+ // Update runtime state
+ await runtime.updateState({
+ ...state,
+ lastCreatedToken: tokenInfo
+ });
+ */
+ // Log success message with token view URL
+ const successMessage = `Token created and purchased successfully! View at: https://fomo.fund/token/${mintKeypair.publicKey.toBase58()}`;
+ console.log(successMessage);
+ return result.success;
+ } catch (error) {
+ if (callback) {
+ callback({
+ text: `Error during token creation: ${error.message}`,
+ content: { error: error.message },
+ });
+ }
+ return false;
+ }
+ },
+
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Create a new token called GLITCHIZA with symbol GLITCHIZA and generate a description about it on fomo.fund. Also come up with a description for it to use for image generation .buy 0.00069 SOL worth.",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Token GLITCHIZA (GLITCHIZA) created successfully on fomo.fund!\nURL: https://fomo.fund/token/673247855e8012181f941f84\nCreator: Anonymous\nView at: https://fomo.fund/token/673247855e8012181f941f84",
+ action: "CREATE_AND_BUY_TOKEN",
+ content: {
+ tokenInfo: {
+ symbol: "GLITCHIZA",
+ address:
+ "EugPwuZ8oUMWsYHeBGERWvELfLGFmA1taDtmY8uMeX6r",
+ creator:
+ "9jW8FPr6BSSsemWPV22UUCzSqkVdTp6HTyPqeqyuBbCa",
+ name: "GLITCHIZA",
+ description: "A GLITCHIZA token",
+ },
+ },
+ },
+ },
+ ],
+ ] as ActionExample[][],
+} as Action;
diff --git a/packages/plugin-solana/src/actions/pumpfun.ts b/packages/plugin-solana/src/actions/pumpfun.ts
index 5cc1ebca18..10a591fe17 100644
--- a/packages/plugin-solana/src/actions/pumpfun.ts
+++ b/packages/plugin-solana/src/actions/pumpfun.ts
@@ -14,7 +14,7 @@ import {
Memory,
ModelClass,
State,
- generateObjectDEPRECATED,
+ generateObjectDeprecated,
composeContext,
type Action,
} from "@ai16z/eliza";
@@ -302,7 +302,7 @@ export default {
template: pumpfunTemplate,
});
- const content = await generateObjectDEPRECATED({
+ const content = await generateObjectDeprecated({
runtime,
context: pumpContext,
modelClass: ModelClass.LARGE,
@@ -487,13 +487,13 @@ export default {
{
user: "{{user1}}",
content: {
- text: "Create a new token called GLITCHIZA with symbol GLITCHIZA and generate a description about it. Also come up with a description for it to use for image generation .buy 0.00069 SOL worth.",
+ text: "Create a new token called GLITCHIZA with symbol GLITCHIZA and generate a description about it on pump.fun. Also come up with a description for it to use for image generation .buy 0.00069 SOL worth.",
},
},
{
user: "{{user2}}",
content: {
- text: "Token GLITCHIZA (GLITCHIZA) created successfully!\nContract Address: 3kD5DN4bbA3nykb1abjS66VF7cYZkKdirX8bZ6ShJjBB\nCreator: 9jW8FPr6BSSsemWPV22UUCzSqkVdTp6HTyPqeqyuBbCa\nView at: https://pump.fun/EugPwuZ8oUMWsYHeBGERWvELfLGFmA1taDtmY8uMeX6r",
+ text: "Token GLITCHIZA (GLITCHIZA) created successfully on pump.fun!\nContract Address: 3kD5DN4bbA3nykb1abjS66VF7cYZkKdirX8bZ6ShJjBB\nCreator: 9jW8FPr6BSSsemWPV22UUCzSqkVdTp6HTyPqeqyuBbCa\nView at: https://pump.fun/EugPwuZ8oUMWsYHeBGERWvELfLGFmA1taDtmY8uMeX6r",
action: "CREATE_AND_BUY_TOKEN",
content: {
tokenInfo: {
diff --git a/packages/plugin-solana/src/actions/swap.ts b/packages/plugin-solana/src/actions/swap.ts
index 434e2cb816..ffb56183c9 100644
--- a/packages/plugin-solana/src/actions/swap.ts
+++ b/packages/plugin-solana/src/actions/swap.ts
@@ -1,28 +1,20 @@
-import {
- Connection,
- PublicKey,
- VersionedTransaction,
-} from "@solana/web3.js";
-import BigNumber from "bignumber.js";
-import { v4 as uuidv4 } from "uuid";
-import { TrustScoreDatabase } from "@ai16z/plugin-trustdb";
import {
ActionExample,
+ composeContext,
+ generateObjectDeprecated,
HandlerCallback,
IAgentRuntime,
Memory,
ModelClass,
+ settings,
State,
type Action,
- composeContext,
- generateObjectDEPRECATED,
- settings,
} from "@ai16z/eliza";
-import { TokenProvider } from "../providers/token.ts";
-import { TrustScoreManager } from "../providers/trustScoreProvider.ts";
+import { Connection, PublicKey, VersionedTransaction } from "@solana/web3.js";
+import BigNumber from "bignumber.js";
+import { getWalletKey } from "../keypairUtils.ts";
import { walletProvider, WalletProvider } from "../providers/wallet.ts";
import { getTokenDecimals } from "./swapUtils.ts";
-import { getWalletKey } from "../keypairUtils.ts";
async function swapToken(
connection: Connection,
@@ -206,15 +198,14 @@ export const executeSwap: Action = {
template: swapTemplate,
});
- const response = await generateObjectDEPRECATED({
+ const response = await generateObjectDeprecated({
runtime,
context: swapContext,
modelClass: ModelClass.LARGE,
});
console.log("Response:", response);
- const type =
- response.inputTokenSymbol?.toUpperCase() === "SOL" ? "buy" : "sell";
+ // const type = response.inputTokenSymbol?.toUpperCase() === "SOL" ? "buy" : "sell";
// Add SOL handling logic
if (response.inputTokenSymbol?.toUpperCase() === "SOL") {
@@ -295,7 +286,7 @@ export const executeSwap: Action = {
false
);
- const provider = new WalletProvider(connection, walletPublicKey);
+ // const provider = new WalletProvider(connection, walletPublicKey);
console.log("Wallet Public Key:", walletPublicKey);
console.log("inputTokenSymbol:", response.inputTokenCA);
@@ -366,81 +357,6 @@ export const executeSwap: Action = {
);
}
- if (type === "buy") {
- const tokenProvider = new TokenProvider(
- response.outputTokenCA,
- provider,
- runtime.cacheManager
- );
- const module = await import("better-sqlite3");
- const Database = module.default;
- const trustScoreDb = new TrustScoreDatabase(
- new Database(":memory:")
- );
- // add or get recommender
- const uuid = uuidv4();
- const recommender = await trustScoreDb.getOrCreateRecommender({
- id: uuid,
- address: walletPublicKey.toString(),
- solanaPubkey: walletPublicKey.toString(),
- });
-
- const trustScoreDatabase = new TrustScoreManager(
- runtime,
- tokenProvider,
- trustScoreDb
- );
- // save the trade
- const tradeData = {
- buy_amount: response.amount,
- is_simulation: false,
- };
- await trustScoreDatabase.createTradePerformance(
- runtime,
- response.outputTokenCA,
- recommender.id,
- tradeData
- );
- } else if (type === "sell") {
- const tokenProvider = new TokenProvider(
- response.inputTokenCA,
- provider,
- runtime.cacheManager
- );
- const module = await import("better-sqlite3");
- const Database = module.default;
- const trustScoreDb = new TrustScoreDatabase(
- new Database(":memory:")
- );
- // add or get recommender
- const uuid = uuidv4();
- const recommender = await trustScoreDb.getOrCreateRecommender({
- id: uuid,
- address: walletPublicKey.toString(),
- solanaPubkey: walletPublicKey.toString(),
- });
-
- const trustScoreDatabase = new TrustScoreManager(
- runtime,
- tokenProvider,
- trustScoreDb
- );
- // save the trade
- const sellDetails = {
- sell_amount: response.amount,
- sell_recommender_id: recommender.id,
- };
- const sellTimeStamp = new Date().getTime().toString();
- await trustScoreDatabase.updateSellDetails(
- runtime,
- response.inputTokenCA,
- recommender.id,
- sellTimeStamp,
- sellDetails,
- false
- );
- }
-
console.log("Swap completed successfully!");
console.log(`Transaction ID: ${txid}`);
diff --git a/packages/plugin-solana/src/actions/transfer.ts b/packages/plugin-solana/src/actions/transfer.ts
index b8b0d12aec..12e9a49eb1 100644
--- a/packages/plugin-solana/src/actions/transfer.ts
+++ b/packages/plugin-solana/src/actions/transfer.ts
@@ -23,7 +23,7 @@ import {
} from "@ai16z/eliza";
import { composeContext } from "@ai16z/eliza";
import { getWalletKey } from "../keypairUtils";
-import { generateObjectDEPRECATED } from "@ai16z/eliza";
+import { generateObjectDeprecated } from "@ai16z/eliza";
export interface TransferContent extends Content {
tokenAddress: string;
@@ -118,7 +118,7 @@ export default {
});
// Generate transfer content
- const content = await generateObjectDEPRECATED({
+ const content = await generateObjectDeprecated({
runtime,
context: transferContext,
modelClass: ModelClass.LARGE,
diff --git a/packages/plugin-solana/src/index.ts b/packages/plugin-solana/src/index.ts
index 580b651634..70ca1b0325 100644
--- a/packages/plugin-solana/src/index.ts
+++ b/packages/plugin-solana/src/index.ts
@@ -7,6 +7,7 @@ import { Plugin } from "@ai16z/eliza";
import { executeSwap } from "./actions/swap.ts";
import take_order from "./actions/takeOrder";
import pumpfun from "./actions/pumpfun.ts";
+import fomo from "./actions/fomo.ts";
import { executeSwapForDAO } from "./actions/swapDao";
import transferToken from "./actions/transfer.ts";
import { walletProvider } from "./providers/wallet.ts";
@@ -23,6 +24,7 @@ export const solanaPlugin: Plugin = {
actions: [
executeSwap,
pumpfun,
+ fomo,
transferToken,
executeSwapForDAO,
take_order,
diff --git a/packages/plugin-starknet/package.json b/packages/plugin-starknet/package.json
index 39a651ce02..c7a74dce6c 100644
--- a/packages/plugin-starknet/package.json
+++ b/packages/plugin-starknet/package.json
@@ -1,27 +1,27 @@
{
- "name": "@ai16z/plugin-starknet",
- "version": "0.1.5-alpha.5",
- "main": "dist/index.js",
- "type": "module",
- "types": "dist/index.d.ts",
- "dependencies": {
- "@ai16z/eliza": "workspace:*",
- "@ai16z/plugin-trustdb": "workspace:*",
- "@avnu/avnu-sdk": "2.1.1",
- "@uniswap/sdk-core": "6.0.0",
- "@unruggable_starknet/core": "0.1.0",
- "starknet": "6.18.0",
- "tsup": "8.3.5",
- "vitest": "2.1.5"
- },
- "scripts": {
- "build": "tsup --format esm --dts",
- "dev": "tsup --format esm --dts --watch",
- "test": "vitest run",
- "test:watch": "vitest",
- "lint": "eslint . --fix"
- },
- "peerDependencies": {
- "whatwg-url": "7.1.0"
- }
+ "name": "@ai16z/plugin-starknet",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@ai16z/plugin-trustdb": "workspace:*",
+ "@avnu/avnu-sdk": "2.1.1",
+ "@uniswap/sdk-core": "6.0.0",
+ "@unruggable_starknet/core": "0.1.0",
+ "starknet": "6.18.0",
+ "tsup": "8.3.5",
+ "vitest": "2.1.5"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "test": "vitest run",
+ "test:watch": "vitest",
+ "lint": "eslint --fix --cache ."
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ }
}
diff --git a/packages/plugin-starknet/src/actions/subdomain.ts b/packages/plugin-starknet/src/actions/subdomain.ts
index d3911b42f9..4f3c50fc01 100644
--- a/packages/plugin-starknet/src/actions/subdomain.ts
+++ b/packages/plugin-starknet/src/actions/subdomain.ts
@@ -9,7 +9,7 @@ import {
State,
type Action,
composeContext,
- generateObjectDEPRECATED,
+ generateObjectDeprecated,
Content,
elizaLogger,
} from "@ai16z/eliza";
@@ -107,7 +107,7 @@ export default {
});
// Generate transfer content
- const content = await generateObjectDEPRECATED({
+ const content = await generateObjectDeprecated({
runtime,
context: transferContext,
modelClass: ModelClass.MEDIUM,
diff --git a/packages/plugin-starknet/src/actions/swap.ts b/packages/plugin-starknet/src/actions/swap.ts
index 84737520c1..92e13d7d8b 100644
--- a/packages/plugin-starknet/src/actions/swap.ts
+++ b/packages/plugin-starknet/src/actions/swap.ts
@@ -3,7 +3,7 @@ import {
ActionExample,
composeContext,
elizaLogger,
- generateObjectDEPRECATED,
+ generateObjectDeprecated,
HandlerCallback,
IAgentRuntime,
Memory,
@@ -105,7 +105,7 @@ export const executeSwap: Action = {
template: swapTemplate,
});
- const response = await generateObjectDEPRECATED({
+ const response = await generateObjectDeprecated({
runtime,
context: swapContext,
modelClass: ModelClass.MEDIUM,
diff --git a/packages/plugin-starknet/src/actions/transfer.ts b/packages/plugin-starknet/src/actions/transfer.ts
index 8eb8e08607..c761799690 100644
--- a/packages/plugin-starknet/src/actions/transfer.ts
+++ b/packages/plugin-starknet/src/actions/transfer.ts
@@ -7,7 +7,7 @@ import {
composeContext,
Content,
elizaLogger,
- generateObjectDEPRECATED,
+ generateObjectDeprecated,
HandlerCallback,
IAgentRuntime,
Memory,
@@ -136,7 +136,7 @@ export default {
});
// Generate transfer content
- const content = await generateObjectDEPRECATED({
+ const content = await generateObjectDeprecated({
runtime,
context: transferContext,
modelClass: ModelClass.MEDIUM,
diff --git a/packages/plugin-starknet/src/actions/unruggable.ts b/packages/plugin-starknet/src/actions/unruggable.ts
index 88a5d7e370..d3e796ce70 100644
--- a/packages/plugin-starknet/src/actions/unruggable.ts
+++ b/packages/plugin-starknet/src/actions/unruggable.ts
@@ -3,7 +3,7 @@ import {
ActionExample,
composeContext,
elizaLogger,
- generateObjectDEPRECATED,
+ generateObjectDeprecated,
HandlerCallback,
IAgentRuntime,
Memory,
@@ -102,7 +102,7 @@ export const deployToken: Action = {
template: deployTemplate,
});
- const response = await generateObjectDEPRECATED({
+ const response = await generateObjectDeprecated({
runtime,
context: deployContext,
modelClass: ModelClass.MEDIUM,
diff --git a/packages/plugin-story/package.json b/packages/plugin-story/package.json
new file mode 100644
index 0000000000..384a1d8f04
--- /dev/null
+++ b/packages/plugin-story/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "@ai16z/plugin-story",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@ai16z/plugin-trustdb": "workspace:*",
+ "@story-protocol/core-sdk": "1.2.0-rc.3",
+ "tsup": "8.3.5",
+ "viem": "2.21.54",
+ "@pinata/sdk": "^2.1.0"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "dev": "tsup --format esm --dts --watch",
+ "test": "vitest run"
+ },
+ "peerDependencies": {
+ "whatwg-url": "7.1.0"
+ },
+ "devDependencies": {
+ "@types/node": "^22.10.1"
+ }
+}
diff --git a/packages/plugin-story/src/actions/attachTerms.ts b/packages/plugin-story/src/actions/attachTerms.ts
new file mode 100644
index 0000000000..9c5abf690a
--- /dev/null
+++ b/packages/plugin-story/src/actions/attachTerms.ts
@@ -0,0 +1,159 @@
+import {
+ composeContext,
+ elizaLogger,
+ generateObjectDeprecated,
+ HandlerCallback,
+ ModelClass,
+ type IAgentRuntime,
+ type Memory,
+ type State,
+} from "@ai16z/eliza";
+import { WalletProvider } from "../providers/wallet";
+import { attachTermsTemplate } from "../templates";
+import {
+ AttachLicenseTermsResponse,
+ LicenseTerms,
+ RegisterPILResponse,
+} from "@story-protocol/core-sdk";
+import { AttachTermsParams } from "../types";
+import { zeroAddress } from "viem";
+
+export { attachTermsTemplate };
+
+export class AttachTermsAction {
+ constructor(private walletProvider: WalletProvider) {}
+
+ async attachTerms(params: AttachTermsParams): Promise<{
+ attachTermsResponse: AttachLicenseTermsResponse;
+ registerPilTermsResponse: RegisterPILResponse;
+ }> {
+ const storyClient = this.walletProvider.getStoryClient();
+
+ console.log("params", params);
+
+ const licenseTerms: LicenseTerms = {
+ transferable: true,
+ royaltyPolicy: params.commercialUse
+ ? "0x28b4F70ffE5ba7A26aEF979226f77Eb57fb9Fdb6"
+ : zeroAddress,
+ defaultMintingFee: params.mintingFee
+ ? BigInt(params.mintingFee)
+ : BigInt(0),
+ expiration: BigInt(0),
+ commercialUse: params.commercialUse || false,
+ commercialAttribution: false,
+ commercializerChecker: zeroAddress,
+ commercializerCheckerData: zeroAddress,
+ commercialRevShare: params.commercialUse
+ ? params.commercialRevShare
+ : 0,
+ commercialRevCeiling: BigInt(0),
+ derivativesAllowed: true,
+ derivativesAttribution: true,
+ derivativesApproval: false,
+ derivativesReciprocal: true,
+ derivativeRevCeiling: BigInt(0),
+ currency: "0xC0F6E387aC0B324Ec18EAcf22EE7271207dCE3d5",
+ uri: "",
+ };
+
+ const registerPilTermsResponse =
+ await storyClient.license.registerPILTerms({
+ ...licenseTerms,
+ txOptions: { waitForTransaction: true },
+ });
+
+ const attachTermsResponse =
+ await storyClient.license.attachLicenseTerms({
+ ipId: params.ipId,
+ licenseTermsId: registerPilTermsResponse.licenseTermsId,
+ txOptions: { waitForTransaction: true },
+ });
+
+ return { attachTermsResponse, registerPilTermsResponse };
+ }
+}
+
+export const attachTermsAction = {
+ name: "ATTACH_TERMS",
+ description: "Attach license terms to an IP Asset on Story",
+ handler: async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State,
+ options: any,
+ callback?: HandlerCallback
+ ): Promise => {
+ elizaLogger.log("Starting ATTACH_TERMS handler...");
+
+ // initialize or update state
+ if (!state) {
+ state = (await runtime.composeState(message)) as State;
+ } else {
+ state = await runtime.updateRecentMessageState(state);
+ }
+
+ const attachTermsContext = composeContext({
+ state,
+ template: attachTermsTemplate,
+ });
+
+ const content = await generateObjectDeprecated({
+ runtime,
+ context: attachTermsContext,
+ modelClass: ModelClass.SMALL,
+ });
+
+ const walletProvider = new WalletProvider(runtime);
+ const action = new AttachTermsAction(walletProvider);
+ try {
+ const response = await action.attachTerms(content);
+ // if license terms were attached
+ if (response.attachTermsResponse.success) {
+ callback?.({
+ text: `Successfully attached license terms: ${response.registerPilTermsResponse.licenseTermsId}. Transaction Hash: ${response.attachTermsResponse.txHash}. View it on the block explorer: https://odyssey.storyscan.xyz/tx/${response.attachTermsResponse.txHash}`,
+ });
+ return true;
+ }
+ // if license terms were already attached
+ callback?.({
+ text: `License terms ${response.registerPilTermsResponse.licenseTermsId} were already attached to IP Asset ${content.ipId}`,
+ });
+ return true;
+ } catch (e) {
+ elizaLogger.error("Error licensing IP:", e.message);
+ callback?.({ text: `Error licensing IP: ${e.message}` });
+ return false;
+ }
+ },
+ template: attachTermsTemplate,
+ validate: async (runtime: IAgentRuntime) => {
+ const privateKey = runtime.getSetting("STORY_PRIVATE_KEY");
+ return typeof privateKey === "string" && privateKey.startsWith("0x");
+ },
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "I would like to attach license terms to my IP.",
+ action: "ATTACH_TERMS",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Sure! What is the ipId? You should also tell me if you want to add a minting fee, or if you want to enable commercial use of your IP. If so, you can add a revenue share as well.",
+ action: "ATTACH_TERMS",
+ },
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Attach commercial, 10% rev share license terms to IP Asset 0x2265F2b8e47F98b3Bdf7a1937EAc27282954A4Db",
+ },
+ },
+ ],
+ ],
+ similes: ["ATTACH_TERMS", "ATTACH_TERMS_TO_IP"],
+};
diff --git a/packages/plugin-story/src/actions/getAvailableLicenses.ts b/packages/plugin-story/src/actions/getAvailableLicenses.ts
new file mode 100644
index 0000000000..e3b9030517
--- /dev/null
+++ b/packages/plugin-story/src/actions/getAvailableLicenses.ts
@@ -0,0 +1,166 @@
+import {
+ composeContext,
+ elizaLogger,
+ generateObjectDeprecated,
+ HandlerCallback,
+ ModelClass,
+ type IAgentRuntime,
+ type Memory,
+ type State,
+} from "@ai16z/eliza";
+import { getAvailableLicensesTemplate, licenseIPTemplate } from "../templates";
+import { Address } from "viem";
+import { IPLicenseDetails, RESOURCE_TYPE } from "../types/api";
+import { API_KEY, API_URL } from "../lib/api";
+import { storyOdyssey } from "viem/chains";
+
+export { licenseIPTemplate };
+
+// Types for request/response
+type GetAvailableLicensesParams = {
+ ipid: Address;
+};
+
+type GetAvailableLicensesResponse = {
+ data: IPLicenseDetails[];
+};
+
+/**
+ * Class to handle fetching available licenses for an IP asset from Story Protocol
+ */
+export class GetAvailableLicensesAction {
+ // Default query options for license terms
+ private readonly defaultQueryOptions = {
+ pagination: { limit: 10, offset: 0 },
+ orderBy: "blockNumber",
+ orderDirection: "desc",
+ };
+
+ async getAvailableLicenses(
+ params: GetAvailableLicensesParams
+ ): Promise {
+ elizaLogger.log(
+ "Fetching from",
+ `${API_URL}/${RESOURCE_TYPE.IP_LICENSE_DETAILS}`
+ );
+
+ const response = await fetch(
+ `${API_URL}/${RESOURCE_TYPE.IP_LICENSE_DETAILS}`,
+ {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ "x-api-key": API_KEY,
+ "x-chain": storyOdyssey.id.toString(),
+ },
+ cache: "no-cache",
+ body: JSON.stringify({
+ ip_ids: [params.ipid],
+ options: this.defaultQueryOptions,
+ }),
+ }
+ );
+
+ if (!response.ok) {
+ throw new Error(`HTTP error! status: ${response.status}`);
+ }
+
+ try {
+ const text = await response.text();
+ const licenseDetailsResponse = JSON.parse(text);
+ elizaLogger.log("licenseDetailsResponse", licenseDetailsResponse);
+ return licenseDetailsResponse;
+ } catch (e) {
+ elizaLogger.error("Failed to parse response");
+ throw new Error(`Failed to parse JSON response: ${e.message}`);
+ }
+ }
+}
+
+/**
+ * Formats a license's terms into a human-readable string
+ */
+const formatLicenseTerms = (license: IPLicenseDetails): string => {
+ const terms = license.terms;
+ return `License ID: ${license.id}
+- Terms:
+ • Commercial Use: ${terms.commercialUse ? "Allowed" : "Not Allowed"}
+ • Commercial Attribution: ${terms.commercialAttribution ? "Required" : "Not Required"}
+ • Derivatives: ${terms.derivativesAllowed ? "Allowed" : "Not Allowed"}
+ • Derivatives Attribution: ${terms.derivativesAttribution ? "Required" : "Not Required"}
+ • Derivatives Approval: ${terms.derivativesApproval ? "Required" : "Not Required"}
+ • Revenue Share: ${terms.commercialRevenueShare ? terms.commercialRevenueShare + "%" : "Not Required"}
+`;
+};
+
+/**
+ * Main action configuration for getting available licenses
+ */
+export const getAvailableLicensesAction = {
+ name: "GET_AVAILABLE_LICENSES",
+ description: "Get available licenses for an IP Asset on Story",
+ handler: async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State,
+ options: any,
+ callback?: HandlerCallback
+ ): Promise => {
+ elizaLogger.log("Starting GET_AVAILABLE_LICENSES handler...");
+
+ // Initialize or update state
+ state = !state
+ ? ((await runtime.composeState(message)) as State)
+ : await runtime.updateRecentMessageState(state);
+
+ // Generate parameters from context
+ const content = await generateObjectDeprecated({
+ runtime,
+ context: composeContext({
+ state,
+ template: getAvailableLicensesTemplate,
+ }),
+ modelClass: ModelClass.SMALL,
+ });
+
+ // Fetch and format license data
+ const action = new GetAvailableLicensesAction();
+ try {
+ const response = await action.getAvailableLicenses(content);
+ const formattedResponse = response.data
+ .map(formatLicenseTerms)
+ .join("\n");
+
+ callback?.({
+ text: formattedResponse,
+ action: "GET_AVAILABLE_LICENSES",
+ source: "Story Protocol API",
+ });
+ return true;
+ } catch (e) {
+ elizaLogger.error("Error fetching available licenses:", e.message);
+ callback?.({
+ text: `Error fetching available licenses: ${e.message}`,
+ });
+ return false;
+ }
+ },
+ template: getAvailableLicensesTemplate,
+ validate: async () => true,
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Get available licenses for an IP Asset 0x2265F2b8e47F98b3Bdf7a1937EAc27282954A4Db",
+ action: "GET_AVAILABLE_LICENSES",
+ },
+ },
+ ],
+ ],
+ similes: [
+ "AVAILABLE_LICENSES",
+ "AVAILABLE_LICENSES_FOR_IP",
+ "AVAILABLE_LICENSES_FOR_ASSET",
+ ],
+};
diff --git a/packages/plugin-story/src/actions/getIPDetails.ts b/packages/plugin-story/src/actions/getIPDetails.ts
new file mode 100644
index 0000000000..e5a22cc44f
--- /dev/null
+++ b/packages/plugin-story/src/actions/getIPDetails.ts
@@ -0,0 +1,125 @@
+import {
+ composeContext,
+ elizaLogger,
+ generateObjectDeprecated,
+ HandlerCallback,
+ ModelClass,
+ type IAgentRuntime,
+ type Memory,
+ type State,
+} from "@ai16z/eliza";
+import { getIPDetailsTemplate } from "../templates";
+import { Address } from "viem";
+import { Asset, RESOURCE_TYPE } from "../types/api";
+import { API_URL, getResource } from "../lib/api";
+
+export { getIPDetailsTemplate };
+
+// Types for the action parameters and response
+type GetIPDetailsParams = {
+ ipId: Address;
+};
+
+type GetIPDetailsResponse = {
+ data: Asset;
+};
+
+/**
+ * Class handling IP details retrieval from Story Protocol
+ */
+class GetIPDetailsAction {
+ async getIPDetails(
+ params: GetIPDetailsParams
+ ): Promise {
+ elizaLogger.log("Fetching from", `${API_URL}/${RESOURCE_TYPE.ASSET}`);
+ return (await getResource(
+ RESOURCE_TYPE.ASSET,
+ params.ipId
+ )) as GetIPDetailsResponse;
+ }
+}
+
+/**
+ * Formats IP asset details into a readable string
+ */
+const formatIPDetails = (data: Asset): string => `IP Asset Details:
+ID: ${data.id}
+NFT Name: ${data.nftMetadata.name}
+Token Contract: ${data.nftMetadata.tokenContract}
+Token ID: ${data.nftMetadata.tokenId}
+Image URL: ${data.nftMetadata.imageUrl}
+
+Relationships:
+• Ancestors: ${data.ancestorCount}
+• Descendants: ${data.descendantCount}
+• Parents: ${data.parentCount || 0}
+• Children: ${data.childCount || 0}
+• Roots: ${data.rootCount || 0}
+
+Created:
+Block #${data.blockNumber}
+Timestamp: ${data.blockTimestamp}`;
+
+/**
+ * Main action configuration for getting IP details
+ */
+export const getIPDetailsAction = {
+ name: "GET_IP_DETAILS",
+ description: "Get details for an IP Asset on Story",
+ handler: async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State,
+ options: any,
+ callback?: HandlerCallback
+ ): Promise => {
+ elizaLogger.log("Starting GET_IP_DETAILS handler...");
+
+ // Initialize or update state
+ state = !state
+ ? ((await runtime.composeState(message)) as State)
+ : await runtime.updateRecentMessageState(state);
+
+ // Generate content using template
+ const content = await generateObjectDeprecated({
+ runtime,
+ context: composeContext({ state, template: getIPDetailsTemplate }),
+ modelClass: ModelClass.SMALL,
+ });
+
+ // Fetch and format IP details
+ const action = new GetIPDetailsAction();
+ try {
+ const response = await action.getIPDetails(content);
+ const formattedResponse = formatIPDetails(response.data);
+
+ callback?.({
+ text: formattedResponse,
+ action: "GET_IP_DETAILS",
+ source: "Story Protocol API",
+ });
+ return true;
+ } catch (e) {
+ elizaLogger.error("Error fetching IP details:", e.message);
+ callback?.({
+ text: `Error fetching IP details: ${e.message}`,
+ });
+ return false;
+ }
+ },
+ template: getIPDetailsTemplate,
+ validate: async () => true,
+ // Example usage of the action
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Get details for an IP Asset 0x2265F2b8e47F98b3Bdf7a1937EAc27282954A4Db",
+ action: "GET_IP_DETAILS",
+ },
+ },
+ ],
+ ],
+ similes: ["IP_DETAILS", "IP_DETAILS_FOR_ASSET", "IP_DETAILS_FOR_IP"],
+};
diff --git a/packages/plugin-story/src/actions/licenseIP.ts b/packages/plugin-story/src/actions/licenseIP.ts
new file mode 100644
index 0000000000..f05cedf20d
--- /dev/null
+++ b/packages/plugin-story/src/actions/licenseIP.ts
@@ -0,0 +1,121 @@
+import {
+ composeContext,
+ elizaLogger,
+ generateObjectDeprecated,
+ HandlerCallback,
+ ModelClass,
+ type IAgentRuntime,
+ type Memory,
+ type State,
+} from "@ai16z/eliza";
+import { WalletProvider } from "../providers/wallet";
+import { licenseIPTemplate } from "../templates";
+import { LicenseIPParams } from "../types";
+import { MintLicenseTokensResponse } from "@story-protocol/core-sdk";
+import { hasIpAttachedLicenseTerms } from "../queries";
+
+export { licenseIPTemplate };
+
+export class LicenseIPAction {
+ constructor(private walletProvider: WalletProvider) {}
+
+ async licenseIP(
+ params: LicenseIPParams
+ ): Promise {
+ const storyClient = this.walletProvider.getStoryClient();
+ const publicClient = this.walletProvider.getPublicClient();
+
+ const hasLicenseTerms = await hasIpAttachedLicenseTerms(publicClient, {
+ ipId: params.licensorIpId,
+ licenseTemplate: "0x58E2c909D557Cd23EF90D14f8fd21667A5Ae7a93",
+ licenseTermsId: BigInt(params.licenseTermsId),
+ });
+ // check if license terms are attached to the ip asset
+ if (!hasLicenseTerms) {
+ throw new Error("License terms are not attached to the IP Asset");
+ }
+ const response = await storyClient.license.mintLicenseTokens({
+ licensorIpId: params.licensorIpId,
+ licenseTermsId: params.licenseTermsId,
+ amount: params.amount || 1,
+ txOptions: { waitForTransaction: true },
+ });
+
+ return response;
+ }
+}
+
+export const licenseIPAction = {
+ name: "LICENSE_IP",
+ description: "License an IP Asset on Story",
+ handler: async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State,
+ options: any,
+ callback?: HandlerCallback
+ ): Promise => {
+ elizaLogger.log("Starting LICENSE_IP handler...");
+
+ // initialize or update state
+ if (!state) {
+ state = (await runtime.composeState(message)) as State;
+ } else {
+ state = await runtime.updateRecentMessageState(state);
+ }
+
+ const licenseIPContext = composeContext({
+ state,
+ template: licenseIPTemplate,
+ });
+
+ const content = await generateObjectDeprecated({
+ runtime,
+ context: licenseIPContext,
+ modelClass: ModelClass.SMALL,
+ });
+
+ const walletProvider = new WalletProvider(runtime);
+ const action = new LicenseIPAction(walletProvider);
+ try {
+ const response = await action.licenseIP(content);
+ callback?.({
+ text: `Successfully minted license tokens: ${response.licenseTokenIds.join(", ")}. Transaction Hash: ${response.txHash}. View it on the block explorer: https://odyssey.storyscan.xyz/tx/${response.txHash}`,
+ });
+ return true;
+ } catch (e) {
+ elizaLogger.error("Error licensing IP:", e.message);
+ callback?.({ text: `Error licensing IP: ${e.message}` });
+ return false;
+ }
+ },
+ template: licenseIPTemplate,
+ validate: async (runtime: IAgentRuntime) => {
+ const privateKey = runtime.getSetting("STORY_PRIVATE_KEY");
+ return typeof privateKey === "string" && privateKey.startsWith("0x");
+ },
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "I would like to license an IP.",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Sure! Please provide the ipId of the IP you want to license and the license terms id you want to attach.",
+ action: "LICENSE_IP",
+ },
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "License an IP Asset 0x2265F2b8e47F98b3Bdf7a1937EAc27282954A4Db with license terms 1",
+ },
+ },
+ ],
+ ],
+ similes: ["LICENSE", "LICENSE_IP", "LICENSE_IP_ASSET"],
+};
diff --git a/packages/plugin-story/src/actions/registerIP.ts b/packages/plugin-story/src/actions/registerIP.ts
new file mode 100644
index 0000000000..d033c1b4ce
--- /dev/null
+++ b/packages/plugin-story/src/actions/registerIP.ts
@@ -0,0 +1,148 @@
+import {
+ composeContext,
+ elizaLogger,
+ generateObjectDeprecated,
+ HandlerCallback,
+ ModelClass,
+ type IAgentRuntime,
+ type Memory,
+ type State,
+} from "@ai16z/eliza";
+import pinataSDK from "@pinata/sdk";
+import { RegisterIpResponse } from "@story-protocol/core-sdk";
+import { createHash } from "crypto";
+import { uploadJSONToIPFS } from "../functions/uploadJSONToIPFS";
+import { WalletProvider } from "../providers/wallet";
+import { registerIPTemplate } from "../templates";
+import { RegisterIPParams } from "../types";
+
+export { registerIPTemplate };
+
+export class RegisterIPAction {
+ constructor(private walletProvider: WalletProvider) {}
+
+ async registerIP(
+ params: RegisterIPParams,
+ runtime: IAgentRuntime
+ ): Promise {
+ const storyClient = this.walletProvider.getStoryClient();
+
+ // configure ip metadata
+ const ipMetadata = storyClient.ipAsset.generateIpMetadata({
+ title: params.title,
+ description: params.description,
+ ipType: params.ipType ? params.ipType : undefined,
+ });
+
+ // configure nft metadata
+ const nftMetadata = {
+ name: params.title,
+ description: params.description,
+ };
+
+ const pinataJWT = runtime.getSetting("PINATA_JWT");
+ if (!pinataJWT) throw new Error("PINATA_JWT not configured");
+ const pinata = new pinataSDK({ pinataJWTKey: pinataJWT });
+
+ // upload metadata to ipfs
+ const ipIpfsHash = await uploadJSONToIPFS(pinata, ipMetadata);
+ const ipHash = createHash("sha256")
+ .update(JSON.stringify(ipMetadata))
+ .digest("hex");
+ const nftIpfsHash = await uploadJSONToIPFS(pinata, nftMetadata);
+ const nftHash = createHash("sha256")
+ .update(JSON.stringify(nftMetadata))
+ .digest("hex");
+
+ // register ip
+ const response =
+ await storyClient.ipAsset.mintAndRegisterIpAssetWithPilTerms({
+ spgNftContract: "0xC81B2cbEFD1aA0227bf513729580d3CF40fd61dF",
+ terms: [],
+ ipMetadata: {
+ ipMetadataURI: `https://ipfs.io/ipfs/${ipIpfsHash}`,
+ ipMetadataHash: `0x${ipHash}`,
+ nftMetadataURI: `https://ipfs.io/ipfs/${nftIpfsHash}`,
+ nftMetadataHash: `0x${nftHash}`,
+ },
+ txOptions: { waitForTransaction: true },
+ });
+
+ return response;
+ }
+}
+
+export const registerIPAction = {
+ name: "REGISTER_IP",
+ description: "Register an NFT as an IP Asset on Story",
+ handler: async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State,
+ options: any,
+ callback?: HandlerCallback
+ ): Promise => {
+ elizaLogger.log("Starting REGISTER_IP handler...");
+
+ // initialize or update state
+ if (!state) {
+ state = (await runtime.composeState(message)) as State;
+ } else {
+ state = await runtime.updateRecentMessageState(state);
+ }
+
+ const registerIPContext = composeContext({
+ state,
+ template: registerIPTemplate,
+ });
+
+ const content = await generateObjectDeprecated({
+ runtime,
+ context: registerIPContext,
+ modelClass: ModelClass.SMALL,
+ });
+
+ const walletProvider = new WalletProvider(runtime);
+ const action = new RegisterIPAction(walletProvider);
+ try {
+ const response = await action.registerIP(content, runtime);
+ callback?.({
+ text: `Successfully registered IP ID: ${response.ipId}. Transaction Hash: ${response.txHash}. View it on the explorer: https://explorer.story.foundation/ipa/${response.ipId}`,
+ });
+ return true;
+ } catch (e) {
+ elizaLogger.error("Error registering IP:", e.message);
+ callback?.({ text: `Error registering IP: ${e.message}` });
+ return false;
+ }
+ },
+ template: registerIPTemplate,
+ validate: async (runtime: IAgentRuntime) => {
+ const privateKey = runtime.getSetting("STORY_PRIVATE_KEY");
+ return typeof privateKey === "string" && privateKey.startsWith("0x");
+ },
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "I would like to register my IP.",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Sure! Please provide the title and description of your IP.",
+ action: "REGISTER_IP",
+ },
+ },
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Register my IP titled 'My IP' with the description 'This is my IP'",
+ },
+ },
+ ],
+ ],
+ similes: ["REGISTER_IP", "REGISTER_NFT"],
+};
diff --git a/packages/plugin-story/src/functions/uploadJSONToIPFS.ts b/packages/plugin-story/src/functions/uploadJSONToIPFS.ts
new file mode 100644
index 0000000000..dc8cb01073
--- /dev/null
+++ b/packages/plugin-story/src/functions/uploadJSONToIPFS.ts
@@ -0,0 +1,9 @@
+import PinataClient from "@pinata/sdk";
+
+export async function uploadJSONToIPFS(
+ pinata: PinataClient,
+ jsonMetadata: any
+): Promise {
+ const { IpfsHash } = await pinata.pinJSONToIPFS(jsonMetadata);
+ return IpfsHash;
+}
diff --git a/packages/plugin-story/src/index.ts b/packages/plugin-story/src/index.ts
new file mode 100644
index 0000000000..2fc566c69b
--- /dev/null
+++ b/packages/plugin-story/src/index.ts
@@ -0,0 +1,32 @@
+export * from "./actions/registerIP";
+export * from "./actions/licenseIP";
+export * from "./actions/attachTerms";
+export * from "./actions/getAvailableLicenses";
+export * from "./actions/getIPDetails";
+export * from "./providers/wallet";
+export * from "./types";
+
+import type { Plugin } from "@ai16z/eliza";
+import { storyWalletProvider } from "./providers/wallet";
+import { registerIPAction } from "./actions/registerIP";
+import { licenseIPAction } from "./actions/licenseIP";
+import { getAvailableLicensesAction } from "./actions/getAvailableLicenses";
+import { getIPDetailsAction } from "./actions/getIPDetails";
+import { attachTermsAction } from "./actions/attachTerms";
+
+export const storyPlugin: Plugin = {
+ name: "story",
+ description: "Story integration plugin",
+ providers: [storyWalletProvider],
+ evaluators: [],
+ services: [],
+ actions: [
+ registerIPAction,
+ licenseIPAction,
+ attachTermsAction,
+ getAvailableLicensesAction,
+ getIPDetailsAction,
+ ],
+};
+
+export default storyPlugin;
diff --git a/packages/plugin-story/src/lib/api.ts b/packages/plugin-story/src/lib/api.ts
new file mode 100644
index 0000000000..7fd8dc4859
--- /dev/null
+++ b/packages/plugin-story/src/lib/api.ts
@@ -0,0 +1,124 @@
+import {
+ IPLicenseTerms,
+ PILTerms,
+ QUERY_ORDER_BY,
+ QUERY_ORDER_DIRECTION,
+ QueryOptions,
+ RESOURCE_TYPE,
+ ResourceType,
+ Trait,
+} from "../types/api";
+import { elizaLogger } from "@ai16z/eliza";
+
+import { camelize } from "./utils";
+const API_BASE_URL = process.env.STORY_API_BASE_URL;
+const API_VERSION = "v2";
+export const API_URL = `${API_BASE_URL}/${API_VERSION}`;
+export const API_KEY = process.env.STORY_API_KEY || "";
+
+export async function getResource(
+ resourceName: ResourceType,
+ resourceId: string,
+ options?: QueryOptions
+) {
+ try {
+ elizaLogger.log(
+ `Fetching resource ${API_URL}/${resourceName}/${resourceId}`
+ );
+ const res = await fetch(`${API_URL}/${resourceName}/${resourceId}`, {
+ method: "GET",
+ headers: {
+ "Content-Type": "application/json",
+ "x-api-key": API_KEY as string,
+ "x-chain": "1516",
+ },
+ });
+ if (res.ok) {
+ elizaLogger.log("Response is ok");
+ return res.json();
+ } else {
+ elizaLogger.log("Response is not ok");
+ elizaLogger.log(JSON.stringify(res));
+ throw new Error(`HTTP error! status: ${res.status}`);
+ }
+ } catch (error) {
+ console.error(error);
+ }
+}
+
+export async function listResource(
+ resourceName: ResourceType,
+ options?: QueryOptions
+) {
+ try {
+ const _options = {
+ pagination: {
+ limit: 10,
+ offset: 0,
+ },
+ orderBy: QUERY_ORDER_BY.BLOCK_NUMBER,
+ orderDirection: QUERY_ORDER_DIRECTION.DESC,
+ ...options,
+ };
+ elizaLogger.log(`Calling Story API ${resourceName}`);
+ elizaLogger.log(`STORY_API_KEY: ${API_KEY}`);
+ elizaLogger.log(`API_URL: ${API_URL}`);
+ elizaLogger.log(`API_VERSION: ${API_VERSION}`);
+ elizaLogger.log(`_options: ${JSON.stringify(_options)}`);
+ const res = await fetch(`${API_URL}/${resourceName}`, {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ "x-api-key": API_KEY as string,
+ "x-chain": "1516",
+ },
+ cache: "no-cache",
+ ...(_options && { body: JSON.stringify({ options: _options }) }),
+ });
+ if (res.ok) {
+ elizaLogger.log("Response is ok");
+ elizaLogger.log(res.ok);
+ return res.json();
+ } else {
+ elizaLogger.log("Response is not ok");
+ elizaLogger.log(res);
+ return res;
+ }
+ } catch (error) {
+ elizaLogger.log("List resource Error");
+ console.error(error);
+ }
+}
+
+export async function fetchLicenseTermsDetails(data: IPLicenseTerms[]) {
+ const requests = data.map((item) =>
+ getResource(RESOURCE_TYPE.LICENSE_TERMS, item.licenseTermsId)
+ );
+ const results = await Promise.all(requests);
+
+ return results
+ .filter((value) => !!value)
+ .map((result) => {
+ return {
+ ...result.data,
+ licenseTerms: convertLicenseTermObject(
+ result.data.licenseTerms
+ ),
+ };
+ });
+}
+
+type LicenseTerms = Partial;
+
+export function convertLicenseTermObject(licenseTerms: Trait[]): LicenseTerms {
+ return licenseTerms.reduce((acc, option: Trait): LicenseTerms => {
+ const key = camelize(option.trait_type) as keyof PILTerms;
+ acc[key] =
+ option.value === "true"
+ ? true
+ : option.value === "false"
+ ? false
+ : (option.value as any);
+ return acc as LicenseTerms;
+ }, {});
+}
diff --git a/packages/plugin-story/src/lib/utils.ts b/packages/plugin-story/src/lib/utils.ts
new file mode 100644
index 0000000000..f0464e17e5
--- /dev/null
+++ b/packages/plugin-story/src/lib/utils.ts
@@ -0,0 +1,6 @@
+export function camelize(str: string) {
+ return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function (match, index) {
+ if (+match === 0) return ""; // or if (/\s+/.test(match)) for white spaces
+ return index === 0 ? match.toLowerCase() : match.toUpperCase();
+ });
+}
diff --git a/packages/plugin-story/src/providers/wallet.ts b/packages/plugin-story/src/providers/wallet.ts
new file mode 100644
index 0000000000..f386cf912b
--- /dev/null
+++ b/packages/plugin-story/src/providers/wallet.ts
@@ -0,0 +1,132 @@
+import type { IAgentRuntime, Provider, Memory, State } from "@ai16z/eliza";
+import {
+ createPublicClient,
+ createWalletClient,
+ http,
+ formatUnits,
+ type PublicClient,
+ type WalletClient,
+ type Chain,
+ type HttpTransport,
+ type Address,
+ Account,
+} from "viem";
+import { storyOdyssey } from "viem/chains";
+import type { SupportedChain, ChainMetadata } from "../types";
+import { privateKeyToAccount } from "viem/accounts";
+import { StoryClient, StoryConfig } from "@story-protocol/core-sdk";
+
+export const DEFAULT_CHAIN_CONFIGS: Record = {
+ odyssey: {
+ chainId: 1516,
+ name: "Odyssey Testnet",
+ chain: storyOdyssey,
+ rpcUrl: "https://odyssey.storyrpc.io/",
+ nativeCurrency: {
+ name: "IP",
+ symbol: "IP",
+ decimals: 18,
+ },
+ blockExplorerUrl: "https://odyssey.storyscan.xyz",
+ },
+} as const;
+
+export class WalletProvider {
+ private storyClient: StoryClient;
+ private publicClient: PublicClient<
+ HttpTransport,
+ Chain,
+ Account | undefined
+ >;
+ private walletClient: WalletClient;
+ private address: Address;
+ runtime: IAgentRuntime;
+
+ constructor(runtime: IAgentRuntime) {
+ const privateKey = runtime.getSetting("STORY_PRIVATE_KEY");
+ if (!privateKey) throw new Error("STORY_PRIVATE_KEY not configured");
+
+ this.runtime = runtime;
+
+ const account = privateKeyToAccount(privateKey as Address);
+ this.address = account.address;
+
+ const config: StoryConfig = {
+ account: account,
+ transport: http(DEFAULT_CHAIN_CONFIGS.odyssey.rpcUrl),
+ chainId: "odyssey",
+ };
+ this.storyClient = StoryClient.newClient(config);
+
+ const baseConfig = {
+ chain: storyOdyssey,
+ transport: http(DEFAULT_CHAIN_CONFIGS.odyssey.rpcUrl),
+ } as const;
+ this.publicClient = createPublicClient(
+ baseConfig
+ ) as PublicClient;
+
+ this.walletClient = createWalletClient({
+ chain: storyOdyssey,
+ transport: http(DEFAULT_CHAIN_CONFIGS.odyssey.rpcUrl),
+ account: account,
+ });
+ }
+
+ getAddress(): Address {
+ return this.address;
+ }
+
+ async getWalletBalance(): Promise {
+ try {
+ const balance = await this.publicClient.getBalance({
+ address: this.address,
+ });
+ return formatUnits(balance, 18);
+ } catch (error) {
+ console.error("Error getting wallet balance:", error);
+ return null;
+ }
+ }
+
+ async connect(): Promise<`0x${string}`> {
+ return this.runtime.getSetting("STORY_PRIVATE_KEY") as `0x${string}`;
+ }
+
+ getPublicClient(): PublicClient {
+ return this.publicClient;
+ }
+
+ getWalletClient(): WalletClient {
+ if (!this.walletClient) throw new Error("Wallet not connected");
+ return this.walletClient;
+ }
+
+ getStoryClient(): StoryClient {
+ if (!this.storyClient) throw new Error("StoryClient not connected");
+ return this.storyClient;
+ }
+}
+
+export const storyWalletProvider: Provider = {
+ async get(
+ runtime: IAgentRuntime,
+ message: Memory,
+ state?: State
+ ): Promise {
+ // Check if the user has a Story wallet
+ if (!runtime.getSetting("STORY_PRIVATE_KEY")) {
+ return null;
+ }
+
+ try {
+ const walletProvider = new WalletProvider(runtime);
+ const address = walletProvider.getAddress();
+ const balance = await walletProvider.getWalletBalance();
+ return `Story Wallet Address: ${address}\nBalance: ${balance} IP`;
+ } catch (error) {
+ console.error("Error in Story wallet provider:", error);
+ return null;
+ }
+ },
+};
diff --git a/packages/plugin-story/src/queries.ts b/packages/plugin-story/src/queries.ts
new file mode 100644
index 0000000000..080b8f1231
--- /dev/null
+++ b/packages/plugin-story/src/queries.ts
@@ -0,0 +1,982 @@
+import { Account, HttpTransport, Chain, Address, PublicClient } from "viem";
+
+type LicenseRegistryHasIpAttachedLicenseTermsRequest = {
+ ipId: Address;
+ licenseTemplate: Address;
+ licenseTermsId: bigint;
+};
+
+export const licenseRegistryAbi = [
+ {
+ type: "constructor",
+ inputs: [
+ {
+ name: "licensingModule",
+ internalType: "address",
+ type: "address",
+ },
+ { name: "disputeModule", internalType: "address", type: "address" },
+ { name: "ipGraphAcl", internalType: "address", type: "address" },
+ ],
+ stateMutability: "nonpayable",
+ },
+ {
+ type: "error",
+ inputs: [
+ { name: "authority", internalType: "address", type: "address" },
+ ],
+ name: "AccessManagedInvalidAuthority",
+ },
+ {
+ type: "error",
+ inputs: [
+ { name: "caller", internalType: "address", type: "address" },
+ { name: "delay", internalType: "uint32", type: "uint32" },
+ ],
+ name: "AccessManagedRequiredDelay",
+ },
+ {
+ type: "error",
+ inputs: [{ name: "caller", internalType: "address", type: "address" }],
+ name: "AccessManagedUnauthorized",
+ },
+ {
+ type: "error",
+ inputs: [{ name: "target", internalType: "address", type: "address" }],
+ name: "AddressEmptyCode",
+ },
+ {
+ type: "error",
+ inputs: [
+ {
+ name: "implementation",
+ internalType: "address",
+ type: "address",
+ },
+ ],
+ name: "ERC1967InvalidImplementation",
+ },
+ { type: "error", inputs: [], name: "ERC1967NonPayable" },
+ { type: "error", inputs: [], name: "FailedInnerCall" },
+ { type: "error", inputs: [], name: "InvalidInitialization" },
+ {
+ type: "error",
+ inputs: [
+ { name: "childIpId", internalType: "address", type: "address" },
+ {
+ name: "parentIpIds",
+ internalType: "address[]",
+ type: "address[]",
+ },
+ ],
+ name: "LicenseRegistry__AddParentIpToIPGraphFailed",
+ },
+ {
+ type: "error",
+ inputs: [],
+ name: "LicenseRegistry__CallerNotLicensingModule",
+ },
+ {
+ type: "error",
+ inputs: [
+ { name: "childIpId", internalType: "address", type: "address" },
+ ],
+ name: "LicenseRegistry__DerivativeAlreadyRegistered",
+ },
+ {
+ type: "error",
+ inputs: [
+ { name: "childIpId", internalType: "address", type: "address" },
+ ],
+ name: "LicenseRegistry__DerivativeIpAlreadyHasChild",
+ },
+ {
+ type: "error",
+ inputs: [
+ { name: "childIpId", internalType: "address", type: "address" },
+ ],
+ name: "LicenseRegistry__DerivativeIpAlreadyHasLicense",
+ },
+ {
+ type: "error",
+ inputs: [{ name: "ipId", internalType: "address", type: "address" }],
+ name: "LicenseRegistry__DerivativeIsParent",
+ },
+ {
+ type: "error",
+ inputs: [
+ { name: "ipId", internalType: "address", type: "address" },
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ ],
+ name: "LicenseRegistry__DuplicateLicense",
+ },
+ {
+ type: "error",
+ inputs: [
+ { name: "ipId", internalType: "address", type: "address" },
+ { name: "index", internalType: "uint256", type: "uint256" },
+ { name: "length", internalType: "uint256", type: "uint256" },
+ ],
+ name: "LicenseRegistry__IndexOutOfBounds",
+ },
+ {
+ type: "error",
+ inputs: [{ name: "ipId", internalType: "address", type: "address" }],
+ name: "LicenseRegistry__IpExpired",
+ },
+ {
+ type: "error",
+ inputs: [
+ { name: "ipId", internalType: "address", type: "address" },
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ ],
+ name: "LicenseRegistry__LicenseTermsAlreadyAttached",
+ },
+ {
+ type: "error",
+ inputs: [
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ ],
+ name: "LicenseRegistry__LicenseTermsNotExists",
+ },
+ {
+ type: "error",
+ inputs: [
+ { name: "ipId", internalType: "address", type: "address" },
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ ],
+ name: "LicenseRegistry__LicensorIpHasNoLicenseTerms",
+ },
+ {
+ type: "error",
+ inputs: [
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ ],
+ name: "LicenseRegistry__NotLicenseTemplate",
+ },
+ {
+ type: "error",
+ inputs: [{ name: "ipId", internalType: "address", type: "address" }],
+ name: "LicenseRegistry__ParentIpExpired",
+ },
+ {
+ type: "error",
+ inputs: [
+ { name: "ipId", internalType: "address", type: "address" },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ ],
+ name: "LicenseRegistry__ParentIpHasNoLicenseTerms",
+ },
+ {
+ type: "error",
+ inputs: [{ name: "ipId", internalType: "address", type: "address" }],
+ name: "LicenseRegistry__ParentIpTagged",
+ },
+ {
+ type: "error",
+ inputs: [
+ { name: "ipId", internalType: "address", type: "address" },
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ ],
+ name: "LicenseRegistry__ParentIpUnmatchedLicenseTemplate",
+ },
+ {
+ type: "error",
+ inputs: [
+ { name: "ipId", internalType: "address", type: "address" },
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "newLicenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ ],
+ name: "LicenseRegistry__UnmatchedLicenseTemplate",
+ },
+ {
+ type: "error",
+ inputs: [
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ ],
+ name: "LicenseRegistry__UnregisteredLicenseTemplate",
+ },
+ { type: "error", inputs: [], name: "LicenseRegistry__ZeroAccessManager" },
+ { type: "error", inputs: [], name: "LicenseRegistry__ZeroDisputeModule" },
+ { type: "error", inputs: [], name: "LicenseRegistry__ZeroIPGraphACL" },
+ { type: "error", inputs: [], name: "LicenseRegistry__ZeroLicenseTemplate" },
+ { type: "error", inputs: [], name: "LicenseRegistry__ZeroLicensingModule" },
+ {
+ type: "error",
+ inputs: [],
+ name: "LicensingModule__DerivativesCannotAddLicenseTerms",
+ },
+ {
+ type: "error",
+ inputs: [
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ ],
+ name: "LicensingModule__LicenseTermsNotFound",
+ },
+ { type: "error", inputs: [], name: "NotInitializing" },
+ { type: "error", inputs: [], name: "UUPSUnauthorizedCallContext" },
+ {
+ type: "error",
+ inputs: [{ name: "slot", internalType: "bytes32", type: "bytes32" }],
+ name: "UUPSUnsupportedProxiableUUID",
+ },
+ {
+ type: "event",
+ anonymous: false,
+ inputs: [
+ {
+ name: "authority",
+ internalType: "address",
+ type: "address",
+ indexed: false,
+ },
+ ],
+ name: "AuthorityUpdated",
+ },
+ {
+ type: "event",
+ anonymous: false,
+ inputs: [
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ indexed: false,
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ indexed: false,
+ },
+ ],
+ name: "DefaultLicenseTermsSet",
+ },
+ {
+ type: "event",
+ anonymous: false,
+ inputs: [
+ {
+ name: "ipId",
+ internalType: "address",
+ type: "address",
+ indexed: true,
+ },
+ {
+ name: "expireTime",
+ internalType: "uint256",
+ type: "uint256",
+ indexed: false,
+ },
+ ],
+ name: "ExpirationTimeSet",
+ },
+ {
+ type: "event",
+ anonymous: false,
+ inputs: [
+ {
+ name: "version",
+ internalType: "uint64",
+ type: "uint64",
+ indexed: false,
+ },
+ ],
+ name: "Initialized",
+ },
+ {
+ type: "event",
+ anonymous: false,
+ inputs: [
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ indexed: true,
+ },
+ ],
+ name: "LicenseTemplateRegistered",
+ },
+ {
+ type: "event",
+ anonymous: false,
+ inputs: [
+ {
+ name: "ipId",
+ internalType: "address",
+ type: "address",
+ indexed: true,
+ },
+ {
+ name: "licensingConfig",
+ internalType: "struct Licensing.LicensingConfig",
+ type: "tuple",
+ components: [
+ { name: "isSet", internalType: "bool", type: "bool" },
+ {
+ name: "mintingFee",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ {
+ name: "licensingHook",
+ internalType: "address",
+ type: "address",
+ },
+ { name: "hookData", internalType: "bytes", type: "bytes" },
+ ],
+ indexed: false,
+ },
+ ],
+ name: "LicensingConfigSetForIP",
+ },
+ {
+ type: "event",
+ anonymous: false,
+ inputs: [
+ {
+ name: "ipId",
+ internalType: "address",
+ type: "address",
+ indexed: true,
+ },
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ indexed: true,
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ indexed: true,
+ },
+ ],
+ name: "LicensingConfigSetForLicense",
+ },
+ {
+ type: "event",
+ anonymous: false,
+ inputs: [
+ {
+ name: "implementation",
+ internalType: "address",
+ type: "address",
+ indexed: true,
+ },
+ ],
+ name: "Upgraded",
+ },
+ {
+ type: "function",
+ inputs: [],
+ name: "DISPUTE_MODULE",
+ outputs: [
+ {
+ name: "",
+ internalType: "contract IDisputeModule",
+ type: "address",
+ },
+ ],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [],
+ name: "EXPIRATION_TIME",
+ outputs: [{ name: "", internalType: "bytes32", type: "bytes32" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [],
+ name: "IP_GRAPH",
+ outputs: [{ name: "", internalType: "address", type: "address" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [],
+ name: "IP_GRAPH_ACL",
+ outputs: [
+ { name: "", internalType: "contract IPGraphACL", type: "address" },
+ ],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [],
+ name: "LICENSING_MODULE",
+ outputs: [
+ {
+ name: "",
+ internalType: "contract ILicensingModule",
+ type: "address",
+ },
+ ],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [],
+ name: "UPGRADE_INTERFACE_VERSION",
+ outputs: [{ name: "", internalType: "string", type: "string" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "ipId", internalType: "address", type: "address" },
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ ],
+ name: "attachLicenseTermsToIp",
+ outputs: [],
+ stateMutability: "nonpayable",
+ },
+ {
+ type: "function",
+ inputs: [],
+ name: "authority",
+ outputs: [{ name: "", internalType: "address", type: "address" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ ],
+ name: "exists",
+ outputs: [{ name: "", internalType: "bool", type: "bool" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "ipId", internalType: "address", type: "address" },
+ { name: "index", internalType: "uint256", type: "uint256" },
+ ],
+ name: "getAttachedLicenseTerms",
+ outputs: [
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ ],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [{ name: "ipId", internalType: "address", type: "address" }],
+ name: "getAttachedLicenseTermsCount",
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [],
+ name: "getDefaultLicenseTerms",
+ outputs: [
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ ],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "parentIpId", internalType: "address", type: "address" },
+ { name: "index", internalType: "uint256", type: "uint256" },
+ ],
+ name: "getDerivativeIp",
+ outputs: [
+ { name: "childIpId", internalType: "address", type: "address" },
+ ],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "parentIpId", internalType: "address", type: "address" },
+ ],
+ name: "getDerivativeIpCount",
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [{ name: "ipId", internalType: "address", type: "address" }],
+ name: "getExpireTime",
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "ipId", internalType: "address", type: "address" },
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ ],
+ name: "getLicensingConfig",
+ outputs: [
+ {
+ name: "",
+ internalType: "struct Licensing.LicensingConfig",
+ type: "tuple",
+ components: [
+ { name: "isSet", internalType: "bool", type: "bool" },
+ {
+ name: "mintingFee",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ {
+ name: "licensingHook",
+ internalType: "address",
+ type: "address",
+ },
+ { name: "hookData", internalType: "bytes", type: "bytes" },
+ ],
+ },
+ ],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "childIpId", internalType: "address", type: "address" },
+ { name: "index", internalType: "uint256", type: "uint256" },
+ ],
+ name: "getParentIp",
+ outputs: [
+ { name: "parentIpId", internalType: "address", type: "address" },
+ ],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "childIpId", internalType: "address", type: "address" },
+ ],
+ name: "getParentIpCount",
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "childIpId", internalType: "address", type: "address" },
+ { name: "parentIpId", internalType: "address", type: "address" },
+ ],
+ name: "getParentLicenseTerms",
+ outputs: [
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ ],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "parentIpId", internalType: "address", type: "address" },
+ ],
+ name: "hasDerivativeIps",
+ outputs: [{ name: "", internalType: "bool", type: "bool" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "ipId", internalType: "address", type: "address" },
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ ],
+ name: "hasIpAttachedLicenseTerms",
+ outputs: [{ name: "", internalType: "bool", type: "bool" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "accessManager", internalType: "address", type: "address" },
+ ],
+ name: "initialize",
+ outputs: [],
+ stateMutability: "nonpayable",
+ },
+ {
+ type: "function",
+ inputs: [],
+ name: "isConsumingScheduledOp",
+ outputs: [{ name: "", internalType: "bytes4", type: "bytes4" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "childIpId", internalType: "address", type: "address" },
+ ],
+ name: "isDerivativeIp",
+ outputs: [{ name: "", internalType: "bool", type: "bool" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [{ name: "ipId", internalType: "address", type: "address" }],
+ name: "isExpiredNow",
+ outputs: [{ name: "", internalType: "bool", type: "bool" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "parentIpId", internalType: "address", type: "address" },
+ { name: "childIpId", internalType: "address", type: "address" },
+ ],
+ name: "isParentIp",
+ outputs: [{ name: "", internalType: "bool", type: "bool" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ ],
+ name: "isRegisteredLicenseTemplate",
+ outputs: [{ name: "", internalType: "bool", type: "bool" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [],
+ name: "proxiableUUID",
+ outputs: [{ name: "", internalType: "bytes32", type: "bytes32" }],
+ stateMutability: "view",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "childIpId", internalType: "address", type: "address" },
+ {
+ name: "parentIpIds",
+ internalType: "address[]",
+ type: "address[]",
+ },
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "licenseTermsIds",
+ internalType: "uint256[]",
+ type: "uint256[]",
+ },
+ { name: "isUsingLicenseToken", internalType: "bool", type: "bool" },
+ ],
+ name: "registerDerivativeIp",
+ outputs: [],
+ stateMutability: "nonpayable",
+ },
+ {
+ type: "function",
+ inputs: [
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ ],
+ name: "registerLicenseTemplate",
+ outputs: [],
+ stateMutability: "nonpayable",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "newAuthority", internalType: "address", type: "address" },
+ ],
+ name: "setAuthority",
+ outputs: [],
+ stateMutability: "nonpayable",
+ },
+ {
+ type: "function",
+ inputs: [
+ {
+ name: "newLicenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "newLicenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ ],
+ name: "setDefaultLicenseTerms",
+ outputs: [],
+ stateMutability: "nonpayable",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "ipId", internalType: "address", type: "address" },
+ {
+ name: "licensingConfig",
+ internalType: "struct Licensing.LicensingConfig",
+ type: "tuple",
+ components: [
+ { name: "isSet", internalType: "bool", type: "bool" },
+ {
+ name: "mintingFee",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ {
+ name: "licensingHook",
+ internalType: "address",
+ type: "address",
+ },
+ { name: "hookData", internalType: "bytes", type: "bytes" },
+ ],
+ },
+ ],
+ name: "setLicensingConfigForIp",
+ outputs: [],
+ stateMutability: "nonpayable",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "ipId", internalType: "address", type: "address" },
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ {
+ name: "licensingConfig",
+ internalType: "struct Licensing.LicensingConfig",
+ type: "tuple",
+ components: [
+ { name: "isSet", internalType: "bool", type: "bool" },
+ {
+ name: "mintingFee",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ {
+ name: "licensingHook",
+ internalType: "address",
+ type: "address",
+ },
+ { name: "hookData", internalType: "bytes", type: "bytes" },
+ ],
+ },
+ ],
+ name: "setLicensingConfigForLicense",
+ outputs: [],
+ stateMutability: "nonpayable",
+ },
+ {
+ type: "function",
+ inputs: [
+ {
+ name: "newImplementation",
+ internalType: "address",
+ type: "address",
+ },
+ { name: "data", internalType: "bytes", type: "bytes" },
+ ],
+ name: "upgradeToAndCall",
+ outputs: [],
+ stateMutability: "payable",
+ },
+ {
+ type: "function",
+ inputs: [
+ { name: "licensorIpId", internalType: "address", type: "address" },
+ {
+ name: "licenseTemplate",
+ internalType: "address",
+ type: "address",
+ },
+ {
+ name: "licenseTermsId",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ { name: "isMintedByIpOwner", internalType: "bool", type: "bool" },
+ ],
+ name: "verifyMintLicenseToken",
+ outputs: [
+ {
+ name: "",
+ internalType: "struct Licensing.LicensingConfig",
+ type: "tuple",
+ components: [
+ { name: "isSet", internalType: "bool", type: "bool" },
+ {
+ name: "mintingFee",
+ internalType: "uint256",
+ type: "uint256",
+ },
+ {
+ name: "licensingHook",
+ internalType: "address",
+ type: "address",
+ },
+ { name: "hookData", internalType: "bytes", type: "bytes" },
+ ],
+ },
+ ],
+ stateMutability: "view",
+ },
+] as const;
+
+export async function hasIpAttachedLicenseTerms(
+ publicClient: PublicClient,
+ request: LicenseRegistryHasIpAttachedLicenseTermsRequest
+): Promise {
+ return await publicClient.readContract({
+ abi: licenseRegistryAbi,
+ address: "0xBda3992c49E98392e75E78d82B934F3598bA495f",
+ functionName: "hasIpAttachedLicenseTerms",
+ args: [request.ipId, request.licenseTemplate, request.licenseTermsId],
+ });
+}
diff --git a/packages/plugin-story/src/templates/index.ts b/packages/plugin-story/src/templates/index.ts
new file mode 100644
index 0000000000..e647e389d0
--- /dev/null
+++ b/packages/plugin-story/src/templates/index.ts
@@ -0,0 +1,101 @@
+export const registerIPTemplate = `Given the recent messages below:
+
+{{recentMessages}}
+
+Extract the following information about the requested IP registration:
+- Field "title": The title of your IP
+- Field "description": The description of your IP
+- Field "ipType": The type of your IP. Type of the IP Asset, can be defined arbitrarily by the
+creator. I.e. “character”, “chapter”, “location”, “items”, "music", etc. If a user doesn't provide
+an ipType, you can infer it from the title and description. It should be one word.
+
+Respond with a JSON markdown block containing only the extracted values. A user must explicitly provide a title and description.
+
+\`\`\`json
+{
+ "title": string,
+ "description": string,
+ "ipType": string
+}
+\`\`\`
+`;
+
+export const licenseIPTemplate = `Given the recent messages below:
+
+{{recentMessages}}
+
+Extract the following information about the requested IP licensing:
+- Field "licensorIpId": The IP Asset that you want to mint a license from
+- Field "licenseTermsId": The license terms that you want to mint a license for
+- Field "amount": The amount of licenses to mint
+
+Respond with a JSON markdown block containing only the extracted values. A user must explicitly provide a licensorIpId and licenseTermsId.
+If they don't provide the amount, set it as null.
+
+\`\`\`json
+{
+ "licensorIpId": string,
+ "licenseTermsId": string,
+ "amount": number | null
+}
+\`\`\`
+`;
+
+export const getAvailableLicensesTemplate = `Given the recent messages and wallet information below:
+
+{{recentMessages}}
+
+{{walletInfo}}
+
+Extract the following information about the requested IP licensing:
+- Field "ipid": The IP Asset that you want to mint a license from
+
+Respond with a JSON markdown block containing only the extracted values. A user must provide an ipId.
+
+\`\`\`json
+{
+ "ipid": string
+}
+\`\`\`
+`;
+
+export const getIPDetailsTemplate = `Given the recent messages below:
+
+{{recentMessages}}
+
+Extract the following information about the requested IP details:
+- Field "ipId": The IP Asset that you want to get details for
+
+Respond with a JSON markdown block containing only the extracted values. A user must provide an ipId.
+
+\`\`\`json
+{
+ "ipId": string
+}
+\`\`\`
+`;
+
+export const attachTermsTemplate = `Given the recent messages below:
+
+{{recentMessages}}
+
+Extract the following information about attaching license terms to an IP Asset:
+- Field "ipId": The IP Asset that you want to attach the license terms to
+- Field "mintingFee": The fee to mint this license from the IP Asset.
+- Field "commercialUse": Whether or not the IP Asset can be used commercially.
+- Field "commercialRevShare": The percentage of revenue that the IP Asset owner will receive
+from commercial use of the IP Asset. This must be between 0 and 100. If a user specifies
+a commercialRevShare, then commercialUse must be set to true.
+
+Respond with a JSON markdown block containing only the extracted values. A user must provide an ipId. If they don't provide
+the others fields, set them as null.
+
+\`\`\`json
+{
+ "ipId": string,
+ "mintingFee": number | null,
+ "commercialUse": boolean | null,
+ "commercialRevShare": number | null
+}
+\`\`\`
+`;
diff --git a/packages/plugin-story/src/tests/wallet.test.ts b/packages/plugin-story/src/tests/wallet.test.ts
new file mode 100644
index 0000000000..807282ed8d
--- /dev/null
+++ b/packages/plugin-story/src/tests/wallet.test.ts
@@ -0,0 +1,63 @@
+import { describe, it, expect, beforeEach, vi, afterEach } from "vitest";
+import { WalletProvider } from "../providers/wallet.ts";
+import { defaultCharacter } from "@ai16z/eliza";
+
+// Mock NodeCache
+vi.mock("node-cache", () => {
+ return {
+ default: vi.fn().mockImplementation(() => ({
+ set: vi.fn(),
+ get: vi.fn().mockReturnValue(null),
+ })),
+ };
+});
+
+// Mock path module
+vi.mock("path", async () => {
+ const actual = await vi.importActual("path");
+ return {
+ ...actual,
+ join: vi.fn().mockImplementation((...args) => args.join("/")),
+ };
+});
+
+// Mock the ICacheManager
+const mockCacheManager = {
+ get: vi.fn().mockResolvedValue(null),
+ set: vi.fn(),
+ delete: vi.fn(),
+};
+
+describe("WalletProvider", () => {
+ let walletProvider;
+ let mockedRuntime;
+
+ beforeEach(() => {
+ vi.clearAllMocks();
+ mockCacheManager.get.mockResolvedValue(null);
+
+ mockedRuntime = {
+ character: defaultCharacter,
+ getSetting: vi.fn().mockImplementation((key: string) => {
+ // this is a testnet private key
+ if (key === "STORY_PRIVATE_KEY")
+ return "0x1ad065323caa081ab78d6f4fd2b52181e09cf29a4e60bd7519997b2d03fa44f3";
+ return undefined;
+ }),
+ };
+
+ // Create new instance of WalletProvider with mocked dependencies
+ walletProvider = new WalletProvider(mockedRuntime);
+ });
+
+ afterEach(() => {
+ vi.clearAllTimers();
+ });
+
+ describe("Wallet Integration", () => {
+ it("should check wallet address", async () => {
+ const address = await walletProvider.getAddress();
+ expect(address).toEqual(walletProvider.address);
+ });
+ });
+});
diff --git a/packages/plugin-story/src/types/api.ts b/packages/plugin-story/src/types/api.ts
new file mode 100644
index 0000000000..5ff30f7960
--- /dev/null
+++ b/packages/plugin-story/src/types/api.ts
@@ -0,0 +1,575 @@
+import { Address, Hash } from "viem";
+
+export enum ACTION_RESPONSE_TYPE {
+ SET = "SET",
+ ATTACH = "ATTACH",
+ CREATE = "CREATE",
+ REGISTER = "REGISTER",
+ REMOVE = "REMOVE",
+}
+
+export enum RESOURCE_TYPE {
+ LICENSE_TOKEN = "licenses/tokens", // new version
+ LICENSE_TEMPLATES = "licenses/templates", // new version
+ LICENSE_TERMS = "licenses/terms", // new version
+ IP_LICENSE_TERMS = "licenses/ip/terms", // new version
+ IP_LICENSE_DETAILS = "detailed-ip-license-terms", // new version
+ ASSET = "assets",
+ COLLECTION = "collections",
+ DISPUTE = "disputes",
+ LICENSE_MINT_FEES = "licenses/mintingfees",
+ MODULE = "modules",
+ PERMISSION = "permissions",
+ ROYALTY = "royalties",
+ ROYALTY_PAY = "royalties/payments",
+ ROYALTY_POLICY = "royalties/policies",
+ ROYALTY_SPLIT = "royalties/splits",
+ TAGS = "tags",
+ TRANSACTION = "transactions",
+ LATEST_TRANSACTIONS = "transactions/latest",
+}
+
+export enum RESPOURCE_REPONSE_TYPE {
+ LICENSE_TOKEN = "LICENSETOKEN", // new version
+ LICENSE_TEMPLATES = "LICENSETEMPLATE", // new version
+ LICENSE_TERMS = "LICENSETERM", // new version
+ IP_LICENSE_TERMS = "licenses/ip/terms", // new version
+ IP_LICENSE_DETAILS = "detailed-ip-license-terms", // new version
+ ASSET = "IPASSET",
+ COLLECTION = "COLLECTION",
+ DISPUTE = "DISPUTE",
+ LICENSE_MINT_FEES = "licenses/mintingfees",
+ MODULE = "modules",
+ PERMISSION = "PERMISSION",
+ ROYALTY = "ROYALTY",
+ ROYALTY_PAY = "royalties/payments",
+ ROYALTY_POLICY = "ROYALTYPOLICY",
+ ROYALTY_SPLIT = "royalties/splits",
+ TAGS = "tags",
+}
+
+export type ResourceType =
+ | RESOURCE_TYPE.ASSET
+ | RESOURCE_TYPE.COLLECTION
+ | RESOURCE_TYPE.TRANSACTION
+ | RESOURCE_TYPE.LATEST_TRANSACTIONS
+ | RESOURCE_TYPE.LICENSE_TOKEN
+ | RESOURCE_TYPE.LICENSE_TERMS
+ | RESOURCE_TYPE.LICENSE_TEMPLATES
+ | RESOURCE_TYPE.IP_LICENSE_TERMS
+ | RESOURCE_TYPE.IP_LICENSE_DETAILS
+ | RESOURCE_TYPE.LICENSE_MINT_FEES
+ | RESOURCE_TYPE.MODULE
+ | RESOURCE_TYPE.PERMISSION
+ | RESOURCE_TYPE.TAGS
+ | RESOURCE_TYPE.ROYALTY
+ | RESOURCE_TYPE.ROYALTY_PAY
+ | RESOURCE_TYPE.ROYALTY_POLICY
+ | RESOURCE_TYPE.ROYALTY_SPLIT
+ | RESOURCE_TYPE.DISPUTE;
+
+export type PaginationOptions = {
+ limit?: number;
+ offset?: number;
+};
+
+export type AssetFilterOptions = {
+ chainId?: string;
+ metadataResolverAddress?: string;
+ tokenContract?: string;
+ tokenId?: string;
+};
+
+export type DisputeFilterOptions = {
+ currentTag?: string;
+ initiator?: string;
+ targetIpId?: string;
+ targetTag?: string;
+};
+
+export type PermissionFilterOptions = {
+ signer?: string;
+ to?: string;
+};
+
+export type PolicyFilterOptions = {
+ policyFrameworkManager?: string;
+};
+
+export type PolicyFrameworkFilterOptions = {
+ address?: string;
+ name?: string;
+};
+
+export type RoyaltyFilterOptions = {
+ ipId?: string | null;
+ royaltyPolicy?: string | null;
+};
+
+export type TagFilterOptions = {
+ ipId?: string;
+ tag?: string;
+};
+export type RoyaltyPayFilterOptions = {
+ ipId?: string;
+ payerIpId?: string;
+ receiverIpId?: string;
+ sender?: string;
+ token?: string;
+};
+
+export type ModuleFilterOptions = {
+ name?: string;
+};
+
+export type LicenseFilterOptions = {
+ licensorIpId?: string;
+ policyId?: string;
+};
+
+export type LicenseFrameworkFilterOptions = {
+ creator?: string;
+};
+
+export type IPAPolicyFilterOptions = {
+ active?: string;
+ inherited?: string;
+ policyId?: string;
+};
+
+export type TransactionFilterOptions = {
+ actionType?: string;
+ resourceId?: string;
+};
+
+export type FilterOptions =
+ | AssetFilterOptions
+ | DisputeFilterOptions
+ | PermissionFilterOptions
+ | PolicyFilterOptions
+ | PolicyFrameworkFilterOptions
+ | RoyaltyFilterOptions
+ | TagFilterOptions
+ | RoyaltyPayFilterOptions
+ | ModuleFilterOptions
+ | LicenseFilterOptions
+ | LicenseFrameworkFilterOptions
+ | IPAPolicyFilterOptions
+ | TransactionFilterOptions;
+
+export type QueryHeaders =
+ | {
+ "x-api-key": string;
+ "x-chain": string;
+ "x-extend-asset"?: string;
+ }
+ | {};
+
+export enum QUERY_ORDER_BY {
+ BLOCK_TIMESTAMP = "blockTimestamp",
+ BLOCK_NUMBER = "blockNumber",
+ TOKEN_ID = "tokenId",
+ ASSET_COUNT = "assetCount",
+ LICENSES_COUNT = "licensesCount",
+ DESCENDANT_COUNT = "descendantCount",
+ // PARENTS = "parentIpIds",
+}
+
+export enum QUERY_ORDER_DIRECTION {
+ ASC = "asc",
+ DESC = "desc",
+}
+
+export type QueryOptions = {
+ chain?: string | number;
+ pagination?: PaginationOptions;
+ where?: FilterOptions;
+ orderBy?: QUERY_ORDER_BY;
+ orderDirection?: QUERY_ORDER_DIRECTION;
+};
+
+export type Transaction = {
+ id: string;
+ createdAt: string;
+ actionType: string;
+ initiator: Address;
+ ipId: Address;
+ resourceId: Address;
+ resourceType: string;
+ blockNumber: string;
+ blockTimestamp: string;
+ logIndex: string;
+ transactionIndex: string;
+ tx_hash: Hash;
+};
+
+export type AssetNFTMetadata = {
+ name: string;
+ chainId: string;
+ tokenContract: Address;
+ tokenId: string;
+ tokenUri: string;
+ imageUrl: string;
+};
+
+export type Permission = {
+ id: string;
+ permission: string;
+ signer: Address;
+ to: Address;
+ func: string;
+ blockNumber: string;
+ blockTimestamp: string;
+};
+
+export type PolicyFramework = {
+ id: string;
+ address: Address;
+ name: string;
+ blockNumber: string;
+ blockTimestamp: string;
+};
+
+export type Module = {
+ id: string;
+ name: string;
+ module: string;
+ blockNumber: string;
+ blockTimestamp: string;
+ deletedAt: string;
+};
+
+export type Tag = {
+ id: string;
+ uuid: string;
+ ipId: Address;
+ tag: string;
+ deletedAt: string;
+ blockNumber: string;
+ blockTimestamp: string;
+};
+
+export type IPAPolicy = {
+ id: string;
+ ipId: Address;
+ policyId: Address;
+ index: string;
+ active: boolean;
+ inherited: boolean;
+ blockNumber: string;
+ blockTimestamp: string;
+};
+
+export type RoyaltyPay = {
+ id: string;
+ receiverIpId: Address;
+ payerIpId: Address;
+ sender: Address;
+ token: Address;
+ amount: string;
+ blockNumber: string;
+ blockTimestamp: string;
+};
+
+export type Royalty = {
+ id: string;
+ ipId: Address;
+ data: string;
+ royaltyPolicy: Address;
+ blockNumber: string;
+ blockTimestamp: string;
+};
+
+export type Dispute = {
+ id: string;
+ targetIpId: Address;
+ targetTag: Address;
+ currentTag: Address;
+ arbitrationPolicy: Address;
+ evidenceLink: string;
+ initiator: Address;
+ data: string;
+ blockNumber: string;
+ blockTimestamp: string;
+};
+
+export type Collection = {
+ id: string;
+ assetCount: string;
+ licensesCount: string;
+ resolvedDisputeCount: string;
+ cancelledDisputeCount: string;
+ raisedDisputeCount: string;
+ judgedDisputeCount: string;
+ blockNumber: string;
+ blockTimestamp: string;
+};
+
+export type Policy = {
+ id: string;
+ policyFrameworkManager: Address;
+ frameworkData: string;
+ royaltyPolicy: Address;
+ royaltyData: string;
+ mintingFee: string;
+ mintingFeeToken: Address;
+ blockNumber: string;
+ blockTimestamp: string;
+ pil: PILType;
+};
+
+export type PILType = {
+ id: Hash;
+ attribution: boolean;
+ commercialUse: boolean;
+ commercialAttribution: boolean;
+ commercializerChecker: Address;
+ commercializerCheckerData: string;
+ commercialRevShare: string;
+ derivativesAllowed: boolean;
+ derivativesAttribution: boolean;
+ derivativesApproval: boolean;
+ derivativesReciprocal: boolean;
+ territories: string[];
+ distributionChannels: string[];
+ contentRestrictions: string[];
+};
+
+export type RoyaltySplit = {
+ id: Address;
+ holders: RoyaltyHolder[];
+ claimFromIPPoolArg: string;
+};
+
+export type RoyaltyHolder = {
+ id: Address;
+ ownership: string;
+};
+
+export type LicenseToken = {
+ id: string;
+ licensorIpId: Address;
+ licenseTemplate: Address;
+ licenseTermsId: string;
+ transferable: boolean;
+ owner: Address;
+ mintedAt: string;
+ expiresAt: string;
+ burntAt: string;
+ blockNumber: string;
+ blockTime: string;
+};
+
+export type LicenseTemplate = {
+ id: string;
+ name: string;
+ metadataUri: string;
+ blockNumber: string;
+ blockTime: string;
+};
+
+export type SocialMedia = {
+ platform?: string;
+ url?: string;
+};
+
+export type Creator = {
+ name?: string;
+ address?: Address;
+ description?: string;
+ contributionPercent?: number;
+ socialMedia?: SocialMedia[];
+};
+
+export interface IPMetadata {
+ title?: string;
+ description?: string;
+ ipType?: string;
+ creators?: Creator[];
+ appInfo?: {
+ id?: string;
+ name?: string;
+ website?: string;
+ }[];
+ relationships?: {
+ parentIpId?: Address;
+ type?: string;
+ }[];
+ robotTerms?: {
+ userAgent?: string;
+ allow?: string;
+ };
+ [key: string]: any;
+}
+
+export interface AssetMetadata {
+ id: Address;
+ metadataHash: string;
+ metadataUri: string;
+ metadataJson: IPMetadata;
+ nftMetadataHash: string;
+ nftTokenUri: string;
+ registrationDate: string;
+}
+
+export type UserCollection = {
+ id?: number;
+ user_id?: number;
+ tx_hash?: Hash;
+ chain?: string;
+ chain_id?: string;
+ collection_address?: Address;
+ collection_name?: string;
+ collection_thumb?: string;
+ collection_banner?: string;
+ collection_description?: string;
+ created_at?: string;
+ updated_at?: string;
+ User?: null;
+};
+
+export enum PIL_FLAVOR {
+ NON_COMMERCIAL_SOCIAL_REMIXING = "Non-Commercial Social Remixing",
+ COMMERCIAL_USE = "Commercial Use",
+ COMMERCIAL_REMIX = "Commercial Remix",
+ CUSTOM = "Custom",
+ // OPEN_DOMAIN = "Open Domain",
+ // NO_DERIVATIVE = "No Derivative",
+}
+
+export type PilFlavor =
+ | PIL_FLAVOR.NON_COMMERCIAL_SOCIAL_REMIXING
+ | PIL_FLAVOR.COMMERCIAL_USE
+ | PIL_FLAVOR.COMMERCIAL_REMIX
+ | PIL_FLAVOR.CUSTOM;
+
+export type Asset = {
+ id: Address;
+ ancestorCount: number;
+ descendantCount: number;
+ parentCount?: number;
+ childCount?: number;
+ rootCount?: number;
+ parentIpIds: Address[] | null;
+ childIpIds: Address[] | null;
+ rootIpIds: Address[] | null;
+ parentIps?: Asset[] | null;
+ rootIps?: Asset[] | null;
+ childIps?: Asset[] | null;
+ nftMetadata: {
+ name: string;
+ chainId: string;
+ tokenContract: Address;
+ tokenId: string;
+ tokenUri: string;
+ imageUrl: string;
+ };
+ blockNumber: string;
+ blockTimestamp: string;
+};
+
+export type AssetEdges = {
+ ipId: Address;
+ parentIpId: Address;
+ blockNumber: string;
+ blockTime: string;
+ licenseTemplate: Address;
+ licenseTermsId: string;
+ licenseTokenId: string;
+ transactionHash: string;
+ transactionIndex: string;
+};
+
+export type License = {
+ id: string;
+ licensorIpId: Address;
+ licenseTemplate: string;
+ licenseTermsId: string;
+ transferable: boolean;
+ owner: Address;
+ mintedAt: string;
+ expiresAt: string;
+ burntAt: string;
+ blockNumber: string;
+ blockTime: string;
+};
+
+export type PILTerms = {
+ commercialAttribution: boolean;
+ commercialRevenueCelling: number;
+ commercialRevenueShare: number;
+ commercialUse: boolean;
+ commercializerCheck: Address;
+ currency: Address;
+ derivativesAllowed: boolean;
+ derivativesApproval: boolean;
+ derivativesAttribution: boolean;
+ derivativesReciprocal: boolean;
+ derivativesRevenueCelling: number;
+ expiration: string;
+ uRI: string;
+};
+
+export type IPLicenseDetails = {
+ id: string;
+ ipId: Address;
+ licenseTemplateId: string;
+ licenseTemplate: {
+ id: string;
+ name: string;
+ metadataUri: string;
+ blockNumber: string;
+ blockTime: string;
+ };
+ terms: PILTerms;
+};
+export type IPLicenseTerms = {
+ id: string;
+ ipId: Address;
+ licenseTemplate: string;
+ licenseTermsId: string;
+ blockNumber: string;
+ blockTime: string;
+};
+
+export type RoyaltyPolicy = {
+ id: Address;
+ ipRoyaltyVault: Address;
+ splitClone: Address;
+ royaltyStack: string;
+ targetAncestors: Address[];
+ targetRoyaltyAmount: string[];
+ blockNumber: string;
+ blockTimestamp: string;
+};
+
+export interface Trait {
+ trait_type: string;
+ value: string | number;
+ max_value?: number;
+}
+
+export type LicenseTerms = {
+ id: string;
+ // json: string
+ licenseTerms: Trait[];
+ licenseTemplate: Address;
+ blockNumber: string;
+ blockTime: string;
+};
+
+export interface AssetMetadata {
+ id: Address;
+ metadataHash: string;
+ metadataUri: string;
+ metadataJson: IPMetadata;
+ nftMetadataHash: string;
+ nftTokenUri: string;
+ registrationDate: string;
+}
+
+export interface Trait {
+ trait_type: string;
+ value: string | number;
+ max_value?: number;
+}
diff --git a/packages/plugin-story/src/types/index.ts b/packages/plugin-story/src/types/index.ts
new file mode 100644
index 0000000000..722985a1cc
--- /dev/null
+++ b/packages/plugin-story/src/types/index.ts
@@ -0,0 +1,118 @@
+import type { Token } from "@lifi/types";
+import type {
+ Account,
+ Address,
+ Chain,
+ Hash,
+ HttpTransport,
+ PublicClient,
+ WalletClient,
+} from "viem";
+
+export type SupportedChain = "odyssey";
+
+// Transaction types
+export interface Transaction {
+ hash: Hash;
+ from: Address;
+ to: Address;
+ value: bigint;
+ data?: `0x${string}`;
+ chainId?: number;
+}
+
+// Token types
+export interface TokenWithBalance {
+ token: Token;
+ balance: bigint;
+ formattedBalance: string;
+ priceUSD: string;
+ valueUSD: string;
+}
+
+export interface WalletBalance {
+ chain: SupportedChain;
+ address: Address;
+ totalValueUSD: string;
+ tokens: TokenWithBalance[];
+}
+
+// Chain configuration
+export interface ChainMetadata {
+ chainId: number;
+ name: string;
+ chain: Chain;
+ rpcUrl: string;
+ nativeCurrency: {
+ name: string;
+ symbol: string;
+ decimals: number;
+ };
+ blockExplorerUrl: string;
+}
+
+export interface ChainConfig {
+ chain: Chain;
+ publicClient: PublicClient;
+ walletClient?: WalletClient;
+}
+
+// Action parameters
+export interface RegisterIPParams {
+ title: string;
+ description: string;
+ ipType: string;
+}
+
+export interface LicenseIPParams {
+ licensorIpId: Address;
+ licenseTermsId: string;
+ amount: number;
+}
+
+export interface AttachTermsParams {
+ ipId: Address;
+ mintingFee: number;
+ commercialUse: boolean;
+ commercialRevShare: number;
+}
+
+// Plugin configuration
+export interface EvmPluginConfig {
+ rpcUrl?: {
+ ethereum?: string;
+ base?: string;
+ };
+ secrets?: {
+ EVM_PRIVATE_KEY: string;
+ };
+ testMode?: boolean;
+ multicall?: {
+ batchSize?: number;
+ wait?: number;
+ };
+}
+
+// Provider types
+export interface TokenData extends Token {
+ symbol: string;
+ decimals: number;
+ address: Address;
+ name: string;
+ logoURI?: string;
+ chainId: number;
+}
+
+export interface TokenPriceResponse {
+ priceUSD: string;
+ token: TokenData;
+}
+
+export interface TokenListResponse {
+ tokens: TokenData[];
+}
+
+export interface ProviderError extends Error {
+ code?: number;
+ data?: unknown;
+}
diff --git a/packages/plugin-story/tsconfig.json b/packages/plugin-story/tsconfig.json
new file mode 100644
index 0000000000..2d8d3fe818
--- /dev/null
+++ b/packages/plugin-story/tsconfig.json
@@ -0,0 +1,15 @@
+{
+ "extends": "../core/tsconfig.json",
+ "compilerOptions": {
+ "outDir": "dist",
+ "rootDir": "./src",
+ "typeRoots": [
+ "./node_modules/@types",
+ "./src/types"
+ ],
+ "declaration": true
+ },
+ "include": [
+ "src"
+ ]
+}
\ No newline at end of file
diff --git a/packages/plugin-story/tsup.config.ts b/packages/plugin-story/tsup.config.ts
new file mode 100644
index 0000000000..a68ccd636a
--- /dev/null
+++ b/packages/plugin-story/tsup.config.ts
@@ -0,0 +1,21 @@
+import { defineConfig } from "tsup";
+
+export default defineConfig({
+ entry: ["src/index.ts"],
+ outDir: "dist",
+ sourcemap: true,
+ clean: true,
+ format: ["esm"], // Ensure you're targeting CommonJS
+ external: [
+ "dotenv", // Externalize dotenv to prevent bundling
+ "fs", // Externalize fs to use Node.js built-in module
+ "path", // Externalize other built-ins if necessary
+ "@reflink/reflink",
+ "@node-llama-cpp",
+ "https",
+ "http",
+ "agentkeepalive",
+ "viem",
+ "@lifi/sdk",
+ ],
+});
diff --git a/packages/plugin-sui/.npmignore b/packages/plugin-sui/.npmignore
new file mode 100644
index 0000000000..078562ecea
--- /dev/null
+++ b/packages/plugin-sui/.npmignore
@@ -0,0 +1,6 @@
+*
+
+!dist/**
+!package.json
+!readme.md
+!tsup.config.ts
\ No newline at end of file
diff --git a/packages/plugin-sui/eslint.config.mjs b/packages/plugin-sui/eslint.config.mjs
new file mode 100644
index 0000000000..92fe5bbebe
--- /dev/null
+++ b/packages/plugin-sui/eslint.config.mjs
@@ -0,0 +1,3 @@
+import eslintGlobalConfig from "../../eslint.config.mjs";
+
+export default [...eslintGlobalConfig];
diff --git a/packages/plugin-sui/package.json b/packages/plugin-sui/package.json
new file mode 100644
index 0000000000..2339503564
--- /dev/null
+++ b/packages/plugin-sui/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "@ai16z/plugin-sui",
+ "version": "0.1.6-alpha.4",
+ "main": "dist/index.js",
+ "type": "module",
+ "types": "dist/index.d.ts",
+ "dependencies": {
+ "@ai16z/eliza": "workspace:*",
+ "@ai16z/plugin-trustdb": "workspace:*",
+ "@mysten/sui": "^1.16.0",
+ "bignumber": "1.1.0",
+ "bignumber.js": "9.1.2",
+ "node-cache": "5.1.2",
+ "tsup": "8.3.5",
+ "vitest": "2.1.4"
+ },
+ "scripts": {
+ "build": "tsup --format esm --dts",
+ "lint": "eslint . --fix",
+ "test": "vitest run"
+ },
+ "peerDependencies": {
+ "form-data": "4.0.1",
+ "whatwg-url": "7.1.0"
+ }
+}
diff --git a/packages/plugin-sui/src/actions/transfer.ts b/packages/plugin-sui/src/actions/transfer.ts
new file mode 100644
index 0000000000..29e9acf025
--- /dev/null
+++ b/packages/plugin-sui/src/actions/transfer.ts
@@ -0,0 +1,214 @@
+import {
+ ActionExample,
+ Content,
+ HandlerCallback,
+ IAgentRuntime,
+ Memory,
+ ModelClass,
+ State,
+ composeContext,
+ elizaLogger,
+ generateObject,
+ type Action,
+} from "@ai16z/eliza";
+import { z } from "zod";
+
+import { SuiClient, getFullnodeUrl } from "@mysten/sui/client";
+import { Ed25519Keypair } from "@mysten/sui/keypairs/ed25519";
+import { Transaction } from "@mysten/sui/transactions";
+import { SUI_DECIMALS } from "@mysten/sui/utils";
+
+import { walletProvider } from "../providers/wallet";
+
+type SuiNetwork = "mainnet" | "testnet" | "devnet" | "localnet";
+
+export interface TransferContent extends Content {
+ recipient: string;
+ amount: string | number;
+}
+
+function isTransferContent(content: Content): content is TransferContent {
+ console.log("Content for transfer", content);
+ return (
+ typeof content.recipient === "string" &&
+ (typeof content.amount === "string" ||
+ typeof content.amount === "number")
+ );
+}
+
+const transferTemplate = `Respond with a JSON markdown block containing only the extracted values. Use null for any values that cannot be determined.
+
+Example response:
+\`\`\`json
+{
+ "recipient": "0xaa000b3651bd1e57554ebd7308ca70df7c8c0e8e09d67123cc15c8a8a79342b3",
+ "amount": "1"
+}
+\`\`\`
+
+{{recentMessages}}
+
+Given the recent messages, extract the following information about the requested token transfer:
+- Recipient wallet address
+- Amount to transfer
+
+Respond with a JSON markdown block containing only the extracted values.`;
+
+export default {
+ name: "SEND_TOKEN",
+ similes: [
+ "TRANSFER_TOKEN",
+ "TRANSFER_TOKENS",
+ "SEND_TOKENS",
+ "SEND_SUI",
+ "PAY",
+ ],
+ validate: async (runtime: IAgentRuntime, message: Memory) => {
+ console.log("Validating sui transfer from user:", message.userId);
+ //add custom validate logic here
+ /*
+ const adminIds = runtime.getSetting("ADMIN_USER_IDS")?.split(",") || [];
+ //console.log("Admin IDs from settings:", adminIds);
+
+ const isAdmin = adminIds.includes(message.userId);
+
+ if (isAdmin) {
+ //console.log(`Authorized transfer from user: ${message.userId}`);
+ return true;
+ }
+ else
+ {
+ //console.log(`Unauthorized transfer attempt from user: ${message.userId}`);
+ return false;
+ }
+ */
+ return true;
+ },
+ description: "Transfer tokens from the agent's wallet to another address",
+ handler: async (
+ runtime: IAgentRuntime,
+ message: Memory,
+ state: State,
+ _options: { [key: string]: unknown },
+ callback?: HandlerCallback
+ ): Promise => {
+ elizaLogger.log("Starting SEND_TOKEN handler...");
+
+ const walletInfo = await walletProvider.get(runtime, message, state);
+ state.walletInfo = walletInfo;
+
+ // Initialize or update state
+ if (!state) {
+ state = (await runtime.composeState(message)) as State;
+ } else {
+ state = await runtime.updateRecentMessageState(state);
+ }
+
+ // Define the schema for the expected output
+ const transferSchema = z.object({
+ recipient: z.string(),
+ amount: z.union([z.string(), z.number()]),
+ });
+
+ // Compose transfer context
+ const transferContext = composeContext({
+ state,
+ template: transferTemplate,
+ });
+
+ // Generate transfer content with the schema
+ const content = await generateObject({
+ runtime,
+ context: transferContext,
+ schema: transferSchema,
+ modelClass: ModelClass.SMALL,
+ });
+
+ const transferContent = content.object as TransferContent;
+
+ // Validate transfer content
+ if (!isTransferContent(transferContent)) {
+ console.error("Invalid content for TRANSFER_TOKEN action.");
+ if (callback) {
+ callback({
+ text: "Unable to process transfer request. Invalid content provided.",
+ content: { error: "Invalid transfer content" },
+ });
+ }
+ return false;
+ }
+
+ try {
+ const privateKey = runtime.getSetting("SUI_PRIVATE_KEY");
+ const suiAccount = Ed25519Keypair.deriveKeypair(privateKey);
+ const network = runtime.getSetting("SUI_NETWORK");
+ const suiClient = new SuiClient({
+ url: getFullnodeUrl(network as SuiNetwork),
+ });
+
+ const adjustedAmount = BigInt(
+ Number(transferContent.amount) * Math.pow(10, SUI_DECIMALS)
+ );
+ console.log(
+ `Transferring: ${transferContent.amount} tokens (${adjustedAmount} base units)`
+ );
+ const tx = new Transaction();
+ const [coin] = tx.splitCoins(tx.gas, [adjustedAmount]);
+ tx.transferObjects([coin], transferContent.recipient);
+ const executedTransaction =
+ await suiClient.signAndExecuteTransaction({
+ signer: suiAccount,
+ transaction: tx,
+ });
+
+ console.log("Transfer successful:", executedTransaction.digest);
+
+ if (callback) {
+ callback({
+ text: `Successfully transferred ${transferContent.amount} SUI to ${transferContent.recipient}, Transaction: ${executedTransaction.digest}`,
+ content: {
+ success: true,
+ hash: executedTransaction.digest,
+ amount: transferContent.amount,
+ recipient: transferContent.recipient,
+ },
+ });
+ }
+
+ return true;
+ } catch (error) {
+ console.error("Error during token transfer:", error);
+ if (callback) {
+ callback({
+ text: `Error transferring tokens: ${error.message}`,
+ content: { error: error.message },
+ });
+ }
+ return false;
+ }
+ },
+
+ examples: [
+ [
+ {
+ user: "{{user1}}",
+ content: {
+ text: "Send 1 SUI tokens to 0x4f2e63be8e7fe287836e29cde6f3d5cbc96eefd0c0e3f3747668faa2ae7324b0",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "I'll send 1 SUI tokens now...",
+ action: "SEND_TOKEN",
+ },
+ },
+ {
+ user: "{{user2}}",
+ content: {
+ text: "Successfully sent 1 SUI tokens to 0x4f2e63be8e7fe287836e29cde6f3d5cbc96eefd0c0e3f3747668faa2ae7324b0, Transaction: 0x39a8c432d9bdad993a33cc1faf2e9b58fb7dd940c0425f1d6db3997e4b4b05c0",
+ },
+ },
+ ],
+ ] as ActionExample[][],
+} as Action;
diff --git a/packages/plugin-sui/src/enviroment.ts b/packages/plugin-sui/src/enviroment.ts
new file mode 100644
index 0000000000..5c1fadc31a
--- /dev/null
+++ b/packages/plugin-sui/src/enviroment.ts
@@ -0,0 +1,36 @@
+import { IAgentRuntime } from "@ai16z/eliza";
+import { z } from "zod";
+
+export const suiEnvSchema = z.object({
+ SUI_PRIVATE_KEY: z.string().min(1, "Sui private key is required"),
+ SUI_NETWORK: z.enum(["mainnet", "testnet"]),
+});
+
+export type SuiConfig = z.infer;
+
+export async function validateSuiConfig(
+ runtime: IAgentRuntime
+): Promise {
+ try {
+ const config = {
+ SUI_PRIVATE_KEY:
+ runtime.getSetting("SUI_PRIVATE_KEY") ||
+ process.env.SUI_PRIVATE_KEY,
+ SUI_NETWORK:
+ runtime.getSetting("SUI_NETWORK") ||
+ process.env.SUI_NETWORK,
+ };
+
+ return suiEnvSchema.parse(config);
+ } catch (error) {
+ if (error instanceof z.ZodError) {
+ const errorMessages = error.errors
+ .map((err) => `${err.path.join(".")}: ${err.message}`)
+ .join("\n");
+ throw new Error(
+ `Sui configuration validation failed:\n${errorMessages}`
+ );
+ }
+ throw error;
+ }
+}
diff --git a/packages/plugin-sui/src/index.ts b/packages/plugin-sui/src/index.ts
new file mode 100644
index 0000000000..964003a18d
--- /dev/null
+++ b/packages/plugin-sui/src/index.ts
@@ -0,0 +1,15 @@
+import { Plugin } from "@ai16z/eliza";
+import transferToken from "./actions/transfer.ts";
+import { WalletProvider, walletProvider } from "./providers/wallet.ts";
+
+export { WalletProvider, transferToken as TransferSuiToken };
+
+export const suiPlugin: Plugin = {
+ name: "sui",
+ description: "Sui Plugin for Eliza",
+ actions: [transferToken],
+ evaluators: [],
+ providers: [walletProvider],
+};
+
+export default suiPlugin;
diff --git a/packages/plugin-sui/src/providers/wallet.ts b/packages/plugin-sui/src/providers/wallet.ts
new file mode 100644
index 0000000000..70038c6128
--- /dev/null
+++ b/packages/plugin-sui/src/providers/wallet.ts
@@ -0,0 +1,246 @@
+import {
+ IAgentRuntime,
+ ICacheManager,
+ Memory,
+ Provider,
+ State,
+} from "@ai16z/eliza";
+
+
+import { getFullnodeUrl, SuiClient } from "@mysten/sui/client";
+import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
+
+import { MIST_PER_SUI } from "@mysten/sui/utils";
+import BigNumber from "bignumber.js";
+import NodeCache from "node-cache";
+import * as path from "path";
+
+// Provider configuration
+const PROVIDER_CONFIG = {
+ MAX_RETRIES: 3,
+ RETRY_DELAY: 2000,
+};
+
+interface WalletPortfolio {
+ totalUsd: string;
+ totalSui: string;
+}
+
+interface Prices {
+ sui: { usd: string };
+}
+
+type SuiNetwork = "mainnet" | "testnet" | "devnet" | "localnet";
+
+export class WalletProvider {
+ private cache: NodeCache;
+ private cacheKey: string = "sui/wallet";
+
+ constructor(
+ private suiClient: SuiClient,
+ private address: string,
+ private cacheManager: ICacheManager
+ ) {
+ this.cache = new NodeCache({ stdTTL: 300 }); // Cache TTL set to 5 minutes
+ }
+
+ private async readFromCache(key: string): Promise {
+ const cached = await this.cacheManager.get(
+ path.join(this.cacheKey, key)
+ );
+ return cached;
+ }
+
+ private async writeToCache(key: string, data: T): Promise {
+ await this.cacheManager.set(path.join(this.cacheKey, key), data, {
+ expires: Date.now() + 5 * 60 * 1000,
+ });
+ }
+
+
+ private async getCachedData(key: string): Promise {
+ // Check in-memory cache first
+ const cachedData = this.cache.get(key);
+ if (cachedData) {
+ return cachedData;
+ }
+
+ // Check file-based cache
+ const fileCachedData = await this.readFromCache(key);
+ if (fileCachedData) {
+ // Populate in-memory cache
+ this.cache.set(key, fileCachedData);
+ return fileCachedData;
+ }
+
+ return null;
+ }
+
+ private async setCachedData(cacheKey: string, data: T): Promise {
+ // Set in-memory cache
+ this.cache.set(cacheKey, data);
+
+ // Write to file-based cache
+ await this.writeToCache(cacheKey, data);
+ }
+
+ private async fetchPricesWithRetry() {
+ let lastError: Error;
+
+ for (let i = 0; i < PROVIDER_CONFIG.MAX_RETRIES; i++) {
+ try {
+ const cetusSuiUsdcPoolAddr =
+ "0x51e883ba7c0b566a26cbc8a94cd33eb0abd418a77cc1e60ad22fd9b1f29cd2ab";
+ const response = await fetch(
+ `https://api.dexscreener.com/latest/dex/pairs/sui/${cetusSuiUsdcPoolAddr}`
+ );
+
+ if (!response.ok) {
+ const errorText = await response.text();
+ throw new Error(
+ `HTTP error! status: ${response.status}, message: ${errorText}`
+ );
+ }
+
+ const data = await response.json();
+ return data;
+ } catch (error) {
+ console.error(`Attempt ${i + 1} failed:`, error);
+ lastError = error;
+ if (i < PROVIDER_CONFIG.MAX_RETRIES - 1) {
+ const delay = PROVIDER_CONFIG.RETRY_DELAY * Math.pow(2, i);
+ await new Promise((resolve) => setTimeout(resolve, delay));
+ continue;
+ }
+ }
+ }
+
+ console.error(
+ "All attempts failed. Throwing the last error:",
+ lastError
+ );
+ throw lastError;
+ }
+
+ async fetchPortfolioValue(): Promise