diff --git a/apps/deploy-fe/package.json b/apps/deploy-fe/package.json index 1142665..f995082 100644 --- a/apps/deploy-fe/package.json +++ b/apps/deploy-fe/package.json @@ -6,6 +6,8 @@ "scripts": { "dev": "NODE_OPTIONS='--inspect' next dev --turbopack", "build": "next build", + "build:compile": "next build --experimental-build-mode compile", + "build:generate": "next build --experimental-build-mode generate", "start": "next start", "lint": "biome check .", "lint:fix": "biome check --write .", diff --git a/apps/deployer/.env.example b/apps/deployer/.env.example new file mode 100644 index 0000000..732dcfd --- /dev/null +++ b/apps/deployer/.env.example @@ -0,0 +1,3 @@ +REGISTRY_BOND_ID= +DEPLOYER_LRN= +AUTHORITY= diff --git a/apps/deployer/README.md b/apps/deployer/README.md index 51095c3..51b0aca 100644 --- a/apps/deployer/README.md +++ b/apps/deployer/README.md @@ -1,5 +1,9 @@ # deployer +The following steps are for deploying the frontend app to vaasl webapp deployer. + +Run these steps in the `apps/deployer/` directory: + - Install dependencies ```bash @@ -7,46 +11,60 @@ ``` ```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 - ./deploy-frontend.staging.sh - ``` + Set the required variables: - - 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 - ./deploy-frontend.sh - ``` +- Set the `userKey` in [config.yml](./config.yml) + + 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)): + + + ```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 -## 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 - Check deployment status in [web-app deployer](https://console.laconic.com/deployer). + - Check records in [registry console app](https://console.laconic.com/#/registry). - If deployment fails due to low bond balance + - Check balances ```bash @@ -54,11 +72,11 @@ pnpm laconic registry account get # Bond balance - pnpm laconic registry bond get --id 99c0e9aec0ac1b8187faa579be3b54f93fafb6060ac1fd29170b860df605be32 + pnpm laconic registry bond get --id 230cfedda15e78edc8986dfcb870e1b618f65c56e38d2735476d2a8cb3f25e38 ``` - Command to refill bond ```bash - pnpm laconic registry bond refill --id 99c0e9aec0ac1b8187faa579be3b54f93fafb6060ac1fd29170b860df605be32 --type alnt --quantity 10000000 + pnpm laconic registry bond refill --id 230cfedda15e78edc8986dfcb870e1b618f65c56e38d2735476d2a8cb3f25e38 --type alnt --quantity 10000000 ``` diff --git a/apps/deployer/config.yml b/apps/deployer/config.yml index 730022e..7f595ef 100644 --- a/apps/deployer/config.yml +++ b/apps/deployer/config.yml @@ -1,8 +1,8 @@ services: registry: - rpcEndpoint: https://laconicd-sapo.laconic.com - gqlEndpoint: https://laconicd-sapo.laconic.com/api + rpcEndpoint: https://laconicd-mainnet-1.laconic.com/ + gqlEndpoint: https://laconicd-mainnet-1.laconic.com/api userKey: - bondId: - chainId: laconic-testnet-2 + bondId: 230cfedda15e78edc8986dfcb870e1b618f65c56e38d2735476d2a8cb3f25e38 + chainId: laconic-mainnet gasPrice: 0.001alnt diff --git a/apps/deployer/deploy-frontend.sh b/apps/deployer/deploy-frontend.sh index 46ab416..b5b4315 100755 --- a/apps/deployer/deploy-frontend.sh +++ b/apps/deployer/deploy-frontend.sh @@ -6,7 +6,7 @@ echo "Using DEPLOYER_LRN: $DEPLOYER_LRN" echo "Using AUTHORITY: $AUTHORITY" # 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 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 # 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 # Set application-record version if no previous records were found @@ -39,8 +39,8 @@ record: version: $NEW_APPLICATION_VERSION repository_ref: $LATEST_HASH repository: ["$REPO_URL"] - app_type: webapp - name: deploy-frontend + app_type: webapp/next + name: laconic-deployer-frontend app_version: $PACKAGE_VERSION EOF @@ -60,7 +60,7 @@ echo "ApplicationRecord published" echo $RECORD_ID # Set name to record -REGISTRY_APP_LRN="lrn://$AUTHORITY/applications/deploy-frontend" +REGISTRY_APP_LRN="lrn://$AUTHORITY/applications/laconic-deployer-frontend" sleep 2 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 < $PKG_DIR/.env <=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1167,8 +1167,8 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/schema@10.0.21': - resolution: {integrity: sha512-AECSlNnD0WNxICwfJs93gYn2oHxPmztn1MYBETIQXrJJcymfD6BoUrDlYPa6F27RzRc+gbPZPHMWL26uujfKBg==} + '@graphql-tools/schema@10.0.25': + resolution: {integrity: sha512-/PqE8US8kdQ7lB9M5+jlW8AyVjRGCKU7TSktuW3WNKSKmDO0MK1wakvb5gGdyT49MjAIb4a3LWxIpwo5VygZuw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1183,8 +1183,8 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/utils@10.8.4': - resolution: {integrity: sha512-HpHBgcmLIE79jWk1v5Bm0Eb8MaPiwSJT/Iy5xIJ+GMe7yAKpCYrbjf7wb+UMDMkLkfEryvo3syCx8k+TMAZ9bA==} + '@graphql-tools/utils@10.9.1': + resolution: {integrity: sha512-B1wwkXk9UvU7LCBkPs8513WxOQ2H8Fo5p8HR1+Id9WmYE5+bd51vqN+MbrqvWczHCH2gwkREgHJN88tE0n1FCw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1406,8 +1406,8 @@ packages: '@noble/curves@1.2.0': resolution: {integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==} - '@noble/curves@1.8.1': - resolution: {integrity: sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==} + '@noble/curves@1.9.7': + resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} engines: {node: ^14.21.3 || >=16} '@noble/hashes@1.3.2': @@ -1418,6 +1418,10 @@ packages: resolution: {integrity: sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==} 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': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -2513,8 +2517,8 @@ packages: '@types/body-parser@1.19.2': resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} - '@types/body-parser@1.19.5': - resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + '@types/body-parser@1.19.6': + resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} '@types/btoa-lite@1.0.2': resolution: {integrity: sha512-ZYbcE2x7yrvNFJiU7xJGrpF/ihpkM7zKgw8bha3LNJSesvTtUNxbpzaT7WXBIryf6jovisrxTBvymxMeLLj1Mg==} @@ -2528,8 +2532,8 @@ packages: '@types/cors@2.8.12': resolution: {integrity: sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==} - '@types/cors@2.8.17': - resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + '@types/cors@2.8.19': + resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} '@types/d3-array@3.2.1': resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} @@ -2570,14 +2574,14 @@ packages: '@types/express-serve-static-core@4.19.6': resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} - '@types/express-session@1.18.1': - resolution: {integrity: sha512-S6TkD/lljxDlQ2u/4A70luD8/ZxZcrU5pQwI1rVXCiaVIywoFgbA+PIUNDjPhQpPdK0dGleLtYc/y7XWBfclBg==} + '@types/express-session@1.18.2': + resolution: {integrity: sha512-k+I0BxwVXsnEU2hV77cCobC08kIsn4y44C3gC0b46uxZVMaXA04lSPgRLR/bSL2w0t0ShJiG8o4jPzRG/nscFg==} '@types/express@4.17.14': resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==} - '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + '@types/express@4.17.23': + resolution: {integrity: sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==} '@types/fs-extra@11.0.4': resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} @@ -2588,8 +2592,8 @@ packages: '@types/google-protobuf@3.15.12': resolution: {integrity: sha512-40um9QqwHjRS92qnOaDpL7RmDK15NuZYo9HihiJRbYkMQZlWnuH8AdvbMy8/o6lgLmKbDUKa+OALCltHdbOTpQ==} - '@types/http-errors@2.0.4': - resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + '@types/http-errors@2.0.5': + resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} '@types/inquirer@6.5.0': resolution: {integrity: sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==} @@ -2621,9 +2625,6 @@ packages: '@types/node@10.12.18': resolution: {integrity: sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==} - '@types/node@10.17.60': - resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} - '@types/node@17.0.45': resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} @@ -2642,8 +2643,8 @@ packages: '@types/prop-types@15.7.14': resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - '@types/qs@6.9.18': - resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==} + '@types/qs@6.14.0': + resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -2657,14 +2658,14 @@ packages: '@types/secp256k1@4.0.6': resolution: {integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==} - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + '@types/semver@7.7.0': + resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} - '@types/send@0.17.4': - resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + '@types/send@0.17.5': + resolution: {integrity: sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==} - '@types/serve-static@1.15.7': - resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + '@types/serve-static@1.15.8': + resolution: {integrity: sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==} '@types/through@0.0.33': resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} @@ -2672,8 +2673,8 @@ packages: '@types/tinycolor2@1.4.6': resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} - '@whatwg-node/promise-helpers@1.2.4': - resolution: {integrity: sha512-daEUfaHbaMuAcor+FPAVK+pOCSzsAYhK6LN1y81EcakdqQEPQvjm74PTmfwfv8POg8pw4RyCv9LXB1e+mQDwqg==} + '@whatwg-node/promise-helpers@1.3.2': + resolution: {integrity: sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==} engines: {node: '>=16.0.0'} '@wolfy1339/lru-cache@11.0.2-patch.1': @@ -2861,9 +2862,6 @@ packages: axios@0.26.1: resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==} - axios@1.8.2: - resolution: {integrity: sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==} - axios@1.8.4: resolution: {integrity: sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==} @@ -3157,8 +3155,8 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} - cookie-session@2.1.0: - resolution: {integrity: sha512-u73BDmR8QLGcs+Lprs0cfbcAPKl2HnPcjpwRXT41sEV4DRJ2+W0vJEEZkG31ofkx+HZflA70siRIjiTdIodmOQ==} + cookie-session@2.1.1: + resolution: {integrity: sha512-ji3kym/XZaFVew1+tIZk5ZLp9Z/fLv9rK1aZmpug0FsgE7Cu3ZDrUdRo7FT9vFjMYfNimrrUHJzywDwT7XEFlg==} engines: {node: '>= 0.10'} cookie-signature@1.0.6: @@ -3454,8 +3452,8 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} engines: {node: '>= 0.8'} - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} enhanced-resolve@5.18.1: resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} @@ -3555,8 +3553,8 @@ packages: peerDependencies: express: ^4.16.2 - express-session@1.18.1: - resolution: {integrity: sha512-a5mtTqEaZvBCL9A9aqkrtfz+3SMDhOVUnjafjo+s7A9Txkq+SVX2DLvSp1Zrv4uCXa3lMSK3viWnh9Gg07PBUA==} + express-session@1.18.2: + resolution: {integrity: sha512-SZjssGQC7TzTs9rpPDuUrR23GNZ9+2+IkA/+IJWmvQilTr5OSliEHGF+D9scbIpdC6yGtTI0/VhaHoVes2AN/A==} engines: {node: '>= 0.8.0'} express@4.21.2: @@ -3645,8 +3643,8 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} - fs-extra@11.3.0: - resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + fs-extra@11.3.1: + resolution: {integrity: sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==} engines: {node: '>=14.14'} fs.realpath@1.0.0: @@ -4226,8 +4224,8 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 - luxon@3.5.0: - resolution: {integrity: sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==} + luxon@3.7.1: + resolution: {integrity: sha512-RkRWjA926cTvz5rAb1BqyWkKbbjzCGchDUIKMCUvNi17j6f6j8uHGDV82Aqcqtzd+icoYpELmG3ksgGiFNNcNg==} engines: {node: '>=12'} make-error@1.3.6: @@ -4337,8 +4335,8 @@ packages: nan@2.22.2: resolution: {integrity: sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==} - nanoid-dictionary@5.0.0-beta.1: - resolution: {integrity: sha512-xBkL9zzkNjzJ/UnmWyiOUDVX/COoi05eS0oU28RYKFFQhdnzO5dTOPbVZ/fCFgIOGr1zNinDHJ68mm/KQfcgcw==} + nanoid-dictionary@5.0.0: + resolution: {integrity: sha512-/iCyQHwt36XkaIvSE9fcC8p6DiMPCZMTSMj9UT56Cv6T7f5CuxvOMhpNncaNieQ4z4d32p7ruEtAfRsb7Ya8Gw==} nanoid@3.3.8: resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} @@ -4392,8 +4390,8 @@ packages: no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - node-abi@3.74.0: - resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==} + node-abi@3.75.0: + resolution: {integrity: sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==} engines: {node: '>=10'} node-abort-controller@3.1.1: @@ -4469,8 +4467,8 @@ packages: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} - on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + on-headers@1.1.0: + resolution: {integrity: sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==} engines: {node: '>= 0.8'} once@1.4.0: @@ -4480,8 +4478,8 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - openpgp@6.1.0: - resolution: {integrity: sha512-fRTeitP+hoGJD3kbdUlAI++wE6MvfvXw1rBqHwmBMxIpLjowatJ2zb5ThkORpIkSz5F12wO+xCYRSTbT7M4qKA==} + openpgp@6.2.0: + resolution: {integrity: sha512-zKbgazxMeGrTqUEWicKufbdcjv2E0om3YVxw+I3hRykp8ODp+yQOJIDqIr1UXJjP8vR2fky3bNQwYoQXyFkYMA==} engines: {node: '>= 18.0.0'} optimism@0.18.1: @@ -4643,8 +4641,8 @@ packages: engines: {node: '>=10'} hasBin: true - prettier@3.5.3: - resolution: {integrity: sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==} + prettier@3.6.2: + resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} engines: {node: '>=14'} hasBin: true @@ -4673,8 +4671,8 @@ packages: proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - pump@3.0.2: - resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + pump@3.0.3: + resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} @@ -5074,8 +5072,8 @@ packages: sprintf-js@1.1.3: resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} - sql-highlight@6.0.0: - resolution: {integrity: sha512-+fLpbAbWkQ+d0JEchJT/NrRRXbYRNbG15gFpANx73EwxQB1PRjj+k/OI0GTU0J63g8ikGkJECQp9z8XEJZvPRw==} + sql-highlight@6.1.0: + resolution: {integrity: sha512-ed7OK4e9ywpE7pgRMkMQmZDPKSVdm0oX5IEtZiKnFucSF0zu6c80GZBe38UqHuVhTWJ9xsKgSMjCG2bml86KvA==} engines: {node: '>=14'} statuses@2.0.1: @@ -5192,8 +5190,8 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - tar-fs@2.1.2: - resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} + tar-fs@2.1.3: + resolution: {integrity: sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==} tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} @@ -5759,7 +5757,7 @@ snapshots: '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 '@types/long': 4.0.2 - '@types/node': 10.17.60 + '@types/node': 10.12.18 long: 4.0.0 '@apollo/protobufjs@1.2.7': @@ -6002,12 +6000,12 @@ snapshots: '@cosmjs/math': 0.32.4 '@cosmjs/utils': 0.32.4 - '@cosmjs/amino@0.33.0': + '@cosmjs/amino@0.33.1': dependencies: - '@cosmjs/crypto': 0.33.0 - '@cosmjs/encoding': 0.33.0 - '@cosmjs/math': 0.33.0 - '@cosmjs/utils': 0.33.0 + '@cosmjs/crypto': 0.33.1 + '@cosmjs/encoding': 0.33.1 + '@cosmjs/math': 0.33.1 + '@cosmjs/utils': 0.33.1 '@cosmjs/crypto@0.27.1': dependencies: @@ -6042,11 +6040,11 @@ snapshots: elliptic: 6.6.1 libsodium-wrappers-sumo: 0.7.15 - '@cosmjs/crypto@0.33.0': + '@cosmjs/crypto@0.33.1': dependencies: - '@cosmjs/encoding': 0.33.0 - '@cosmjs/math': 0.33.0 - '@cosmjs/utils': 0.33.0 + '@cosmjs/encoding': 0.33.1 + '@cosmjs/math': 0.33.1 + '@cosmjs/utils': 0.33.1 '@noble/hashes': 1.7.1 bn.js: 5.2.1 elliptic: 6.6.1 @@ -6070,7 +6068,7 @@ snapshots: bech32: 1.1.4 readonly-date: 1.0.0 - '@cosmjs/encoding@0.33.0': + '@cosmjs/encoding@0.33.1': dependencies: base64-js: 1.5.1 bech32: 1.1.4 @@ -6081,9 +6079,9 @@ snapshots: '@cosmjs/stream': 0.32.4 xstream: 11.14.0 - '@cosmjs/json-rpc@0.33.0': + '@cosmjs/json-rpc@0.33.1': dependencies: - '@cosmjs/stream': 0.33.0 + '@cosmjs/stream': 0.33.1 xstream: 11.14.0 '@cosmjs/launchpad@0.27.1(debug@4.4.0)': @@ -6110,7 +6108,7 @@ snapshots: dependencies: bn.js: 5.2.1 - '@cosmjs/math@0.33.0': + '@cosmjs/math@0.33.1': dependencies: bn.js: 5.2.1 @@ -6123,13 +6121,13 @@ snapshots: '@cosmjs/utils': 0.32.4 cosmjs-types: 0.9.0 - '@cosmjs/proto-signing@0.33.0': + '@cosmjs/proto-signing@0.33.1': dependencies: - '@cosmjs/amino': 0.33.0 - '@cosmjs/crypto': 0.33.0 - '@cosmjs/encoding': 0.33.0 - '@cosmjs/math': 0.33.0 - '@cosmjs/utils': 0.33.0 + '@cosmjs/amino': 0.33.1 + '@cosmjs/crypto': 0.33.1 + '@cosmjs/encoding': 0.33.1 + '@cosmjs/math': 0.33.1 + '@cosmjs/utils': 0.33.1 cosmjs-types: 0.9.0 '@cosmjs/socket@0.32.4': @@ -6142,9 +6140,9 @@ snapshots: - bufferutil - utf-8-validate - '@cosmjs/socket@0.33.0': + '@cosmjs/socket@0.33.1': dependencies: - '@cosmjs/stream': 0.33.0 + '@cosmjs/stream': 0.33.1 isomorphic-ws: 4.0.1(ws@7.5.10) ws: 7.5.10 xstream: 11.14.0 @@ -6169,15 +6167,15 @@ snapshots: - debug - utf-8-validate - '@cosmjs/stargate@0.33.0(debug@4.4.0)': + '@cosmjs/stargate@0.33.1(debug@4.4.0)': dependencies: - '@cosmjs/amino': 0.33.0 - '@cosmjs/encoding': 0.33.0 - '@cosmjs/math': 0.33.0 - '@cosmjs/proto-signing': 0.33.0 - '@cosmjs/stream': 0.33.0 - '@cosmjs/tendermint-rpc': 0.33.0(debug@4.4.0) - '@cosmjs/utils': 0.33.0 + '@cosmjs/amino': 0.33.1 + '@cosmjs/encoding': 0.33.1 + '@cosmjs/math': 0.33.1 + '@cosmjs/proto-signing': 0.33.1 + '@cosmjs/stream': 0.33.1 + '@cosmjs/tendermint-rpc': 0.33.1(debug@4.4.0) + '@cosmjs/utils': 0.33.1 cosmjs-types: 0.9.0 transitivePeerDependencies: - bufferutil @@ -6188,7 +6186,7 @@ snapshots: dependencies: xstream: 11.14.0 - '@cosmjs/stream@0.33.0': + '@cosmjs/stream@0.33.1': dependencies: xstream: 11.14.0 @@ -6201,7 +6199,7 @@ snapshots: '@cosmjs/socket': 0.32.4 '@cosmjs/stream': 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 xstream: 11.14.0 transitivePeerDependencies: @@ -6209,16 +6207,16 @@ snapshots: - debug - utf-8-validate - '@cosmjs/tendermint-rpc@0.33.0(debug@4.4.0)': + '@cosmjs/tendermint-rpc@0.33.1(debug@4.4.0)': dependencies: - '@cosmjs/crypto': 0.33.0 - '@cosmjs/encoding': 0.33.0 - '@cosmjs/json-rpc': 0.33.0 - '@cosmjs/math': 0.33.0 - '@cosmjs/socket': 0.33.0 - '@cosmjs/stream': 0.33.0 - '@cosmjs/utils': 0.33.0 - axios: 1.8.2(debug@4.4.0) + '@cosmjs/crypto': 0.33.1 + '@cosmjs/encoding': 0.33.1 + '@cosmjs/json-rpc': 0.33.1 + '@cosmjs/math': 0.33.1 + '@cosmjs/socket': 0.33.1 + '@cosmjs/stream': 0.33.1 + '@cosmjs/utils': 0.33.1 + axios: 1.8.4(debug@4.4.0) readonly-date: 1.0.0 xstream: 11.14.0 transitivePeerDependencies: @@ -6232,7 +6230,7 @@ snapshots: '@cosmjs/utils@0.32.4': {} - '@cosmjs/utils@0.33.0': {} + '@cosmjs/utils@0.33.1': {} '@cspotcode/source-map-support@0.8.1': dependencies: @@ -6602,9 +6600,9 @@ snapshots: graphql: 16.10.0 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: - '@graphql-tools/utils': 10.8.4(graphql@16.10.0) + '@graphql-tools/utils': 10.9.1(graphql@16.10.0) graphql: 16.10.0 tslib: 2.8.1 @@ -6616,10 +6614,10 @@ snapshots: graphql: 16.10.0 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: - '@graphql-tools/merge': 9.0.22(graphql@16.10.0) - '@graphql-tools/utils': 10.8.4(graphql@16.10.0) + '@graphql-tools/merge': 9.1.1(graphql@16.10.0) + '@graphql-tools/utils': 10.9.1(graphql@16.10.0) graphql: 16.10.0 tslib: 2.8.1 @@ -6639,10 +6637,10 @@ snapshots: tslib: 2.8.1 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: '@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 dset: 3.1.4 graphql: 16.10.0 @@ -6824,14 +6822,16 @@ snapshots: dependencies: '@noble/hashes': 1.3.2 - '@noble/curves@1.8.1': + '@noble/curves@1.9.7': dependencies: - '@noble/hashes': 1.7.1 + '@noble/hashes': 1.8.0 '@noble/hashes@1.3.2': {} '@noble/hashes@1.7.1': {} + '@noble/hashes@1.8.0': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -7982,7 +7982,7 @@ snapshots: '@turnkey/api-key-stamper@0.4.0': dependencies: - '@noble/curves': 1.8.1 + '@noble/curves': 1.9.7 '@turnkey/encoding': 0.1.0 sha256-uint8array: 0.10.7 @@ -8026,7 +8026,7 @@ snapshots: '@types/connect': 3.4.38 '@types/node': 20.17.23 - '@types/body-parser@1.19.5': + '@types/body-parser@1.19.6': dependencies: '@types/connect': 3.4.38 '@types/node': 20.17.23 @@ -8039,12 +8039,12 @@ snapshots: '@types/cookie-session@2.0.49': dependencies: - '@types/express': 4.17.21 + '@types/express': 4.17.23 '@types/keygrip': 1.0.6 '@types/cors@2.8.12': {} - '@types/cors@2.8.17': + '@types/cors@2.8.19': dependencies: '@types/node': 20.17.23 @@ -8081,33 +8081,33 @@ snapshots: '@types/express-serve-static-core@4.17.31': dependencies: '@types/node': 20.17.23 - '@types/qs': 6.9.18 + '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/express-serve-static-core@4.19.6': dependencies: '@types/node': 20.17.23 - '@types/qs': 6.9.18 + '@types/qs': 6.14.0 '@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: - '@types/express': 4.17.21 + '@types/express': 4.17.23 '@types/express@4.17.14': dependencies: '@types/body-parser': 1.19.2 '@types/express-serve-static-core': 4.17.31 - '@types/qs': 6.9.18 - '@types/serve-static': 1.15.7 + '@types/qs': 6.14.0 + '@types/serve-static': 1.15.8 - '@types/express@4.17.21': + '@types/express@4.17.23': dependencies: - '@types/body-parser': 1.19.5 + '@types/body-parser': 1.19.6 '@types/express-serve-static-core': 4.19.6 - '@types/qs': 6.9.18 - '@types/serve-static': 1.15.7 + '@types/qs': 6.14.0 + '@types/serve-static': 1.15.8 '@types/fs-extra@11.0.4': dependencies: @@ -8121,7 +8121,7 @@ snapshots: '@types/google-protobuf@3.15.12': {} - '@types/http-errors@2.0.4': {} + '@types/http-errors@2.0.5': {} '@types/inquirer@6.5.0': dependencies: @@ -8151,8 +8151,6 @@ snapshots: '@types/node@10.12.18': {} - '@types/node@10.17.60': {} - '@types/node@17.0.45': {} '@types/node@20.17.23': @@ -8173,7 +8171,7 @@ snapshots: '@types/prop-types@15.7.14': {} - '@types/qs@6.9.18': {} + '@types/qs@6.14.0': {} '@types/range-parser@1.2.7': {} @@ -8190,18 +8188,18 @@ snapshots: dependencies: '@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: '@types/mime': 1.3.5 '@types/node': 20.17.23 - '@types/serve-static@1.15.7': + '@types/serve-static@1.15.8': dependencies: - '@types/http-errors': 2.0.4 + '@types/http-errors': 2.0.5 '@types/node': 20.17.23 - '@types/send': 0.17.4 + '@types/send': 0.17.5 '@types/through@0.0.33': dependencies: @@ -8209,7 +8207,7 @@ snapshots: '@types/tinycolor2@1.4.6': {} - '@whatwg-node/promise-helpers@1.2.4': + '@whatwg-node/promise-helpers@1.3.2': dependencies: tslib: 2.8.1 @@ -8420,15 +8418,7 @@ snapshots: transitivePeerDependencies: - debug - axios@1.8.2(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: + axios@1.8.4(debug@4.4.0): dependencies: follow-redirects: 1.15.9(debug@4.4.0) form-data: 4.0.2 @@ -8765,11 +8755,11 @@ snapshots: content-type@1.0.5: {} - cookie-session@2.1.0: + cookie-session@2.1.1: dependencies: cookies: 0.9.1 debug: 3.2.7 - on-headers: 1.0.2 + on-headers: 1.1.0 safe-buffer: 5.2.1 transitivePeerDependencies: - supports-color @@ -9057,7 +9047,7 @@ snapshots: encodeurl@2.0.0: {} - end-of-stream@1.4.4: + end-of-stream@1.4.5: dependencies: once: 1.4.0 @@ -9243,13 +9233,13 @@ snapshots: dependencies: express: 4.21.2 - express-session@1.18.1: + express-session@1.18.2: dependencies: cookie: 0.7.2 cookie-signature: 1.0.7 debug: 2.6.9 depd: 2.0.0 - on-headers: 1.0.2 + on-headers: 1.1.0 parseurl: 1.3.3 safe-buffer: 5.2.1 uid-safe: 2.1.5 @@ -9374,7 +9364,7 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@11.3.0: + fs-extra@11.3.1: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 @@ -9934,7 +9924,7 @@ snapshots: dependencies: react: 19.0.0 - luxon@3.5.0: {} + luxon@3.7.1: {} make-error@1.3.6: {} @@ -10015,7 +10005,7 @@ snapshots: nan@2.22.2: {} - nanoid-dictionary@5.0.0-beta.1: {} + nanoid-dictionary@5.0.0: {} nanoid@3.3.8: {} @@ -10066,7 +10056,7 @@ snapshots: lower-case: 2.0.2 tslib: 2.8.1 - node-abi@3.74.0: + node-abi@3.75.0: dependencies: semver: 7.7.1 @@ -10143,7 +10133,7 @@ snapshots: dependencies: ee-first: 1.1.1 - on-headers@1.0.2: {} + on-headers@1.1.0: {} once@1.4.0: dependencies: @@ -10153,7 +10143,7 @@ snapshots: dependencies: mimic-fn: 2.1.0 - openpgp@6.1.0: {} + openpgp@6.2.0: {} optimism@0.18.1: dependencies: @@ -10329,14 +10319,14 @@ snapshots: minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 2.0.0 - node-abi: 3.74.0 - pump: 3.0.2 + node-abi: 3.75.0 + pump: 3.0.3 rc: 1.2.8 simple-get: 4.0.1 - tar-fs: 2.1.2 + tar-fs: 2.1.3 tunnel-agent: 0.6.0 - prettier@3.5.3: {} + prettier@3.6.2: {} process-nextick-args@2.0.1: {} @@ -10386,9 +10376,9 @@ snapshots: proxy-from-env@1.1.0: {} - pump@3.0.2: + pump@3.0.3: dependencies: - end-of-stream: 1.4.4 + end-of-stream: 1.4.5 once: 1.4.0 punycode@2.3.1: {} @@ -10852,7 +10842,7 @@ snapshots: sprintf-js@1.1.3: {} - sql-highlight@6.0.0: {} + sql-highlight@6.1.0: {} statuses@2.0.1: {} @@ -11002,17 +10992,17 @@ snapshots: tapable@2.2.1: {} - tar-fs@2.1.2: + tar-fs@2.1.3: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 - pump: 3.0.2 + pump: 3.0.3 tar-stream: 2.2.0 tar-stream@2.2.0: dependencies: bl: 4.1.0 - end-of-stream: 1.4.4 + end-of-stream: 1.4.5 fs-constants: 1.0.0 inherits: 2.0.4 readable-stream: 3.6.2 @@ -11218,7 +11208,7 @@ snapshots: glob: 10.4.5 reflect-metadata: 0.2.2 sha.js: 2.4.11 - sql-highlight: 6.0.0 + sql-highlight: 6.1.0 tslib: 2.8.1 uuid: 11.1.0 yargs: 17.7.2 diff --git a/readme.md b/readme.md index eb92349..648c2b4 100644 --- a/readme.md +++ b/readme.md @@ -41,7 +41,7 @@ Create a `.env.local` file in the `apps/deploy-fe` directory: NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_key CLERK_SECRET_KEY=your_clerk_secret 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_GITHUB_FALLBACK_TOKEN=your_github_token ``` @@ -92,4 +92,26 @@ The frontend is built with: Make sure you have: 1. Connected your GitHub account in Clerk 2. Provided the necessary permissions for repository access -3. Set a fallback GitHub token in `.env.local` if needed for development \ No newline at end of file +3. Set a fallback GitHub token in `.env.local` if needed for development + +## Test deployment + +- Install stack-orchestrator from + +- Build the container for app + + ```bash + laconic-so build-webapp --source-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 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) diff --git a/run-webapp.sh b/run-webapp.sh new file mode 100755 index 0000000..6809f35 --- /dev/null +++ b/run-webapp.sh @@ -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} diff --git a/turbo.json b/turbo.json index 34c4ce7..cbf624a 100644 --- a/turbo.json +++ b/turbo.json @@ -8,6 +8,11 @@ "outputs": [".next/**", "!.next/cache/**"], "env": ["NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY", "CLERK_SECRET_KEY"] }, + "build:compile": { + "dependsOn": ["^build"], + "inputs": ["$TURBO_DEFAULT$"], + "outputs": ["dist/**"] + }, "start": { "dependsOn": ["^build"], "cache": false,