Compare commits

..

7 Commits

11 changed files with 331 additions and 252 deletions

View File

@ -6,6 +6,8 @@
"scripts": { "scripts": {
"dev": "NODE_OPTIONS='--inspect' next dev --turbopack", "dev": "NODE_OPTIONS='--inspect' next dev --turbopack",
"build": "next build", "build": "next build",
"build:compile": "next build --experimental-build-mode compile",
"build:generate": "next build --experimental-build-mode generate",
"start": "next start", "start": "next start",
"lint": "biome check .", "lint": "biome check .",
"lint:fix": "biome check --write .", "lint:fix": "biome check --write .",

View File

@ -0,0 +1,3 @@
REGISTRY_BOND_ID=
DEPLOYER_LRN=
AUTHORITY=

View File

@ -1,5 +1,9 @@
# deployer # deployer
The following steps are for deploying the frontend app to vaasl webapp deployer.
Run these steps in the `apps/deployer/` directory:
- Install dependencies - Install dependencies
```bash ```bash
@ -7,46 +11,60 @@
``` ```
```bash ```bash
brew install jq # if you do not have jq installed already # if you do not have jq installed already
brew install jq
# OR
sudo apt-get install jq
``` ```
- Run script to deploy app - Copy and update `.env`
- To deploy frontend app to `dashboard.staging.apps.snowballtools.com` ```
cp .env.example .env
```
```bash Set the required variables:
./deploy-frontend.staging.sh
```
- To deploy frontend app to `dashboard.apps.snowballtools.com` ```
REGISTRY_BOND_ID=230cfedda15e78edc8986dfcb870e1b618f65c56e38d2735476d2a8cb3f25e38
DEPLOYER_LRN=lrn://vaasl-provider/deployers/webapp-deployer-api.apps.vaasl.io
AUTHORITY=laconic
```
```bash - Set the `userKey` in [config.yml](./config.yml)
./deploy-frontend.sh
``` Note: The `userKey` should be the private key of the account owning the bond set in `config.yml` (account address: `laconic13maulvmjxnyx3g855vk0lsv5aptf3rpxskynef`)
- Set the app env values in [deploy-frontend.sh](./deploy-frontend.sh) (Refer to main [readme](/readme.md#3-configure-environment-variables)):
<!-- TODO: Set env values from a file -->
```sh
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY: your_clerk_key
CLERK_SECRET_KEY: your_clerk_secret
NEXT_PUBLIC_WALLET_IFRAME_URL: https://wallet.laconic.com
NEXT_PUBLIC_LACONICD_CHAIN_ID: laconic-mainnet
NEXT_PUBLIC_API_URL: https://deploy-backend.apps.vaasl.io
NEXT_PUBLIC_GITHUB_FALLBACK_TOKEN: your_github_token
```
NOTE: Replace `your_clerk_key`, `your_clerk_secret` and `your_github_token` with actual values
- Run script to deploy app to `deploy-staging.laconic.co`
```bash
./deploy-frontend.sh
```
- Commit the updated [ApplicationRecord](records/application-record.yml) and [ApplicationDeploymentRequest](records/application-deployment-request.yml) files to the repository - Commit the updated [ApplicationRecord](records/application-record.yml) and [ApplicationDeploymentRequest](records/application-deployment-request.yml) files to the repository
## Notes
- Any config env can be updated in [records/application-deployment-request.yml](records/application-deployment-request.yml)
```yml
record:
...
config:
env:
LACONIC_HOSTED_CONFIG_app_server_url: https://snowballtools-base-api-001.apps.snowballtools.com
...
```
- On changing `LACONIC_HOSTED_CONFIG_app_github_clientid`, the GitHub client ID and secret need to be changed in backend config too
## Troubleshoot ## Troubleshoot
- Check deployment status in [web-app deployer](https://console.laconic.com/deployer). - Check deployment status in [web-app deployer](https://console.laconic.com/deployer).
- Check records in [registry console app](https://console.laconic.com/#/registry). - Check records in [registry console app](https://console.laconic.com/#/registry).
- If deployment fails due to low bond balance - If deployment fails due to low bond balance
- Check balances - Check balances
```bash ```bash
@ -54,11 +72,11 @@
pnpm laconic registry account get pnpm laconic registry account get
# Bond balance # Bond balance
pnpm laconic registry bond get --id 99c0e9aec0ac1b8187faa579be3b54f93fafb6060ac1fd29170b860df605be32 pnpm laconic registry bond get --id 230cfedda15e78edc8986dfcb870e1b618f65c56e38d2735476d2a8cb3f25e38
``` ```
- Command to refill bond - Command to refill bond
```bash ```bash
pnpm laconic registry bond refill --id 99c0e9aec0ac1b8187faa579be3b54f93fafb6060ac1fd29170b860df605be32 --type alnt --quantity 10000000 pnpm laconic registry bond refill --id 230cfedda15e78edc8986dfcb870e1b618f65c56e38d2735476d2a8cb3f25e38 --type alnt --quantity 10000000
``` ```

View File

@ -1,8 +1,8 @@
services: services:
registry: registry:
rpcEndpoint: https://laconicd-sapo.laconic.com rpcEndpoint: https://laconicd-mainnet-1.laconic.com/
gqlEndpoint: https://laconicd-sapo.laconic.com/api gqlEndpoint: https://laconicd-mainnet-1.laconic.com/api
userKey: userKey:
bondId: bondId: 230cfedda15e78edc8986dfcb870e1b618f65c56e38d2735476d2a8cb3f25e38
chainId: laconic-testnet-2 chainId: laconic-mainnet
gasPrice: 0.001alnt gasPrice: 0.001alnt

View File

@ -6,7 +6,7 @@ echo "Using DEPLOYER_LRN: $DEPLOYER_LRN"
echo "Using AUTHORITY: $AUTHORITY" echo "Using AUTHORITY: $AUTHORITY"
# Repository URL # Repository URL
REPO_URL="https://git.vdb.to/cerc-io/snowballtools-base" REPO_URL="https://git.vdb.to/NasSharaf/laconic-deployer-frontend"
# Get the latest commit hash for a branch # Get the latest commit hash for a branch
BRANCH_NAME="main" BRANCH_NAME="main"
@ -25,7 +25,7 @@ CONFIG_FILE=config.yml
# Reference: https://git.vdb.to/cerc-io/test-progressive-web-app/src/branch/main/scripts # Reference: https://git.vdb.to/cerc-io/test-progressive-web-app/src/branch/main/scripts
# Get latest version from registry and increment application-record version # Get latest version from registry and increment application-record version
NEW_APPLICATION_VERSION=$(pnpm --silent laconic -c $CONFIG_FILE registry record list --type ApplicationRecord --all --name "deploy-frontend" 2>/dev/null | jq -r -s ".[] | sort_by(.createTime) | reverse | [ .[] | select(.bondId == \"$REGISTRY_BOND_ID\") ] | .[0].attributes.version" | awk -F. -v OFS=. '{$NF += 1 ; print}') NEW_APPLICATION_VERSION=$(pnpm --silent laconic -c $CONFIG_FILE registry record list --type ApplicationRecord --all --name "laconic-deployer-frontend" 2>/dev/null | jq -r -s ".[] | sort_by(.createTime) | reverse | [ .[] | select(.bondId == \"$REGISTRY_BOND_ID\") ] | .[0].attributes.version" | awk -F. -v OFS=. '{$NF += 1 ; print}')
if [ -z "$NEW_APPLICATION_VERSION" ] || [ "1" == "$NEW_APPLICATION_VERSION" ]; then if [ -z "$NEW_APPLICATION_VERSION" ] || [ "1" == "$NEW_APPLICATION_VERSION" ]; then
# Set application-record version if no previous records were found # Set application-record version if no previous records were found
@ -39,8 +39,8 @@ record:
version: $NEW_APPLICATION_VERSION version: $NEW_APPLICATION_VERSION
repository_ref: $LATEST_HASH repository_ref: $LATEST_HASH
repository: ["$REPO_URL"] repository: ["$REPO_URL"]
app_type: webapp app_type: webapp/next
name: deploy-frontend name: laconic-deployer-frontend
app_version: $PACKAGE_VERSION app_version: $PACKAGE_VERSION
EOF EOF
@ -60,7 +60,7 @@ echo "ApplicationRecord published"
echo $RECORD_ID echo $RECORD_ID
# Set name to record # Set name to record
REGISTRY_APP_LRN="lrn://$AUTHORITY/applications/deploy-frontend" REGISTRY_APP_LRN="lrn://$AUTHORITY/applications/laconic-deployer-frontend"
sleep 2 sleep 2
pnpm --silent laconic -c $CONFIG_FILE registry name set "$REGISTRY_APP_LRN@${PACKAGE_VERSION}" "$RECORD_ID" pnpm --silent laconic -c $CONFIG_FILE registry name set "$REGISTRY_APP_LRN@${PACKAGE_VERSION}" "$RECORD_ID"
@ -122,19 +122,18 @@ cat >./records/application-deployment-request.yml <<EOF
record: record:
type: ApplicationDeploymentRequest type: ApplicationDeploymentRequest
version: '1.0.0' version: '1.0.0'
name: deploy-frontend@$PACKAGE_VERSION name: laconic-deployer-frontend@$PACKAGE_VERSION
application: lrn://$AUTHORITY/applications/deploy-frontend@$PACKAGE_VERSION application: lrn://$AUTHORITY/applications/laconic-deployer-frontend@$PACKAGE_VERSION
deployer: $DEPLOYER_LRN deployer: $DEPLOYER_LRN
dns: deploy.laconic.com dns: deploy-staging.laconic.com
config: config:
env: env:
LACONIC_HOSTED_CONFIG_server_url: https://deploy-backend.laconic.com NEXT_PUBLIC_WALLET_IFRAME_URL: https://wallet.laconic.com
LACONIC_HOSTED_CONFIG_github_clientid: Ov23li4NtYybQlF6u5Dk NEXT_PUBLIC_LACONICD_CHAIN_ID: laconic-mainnet
LACONIC_HOSTED_CONFIG_github_pwa_templaterepo: laconic-templates/test-progressive-web-app NEXT_PUBLIC_API_URL: https://deploy-backend.apps.vaasl.io
LACONIC_HOSTED_CONFIG_github_image_upload_templaterepo: laconic-templates/image-upload-pwa-example NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY:
LACONIC_HOSTED_CONFIG_github_next_app_templaterepo: laconic-templates/starter.nextjs-react-tailwind CLERK_SECRET_KEY:
LACONIC_HOSTED_CONFIG_laconicd_chain_id: laconic-testnet-2 NEXT_PUBLIC_GITHUB_FALLBACK_TOKEN: your_github_token
LACONIC_HOSTED_CONFIG_wallet_iframe_url: https://wallet.laconic.com
meta: meta:
note: Added @ $CURRENT_DATE_TIME note: Added @ $CURRENT_DATE_TIME
repository: "$REPO_URL" repository: "$REPO_URL"
@ -142,6 +141,12 @@ record:
payment: $txHash payment: $txHash
EOF EOF
# Old env values for frontend app
# LACONIC_HOSTED_CONFIG_github_clientid: Ov23li4NtYybQlF6u5Dk
# LACONIC_HOSTED_CONFIG_github_pwa_templaterepo: laconic-templates/test-progressive-web-app
# LACONIC_HOSTED_CONFIG_github_image_upload_templaterepo: laconic-templates/image-upload-pwa-example
# LACONIC_HOSTED_CONFIG_github_next_app_templaterepo: laconic-templates/starter.nextjs-react-tailwind
RECORD_FILE=records/application-deployment-request.yml RECORD_FILE=records/application-deployment-request.yml
sleep 2 sleep 2

16
build-webapp.sh Executable file
View File

@ -0,0 +1,16 @@
#!/bin/bash
PKG_DIR="./apps/deploy-fe"
cat > $PKG_DIR/.env <<EOF
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=CERC_RUNTIME_ENV_NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
CLERK_SECRET_KEY=CERC_RUNTIME_ENV_CLERK_SECRET_KEY
NEXT_PUBLIC_WALLET_IFRAME_URL=CERC_RUNTIME_ENV_NEXT_PUBLIC_WALLET_IFRAME_URL
NEXT_PUBLIC_LACONICD_CHAIN_ID=CERC_RUNTIME_ENV_NEXT_PUBLIC_LACONICD_CHAIN_ID
NEXT_PUBLIC_API_URL=CERC_RUNTIME_ENV_NEXT_PUBLIC_API_URL
NEXT_PUBLIC_GITHUB_FALLBACK_TOKEN=CERC_RUNTIME_ENV_NEXT_PUBLIC_GITHUB_FALLBACK_TOKEN
EOF
pnpm install || exit 1
pnpm build:fe-compile || exit 1

View File

@ -5,6 +5,7 @@
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"build": "turbo build", "build": "turbo build",
"build:fe-compile": "turbo build:compile --filter=deploy-fe",
"dev": "turbo dev", "dev": "turbo dev",
"lint": "turbo lint", "lint": "turbo lint",
"start": "turbo start", "start": "turbo start",

398
pnpm-lock.yaml generated
View File

@ -44,13 +44,13 @@ importers:
version: 0.2.11(debug@4.4.0) version: 0.2.11(debug@4.4.0)
'@cosmjs/stargate': '@cosmjs/stargate':
specifier: ^0.33.0 specifier: ^0.33.0
version: 0.33.0(debug@4.4.0) version: 0.33.1(debug@4.4.0)
'@graphql-tools/schema': '@graphql-tools/schema':
specifier: ^10.0.2 specifier: ^10.0.2
version: 10.0.21(graphql@16.10.0) version: 10.0.25(graphql@16.10.0)
'@graphql-tools/utils': '@graphql-tools/utils':
specifier: ^10.0.12 specifier: ^10.0.12
version: 10.8.4(graphql@16.10.0) version: 10.9.1(graphql@16.10.0)
'@octokit/oauth-app': '@octokit/oauth-app':
specifier: ^6.1.0 specifier: ^6.1.0
version: 6.1.0 version: 6.1.0
@ -65,7 +65,7 @@ importers:
version: 20.17.23 version: 20.17.23
'@types/semver': '@types/semver':
specifier: ^7.5.8 specifier: ^7.5.8
version: 7.5.8 version: 7.7.0
apollo-server-core: apollo-server-core:
specifier: ^3.13.0 specifier: ^3.13.0
version: 3.13.0(graphql@16.10.0) version: 3.13.0(graphql@16.10.0)
@ -74,7 +74,7 @@ importers:
version: 3.13.0(express@4.21.2)(graphql@16.10.0) version: 3.13.0(express@4.21.2)(graphql@16.10.0)
cookie-session: cookie-session:
specifier: ^2.1.0 specifier: ^2.1.0
version: 2.1.0 version: 2.1.1
cors: cors:
specifier: ^2.8.5 specifier: ^2.8.5
version: 2.8.5 version: 2.8.5
@ -89,28 +89,28 @@ importers:
version: 3.1.1(express@4.21.2) version: 3.1.1(express@4.21.2)
express-session: express-session:
specifier: ^1.18.0 specifier: ^1.18.0
version: 1.18.1 version: 1.18.2
fs-extra: fs-extra:
specifier: ^11.2.0 specifier: ^11.2.0
version: 11.3.0 version: 11.3.1
graphql: graphql:
specifier: ^16.8.1 specifier: ^16.8.1
version: 16.10.0 version: 16.10.0
luxon: luxon:
specifier: ^3.5.0 specifier: ^3.5.0
version: 3.5.0 version: 3.7.1
nanoid: nanoid:
specifier: '3' specifier: '3'
version: 3.3.8 version: 3.3.8
nanoid-dictionary: nanoid-dictionary:
specifier: ^5.0.0-beta.1 specifier: ^5.0.0-beta.1
version: 5.0.0-beta.1 version: 5.0.0
octokit: octokit:
specifier: ^3.1.2 specifier: ^3.1.2
version: 3.2.1 version: 3.2.1
openpgp: openpgp:
specifier: ^6.0.1 specifier: ^6.0.1
version: 6.1.0 version: 6.2.0
reflect-metadata: reflect-metadata:
specifier: ^0.2.1 specifier: ^0.2.1
version: 0.2.2 version: 0.2.2
@ -141,13 +141,13 @@ importers:
version: 2.0.49 version: 2.0.49
'@types/cors': '@types/cors':
specifier: ^2.8.17 specifier: ^2.8.17
version: 2.8.17 version: 2.8.19
'@types/express': '@types/express':
specifier: ^4.17.21 specifier: ^4.17.21
version: 4.17.21 version: 4.17.23
'@types/express-session': '@types/express-session':
specifier: ^1.17.10 specifier: ^1.17.10
version: 1.18.1 version: 1.18.2
'@types/fs-extra': '@types/fs-extra':
specifier: ^11.0.4 specifier: ^11.0.4
version: 11.0.4 version: 11.0.4
@ -159,7 +159,7 @@ importers:
version: 2.4.1 version: 2.4.1
prettier: prettier:
specifier: ^3.1.1 specifier: ^3.1.1
version: 3.5.3 version: 3.6.2
workspace: workspace:
specifier: ^0.0.1-preview.1 specifier: ^0.0.1-preview.1
version: 0.0.1-preview.2 version: 0.0.1-preview.2
@ -273,7 +273,7 @@ importers:
version: link:../../services/ui version: link:../../services/ui
axios: axios:
specifier: ^1.8.4 specifier: ^1.8.4
version: 1.8.4 version: 1.8.4(debug@4.4.0)
class-variance-authority: class-variance-authority:
specifier: ^0.7.0 specifier: ^0.7.0
version: 0.7.1 version: 0.7.1
@ -794,8 +794,8 @@ packages:
'@cosmjs/amino@0.32.4': '@cosmjs/amino@0.32.4':
resolution: {integrity: sha512-zKYOt6hPy8obIFtLie/xtygCkH9ZROiQ12UHfKsOkWaZfPQUvVbtgmu6R4Kn1tFLI/SRkw7eqhaogmW/3NYu/Q==} resolution: {integrity: sha512-zKYOt6hPy8obIFtLie/xtygCkH9ZROiQ12UHfKsOkWaZfPQUvVbtgmu6R4Kn1tFLI/SRkw7eqhaogmW/3NYu/Q==}
'@cosmjs/amino@0.33.0': '@cosmjs/amino@0.33.1':
resolution: {integrity: sha512-a4qnWGzuM2IrlkDTFQmU7bDd+wNIzyvfcRIZ43i00ZHvTEtrCcWopT94rIv/Zy6fdgkhQ3HWrsGVlIPDT/ibRw==} resolution: {integrity: sha512-WfWiBf2EbIWpwKG9AOcsIIkR717SY+JdlXM/SL/bI66BdrhniAF+/ZNis9Vo9HF6lP2UU5XrSmFA4snAvEgdrg==}
'@cosmjs/crypto@0.27.1': '@cosmjs/crypto@0.27.1':
resolution: {integrity: sha512-vbcxwSt99tIYJg8Spp00wc3zx72qx+pY3ozGuBN8gAvySnagK9dQ/jHwtWQWdammmdD6oW+75WfIHZ+gNa+Ybg==} resolution: {integrity: sha512-vbcxwSt99tIYJg8Spp00wc3zx72qx+pY3ozGuBN8gAvySnagK9dQ/jHwtWQWdammmdD6oW+75WfIHZ+gNa+Ybg==}
@ -806,8 +806,8 @@ packages:
'@cosmjs/crypto@0.32.4': '@cosmjs/crypto@0.32.4':
resolution: {integrity: sha512-zicjGU051LF1V9v7bp8p7ovq+VyC91xlaHdsFOTo2oVry3KQikp8L/81RkXmUIT8FxMwdx1T7DmFwVQikcSDIw==} resolution: {integrity: sha512-zicjGU051LF1V9v7bp8p7ovq+VyC91xlaHdsFOTo2oVry3KQikp8L/81RkXmUIT8FxMwdx1T7DmFwVQikcSDIw==}
'@cosmjs/crypto@0.33.0': '@cosmjs/crypto@0.33.1':
resolution: {integrity: sha512-kkt06t+cFW2XRGDGUZ0cVf5yoQ2OhZnubwbYbz3QXdyhf1qOXYVPRThfFPsko7dssr+e8Yy4OJKlh5SLA8DXTQ==} resolution: {integrity: sha512-U4kGIj/SNBzlb2FGgA0sMR0MapVgJUg8N+oIAiN5+vl4GZ3aefmoL1RDyTrFS/7HrB+M+MtHsxC0tvEu4ic/zA==}
'@cosmjs/encoding@0.27.1': '@cosmjs/encoding@0.27.1':
resolution: {integrity: sha512-rayLsA0ojHeniaRfWWcqSsrE/T1rl1gl0OXVNtXlPwLJifKBeLEefGbOUiAQaT0wgJ8VNGBazVtAZBpJidfDhw==} resolution: {integrity: sha512-rayLsA0ojHeniaRfWWcqSsrE/T1rl1gl0OXVNtXlPwLJifKBeLEefGbOUiAQaT0wgJ8VNGBazVtAZBpJidfDhw==}
@ -818,14 +818,14 @@ packages:
'@cosmjs/encoding@0.32.4': '@cosmjs/encoding@0.32.4':
resolution: {integrity: sha512-tjvaEy6ZGxJchiizzTn7HVRiyTg1i4CObRRaTRPknm5EalE13SV+TCHq38gIDfyUeden4fCuaBVEdBR5+ti7Hw==} resolution: {integrity: sha512-tjvaEy6ZGxJchiizzTn7HVRiyTg1i4CObRRaTRPknm5EalE13SV+TCHq38gIDfyUeden4fCuaBVEdBR5+ti7Hw==}
'@cosmjs/encoding@0.33.0': '@cosmjs/encoding@0.33.1':
resolution: {integrity: sha512-9z0g9mM7w5BISVVs8BK1Yp7KSQgNLGz2SBoWYOm4wODB/YcoitODgyRqECcuMZBXtd2sCyy2M1VLs9Z69BPZRQ==} resolution: {integrity: sha512-nuNxf29fUcQE14+1p//VVQDwd1iau5lhaW/7uMz7V2AH3GJbFJoJVaKvVyZvdFk+Cnu+s3wCqgq4gJkhRCJfKw==}
'@cosmjs/json-rpc@0.32.4': '@cosmjs/json-rpc@0.32.4':
resolution: {integrity: sha512-/jt4mBl7nYzfJ2J/VJ+r19c92mUKF0Lt0JxM3MXEJl7wlwW5haHAWtzRujHkyYMXOwIR+gBqT2S0vntXVBRyhQ==} resolution: {integrity: sha512-/jt4mBl7nYzfJ2J/VJ+r19c92mUKF0Lt0JxM3MXEJl7wlwW5haHAWtzRujHkyYMXOwIR+gBqT2S0vntXVBRyhQ==}
'@cosmjs/json-rpc@0.33.0': '@cosmjs/json-rpc@0.33.1':
resolution: {integrity: sha512-okXjxnT3zhhuYrA1aIDVD8VHt3syWyrJw3cAY6tMNM53bQcAtLGImueMrEoyv7DtLg5R5Tx5PMrQ7UYnpD8OwQ==} resolution: {integrity: sha512-T6VtWzecpmuTuMRGZWuBYHsMF/aznWCYUt/cGMWNSz7DBPipVd0w774PKpxXzpEbyt5sr61NiuLXc+Az15S/Cw==}
'@cosmjs/launchpad@0.27.1': '@cosmjs/launchpad@0.27.1':
resolution: {integrity: sha512-DcFwGD/z5PK8CzO2sojDxa+Be9EIEtRZb2YawgVnw2Ht/p5FlNv+OVo8qlishpBdalXEN7FvQ1dVeDFEe9TuJw==} resolution: {integrity: sha512-DcFwGD/z5PK8CzO2sojDxa+Be9EIEtRZb2YawgVnw2Ht/p5FlNv+OVo8qlishpBdalXEN7FvQ1dVeDFEe9TuJw==}
@ -839,38 +839,38 @@ packages:
'@cosmjs/math@0.32.4': '@cosmjs/math@0.32.4':
resolution: {integrity: sha512-++dqq2TJkoB8zsPVYCvrt88oJWsy1vMOuSOKcdlnXuOA/ASheTJuYy4+oZlTQ3Fr8eALDLGGPhJI02W2HyAQaw==} resolution: {integrity: sha512-++dqq2TJkoB8zsPVYCvrt88oJWsy1vMOuSOKcdlnXuOA/ASheTJuYy4+oZlTQ3Fr8eALDLGGPhJI02W2HyAQaw==}
'@cosmjs/math@0.33.0': '@cosmjs/math@0.33.1':
resolution: {integrity: sha512-B2uOgM12iuIhJWzGuAxGwO6zO+cI8Q4z7mVu7HgFrGJJTM1HtPTYgb55oMOuUN0OZ352MEEm5uAt8sA9jZQqbA==} resolution: {integrity: sha512-ytGkWdKFCPiiBU5eqjHNd59djPpIsOjbr2CkNjlnI1Zmdj+HDkSoD9MUGpz9/RJvRir5IvsXqdE05x8EtoQkJA==}
'@cosmjs/proto-signing@0.32.4': '@cosmjs/proto-signing@0.32.4':
resolution: {integrity: sha512-QdyQDbezvdRI4xxSlyM1rSVBO2st5sqtbEIl3IX03uJ7YiZIQHyv6vaHVf1V4mapusCqguiHJzm4N4gsFdLBbQ==} resolution: {integrity: sha512-QdyQDbezvdRI4xxSlyM1rSVBO2st5sqtbEIl3IX03uJ7YiZIQHyv6vaHVf1V4mapusCqguiHJzm4N4gsFdLBbQ==}
'@cosmjs/proto-signing@0.33.0': '@cosmjs/proto-signing@0.33.1':
resolution: {integrity: sha512-UHA92d/Siy3wnce/xhU4iagKrs6r8Ruacc0qeHj3mNrtuUH8f70cD7lzzClzI7wvRLcPprOY0YTeEzqGbPeBFw==} resolution: {integrity: sha512-Sv4W+MxX+0LVnd+2rU4Fw1HRsmMwSVSYULj7pRkij3wnPwUlTVoJjmKFgKz13ooIlfzPrz/dnNjGp/xnmXChFQ==}
'@cosmjs/socket@0.32.4': '@cosmjs/socket@0.32.4':
resolution: {integrity: sha512-davcyYziBhkzfXQTu1l5NrpDYv0K9GekZCC9apBRvL1dvMc9F/ygM7iemHjUA+z8tJkxKxrt/YPjJ6XNHzLrkw==} resolution: {integrity: sha512-davcyYziBhkzfXQTu1l5NrpDYv0K9GekZCC9apBRvL1dvMc9F/ygM7iemHjUA+z8tJkxKxrt/YPjJ6XNHzLrkw==}
'@cosmjs/socket@0.33.0': '@cosmjs/socket@0.33.1':
resolution: {integrity: sha512-a1eHsqVFmG6N5LR53tAB1Xo4XfsZaFlrYA34yC0GnX5m/cJVEe1wkZxMsWJIW2nfCgj7nAvFK6Gx4qj+ZLeqdw==} resolution: {integrity: sha512-KzAeorten6Vn20sMiM6NNWfgc7jbyVo4Zmxev1FXa5EaoLCZy48cmT3hJxUJQvJP/lAy8wPGEjZ/u4rmF11x9A==}
'@cosmjs/stargate@0.32.4': '@cosmjs/stargate@0.32.4':
resolution: {integrity: sha512-usj08LxBSsPRq9sbpCeVdyLx2guEcOHfJS9mHGCLCXpdAPEIEQEtWLDpEUc0LEhWOx6+k/ChXTc5NpFkdrtGUQ==} resolution: {integrity: sha512-usj08LxBSsPRq9sbpCeVdyLx2guEcOHfJS9mHGCLCXpdAPEIEQEtWLDpEUc0LEhWOx6+k/ChXTc5NpFkdrtGUQ==}
'@cosmjs/stargate@0.33.0': '@cosmjs/stargate@0.33.1':
resolution: {integrity: sha512-Ti/2RRl+LKTNUrOqj6TpGnTRcbmQ5zD4Ujx/PDNPHEexyuwbz+tMcF8Y1kKPWQ1g4wWxLYO4tKY4Gm0J3c5hWA==} resolution: {integrity: sha512-CnJ1zpSiaZgkvhk+9aTp5IPmgWn2uo+cNEBN8VuD9sD6BA0V4DMjqe251cNFLiMhkGtiE5I/WXFERbLPww3k8g==}
'@cosmjs/stream@0.32.4': '@cosmjs/stream@0.32.4':
resolution: {integrity: sha512-Gih++NYHEiP+oyD4jNEUxU9antoC0pFSg+33Hpp0JlHwH0wXhtD3OOKnzSfDB7OIoEbrzLJUpEjOgpCp5Z+W3A==} resolution: {integrity: sha512-Gih++NYHEiP+oyD4jNEUxU9antoC0pFSg+33Hpp0JlHwH0wXhtD3OOKnzSfDB7OIoEbrzLJUpEjOgpCp5Z+W3A==}
'@cosmjs/stream@0.33.0': '@cosmjs/stream@0.33.1':
resolution: {integrity: sha512-SmsZW9Xzfk2T2MtWzVkit2WUclL7ZQHhiEhJz39EzKQRAdi4xY8nwefZF4VLQVJ0M33QfRCUzFzb+O/gddMQKA==} resolution: {integrity: sha512-bMUvEENjeQPSTx+YRzVsWT1uFIdHRcf4brsc14SOoRQ/j5rOJM/aHfsf/BmdSAnYbdOQ3CMKj/8nGAQ7xUdn7w==}
'@cosmjs/tendermint-rpc@0.32.4': '@cosmjs/tendermint-rpc@0.32.4':
resolution: {integrity: sha512-MWvUUno+4bCb/LmlMIErLypXxy7ckUuzEmpufYYYd9wgbdCXaTaO08SZzyFM5PI8UJ/0S2AmUrgWhldlbxO8mw==} resolution: {integrity: sha512-MWvUUno+4bCb/LmlMIErLypXxy7ckUuzEmpufYYYd9wgbdCXaTaO08SZzyFM5PI8UJ/0S2AmUrgWhldlbxO8mw==}
'@cosmjs/tendermint-rpc@0.33.0': '@cosmjs/tendermint-rpc@0.33.1':
resolution: {integrity: sha512-A5h72fYesFKSjMjB+AMD5thcVVcdfbmWj4atJ1CYmKGyCTCPW8iEIz1ZKR0mUX+gkW6dM1h8flaRj/R14Oc0/A==} resolution: {integrity: sha512-22klDFq2MWnf//C8+rZ5/dYatr6jeGT+BmVbutXYfAK9fmODbtFcumyvB6uWaEORWfNukl8YK1OLuaWezoQvxA==}
'@cosmjs/utils@0.27.1': '@cosmjs/utils@0.27.1':
resolution: {integrity: sha512-VG7QPDiMUzVPxRdJahDV8PXxVdnuAHiIuG56hldV4yPnOz/si/DLNd7VAUUA5923b6jS1Hhev0Hr6AhEkcxBMg==} resolution: {integrity: sha512-VG7QPDiMUzVPxRdJahDV8PXxVdnuAHiIuG56hldV4yPnOz/si/DLNd7VAUUA5923b6jS1Hhev0Hr6AhEkcxBMg==}
@ -881,8 +881,8 @@ packages:
'@cosmjs/utils@0.32.4': '@cosmjs/utils@0.32.4':
resolution: {integrity: sha512-D1Yc+Zy8oL/hkUkFUL/bwxvuDBzRGpc4cF7/SkdhxX4iHpSLgdOuTt1mhCh9+kl6NQREy9t7SYZ6xeW5gFe60w==} resolution: {integrity: sha512-D1Yc+Zy8oL/hkUkFUL/bwxvuDBzRGpc4cF7/SkdhxX4iHpSLgdOuTt1mhCh9+kl6NQREy9t7SYZ6xeW5gFe60w==}
'@cosmjs/utils@0.33.0': '@cosmjs/utils@0.33.1':
resolution: {integrity: sha512-Y6glwHNlNjcOgwPg8YmNr1PSrNm307EhJVytFt8HmA/G7MRcIA+jIzCL0VlOrWGU4TrAOXvshM+oJZbTIldFRA==} resolution: {integrity: sha512-UnLHDY6KMmC+UXf3Ufyh+onE19xzEXjT4VZ504Acmk4PXxqyvG4cCPprlKUFnGUX7f0z8Or9MAOHXBx41uHBcg==}
'@cspotcode/source-map-support@0.8.1': '@cspotcode/source-map-support@0.8.1':
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
@ -1156,8 +1156,8 @@ packages:
peerDependencies: peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
'@graphql-tools/merge@9.0.22': '@graphql-tools/merge@9.1.1':
resolution: {integrity: sha512-bjOs9DlTbo1Yz2UzQcJ78Dn9/pKyY2zNaoqNLfRTTSkO56QFkvqhfjQuqJcqu+V3rtaB2o0VMpWaY6JT8ZTvQA==} resolution: {integrity: sha512-BJ5/7Y7GOhTuvzzO5tSBFL4NGr7PVqTJY3KeIDlVTT8YLcTXtBR+hlrC3uyEym7Ragn+zyWdHeJ9ev+nRX1X2w==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
peerDependencies: peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
@ -1167,8 +1167,8 @@ packages:
peerDependencies: peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
'@graphql-tools/schema@10.0.21': '@graphql-tools/schema@10.0.25':
resolution: {integrity: sha512-AECSlNnD0WNxICwfJs93gYn2oHxPmztn1MYBETIQXrJJcymfD6BoUrDlYPa6F27RzRc+gbPZPHMWL26uujfKBg==} resolution: {integrity: sha512-/PqE8US8kdQ7lB9M5+jlW8AyVjRGCKU7TSktuW3WNKSKmDO0MK1wakvb5gGdyT49MjAIb4a3LWxIpwo5VygZuw==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
peerDependencies: peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
@ -1183,8 +1183,8 @@ packages:
peerDependencies: peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
'@graphql-tools/utils@10.8.4': '@graphql-tools/utils@10.9.1':
resolution: {integrity: sha512-HpHBgcmLIE79jWk1v5Bm0Eb8MaPiwSJT/Iy5xIJ+GMe7yAKpCYrbjf7wb+UMDMkLkfEryvo3syCx8k+TMAZ9bA==} resolution: {integrity: sha512-B1wwkXk9UvU7LCBkPs8513WxOQ2H8Fo5p8HR1+Id9WmYE5+bd51vqN+MbrqvWczHCH2gwkREgHJN88tE0n1FCw==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
peerDependencies: peerDependencies:
graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0
@ -1406,8 +1406,8 @@ packages:
'@noble/curves@1.2.0': '@noble/curves@1.2.0':
resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==}
'@noble/curves@1.8.1': '@noble/curves@1.9.7':
resolution: {integrity: sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==} resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==}
engines: {node: ^14.21.3 || >=16} engines: {node: ^14.21.3 || >=16}
'@noble/hashes@1.3.2': '@noble/hashes@1.3.2':
@ -1418,6 +1418,10 @@ packages:
resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==} resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==}
engines: {node: ^14.21.3 || >=16} engines: {node: ^14.21.3 || >=16}
'@noble/hashes@1.8.0':
resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
engines: {node: ^14.21.3 || >=16}
'@nodelib/fs.scandir@2.1.5': '@nodelib/fs.scandir@2.1.5':
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'} engines: {node: '>= 8'}
@ -2513,8 +2517,8 @@ packages:
'@types/body-parser@1.19.2': '@types/body-parser@1.19.2':
resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==}
'@types/body-parser@1.19.5': '@types/body-parser@1.19.6':
resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==}
'@types/btoa-lite@1.0.2': '@types/btoa-lite@1.0.2':
resolution: {integrity: sha512-ZYbcE2x7yrvNFJiU7xJGrpF/ihpkM7zKgw8bha3LNJSesvTtUNxbpzaT7WXBIryf6jovisrxTBvymxMeLLj1Mg==} resolution: {integrity: sha512-ZYbcE2x7yrvNFJiU7xJGrpF/ihpkM7zKgw8bha3LNJSesvTtUNxbpzaT7WXBIryf6jovisrxTBvymxMeLLj1Mg==}
@ -2528,8 +2532,8 @@ packages:
'@types/cors@2.8.12': '@types/cors@2.8.12':
resolution: {integrity: sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==} resolution: {integrity: sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==}
'@types/cors@2.8.17': '@types/cors@2.8.19':
resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==}
'@types/d3-array@3.2.1': '@types/d3-array@3.2.1':
resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==}
@ -2570,14 +2574,14 @@ packages:
'@types/express-serve-static-core@4.19.6': '@types/express-serve-static-core@4.19.6':
resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==}
'@types/express-session@1.18.1': '@types/express-session@1.18.2':
resolution: {integrity: sha512-S6TkD/lljxDlQ2u/4A70luD8/ZxZcrU5pQwI1rVXCiaVIywoFgbA+PIUNDjPhQpPdK0dGleLtYc/y7XWBfclBg==} resolution: {integrity: sha512-k+I0BxwVXsnEU2hV77cCobC08kIsn4y44C3gC0b46uxZVMaXA04lSPgRLR/bSL2w0t0ShJiG8o4jPzRG/nscFg==}
'@types/express@4.17.14': '@types/express@4.17.14':
resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==} resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==}
'@types/express@4.17.21': '@types/express@4.17.23':
resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} resolution: {integrity: sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==}
'@types/fs-extra@11.0.4': '@types/fs-extra@11.0.4':
resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==}
@ -2588,8 +2592,8 @@ packages:
'@types/google-protobuf@3.15.12': '@types/google-protobuf@3.15.12':
resolution: {integrity: sha512-40um9QqwHjRS92qnOaDpL7RmDK15NuZYo9HihiJRbYkMQZlWnuH8AdvbMy8/o6lgLmKbDUKa+OALCltHdbOTpQ==} resolution: {integrity: sha512-40um9QqwHjRS92qnOaDpL7RmDK15NuZYo9HihiJRbYkMQZlWnuH8AdvbMy8/o6lgLmKbDUKa+OALCltHdbOTpQ==}
'@types/http-errors@2.0.4': '@types/http-errors@2.0.5':
resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==}
'@types/inquirer@6.5.0': '@types/inquirer@6.5.0':
resolution: {integrity: sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==} resolution: {integrity: sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==}
@ -2621,9 +2625,6 @@ packages:
'@types/node@10.12.18': '@types/node@10.12.18':
resolution: {integrity: sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==} resolution: {integrity: sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==}
'@types/node@10.17.60':
resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==}
'@types/node@17.0.45': '@types/node@17.0.45':
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
@ -2642,8 +2643,8 @@ packages:
'@types/prop-types@15.7.14': '@types/prop-types@15.7.14':
resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==}
'@types/qs@6.9.18': '@types/qs@6.14.0':
resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==} resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==}
'@types/range-parser@1.2.7': '@types/range-parser@1.2.7':
resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
@ -2657,14 +2658,14 @@ packages:
'@types/secp256k1@4.0.6': '@types/secp256k1@4.0.6':
resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==} resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==}
'@types/semver@7.5.8': '@types/semver@7.7.0':
resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==}
'@types/send@0.17.4': '@types/send@0.17.5':
resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} resolution: {integrity: sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==}
'@types/serve-static@1.15.7': '@types/serve-static@1.15.8':
resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} resolution: {integrity: sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==}
'@types/through@0.0.33': '@types/through@0.0.33':
resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==}
@ -2672,8 +2673,8 @@ packages:
'@types/tinycolor2@1.4.6': '@types/tinycolor2@1.4.6':
resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
'@whatwg-node/promise-helpers@1.2.4': '@whatwg-node/promise-helpers@1.3.2':
resolution: {integrity: sha512-daEUfaHbaMuAcor+FPAVK+pOCSzsAYhK6LN1y81EcakdqQEPQvjm74PTmfwfv8POg8pw4RyCv9LXB1e+mQDwqg==} resolution: {integrity: sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==}
engines: {node: '>=16.0.0'} engines: {node: '>=16.0.0'}
'@wolfy1339/lru-cache@11.0.2-patch.1': '@wolfy1339/lru-cache@11.0.2-patch.1':
@ -2861,9 +2862,6 @@ packages:
axios@0.26.1: axios@0.26.1:
resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==} resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==}
axios@1.8.2:
resolution: {integrity: sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==}
axios@1.8.4: axios@1.8.4:
resolution: {integrity: sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==} resolution: {integrity: sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==}
@ -3157,8 +3155,8 @@ packages:
resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
engines: {node: '>= 0.6'} engines: {node: '>= 0.6'}
cookie-session@2.1.0: cookie-session@2.1.1:
resolution: {integrity: sha512-u73BDmR8QLGcs+Lprs0cfbcAPKl2HnPcjpwRXT41sEV4DRJ2+W0vJEEZkG31ofkx+HZflA70siRIjiTdIodmOQ==} resolution: {integrity: sha512-ji3kym/XZaFVew1+tIZk5ZLp9Z/fLv9rK1aZmpug0FsgE7Cu3ZDrUdRo7FT9vFjMYfNimrrUHJzywDwT7XEFlg==}
engines: {node: '>= 0.10'} engines: {node: '>= 0.10'}
cookie-signature@1.0.6: cookie-signature@1.0.6:
@ -3454,8 +3452,8 @@ packages:
resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
end-of-stream@1.4.4: end-of-stream@1.4.5:
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==}
enhanced-resolve@5.18.1: enhanced-resolve@5.18.1:
resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==}
@ -3555,8 +3553,8 @@ packages:
peerDependencies: peerDependencies:
express: ^4.16.2 express: ^4.16.2
express-session@1.18.1: express-session@1.18.2:
resolution: {integrity: sha512-a5mtTqEaZvBCL9A9aqkrtfz+3SMDhOVUnjafjo+s7A9Txkq+SVX2DLvSp1Zrv4uCXa3lMSK3viWnh9Gg07PBUA==} resolution: {integrity: sha512-SZjssGQC7TzTs9rpPDuUrR23GNZ9+2+IkA/+IJWmvQilTr5OSliEHGF+D9scbIpdC6yGtTI0/VhaHoVes2AN/A==}
engines: {node: '>= 0.8.0'} engines: {node: '>= 0.8.0'}
express@4.21.2: express@4.21.2:
@ -3645,8 +3643,8 @@ packages:
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
engines: {node: '>=12'} engines: {node: '>=12'}
fs-extra@11.3.0: fs-extra@11.3.1:
resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} resolution: {integrity: sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==}
engines: {node: '>=14.14'} engines: {node: '>=14.14'}
fs.realpath@1.0.0: fs.realpath@1.0.0:
@ -4226,8 +4224,8 @@ packages:
peerDependencies: peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
luxon@3.5.0: luxon@3.7.1:
resolution: {integrity: sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==} resolution: {integrity: sha512-RkRWjA926cTvz5rAb1BqyWkKbbjzCGchDUIKMCUvNi17j6f6j8uHGDV82Aqcqtzd+icoYpELmG3ksgGiFNNcNg==}
engines: {node: '>=12'} engines: {node: '>=12'}
make-error@1.3.6: make-error@1.3.6:
@ -4337,8 +4335,8 @@ packages:
nan@2.22.2: nan@2.22.2:
resolution: {integrity: sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==} resolution: {integrity: sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==}
nanoid-dictionary@5.0.0-beta.1: nanoid-dictionary@5.0.0:
resolution: {integrity: sha512-xBkL9zzkNjzJ/UnmWyiOUDVX/COoi05eS0oU28RYKFFQhdnzO5dTOPbVZ/fCFgIOGr1zNinDHJ68mm/KQfcgcw==} resolution: {integrity: sha512-/iCyQHwt36XkaIvSE9fcC8p6DiMPCZMTSMj9UT56Cv6T7f5CuxvOMhpNncaNieQ4z4d32p7ruEtAfRsb7Ya8Gw==}
nanoid@3.3.8: nanoid@3.3.8:
resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
@ -4392,8 +4390,8 @@ packages:
no-case@3.0.4: no-case@3.0.4:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
node-abi@3.74.0: node-abi@3.75.0:
resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==} resolution: {integrity: sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==}
engines: {node: '>=10'} engines: {node: '>=10'}
node-abort-controller@3.1.1: node-abort-controller@3.1.1:
@ -4469,8 +4467,8 @@ packages:
resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
on-headers@1.0.2: on-headers@1.1.0:
resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==}
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
once@1.4.0: once@1.4.0:
@ -4480,8 +4478,8 @@ packages:
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
engines: {node: '>=6'} engines: {node: '>=6'}
openpgp@6.1.0: openpgp@6.2.0:
resolution: {integrity: sha512-fRTeitP+hoGJD3kbdUlAI++wE6MvfvXw1rBqHwmBMxIpLjowatJ2zb5ThkORpIkSz5F12wO+xCYRSTbT7M4qKA==} resolution: {integrity: sha512-zKbgazxMeGrTqUEWicKufbdcjv2E0om3YVxw+I3hRykp8ODp+yQOJIDqIr1UXJjP8vR2fky3bNQwYoQXyFkYMA==}
engines: {node: '>= 18.0.0'} engines: {node: '>= 18.0.0'}
optimism@0.18.1: optimism@0.18.1:
@ -4643,8 +4641,8 @@ packages:
engines: {node: '>=10'} engines: {node: '>=10'}
hasBin: true hasBin: true
prettier@3.5.3: prettier@3.6.2:
resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==}
engines: {node: '>=14'} engines: {node: '>=14'}
hasBin: true hasBin: true
@ -4673,8 +4671,8 @@ packages:
proxy-from-env@1.1.0: proxy-from-env@1.1.0:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
pump@3.0.2: pump@3.0.3:
resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==}
punycode@2.3.1: punycode@2.3.1:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
@ -5074,8 +5072,8 @@ packages:
sprintf-js@1.1.3: sprintf-js@1.1.3:
resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
sql-highlight@6.0.0: sql-highlight@6.1.0:
resolution: {integrity: sha512-+fLpbAbWkQ+d0JEchJT/NrRRXbYRNbG15gFpANx73EwxQB1PRjj+k/OI0GTU0J63g8ikGkJECQp9z8XEJZvPRw==} resolution: {integrity: sha512-ed7OK4e9ywpE7pgRMkMQmZDPKSVdm0oX5IEtZiKnFucSF0zu6c80GZBe38UqHuVhTWJ9xsKgSMjCG2bml86KvA==}
engines: {node: '>=14'} engines: {node: '>=14'}
statuses@2.0.1: statuses@2.0.1:
@ -5192,8 +5190,8 @@ packages:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
engines: {node: '>=6'} engines: {node: '>=6'}
tar-fs@2.1.2: tar-fs@2.1.3:
resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} resolution: {integrity: sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==}
tar-stream@2.2.0: tar-stream@2.2.0:
resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
@ -5759,7 +5757,7 @@ snapshots:
'@protobufjs/pool': 1.1.0 '@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0 '@protobufjs/utf8': 1.1.0
'@types/long': 4.0.2 '@types/long': 4.0.2
'@types/node': 10.17.60 '@types/node': 10.12.18
long: 4.0.0 long: 4.0.0
'@apollo/protobufjs@1.2.7': '@apollo/protobufjs@1.2.7':
@ -6002,12 +6000,12 @@ snapshots:
'@cosmjs/math': 0.32.4 '@cosmjs/math': 0.32.4
'@cosmjs/utils': 0.32.4 '@cosmjs/utils': 0.32.4
'@cosmjs/amino@0.33.0': '@cosmjs/amino@0.33.1':
dependencies: dependencies:
'@cosmjs/crypto': 0.33.0 '@cosmjs/crypto': 0.33.1
'@cosmjs/encoding': 0.33.0 '@cosmjs/encoding': 0.33.1
'@cosmjs/math': 0.33.0 '@cosmjs/math': 0.33.1
'@cosmjs/utils': 0.33.0 '@cosmjs/utils': 0.33.1
'@cosmjs/crypto@0.27.1': '@cosmjs/crypto@0.27.1':
dependencies: dependencies:
@ -6042,11 +6040,11 @@ snapshots:
elliptic: 6.6.1 elliptic: 6.6.1
libsodium-wrappers-sumo: 0.7.15 libsodium-wrappers-sumo: 0.7.15
'@cosmjs/crypto@0.33.0': '@cosmjs/crypto@0.33.1':
dependencies: dependencies:
'@cosmjs/encoding': 0.33.0 '@cosmjs/encoding': 0.33.1
'@cosmjs/math': 0.33.0 '@cosmjs/math': 0.33.1
'@cosmjs/utils': 0.33.0 '@cosmjs/utils': 0.33.1
'@noble/hashes': 1.7.1 '@noble/hashes': 1.7.1
bn.js: 5.2.1 bn.js: 5.2.1
elliptic: 6.6.1 elliptic: 6.6.1
@ -6070,7 +6068,7 @@ snapshots:
bech32: 1.1.4 bech32: 1.1.4
readonly-date: 1.0.0 readonly-date: 1.0.0
'@cosmjs/encoding@0.33.0': '@cosmjs/encoding@0.33.1':
dependencies: dependencies:
base64-js: 1.5.1 base64-js: 1.5.1
bech32: 1.1.4 bech32: 1.1.4
@ -6081,9 +6079,9 @@ snapshots:
'@cosmjs/stream': 0.32.4 '@cosmjs/stream': 0.32.4
xstream: 11.14.0 xstream: 11.14.0
'@cosmjs/json-rpc@0.33.0': '@cosmjs/json-rpc@0.33.1':
dependencies: dependencies:
'@cosmjs/stream': 0.33.0 '@cosmjs/stream': 0.33.1
xstream: 11.14.0 xstream: 11.14.0
'@cosmjs/launchpad@0.27.1(debug@4.4.0)': '@cosmjs/launchpad@0.27.1(debug@4.4.0)':
@ -6110,7 +6108,7 @@ snapshots:
dependencies: dependencies:
bn.js: 5.2.1 bn.js: 5.2.1
'@cosmjs/math@0.33.0': '@cosmjs/math@0.33.1':
dependencies: dependencies:
bn.js: 5.2.1 bn.js: 5.2.1
@ -6123,13 +6121,13 @@ snapshots:
'@cosmjs/utils': 0.32.4 '@cosmjs/utils': 0.32.4
cosmjs-types: 0.9.0 cosmjs-types: 0.9.0
'@cosmjs/proto-signing@0.33.0': '@cosmjs/proto-signing@0.33.1':
dependencies: dependencies:
'@cosmjs/amino': 0.33.0 '@cosmjs/amino': 0.33.1
'@cosmjs/crypto': 0.33.0 '@cosmjs/crypto': 0.33.1
'@cosmjs/encoding': 0.33.0 '@cosmjs/encoding': 0.33.1
'@cosmjs/math': 0.33.0 '@cosmjs/math': 0.33.1
'@cosmjs/utils': 0.33.0 '@cosmjs/utils': 0.33.1
cosmjs-types: 0.9.0 cosmjs-types: 0.9.0
'@cosmjs/socket@0.32.4': '@cosmjs/socket@0.32.4':
@ -6142,9 +6140,9 @@ snapshots:
- bufferutil - bufferutil
- utf-8-validate - utf-8-validate
'@cosmjs/socket@0.33.0': '@cosmjs/socket@0.33.1':
dependencies: dependencies:
'@cosmjs/stream': 0.33.0 '@cosmjs/stream': 0.33.1
isomorphic-ws: 4.0.1(ws@7.5.10) isomorphic-ws: 4.0.1(ws@7.5.10)
ws: 7.5.10 ws: 7.5.10
xstream: 11.14.0 xstream: 11.14.0
@ -6169,15 +6167,15 @@ snapshots:
- debug - debug
- utf-8-validate - utf-8-validate
'@cosmjs/stargate@0.33.0(debug@4.4.0)': '@cosmjs/stargate@0.33.1(debug@4.4.0)':
dependencies: dependencies:
'@cosmjs/amino': 0.33.0 '@cosmjs/amino': 0.33.1
'@cosmjs/encoding': 0.33.0 '@cosmjs/encoding': 0.33.1
'@cosmjs/math': 0.33.0 '@cosmjs/math': 0.33.1
'@cosmjs/proto-signing': 0.33.0 '@cosmjs/proto-signing': 0.33.1
'@cosmjs/stream': 0.33.0 '@cosmjs/stream': 0.33.1
'@cosmjs/tendermint-rpc': 0.33.0(debug@4.4.0) '@cosmjs/tendermint-rpc': 0.33.1(debug@4.4.0)
'@cosmjs/utils': 0.33.0 '@cosmjs/utils': 0.33.1
cosmjs-types: 0.9.0 cosmjs-types: 0.9.0
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
@ -6188,7 +6186,7 @@ snapshots:
dependencies: dependencies:
xstream: 11.14.0 xstream: 11.14.0
'@cosmjs/stream@0.33.0': '@cosmjs/stream@0.33.1':
dependencies: dependencies:
xstream: 11.14.0 xstream: 11.14.0
@ -6201,7 +6199,7 @@ snapshots:
'@cosmjs/socket': 0.32.4 '@cosmjs/socket': 0.32.4
'@cosmjs/stream': 0.32.4 '@cosmjs/stream': 0.32.4
'@cosmjs/utils': 0.32.4 '@cosmjs/utils': 0.32.4
axios: 1.8.2(debug@4.4.0) axios: 1.8.4(debug@4.4.0)
readonly-date: 1.0.0 readonly-date: 1.0.0
xstream: 11.14.0 xstream: 11.14.0
transitivePeerDependencies: transitivePeerDependencies:
@ -6209,16 +6207,16 @@ snapshots:
- debug - debug
- utf-8-validate - utf-8-validate
'@cosmjs/tendermint-rpc@0.33.0(debug@4.4.0)': '@cosmjs/tendermint-rpc@0.33.1(debug@4.4.0)':
dependencies: dependencies:
'@cosmjs/crypto': 0.33.0 '@cosmjs/crypto': 0.33.1
'@cosmjs/encoding': 0.33.0 '@cosmjs/encoding': 0.33.1
'@cosmjs/json-rpc': 0.33.0 '@cosmjs/json-rpc': 0.33.1
'@cosmjs/math': 0.33.0 '@cosmjs/math': 0.33.1
'@cosmjs/socket': 0.33.0 '@cosmjs/socket': 0.33.1
'@cosmjs/stream': 0.33.0 '@cosmjs/stream': 0.33.1
'@cosmjs/utils': 0.33.0 '@cosmjs/utils': 0.33.1
axios: 1.8.2(debug@4.4.0) axios: 1.8.4(debug@4.4.0)
readonly-date: 1.0.0 readonly-date: 1.0.0
xstream: 11.14.0 xstream: 11.14.0
transitivePeerDependencies: transitivePeerDependencies:
@ -6232,7 +6230,7 @@ snapshots:
'@cosmjs/utils@0.32.4': {} '@cosmjs/utils@0.32.4': {}
'@cosmjs/utils@0.33.0': {} '@cosmjs/utils@0.33.1': {}
'@cspotcode/source-map-support@0.8.1': '@cspotcode/source-map-support@0.8.1':
dependencies: dependencies:
@ -6602,9 +6600,9 @@ snapshots:
graphql: 16.10.0 graphql: 16.10.0
tslib: 2.8.1 tslib: 2.8.1
'@graphql-tools/merge@9.0.22(graphql@16.10.0)': '@graphql-tools/merge@9.1.1(graphql@16.10.0)':
dependencies: dependencies:
'@graphql-tools/utils': 10.8.4(graphql@16.10.0) '@graphql-tools/utils': 10.9.1(graphql@16.10.0)
graphql: 16.10.0 graphql: 16.10.0
tslib: 2.8.1 tslib: 2.8.1
@ -6616,10 +6614,10 @@ snapshots:
graphql: 16.10.0 graphql: 16.10.0
tslib: 2.8.1 tslib: 2.8.1
'@graphql-tools/schema@10.0.21(graphql@16.10.0)': '@graphql-tools/schema@10.0.25(graphql@16.10.0)':
dependencies: dependencies:
'@graphql-tools/merge': 9.0.22(graphql@16.10.0) '@graphql-tools/merge': 9.1.1(graphql@16.10.0)
'@graphql-tools/utils': 10.8.4(graphql@16.10.0) '@graphql-tools/utils': 10.9.1(graphql@16.10.0)
graphql: 16.10.0 graphql: 16.10.0
tslib: 2.8.1 tslib: 2.8.1
@ -6639,10 +6637,10 @@ snapshots:
tslib: 2.8.1 tslib: 2.8.1
value-or-promise: 1.0.12 value-or-promise: 1.0.12
'@graphql-tools/utils@10.8.4(graphql@16.10.0)': '@graphql-tools/utils@10.9.1(graphql@16.10.0)':
dependencies: dependencies:
'@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0)
'@whatwg-node/promise-helpers': 1.2.4 '@whatwg-node/promise-helpers': 1.3.2
cross-inspect: 1.0.1 cross-inspect: 1.0.1
dset: 3.1.4 dset: 3.1.4
graphql: 16.10.0 graphql: 16.10.0
@ -6824,14 +6822,16 @@ snapshots:
dependencies: dependencies:
'@noble/hashes': 1.3.2 '@noble/hashes': 1.3.2
'@noble/curves@1.8.1': '@noble/curves@1.9.7':
dependencies: dependencies:
'@noble/hashes': 1.7.1 '@noble/hashes': 1.8.0
'@noble/hashes@1.3.2': {} '@noble/hashes@1.3.2': {}
'@noble/hashes@1.7.1': {} '@noble/hashes@1.7.1': {}
'@noble/hashes@1.8.0': {}
'@nodelib/fs.scandir@2.1.5': '@nodelib/fs.scandir@2.1.5':
dependencies: dependencies:
'@nodelib/fs.stat': 2.0.5 '@nodelib/fs.stat': 2.0.5
@ -7982,7 +7982,7 @@ snapshots:
'@turnkey/api-key-stamper@0.4.0': '@turnkey/api-key-stamper@0.4.0':
dependencies: dependencies:
'@noble/curves': 1.8.1 '@noble/curves': 1.9.7
'@turnkey/encoding': 0.1.0 '@turnkey/encoding': 0.1.0
sha256-uint8array: 0.10.7 sha256-uint8array: 0.10.7
@ -8026,7 +8026,7 @@ snapshots:
'@types/connect': 3.4.38 '@types/connect': 3.4.38
'@types/node': 20.17.23 '@types/node': 20.17.23
'@types/body-parser@1.19.5': '@types/body-parser@1.19.6':
dependencies: dependencies:
'@types/connect': 3.4.38 '@types/connect': 3.4.38
'@types/node': 20.17.23 '@types/node': 20.17.23
@ -8039,12 +8039,12 @@ snapshots:
'@types/cookie-session@2.0.49': '@types/cookie-session@2.0.49':
dependencies: dependencies:
'@types/express': 4.17.21 '@types/express': 4.17.23
'@types/keygrip': 1.0.6 '@types/keygrip': 1.0.6
'@types/cors@2.8.12': {} '@types/cors@2.8.12': {}
'@types/cors@2.8.17': '@types/cors@2.8.19':
dependencies: dependencies:
'@types/node': 20.17.23 '@types/node': 20.17.23
@ -8081,33 +8081,33 @@ snapshots:
'@types/express-serve-static-core@4.17.31': '@types/express-serve-static-core@4.17.31':
dependencies: dependencies:
'@types/node': 20.17.23 '@types/node': 20.17.23
'@types/qs': 6.9.18 '@types/qs': 6.14.0
'@types/range-parser': 1.2.7 '@types/range-parser': 1.2.7
'@types/express-serve-static-core@4.19.6': '@types/express-serve-static-core@4.19.6':
dependencies: dependencies:
'@types/node': 20.17.23 '@types/node': 20.17.23
'@types/qs': 6.9.18 '@types/qs': 6.14.0
'@types/range-parser': 1.2.7 '@types/range-parser': 1.2.7
'@types/send': 0.17.4 '@types/send': 0.17.5
'@types/express-session@1.18.1': '@types/express-session@1.18.2':
dependencies: dependencies:
'@types/express': 4.17.21 '@types/express': 4.17.23
'@types/express@4.17.14': '@types/express@4.17.14':
dependencies: dependencies:
'@types/body-parser': 1.19.2 '@types/body-parser': 1.19.2
'@types/express-serve-static-core': 4.17.31 '@types/express-serve-static-core': 4.17.31
'@types/qs': 6.9.18 '@types/qs': 6.14.0
'@types/serve-static': 1.15.7 '@types/serve-static': 1.15.8
'@types/express@4.17.21': '@types/express@4.17.23':
dependencies: dependencies:
'@types/body-parser': 1.19.5 '@types/body-parser': 1.19.6
'@types/express-serve-static-core': 4.19.6 '@types/express-serve-static-core': 4.19.6
'@types/qs': 6.9.18 '@types/qs': 6.14.0
'@types/serve-static': 1.15.7 '@types/serve-static': 1.15.8
'@types/fs-extra@11.0.4': '@types/fs-extra@11.0.4':
dependencies: dependencies:
@ -8121,7 +8121,7 @@ snapshots:
'@types/google-protobuf@3.15.12': {} '@types/google-protobuf@3.15.12': {}
'@types/http-errors@2.0.4': {} '@types/http-errors@2.0.5': {}
'@types/inquirer@6.5.0': '@types/inquirer@6.5.0':
dependencies: dependencies:
@ -8151,8 +8151,6 @@ snapshots:
'@types/node@10.12.18': {} '@types/node@10.12.18': {}
'@types/node@10.17.60': {}
'@types/node@17.0.45': {} '@types/node@17.0.45': {}
'@types/node@20.17.23': '@types/node@20.17.23':
@ -8173,7 +8171,7 @@ snapshots:
'@types/prop-types@15.7.14': {} '@types/prop-types@15.7.14': {}
'@types/qs@6.9.18': {} '@types/qs@6.14.0': {}
'@types/range-parser@1.2.7': {} '@types/range-parser@1.2.7': {}
@ -8190,18 +8188,18 @@ snapshots:
dependencies: dependencies:
'@types/node': 20.17.23 '@types/node': 20.17.23
'@types/semver@7.5.8': {} '@types/semver@7.7.0': {}
'@types/send@0.17.4': '@types/send@0.17.5':
dependencies: dependencies:
'@types/mime': 1.3.5 '@types/mime': 1.3.5
'@types/node': 20.17.23 '@types/node': 20.17.23
'@types/serve-static@1.15.7': '@types/serve-static@1.15.8':
dependencies: dependencies:
'@types/http-errors': 2.0.4 '@types/http-errors': 2.0.5
'@types/node': 20.17.23 '@types/node': 20.17.23
'@types/send': 0.17.4 '@types/send': 0.17.5
'@types/through@0.0.33': '@types/through@0.0.33':
dependencies: dependencies:
@ -8209,7 +8207,7 @@ snapshots:
'@types/tinycolor2@1.4.6': {} '@types/tinycolor2@1.4.6': {}
'@whatwg-node/promise-helpers@1.2.4': '@whatwg-node/promise-helpers@1.3.2':
dependencies: dependencies:
tslib: 2.8.1 tslib: 2.8.1
@ -8420,15 +8418,7 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- debug - debug
axios@1.8.2(debug@4.4.0): axios@1.8.4(debug@4.4.0):
dependencies:
follow-redirects: 1.15.9(debug@4.4.0)
form-data: 4.0.2
proxy-from-env: 1.1.0
transitivePeerDependencies:
- debug
axios@1.8.4:
dependencies: dependencies:
follow-redirects: 1.15.9(debug@4.4.0) follow-redirects: 1.15.9(debug@4.4.0)
form-data: 4.0.2 form-data: 4.0.2
@ -8765,11 +8755,11 @@ snapshots:
content-type@1.0.5: {} content-type@1.0.5: {}
cookie-session@2.1.0: cookie-session@2.1.1:
dependencies: dependencies:
cookies: 0.9.1 cookies: 0.9.1
debug: 3.2.7 debug: 3.2.7
on-headers: 1.0.2 on-headers: 1.1.0
safe-buffer: 5.2.1 safe-buffer: 5.2.1
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
@ -9057,7 +9047,7 @@ snapshots:
encodeurl@2.0.0: {} encodeurl@2.0.0: {}
end-of-stream@1.4.4: end-of-stream@1.4.5:
dependencies: dependencies:
once: 1.4.0 once: 1.4.0
@ -9243,13 +9233,13 @@ snapshots:
dependencies: dependencies:
express: 4.21.2 express: 4.21.2
express-session@1.18.1: express-session@1.18.2:
dependencies: dependencies:
cookie: 0.7.2 cookie: 0.7.2
cookie-signature: 1.0.7 cookie-signature: 1.0.7
debug: 2.6.9 debug: 2.6.9
depd: 2.0.0 depd: 2.0.0
on-headers: 1.0.2 on-headers: 1.1.0
parseurl: 1.3.3 parseurl: 1.3.3
safe-buffer: 5.2.1 safe-buffer: 5.2.1
uid-safe: 2.1.5 uid-safe: 2.1.5
@ -9374,7 +9364,7 @@ snapshots:
jsonfile: 6.1.0 jsonfile: 6.1.0
universalify: 2.0.1 universalify: 2.0.1
fs-extra@11.3.0: fs-extra@11.3.1:
dependencies: dependencies:
graceful-fs: 4.2.11 graceful-fs: 4.2.11
jsonfile: 6.1.0 jsonfile: 6.1.0
@ -9934,7 +9924,7 @@ snapshots:
dependencies: dependencies:
react: 19.0.0 react: 19.0.0
luxon@3.5.0: {} luxon@3.7.1: {}
make-error@1.3.6: {} make-error@1.3.6: {}
@ -10015,7 +10005,7 @@ snapshots:
nan@2.22.2: {} nan@2.22.2: {}
nanoid-dictionary@5.0.0-beta.1: {} nanoid-dictionary@5.0.0: {}
nanoid@3.3.8: {} nanoid@3.3.8: {}
@ -10066,7 +10056,7 @@ snapshots:
lower-case: 2.0.2 lower-case: 2.0.2
tslib: 2.8.1 tslib: 2.8.1
node-abi@3.74.0: node-abi@3.75.0:
dependencies: dependencies:
semver: 7.7.1 semver: 7.7.1
@ -10143,7 +10133,7 @@ snapshots:
dependencies: dependencies:
ee-first: 1.1.1 ee-first: 1.1.1
on-headers@1.0.2: {} on-headers@1.1.0: {}
once@1.4.0: once@1.4.0:
dependencies: dependencies:
@ -10153,7 +10143,7 @@ snapshots:
dependencies: dependencies:
mimic-fn: 2.1.0 mimic-fn: 2.1.0
openpgp@6.1.0: {} openpgp@6.2.0: {}
optimism@0.18.1: optimism@0.18.1:
dependencies: dependencies:
@ -10329,14 +10319,14 @@ snapshots:
minimist: 1.2.8 minimist: 1.2.8
mkdirp-classic: 0.5.3 mkdirp-classic: 0.5.3
napi-build-utils: 2.0.0 napi-build-utils: 2.0.0
node-abi: 3.74.0 node-abi: 3.75.0
pump: 3.0.2 pump: 3.0.3
rc: 1.2.8 rc: 1.2.8
simple-get: 4.0.1 simple-get: 4.0.1
tar-fs: 2.1.2 tar-fs: 2.1.3
tunnel-agent: 0.6.0 tunnel-agent: 0.6.0
prettier@3.5.3: {} prettier@3.6.2: {}
process-nextick-args@2.0.1: {} process-nextick-args@2.0.1: {}
@ -10386,9 +10376,9 @@ snapshots:
proxy-from-env@1.1.0: {} proxy-from-env@1.1.0: {}
pump@3.0.2: pump@3.0.3:
dependencies: dependencies:
end-of-stream: 1.4.4 end-of-stream: 1.4.5
once: 1.4.0 once: 1.4.0
punycode@2.3.1: {} punycode@2.3.1: {}
@ -10852,7 +10842,7 @@ snapshots:
sprintf-js@1.1.3: {} sprintf-js@1.1.3: {}
sql-highlight@6.0.0: {} sql-highlight@6.1.0: {}
statuses@2.0.1: {} statuses@2.0.1: {}
@ -11002,17 +10992,17 @@ snapshots:
tapable@2.2.1: {} tapable@2.2.1: {}
tar-fs@2.1.2: tar-fs@2.1.3:
dependencies: dependencies:
chownr: 1.1.4 chownr: 1.1.4
mkdirp-classic: 0.5.3 mkdirp-classic: 0.5.3
pump: 3.0.2 pump: 3.0.3
tar-stream: 2.2.0 tar-stream: 2.2.0
tar-stream@2.2.0: tar-stream@2.2.0:
dependencies: dependencies:
bl: 4.1.0 bl: 4.1.0
end-of-stream: 1.4.4 end-of-stream: 1.4.5
fs-constants: 1.0.0 fs-constants: 1.0.0
inherits: 2.0.4 inherits: 2.0.4
readable-stream: 3.6.2 readable-stream: 3.6.2
@ -11218,7 +11208,7 @@ snapshots:
glob: 10.4.5 glob: 10.4.5
reflect-metadata: 0.2.2 reflect-metadata: 0.2.2
sha.js: 2.4.11 sha.js: 2.4.11
sql-highlight: 6.0.0 sql-highlight: 6.1.0
tslib: 2.8.1 tslib: 2.8.1
uuid: 11.1.0 uuid: 11.1.0
yargs: 17.7.2 yargs: 17.7.2

View File

@ -41,7 +41,7 @@ Create a `.env.local` file in the `apps/deploy-fe` directory:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key
CLERK_SECRET_KEY=your_clerk_secret CLERK_SECRET_KEY=your_clerk_secret
NEXT_PUBLIC_WALLET_IFRAME_URL=http://localhost:4000 NEXT_PUBLIC_WALLET_IFRAME_URL=http://localhost:4000
NEXT_PUBLIC_LACONICD_CHAIN_ID=laconic-testnet-2 NEXT_PUBLIC_LACONICD_CHAIN_ID=laconic-mainnet
NEXT_PUBLIC_API_URL=http://localhost:8000 NEXT_PUBLIC_API_URL=http://localhost:8000
NEXT_PUBLIC_GITHUB_FALLBACK_TOKEN=your_github_token NEXT_PUBLIC_GITHUB_FALLBACK_TOKEN=your_github_token
``` ```
@ -92,4 +92,26 @@ The frontend is built with:
Make sure you have: Make sure you have:
1. Connected your GitHub account in Clerk 1. Connected your GitHub account in Clerk
2. Provided the necessary permissions for repository access 2. Provided the necessary permissions for repository access
3. Set a fallback GitHub token in `.env.local` if needed for development 3. Set a fallback GitHub token in `.env.local` if needed for development
## Test deployment
- Install stack-orchestrator from <https://git.vdb.to/cerc-io/stack-orchestrator#install>
- Build the container for app
```bash
laconic-so build-webapp --source-repo <path-to-app-repo>/laconic-deployer-frontend --base-container cerc/nextjs-base
```
- Create an env file as described in [previous steps](#3-configure-environment-variables)
- Run the webapp container locally
```bash
docker run -p 3000:80 --env-file <path-to-env-file> cerc/laconic-deployer-frontend:local
```
- Scripts used for deployment
- App container build : [build-webapp.sh](./build-webapp.sh)
- Run app container : [run-webapp.sh](./run-webapp.sh)

17
run-webapp.sh Executable file
View File

@ -0,0 +1,17 @@
#!/usr/bin/env bash
if [ -n "$CERC_SCRIPT_DEBUG" ]; then
set -x
fi
SCRIPT_DIR=/scripts/
PKG_DIR="./apps/deploy-fe"
cd $PKG_DIR
"$SCRIPT_DIR/apply-runtime-env.sh" "`pwd`" .next .next-r
mv .next .next.old
mv .next-r/.next .
pnpm build:generate || exit 1
pnpm start -p ${CERC_LISTEN_PORT:-80}

View File

@ -8,6 +8,11 @@
"outputs": [".next/**", "!.next/cache/**"], "outputs": [".next/**", "!.next/cache/**"],
"env": ["NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY", "CLERK_SECRET_KEY"] "env": ["NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY", "CLERK_SECRET_KEY"]
}, },
"build:compile": {
"dependsOn": ["^build"],
"inputs": ["$TURBO_DEFAULT$"],
"outputs": ["dist/**"]
},
"start": { "start": {
"dependsOn": ["^build"], "dependsOn": ["^build"],
"cache": false, "cache": false,