From 33ca8b2f4b99fb27df218a7325414d542122ced9 Mon Sep 17 00:00:00 2001 From: Matej Sima Date: Thu, 12 Dec 2024 09:45:10 +0100 Subject: [PATCH 01/10] lightnet settlement integration WIP --- .nvmrc | 2 +- apps/web/package.json | 24 +- docker/docker-compose.yml | 1 + docker/lightnet/docker-compose.yml | 17 + docker/web/Dockerfile | 2 +- package.json | 8 +- packages/chain/package.json | 49 +- .../chain/src/environments/development/.env | 34 +- .../environments/development/chain.config.ts | 28 +- .../environments/development/worker.config.ts | 46 + packages/chain/src/processor/api/resolvers.ts | 4 +- packages/chain/src/protocol/index.ts | 33 +- packages/chain/src/runtime/index.ts | 8 +- .../chain/src/runtime/modules/balances.ts | 29 +- packages/chain/src/scripts/bridge/deposit.ts | 119 ++ packages/chain/src/scripts/generate-keys.ts | 14 + packages/chain/src/scripts/lightnet/faucet.ts | 74 + .../chain/src/scripts/settlement/deploy.ts | 146 ++ packages/chain/src/sequencer/index.ts | 56 + packages/chain/src/sequencer/worker/index.ts | 34 + pnpm-lock.yaml | 1795 +---------------- turbo.json | 20 +- 22 files changed, 769 insertions(+), 1774 deletions(-) create mode 100644 docker/lightnet/docker-compose.yml create mode 100644 packages/chain/src/environments/development/worker.config.ts create mode 100644 packages/chain/src/scripts/bridge/deposit.ts create mode 100644 packages/chain/src/scripts/generate-keys.ts create mode 100644 packages/chain/src/scripts/lightnet/faucet.ts create mode 100644 packages/chain/src/scripts/settlement/deploy.ts create mode 100644 packages/chain/src/sequencer/worker/index.ts diff --git a/.nvmrc b/.nvmrc index 0828ab7..f483565 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v18 \ No newline at end of file +v22.9.0 \ No newline at end of file diff --git a/apps/web/package.json b/apps/web/package.json index f48aad3..96d8a6f 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -50,17 +50,17 @@ "typescript": "^5.4.5" }, "peerDependencies": { - "@proto-kit/api": "*", - "@proto-kit/common": "*", - "@proto-kit/deployment": "*", - "@proto-kit/library": "*", - "@proto-kit/module": "*", - "@proto-kit/persistance": "*", - "@proto-kit/protocol": "*", - "@proto-kit/sdk": "*", - "@proto-kit/sequencer": "*", - "@proto-kit/indexer": "*", - "o1js": "1.6.0", - "tsyringe": "^4.7.0" + "@proto-kit/api": "../../../framework/packages/api", + "@proto-kit/common": "../../../framework/packages/common", + "@proto-kit/deployment": "../../../framework/packages/deployment", + "@proto-kit/library": "../../../framework/packages/library", + "@proto-kit/module": "../../../framework/packages/module", + "@proto-kit/persistance": "../../../framework/packages/persistance", + "@proto-kit/protocol": "../../../framework/packages/protocol", + "@proto-kit/sdk": "../../../framework/packages/sdk", + "@proto-kit/sequencer": "../../../framework/packages/sequencer", + "@proto-kit/indexer": "../../../framework/packages/indexer", + "o1js": "../../../framework/node_modules/o1js", + "tsyringe": "../../../framework/node_modules/tsyringe" } } diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index c93e660..301f76d 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -7,3 +7,4 @@ include: - ./indexer/docker-compose.yml - ./processor-persistence/docker-compose.yml - ./processor/docker-compose.yml + - ./lightnet/docker-compose.yml diff --git a/docker/lightnet/docker-compose.yml b/docker/lightnet/docker-compose.yml new file mode 100644 index 0000000..396776e --- /dev/null +++ b/docker/lightnet/docker-compose.yml @@ -0,0 +1,17 @@ +services: + lightnet: + image: o1labs/mina-local-network:compatible-latest-lightnet + container_name: lightnet + profiles: + - lightnet + environment: + - RUN_ARCHIVE_NODE=true + - LOG_LEVEL=INFO + - PROOF_LEVEL=none + - NETWORK_TYPE=single-node + ports: + - 3085:3085 + - 8083:8080 + - 8084:8181 +# archive endpoints + - 8085:8282 \ No newline at end of file diff --git a/docker/web/Dockerfile b/docker/web/Dockerfile index af36f81..33e8161 100644 --- a/docker/web/Dockerfile +++ b/docker/web/Dockerfile @@ -3,7 +3,7 @@ #RUN apk add --no-cache libc6-compat # For locally built and imported framework references -# Make sure you build the base-image first +# Make sure you build the base-image first FROM protokit-base:latest AS base # Install dependencies only when needed diff --git a/package.json b/package.json index 92f3c53..b023198 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "sequencer:dev": "turbo run sequencer:dev --env-mode=loose", "indexer:dev": "turbo run indexer:dev --env-mode=loose", "processor:dev": "turbo run processor:dev --env-mode=loose", + "worker:dev": "turbo run worker:dev --env-mode=loose", "lint": "turbo run lint", "format": "prettier --write \"**/*.{ts,tsx,md}\"", "test": "turbo run test", @@ -27,7 +28,12 @@ "docker:down": "docker compose -f docker/docker-compose.yml down", "env:development": "dotenv -e ./packages/chain/src/environments/development/.env -- pnpm", "env:inmemory": "dotenv -e ./packages/chain/src/environments/inmemory/.env -- pnpm", - "env:sovereign": "dotenv -e ./packages/chain/src/environments/sovereign/.env -- pnpm" + "env:sovereign": "dotenv -e ./packages/chain/src/environments/sovereign/.env -- pnpm", + "generate-keys": "turbo run generate-keys --env-mode=loose --", + "lightnet:faucet": "turbo run lightnet:faucet --env-mode=loose --", + "settlement:deploy": "turbo run settlement:deploy --env-mode=loose --", + "mina-explorer:start": "turbo run mina-explorer:start --env-mode=loose --", + "bridge:deposit": "turbo run bridge:deposit --env-mode=loose --" }, "devDependencies": { "eslint": "^8.53.0", diff --git a/packages/chain/package.json b/packages/chain/package.json index 72abf02..485a32d 100644 --- a/packages/chain/package.json +++ b/packages/chain/package.json @@ -30,6 +30,8 @@ "sequencer:dev": "nodemon --watch src -e ts --exec \"pnpm sequencer:dev:run\"", "indexer:dev": "nodemon --watch src -e ts --exec \"pnpm indexer:dev:run\"", "processor:dev": "nodemon --watch src -e ts --exec \"pnpm processor:dev:run\"", + "worker:dev:run": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/start.ts start \"./environments/$PROTOKIT_ENV_FOLDER/worker.config.ts\" $1", + "worker:dev": "nodemon --watch src -e ts --exec \"pnpm worker:dev:run\"", "prisma:generate": "pnpm run sequencer:prisma:generate && pnpm run indexer:prisma:generate && pnpm run processor:prisma:generate", "prisma:migrate": "pnpm run sequencer:prisma:migrate && pnpm run indexer:prisma:migrate && pnpm run processor:prisma:migrate", "sequencer:prisma:migrate": "prisma migrate deploy --schema ./node_modules/@proto-kit/persistance/prisma/schema.prisma", @@ -38,25 +40,31 @@ "indexer:prisma:generate": "prisma generate --schema ./node_modules/@proto-kit/indexer/prisma/schema.prisma", "processor:prisma:migrate:dev": "prisma migrate dev --schema ./src/processor/prisma/schema.prisma", "processor:prisma:migrate": "prisma migrate deploy --schema ./src/processor/prisma/schema.prisma", - "processor:prisma:generate": "prisma generate --schema ./src/processor/prisma/schema.prisma" + "processor:prisma:generate": "prisma generate --schema ./src/processor/prisma/schema.prisma", + "generate-keys": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/generate-keys.ts $1", + "lightnet:faucet": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/lightnet/faucet.ts $1", + "settlement:deploy": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/settlement/deploy.ts $1", + "mina-explorer:start": "node ./node_modules/mina-lightweight-explorer/server.js", + "bridge:deposit": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/bridge/deposit.ts $1" }, "peerDependencies": { - "@proto-kit/api": "*", - "@proto-kit/common": "*", - "@proto-kit/deployment": "*", - "@proto-kit/library": "*", - "@proto-kit/module": "*", - "@proto-kit/persistance": "*", - "@proto-kit/protocol": "*", - "@proto-kit/sdk": "*", - "@proto-kit/sequencer": "*", - "@proto-kit/indexer": "*", - "@proto-kit/processor": "*", - "o1js": "1.6.0", - "tsyringe": "^4.7.0" + "@proto-kit/api": "../../../framework/packages/api", + "@proto-kit/common": "../../../framework/packages/common", + "@proto-kit/deployment": "../../../framework/packages/deployment", + "@proto-kit/indexer": "../../../framework/packages/indexer", + "@proto-kit/library": "../../../framework/packages/library", + "@proto-kit/module": "../../../framework/packages/module", + "@proto-kit/persistance": "../../../framework/packages/persistance", + "@proto-kit/processor": "../../../framework/packages/processor", + "@proto-kit/protocol": "../../../framework/packages/protocol", + "@proto-kit/sdk": "../../../framework/packages/sdk", + "@proto-kit/sequencer": "../../../framework/packages/sequencer", + "o1js": "../../../framework/node_modules/o1js", + "tsyringe": "../../../framework/node_modules/tsyringe" }, "devDependencies": { "@jest/globals": "^29.6.1", + "@prisma/client": "5.18", "@types/jest": "^29.5.7", "@types/node": "^20.8.10", "@types/react-dom": "^18.2.7", @@ -66,6 +74,7 @@ "crypto-browserify": "^3.12.0", "eslint-config-custom": "workspace:*", "events": "^3.3.0", + "graphql": "^16.8.1", "jest": "^29.6.1", "jest-expect-message": "^1.1.3", "loglevel": "^1.8.1", @@ -79,18 +88,18 @@ "ts-jest": "^29.1.1", "ts-node": "^10.9.2", "tsconfig": "workspace:*", + "typegraphql-prisma": "^0.28", "typescript": "5.4.5", "url": "^0.11.1", "util": "^0.12.5", - "yargs": "^17.7.2", - "typegraphql-prisma": "^0.28", - "graphql": "^16.8.1", - "@prisma/client": "5.18" + "yargs": "^17.7.2" }, "dependencies": { - "reflect-metadata": "^0.1.13", + "graphql-fields": "^2.0.3", "graphql-scalars": "^1.22.4", - "graphql-fields": "^2.0.3" + "mina-lightweight-explorer": "github:o1-labs/mina-lightweight-explorer", + "reflect-metadata": "^0.1.13", + "type-graphql": "2.0.0-rc.2" }, "nodemonConfig": { "delay": 1000 diff --git a/packages/chain/src/environments/development/.env b/packages/chain/src/environments/development/.env index 5977346..7405ad4 100644 --- a/packages/chain/src/environments/development/.env +++ b/packages/chain/src/environments/development/.env @@ -1,4 +1,4 @@ -COMPOSE_PROFILES=db, indexer-db, processor-db +COMPOSE_PROFILES=db, indexer-db, processor-db, lightnet COMPOSE_PROJECT_NAME=starter-kit POSTGRES_PASSWORD=password @@ -16,6 +16,7 @@ PROTOKIT_SHOULD_ATTEMPT_DB_MIGRATION=true PROTOKIT_PRUNE_ON_STARTUP=false PROTOKIT_LOG_LEVEL=INFO PROTOKIT_BLOCK_INTERVAL=5000 +PROTOKIT_SETTLEMENT_INTERVAL=15000 PROTOKIT_GRAPHQL_HOST=0.0.0.0 PROTOKIT_GRAPHQL_PORT=8080 @@ -37,7 +38,6 @@ PROTOKIT_INDEXER_GRAPHQL_HOST=0.0.0.0 PROTOKIT_INDEXER_GRAPHQL_PORT=8081 PROTOKIT_INDEXER_GRAPHIQL_ENABLED=true - PROCESSOR_POSTGRES_PASSWORD=password PROCESSOR_POSTGRES_USER=admin PROCESSOR_POSTGRES_DB=protokit-indexer @@ -55,4 +55,32 @@ PROTOKIT_PROCESSOR_INDEXER_GRAPHQL_HOST=0.0.0.0 # expose graphql configuration to the client app-chain NEXT_PUBLIC_PROTOKIT_GRAPHQL_URL=http://localhost:8080/graphql NEXT_PUBLIC_PROTOKIT_INDEXER_GRAPHQL_URL=http://localhost:8081/graphql -NEXT_PUBLIC_PROTOKIT_PROCESSOR_GRAPHQL_URL=http://localhost:8082/graphql \ No newline at end of file +NEXT_PUBLIC_PROTOKIT_PROCESSOR_GRAPHQL_URL=http://localhost:8082/graphql + +# mina endpoints +MINA_NODE_GRAPHQL_HOST=http://localhost +MINA_NODE_GRAPHQL_PORT=8083 +MINA_ARCHIVE_GRAPHQL_HOST=http://localhost +MINA_ARCHIVE_GRAPHQL_PORT=8085 + +PROTOKIT_TRANSACTION_FEE_RECIPIENT_PRIVATE_KEY=EKEssvj33MMBCg2tcybTzL32nTKbbwFHm6yUxd3JassdhL3J5aT8 +PROTOKIT_TRANSACTION_FEE_RECIPIENT_PUBLIC_KEY=B62qk4sNnzZqqjHp8YQXZUV3dBpnjiNieJVnsuh7mD2bMJ9PdbskH5H + +PROTOKIT_SETTLEMENT_ENABLED=true + +PROTOKIT_SEQUENCER_PRIVATE_KEY=EKEdKhgUHMuDvwWJEg2TdCMCeiTSd9hh2HrEr6uYJfPVuwur1s43 +PROTOKIT_SEQUENCER_PUBLIC_KEY=B62qizW6aroTxQorJz4ywVNZom4jA6W4QPPCK3wLeyhnJHtVStUNniL +PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY=EKErS9gYHZNawqKuwfMiwYYJtNptCrvca491QEvB3tz8sFsS5w66 +PROTOKIT_SETTLEMENT_CONTRACT_PUBLIC_KEY=B62qjKhzrvDgTPXCp34ozmpFSx4sC9owZe6eDzhdGPdoiUbGPmBkHTt +PROTOKIT_DISPATCHER_CONTRACT_PRIVATE_KEY=EKF9Ei5G9PeB5ULMh9R6P5LfWX2gs15XxPNsect1pbcbMY9vs6v7 +PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY=B62qmAzUJ1jqcsEf2V3K1k2Ec4MLsEKnodEvvJ5uweTFSLYEUALe1zs +PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY=EKFKTGqWU2egLKhMgoxX8mQ21zXSE1RZYkY82mmK9F3BxdSA7E5M +PROTOKIT_MINA_BRIDGE_CONTRACT_PUBLIC_KEY=B62qn8XRkWcaBvv6F7kvarKs4cViaKRMbTUHT8FrDXLnvxuV6n7CHsN + +# lightnet only +MINA_ACCOUNT_MANAGER_HOST=http://localhost +MINA_ACCOUNT_MANAGER_PORT=8084 +MINA_EXPLORER_PORT=3001 + +TEST_ACCOUNT_1_PRIVATE_KEY=EKF5p3wQTFd4tRBiGicRf93yXK82bcRryokC1qoazRM6wq6gMzWJ +TEST_ACCOUNT_1_PUBLIC_KEY=B62qkVfEwyfkm5yucHEqrRjxbyx98pgdWz82pHv7LYq9Qigs812iWZ8 \ No newline at end of file diff --git a/packages/chain/src/environments/development/chain.config.ts b/packages/chain/src/environments/development/chain.config.ts index 614f699..e9deca1 100644 --- a/packages/chain/src/environments/development/chain.config.ts +++ b/packages/chain/src/environments/development/chain.config.ts @@ -4,14 +4,16 @@ import { Protocol } from "@proto-kit/protocol"; import { DatabasePruneModule, Sequencer } from "@proto-kit/sequencer"; import { PrismaRedisDatabase } from "@proto-kit/persistance"; import runtime from "../../runtime"; -import protocol from "../../protocol"; +import * as protocol from "../../protocol"; import { baseSequencerModules, baseSequencerModulesConfig, indexerSequencerModules, indexerSequencerModulesConfig, + settlementSequencerModules, + settlementSequencerModulesConfig, } from "../../sequencer"; -import { BullQueue, Startable } from "@proto-kit/deployment"; +import { BullQueue } from "@proto-kit/deployment"; import { Arguments } from "../../start"; import { baseAppChainModules, @@ -23,7 +25,12 @@ export const appChain = AppChain.from({ modules: runtime.modules, }), Protocol: Protocol.from({ - modules: protocol.modules, + modules: { + ...protocol.modules, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" + ? protocol.settlementModules + : {}), + }, }), Sequencer: Sequencer.from({ modules: { @@ -33,18 +40,29 @@ export const appChain = AppChain.from({ ...indexerSequencerModules, TaskQueue: BullQueue, DatabasePruneModule, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" + ? settlementSequencerModules + : {}), }, }), modules: baseAppChainModules, }); -export default async (args: Arguments): Promise => { +export default async (args: Arguments) => { appChain.configurePartial({ Runtime: runtime.config, - Protocol: protocol.config, + Protocol: { + ...protocol.config, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" + ? protocol.settlementModulesConfig + : {}), + }, Sequencer: { ...baseSequencerModulesConfig, ...indexerSequencerModulesConfig, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" + ? settlementSequencerModulesConfig + : {}), DatabasePruneModule: { pruneOnStartup: args.pruneOnStartup, }, diff --git a/packages/chain/src/environments/development/worker.config.ts b/packages/chain/src/environments/development/worker.config.ts new file mode 100644 index 0000000..89c0377 --- /dev/null +++ b/packages/chain/src/environments/development/worker.config.ts @@ -0,0 +1,46 @@ +import { AppChain } from "@proto-kit/sdk"; +import { Runtime } from "@proto-kit/module"; +import { Protocol } from "@proto-kit/protocol"; +import { Sequencer } from "@proto-kit/sequencer"; +import runtime from "../../runtime"; +import * as protocol from "../../protocol"; +import { Arguments } from "../../start"; + +import { workerModules, workerModulesConfig } from "../../sequencer/worker"; + +export const appChain = AppChain.from({ + Runtime: Runtime.from({ + modules: runtime.modules, + }), + Protocol: Protocol.from({ + modules: { + ...protocol.modules, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" + ? protocol.settlementModules + : {}), + }, + }), + Sequencer: Sequencer.from({ + modules: { + ...workerModules, + }, + }), + modules: {}, +}); + +export default async (args: Arguments) => { + appChain.configurePartial({ + Runtime: runtime.config, + Protocol: { + ...protocol.config, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" + ? protocol.settlementModulesConfig + : {}), + }, + Sequencer: { + ...workerModulesConfig, + }, + }); + + return appChain; +}; diff --git a/packages/chain/src/processor/api/resolvers.ts b/packages/chain/src/processor/api/resolvers.ts index 37b281f..dc6081c 100644 --- a/packages/chain/src/processor/api/resolvers.ts +++ b/packages/chain/src/processor/api/resolvers.ts @@ -1,4 +1,5 @@ import { cleanResolvers, ValidateTakeArg } from "@proto-kit/processor"; +import { NonEmptyArray } from "type-graphql"; import { applyResolversEnhanceMap, resolvers as generatedResolvers, @@ -22,4 +23,5 @@ const resolversEnchanceMap: ResolversEnhanceMap = { applyResolversEnhanceMap(resolversEnchanceMap); // remove non read only generated resolvers and their methods -export const resolvers = cleanResolvers(generatedResolvers); +export const resolvers: NonEmptyArray = + cleanResolvers(generatedResolvers); diff --git a/packages/chain/src/protocol/index.ts b/packages/chain/src/protocol/index.ts index 9caf391..0e547fa 100644 --- a/packages/chain/src/protocol/index.ts +++ b/packages/chain/src/protocol/index.ts @@ -1,10 +1,39 @@ import { VanillaProtocolModules } from "@proto-kit/library"; import { ModulesConfig } from "@proto-kit/common"; +import { + ProtocolModulesRecord, + SettlementContractModule, +} from "@proto-kit/protocol"; -const modules = VanillaProtocolModules.with({}); +export const modules = VanillaProtocolModules.with({}); -const config: ModulesConfig = { +export const config: ModulesConfig = { ...VanillaProtocolModules.defaultConfig(), + TransactionFee: { + ...VanillaProtocolModules.defaultConfig().TransactionFee, + feeRecipient: process.env.PROTOKIT_TRANSACTION_FEE_RECIPIENT_PUBLIC_KEY!, + }, }; +export const settlementModules = { + SettlementContractModule: SettlementContractModule.fromDefaults(), +} satisfies ProtocolModulesRecord; + +export const settlementModulesConfig = { + SettlementContractModule: { + BridgeContract: { + withdrawalEventName: "withdraw", + withdrawalStatePath: "Withdrawals.withdrawals", + }, + SettlementContract: { + // withdrawalMethodPath: "Withdrawals.withdraw", + }, + DispatchContract: { + incomingMessagesMethods: { + deposit: "Balances.deposit", + }, + }, + }, +} satisfies ModulesConfig; + export default { modules, config }; diff --git a/packages/chain/src/runtime/index.ts b/packages/chain/src/runtime/index.ts index ebd7f93..c2150d5 100644 --- a/packages/chain/src/runtime/index.ts +++ b/packages/chain/src/runtime/index.ts @@ -1,16 +1,22 @@ -import { Balance, VanillaRuntimeModules } from "@proto-kit/library"; +import { + Balance, + VanillaRuntimeModules, + Withdrawals, +} from "@proto-kit/library"; import { ModulesConfig } from "@proto-kit/common"; import { Balances } from "./modules/balances"; export const modules = VanillaRuntimeModules.with({ Balances, + Withdrawals, }); export const config: ModulesConfig = { Balances: { totalSupply: Balance.from(10_000), }, + Withdrawals: {}, }; export default { diff --git a/packages/chain/src/runtime/modules/balances.ts b/packages/chain/src/runtime/modules/balances.ts index ca4ec5a..1b231d1 100644 --- a/packages/chain/src/runtime/modules/balances.ts +++ b/packages/chain/src/runtime/modules/balances.ts @@ -1,6 +1,16 @@ -import { runtimeModule, state, runtimeMethod } from "@proto-kit/module"; -import { State, assert } from "@proto-kit/protocol"; -import { Balance, Balances as BaseBalances, TokenId } from "@proto-kit/library"; +import { + runtimeModule, + state, + runtimeMethod, + runtimeMessage, +} from "@proto-kit/module"; +import { Deposit, State, assert } from "@proto-kit/protocol"; +import { + Balance, + BalancesKey, + Balances as BaseBalances, + TokenId, +} from "@proto-kit/library"; import { PublicKey } from "o1js"; interface BalancesConfig { @@ -28,4 +38,17 @@ export class Balances extends BaseBalances { await this.circulatingSupply.set(newCirculatingSupply); await this.mint(tokenId, address, amount); } + + @runtimeMessage() + public async deposit(deposit: Deposit) { + const key = new BalancesKey({ + tokenId: TokenId.from(0), + address: deposit.address, + }); + const balance = await this.balances.get(key); + await this.balances.set( + key, + balance.value.add(Balance.Unsafe.fromField(deposit.amount.value)) + ); + } } diff --git a/packages/chain/src/scripts/bridge/deposit.ts b/packages/chain/src/scripts/bridge/deposit.ts new file mode 100644 index 0000000..fe1f4f5 --- /dev/null +++ b/packages/chain/src/scripts/bridge/deposit.ts @@ -0,0 +1,119 @@ +// const { settlement, dispatch } = settlementModule.getContracts(); + +import { + InMemoryDatabase, + LocalTaskQueue, + Sequencer, + SequencerModule, + SettlementModule, +} from "@proto-kit/sequencer"; +import { + settlementSequencerModules, + settlementSequencerModulesConfig, +} from "../../sequencer"; +import { AppChain } from "@proto-kit/sdk"; +import { Runtime } from "@proto-kit/module"; +import runtime from "../../runtime"; +import { Protocol } from "@proto-kit/protocol"; +import * as protocol from "../../protocol"; +import { + AccountUpdate, + fetchAccount, + Mina, + PrivateKey, + Provable, + PublicKey, + UInt64, +} from "o1js"; + +class Noop extends SequencerModule { + public async start() {} +} + +const appChain = AppChain.from({ + Runtime: Runtime.from({ + modules: runtime.modules, + }), + Protocol: Protocol.from({ + modules: { + ...protocol.modules, + ...protocol.settlementModules, + }, + }), + Sequencer: Sequencer.from({ + modules: { + Database: InMemoryDatabase, + TaskQueue: LocalTaskQueue, + ...settlementSequencerModules, + OutgoingMessageQueue: Noop, + }, + }), + modules: {}, +}); + +appChain.configure({ + Runtime: runtime.config, + Protocol: { + ...protocol.config, + ...protocol.settlementModulesConfig, + }, + Sequencer: { + Database: {}, + TaskQueue: {}, + ...settlementSequencerModulesConfig, + }, +}); + +await appChain.start(); + +const settlementModule = appChain.sequencer.resolveOrFail( + "SettlementModule", + SettlementModule +); + +const { settlement, dispatch } = settlementModule.getContracts(); + +const fromPrivateKey = PrivateKey.fromBase58( + process.env[process.argv[2]] || process.argv[2] +); + +const amount = process.argv[2] ?? 100 * 1e9; + +const contractBalanceBefore = settlement.account.balance.get(); + +Provable.log("contractBalanceBefore", contractBalanceBefore); + +Provable.log("debug", { + fromPrivateKey: fromPrivateKey.toPublicKey().toBase58(), +}); + +const account = await fetchAccount({ publicKey: fromPrivateKey.toPublicKey() }); +await fetchAccount({ publicKey: settlement.address }); +await fetchAccount({ publicKey: dispatch.address }); + +console.log("existing noonce", { + account: account.account?.publicKey.toBase58(), + nonce: account.account?.nonce.toBigint(), +}); + +const tx = await Mina.transaction( + { + sender: fromPrivateKey.toPublicKey(), + fee: 0.01 * 1e9, + }, + async () => { + const au = AccountUpdate.createSigned(fromPrivateKey.toPublicKey()); + au.balance.subInPlace(UInt64.from(amount)); + // await dispatch.deposit(UInt64.from(amount)); + } +); + +settlementModule.signTransaction(tx, [fromPrivateKey]); + +await tx.prove(); + +const sentTx = await tx.send(); +const includedTx = await sentTx.wait(); + +console.log("Deposit transaction included in a block:"); +console.log(includedTx.toPretty()); diff --git a/packages/chain/src/scripts/generate-keys.ts b/packages/chain/src/scripts/generate-keys.ts new file mode 100644 index 0000000..788d399 --- /dev/null +++ b/packages/chain/src/scripts/generate-keys.ts @@ -0,0 +1,14 @@ +import { PrivateKey, Provable, PublicKey } from "o1js"; + +const numberOFKeysToGenerate = Number(process.argv[2]) || 1; +console.log( + `Generated ${numberOFKeysToGenerate} keys for development purposes:` +); + +for (let i = 0; i < numberOFKeysToGenerate; i++) { + const privateKey = PrivateKey.random(); + const publicKey = privateKey.toPublicKey(); + + console.log("Private key:", privateKey.toBase58()); + console.log("Public key:", publicKey.toBase58()); +} diff --git a/packages/chain/src/scripts/lightnet/faucet.ts b/packages/chain/src/scripts/lightnet/faucet.ts new file mode 100644 index 0000000..21b19db --- /dev/null +++ b/packages/chain/src/scripts/lightnet/faucet.ts @@ -0,0 +1,74 @@ +import { + Account, + AccountUpdate, + fetchAccount, + Lightnet, + Mina, + Provable, + PublicKey, +} from "o1js"; +import "reflect-metadata"; + +// configuration +const fee = 0.1 * 1e9; +const fundingAmount = 1000 * 1e9; + +const net = Mina.Network({ + mina: `${process.env.MINA_NODE_GRAPHQL_HOST!}:${process.env.MINA_NODE_GRAPHQL_PORT!}/graphql`, + archive: `${process.env.MINA_ARCHIVE_GRAPHQL_HOST!}:${process.env.MINA_ARCHIVE_GRAPHQL_PORT!}/graphql`, + lightnetAccountManager: `${process.env.MINA_ACCOUNT_MANAGER_HOST!}:${process.env.MINA_ACCOUNT_MANAGER_PORT!}`, +}); + +Mina.setActiveInstance(net); + +// get the source account from the account manager +const pair = await Lightnet.acquireKeyPair({ + isRegularAccount: true, +}); + +// which account to drip to +const keyArg = process.argv[2]; + +if (!keyArg) { + throw new Error("No key provided"); +} + +const key = PublicKey.fromBase58(keyArg); + +await fetchAccount({ publicKey: pair.publicKey }); + +Provable.log( + `Dripping ${fundingAmount / 1e9} MINA from ${pair.publicKey.toBase58()} to ${key.toBase58()}` +); + +const tx = await Mina.transaction( + { + sender: pair.publicKey, + fee, + }, + async () => { + const account = await fetchAccount({ publicKey: key }); + // if the destination account does not exist yet, pay the creation fee for it + if (account.error) { + AccountUpdate.fundNewAccount(pair.publicKey); + } + + AccountUpdate.createSigned(pair.publicKey).balance.subInPlace( + fundingAmount + ); + AccountUpdate.create(key).balance.addInPlace(fundingAmount); + } +); + +tx.sign([pair.privateKey]); + +const sentTx = await tx.send(); +await sentTx.wait(); + +Provable.log( + `Funded account ${key.toBase58()} with ${fundingAmount / 1e9} MINA` +); + +await Lightnet.releaseKeyPair({ + publicKey: pair.publicKey.toBase58(), +}); diff --git a/packages/chain/src/scripts/settlement/deploy.ts b/packages/chain/src/scripts/settlement/deploy.ts new file mode 100644 index 0000000..56c91b6 --- /dev/null +++ b/packages/chain/src/scripts/settlement/deploy.ts @@ -0,0 +1,146 @@ +import { Runtime, RuntimeModulesRecord } from "@proto-kit/module"; +import { + MandatoryProtocolModulesRecord, + Protocol, + SettlementContractModule, +} from "@proto-kit/protocol"; +import { AppChain, AppChainModulesRecord } from "@proto-kit/sdk"; +import { + ManualBlockTrigger, + MinaTransactionSimulator, + Sequencer, + SequencerModule, + SequencerModulesRecord, + SettlementModule, +} from "@proto-kit/sequencer"; +import { PrivateKey, Provable, Transaction } from "o1js"; +import "reflect-metadata"; +import { container, injectable } from "tsyringe"; +import runtime from "../../runtime"; +import * as protocol from "../../protocol"; +import { + settlementSequencerModules, + settlementSequencerModulesConfig, +} from "../../sequencer"; +import { BullQueue } from "@proto-kit/deployment"; +import { PrismaRedisDatabase } from "@proto-kit/persistance"; +import { CompileRegistry } from "@proto-kit/common"; + +class Noop extends SequencerModule { + public async start() {} +} + +const appChain = AppChain.from({ + Runtime: Runtime.from({ + modules: runtime.modules, + }), + Protocol: Protocol.from({ + modules: { + ...protocol.modules, + ...protocol.settlementModules, + }, + }), + Sequencer: Sequencer.from({ + modules: { + Database: PrismaRedisDatabase, + TaskQueue: BullQueue, + ...settlementSequencerModules, + OutgoingMessageQueue: Noop, + SequencerStartupModule: Noop, + }, + }), + modules: {}, +}); + +appChain.configure({ + Runtime: runtime.config, + Protocol: { + ...protocol.config, + ...protocol.settlementModulesConfig, + }, + Sequencer: { + Database: { + redis: { + host: process.env.REDIS_HOST!, + port: Number(process.env.REDIS_PORT)!, + password: process.env.REDIS_PASSWORD!, + }, + prisma: { + connection: process.env.DATABASE_URL!, + }, + }, + TaskQueue: { + redis: { + host: process.env.REDIS_HOST!, + port: Number(process.env.REDIS_PORT)!, + password: process.env.REDIS_PASSWORD!, + }, + }, + ...settlementSequencerModulesConfig, + }, +}); + +@injectable() +class InlineMinaTransactionSender { + public async proveAndSendTransaction(transaction: Transaction) { + const result = await transaction.send(); + await result.wait(); + } +} + +// TODO: split start & initialize into separate functions, so that we can use the appchain definition/container without starting +appChain.create(() => container); + +console.log("start"); +await appChain.start(); +console.log("after start"); + +const settlementModule = appChain.sequencer.resolveOrFail( + "SettlementModule", + SettlementModule +); + +// stub the transaction sender to work inline, standard transaction sender works with the internal worker flows +(settlementModule as any).transactionSender = new InlineMinaTransactionSender(); + +const settlementContractModule = appChain.protocol.resolveOrFail( + "SettlementContractModule", + SettlementContractModule +); +// TODO: does not respect are proofs enabled, since it does not have access to it DI-wise +const compileRegistry = container.resolve(CompileRegistry); + +console.log("compile"); +// compile contracts for deployment +const contracts = settlementContractModule.getContractClasses(); +for (const contractName in contracts) { + const target = contracts[contractName]; + await compileRegistry.compile(target); +} + +console.log("Deploying settlement contracts..."); + +settlementModule + .deploy( + PrivateKey.fromBase58( + process.env.PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY! + ), + PrivateKey.fromBase58( + process.env.PROTOKIT_DISPATCHER_CONTRACT_PRIVATE_KEY! + ), + PrivateKey.fromBase58( + process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY! + ) + ) + .then(() => { + Provable.log("Deployed and initialized settlement contracts", { + settlement: PrivateKey.fromBase58( + process.env.PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY! + ).toPublicKey(), + dispatcher: PrivateKey.fromBase58( + process.env.PROTOKIT_DISPATCHER_CONTRACT_PRIVATE_KEY! + ).toPublicKey(), + }); + + process.exit(0); + }); diff --git a/packages/chain/src/sequencer/index.ts b/packages/chain/src/sequencer/index.ts index 900b228..bbb485e 100644 --- a/packages/chain/src/sequencer/index.ts +++ b/packages/chain/src/sequencer/index.ts @@ -8,9 +8,16 @@ import { SequencerModulesRecord, TimedBlockTrigger, BlockProducerModule, + MinaBaseLayer, + SettlementModule, + WithdrawalQueue, + ConstantFeeStrategy, + BatchProducerModule, + SequencerStartupModule, } from "@proto-kit/sequencer"; import { ModulesConfig } from "@proto-kit/common"; import { IndexerNotifier } from "@proto-kit/indexer"; +import { PrivateKey, PublicKey } from "o1js"; export const apiSequencerModules = { GraphqlServer, @@ -42,6 +49,7 @@ export const baseSequencerModulesConfig = { BlockTrigger: { blockInterval: Number(process.env.PROTOKIT_BLOCK_INTERVAL!), produceEmptyBlocks: true, + settlementInterval: Number(process.env.PROTOKIT_SETTLEMENT_INTERVAL!), }, } satisfies ModulesConfig; @@ -52,3 +60,51 @@ export const indexerSequencerModules = { export const indexerSequencerModulesConfig = { IndexerNotifier: {}, } satisfies ModulesConfig; + +export const settlementSequencerModules = { + BaseLayer: MinaBaseLayer, + SettlementModule: SettlementModule, + OutgoingMessageQueue: WithdrawalQueue, + FeeStrategy: ConstantFeeStrategy, + BatchProducerModule, + SequencerStartupModule, +} satisfies SequencerModulesRecord; + +export const settlementSequencerModulesConfig = { + BaseLayer: { + network: { + type: "lightnet", + graphql: `${process.env.MINA_NODE_GRAPHQL_HOST!}:${process.env.MINA_NODE_GRAPHQL_PORT!}/graphql`, + archive: `${process.env.MINA_ARCHIVE_GRAPHQL_HOST!}:${process.env.MINA_ARCHIVE_GRAPHQL_PORT!}`, + accountManager: `${process.env.MINA_ACCOUNT_MANAGER_HOST!}:${process.env.MINA_ACCOUNT_MANAGER_PORT!}`, + }, + }, + SettlementModule: { + feepayer: PrivateKey.fromBase58( + process.env.PROTOKIT_SEQUENCER_PRIVATE_KEY! + ), + addresses: { + settlement: PublicKey.fromBase58( + process.env.PROTOKIT_SETTLEMENT_CONTRACT_PUBLIC_KEY! + ), + dispatch: PublicKey.fromBase58( + process.env.PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY! + ), + }, + keys: { + settlement: PrivateKey.fromBase58( + process.env.PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY! + ), + dispatch: PrivateKey.fromBase58( + process.env.PROTOKIT_DISPATCHER_CONTRACT_PRIVATE_KEY! + ), + minaBridge: PrivateKey.fromBase58( + process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY! + ), + }, + }, + OutgoingMessageQueue: {}, + FeeStrategy: {}, + BatchProducerModule: {}, + SequencerStartupModule: {}, +} satisfies ModulesConfig; diff --git a/packages/chain/src/sequencer/worker/index.ts b/packages/chain/src/sequencer/worker/index.ts new file mode 100644 index 0000000..8a7a3fa --- /dev/null +++ b/packages/chain/src/sequencer/worker/index.ts @@ -0,0 +1,34 @@ +import { ModulesConfig } from "@proto-kit/common"; +import { BullQueue } from "@proto-kit/deployment"; +import { + LocalTaskWorkerModule, + MinaBaseLayer, + SettlementModule, + TaskWorkerModulesRecord, + VanillaTaskWorkerModules, +} from "@proto-kit/sequencer"; +import { PrivateKey, PublicKey } from "o1js"; + +export const taskModules = { + ...VanillaTaskWorkerModules.allTasks(), +} satisfies TaskWorkerModulesRecord; + +export const taskModulesConfig = { + ...VanillaTaskWorkerModules.defaultConfig(), +} satisfies ModulesConfig; + +export const workerModules = { + TaskQueue: BullQueue, + LocalTaskWorkerModule: LocalTaskWorkerModule.from(taskModules), +}; + +export const workerModulesConfig = { + TaskQueue: { + redis: { + host: process.env.REDIS_HOST!, + port: Number(process.env.REDIS_PORT)!, + password: process.env.REDIS_PASSWORD!, + }, + }, + LocalTaskWorkerModule: taskModulesConfig, +} satisfies ModulesConfig; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 17692d8..86a4a65 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -43,35 +43,35 @@ importers: specifier: ^3.3.2 version: 3.9.0(react-hook-form@7.53.0(react@18.3.1)) '@proto-kit/api': - specifier: '*' - version: 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) + specifier: ../../../framework/packages/api + version: link:../../../framework/packages/api '@proto-kit/common': - specifier: '*' - version: 0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0) + specifier: ../../../framework/packages/common + version: link:../../../framework/packages/common '@proto-kit/deployment': - specifier: '*' - version: 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/persistance@0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm))(@proto-kit/sdk@0.1.1-develop.1088(kz4qtaab634eddmuun3qxhomby))(@proto-kit/sequencer@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/module@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(bullmq@3.15.8)(o1js@1.6.0)(tsyringe@4.8.0) + specifier: ../../../framework/packages/deployment + version: link:../../../framework/packages/deployment '@proto-kit/indexer': - specifier: '*' - version: 0.1.1-develop.1088(hocwyjk2rt53lj4ewlpy6renly) + specifier: ../../../framework/packages/indexer + version: link:../../../framework/packages/indexer '@proto-kit/library': - specifier: '*' - version: 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) + specifier: ../../../framework/packages/library + version: link:../../../framework/packages/library '@proto-kit/module': - specifier: '*' - version: 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) + specifier: ../../../framework/packages/module + version: link:../../../framework/packages/module '@proto-kit/persistance': - specifier: '*' - version: 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) + specifier: ../../../framework/packages/persistance + version: link:../../../framework/packages/persistance '@proto-kit/protocol': - specifier: '*' - version: 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0) + specifier: ../../../framework/packages/protocol + version: link:../../../framework/packages/protocol '@proto-kit/sdk': - specifier: '*' - version: 0.1.1-develop.1088(kz4qtaab634eddmuun3qxhomby) + specifier: ../../../framework/packages/sdk + version: link:../../../framework/packages/sdk '@proto-kit/sequencer': - specifier: '*' - version: 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/module@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) + specifier: ../../../framework/packages/sequencer + version: link:../../../framework/packages/sequencer '@radix-ui/react-label': specifier: ^2.0.2 version: 2.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -115,8 +115,8 @@ importers: specifier: 14.0.1 version: 14.0.1(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) o1js: - specifier: 1.6.0 - version: 1.6.0 + specifier: ../../../framework/node_modules/o1js + version: link:../../../framework/node_modules/o1js react: specifier: ^18 version: 18.3.1 @@ -139,8 +139,8 @@ importers: specifier: ^1.0.6 version: 1.0.6 tsyringe: - specifier: ^4.7.0 - version: 4.8.0 + specifier: ../../../framework/node_modules/tsyringe + version: link:../../../framework/node_modules/tsyringe zod: specifier: ^3.22.4 version: 3.23.8 @@ -188,53 +188,59 @@ importers: packages/chain: dependencies: '@proto-kit/api': - specifier: '*' - version: 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) + specifier: ../../../framework/packages/api + version: link:../../../framework/packages/api '@proto-kit/common': - specifier: '*' - version: 0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0) + specifier: ../../../framework/packages/common + version: link:../../../framework/packages/common '@proto-kit/deployment': - specifier: '*' - version: 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/persistance@0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm))(@proto-kit/sdk@0.1.1-develop.1088(kz4qtaab634eddmuun3qxhomby))(@proto-kit/sequencer@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/module@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(bullmq@3.15.8)(o1js@1.6.0)(tsyringe@4.8.0) + specifier: ../../../framework/packages/deployment + version: link:../../../framework/packages/deployment '@proto-kit/indexer': - specifier: '*' - version: 0.1.1-develop.1088(74ec4zaiazx4kzm54ghtfrdgfu) + specifier: ../../../framework/packages/indexer + version: link:../../../framework/packages/indexer '@proto-kit/library': - specifier: '*' - version: 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) + specifier: ../../../framework/packages/library + version: link:../../../framework/packages/library '@proto-kit/module': - specifier: '*' - version: 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) + specifier: ../../../framework/packages/module + version: link:../../../framework/packages/module '@proto-kit/persistance': - specifier: '*' - version: 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) + specifier: ../../../framework/packages/persistance + version: link:../../../framework/packages/persistance '@proto-kit/processor': - specifier: '*' - version: 0.1.1-develop.1088(ln4evwhsdfdpimgiv3gq4x5og4) + specifier: ../../../framework/packages/processor + version: link:../../../framework/packages/processor '@proto-kit/protocol': - specifier: '*' - version: 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0) + specifier: ../../../framework/packages/protocol + version: link:../../../framework/packages/protocol '@proto-kit/sdk': - specifier: '*' - version: 0.1.1-develop.1088(kz4qtaab634eddmuun3qxhomby) + specifier: ../../../framework/packages/sdk + version: link:../../../framework/packages/sdk '@proto-kit/sequencer': - specifier: '*' - version: 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/module@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) + specifier: ../../../framework/packages/sequencer + version: link:../../../framework/packages/sequencer graphql-fields: specifier: ^2.0.3 version: 2.0.3 graphql-scalars: specifier: ^1.22.4 version: 1.23.0(graphql@16.9.0) + mina-lightweight-explorer: + specifier: github:o1-labs/mina-lightweight-explorer + version: https://codeload.github.com/o1-labs/mina-lightweight-explorer/tar.gz/b921393d5091035a913d446e38dfdeb29c06cc52 o1js: - specifier: 1.6.0 - version: 1.6.0 + specifier: ../../../framework/node_modules/o1js + version: link:../../../framework/node_modules/o1js reflect-metadata: specifier: ^0.1.13 version: 0.1.14 tsyringe: - specifier: ^4.7.0 - version: 4.8.0 + specifier: ../../../framework/node_modules/tsyringe + version: link:../../../framework/node_modules/tsyringe + type-graphql: + specifier: 2.0.0-rc.2 + version: 2.0.0-rc.2(class-validator@0.14.1)(graphql-scalars@1.23.0(graphql@16.9.0))(graphql@16.9.0) devDependencies: '@jest/globals': specifier: ^29.6.1 @@ -343,18 +349,6 @@ importers: packages: - '@0no-co/graphql.web@1.0.8': - resolution: {integrity: sha512-8BG6woLtDMvXB9Ajb/uE+Zr/U7y4qJ3upXi0JQHZmsKUJa7HjF/gFvmL2f3/mSmfZoQGRr9VoY97LCX2uaFMzA==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - peerDependenciesMeta: - graphql: - optional: true - - '@alcalzone/ansi-tokenize@0.1.3': - resolution: {integrity: sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw==} - engines: {node: '>=14.13.1'} - '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} @@ -553,21 +547,6 @@ packages: '@emotion/hash@0.8.0': resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - '@envelop/core@5.0.2': - resolution: {integrity: sha512-tVL6OrMe6UjqLosiE+EH9uxh2TQC0469GwF4tE014ugRaDDKKVWwFwZe0TBMlcyHKh5MD4ZxktWo/1hqUxIuhw==} - engines: {node: '>=18.0.0'} - - '@envelop/extended-validation@4.1.0': - resolution: {integrity: sha512-S90LQanW+xg3Lkp2sNiHa2KJnXXpKLucKys05Wk5zpiV0vL0SDX+/cuV+tnDhShWJucunAGi34n8xFCXsUUOkA==} - engines: {node: '>=18.0.0'} - peerDependencies: - '@envelop/core': ^5.0.2 - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - - '@envelop/types@5.0.0': - resolution: {integrity: sha512-IPjmgSc4KpQRlO4qbEDnBEixvtb06WDmjKfi/7fkZaryh5HuOmTtixe1EupQI5XfXO8joc3d27uUZ0QdC++euA==} - engines: {node: '>=18.0.0'} - '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -707,69 +686,6 @@ packages: '@floating-ui/utils@0.2.7': resolution: {integrity: sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==} - '@graphql-tools/batch-delegate@9.0.3': - resolution: {integrity: sha512-wYYbDLQeXU+lEUQJDjylN/e1V3OTVkeJSZYgroDniBfg3etDuOJruAIWZ6S6skKB1PZBy1emEbs6HjrziHeX0A==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/batch-execute@9.0.4': - resolution: {integrity: sha512-kkebDLXgDrep5Y0gK1RN3DMUlLqNhg60OAz0lTCqrYeja6DshxLtLkj+zV4mVbBA4mQOEoBmw6g1LZs3dA84/w==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/delegate@10.0.21': - resolution: {integrity: sha512-UytyYVvDfLQbCYG1aQo8Vc67c1WhEjzW9ytYKEEqMJSdlwfMCujHmCz7EyH5DNjTAKapDHuQcN5VivKGap/Beg==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/executor@1.3.1': - resolution: {integrity: sha512-tgJDdGf9SCAm64ofEMZdv925u6/J+eTmv36TGNLxgP2DpCJsZ6gnJ4A+0D28EazDXqJIvMiPd+3d+o3cCRCAnQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/merge@9.0.7': - resolution: {integrity: sha512-lbTrIuXIbUSmSumHkPRY1QX0Z8JEtmRhnIrkH7vkfeEmf0kNn/nCWvJwqokm5U7L+a+DA1wlRM4slIlbfXjJBA==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/schema@10.0.6': - resolution: {integrity: sha512-EIJgPRGzpvDFEjVp+RF1zNNYIC36BYuIeZ514jFoJnI6IdxyVyIRDLx/ykgMdaa1pKQerpfdqDnsF4JnZoDHSQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/stitch@9.2.10': - resolution: {integrity: sha512-p4BOr6YTYZ9xjnHtrd6AsNR9Y2XtRSroSEEdOwv3KTHQLFhOD9wiLxb+UlKiHYm2jtTvL4wl6+TWV9dKCeNQ3g==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/utils@10.5.4': - resolution: {integrity: sha512-XHnyCWSlg1ccsD8s0y6ugo5GZ5TpkTiFVNPSYms5G0s6Z/xTuSmiLBfeqgkfaCwLmLaQnRCmNDL2JRnqc2R5bQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/wrap@10.0.5': - resolution: {integrity: sha512-Cbr5aYjr3HkwdPvetZp1cpDWTGdD1Owgsb3z/ClzhmrboiK86EnQDxDvOJiQkDCPWE9lNBwj8Y4HfxroY0D9DQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-typed-document-node/core@3.2.0': - resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-yoga/logger@2.0.0': - resolution: {integrity: sha512-Mg8psdkAp+YTG1OGmvU+xa6xpsAmSir0hhr3yFYPyLNwzUj95DdIwsMpKadDj9xDpYgJcH3Hp/4JMal9DhQimA==} - engines: {node: '>=18.0.0'} - '@graphql-yoga/subscription@5.0.1': resolution: {integrity: sha512-1wCB1DfAnaLzS+IdoOzELGGnx1ODEg9nzQXFh4u2j02vAnne6d+v4A7HIH9EqzVdPLoAaMKXCZUUdKs+j3z1fg==} engines: {node: '>=18.0.0'} @@ -796,15 +712,6 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead - '@inkjs/ui@1.0.0': - resolution: {integrity: sha512-JAVX5ntXG3QokXsGelobIc1ORkTQiJU4XiemUoMUzVaZkBpwzOD7NkMm0qzKvysDyrE1nD6keFHRhwsRvhVamw==} - engines: {node: '>=14.16'} - peerDependencies: - ink: ^4.2.0 - - '@ioredis/commands@1.2.0': - resolution: {integrity: sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==} - '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -916,9 +823,6 @@ packages: resolution: {integrity: sha512-HjA8x/U/Q78HRRe19yh8HVKoZ+Iaoo3YZjakJYxR+rw52NHo6jM+VE9b8+7ygkCFXl/EHID5wh/MkXaE/jGyYw==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - '@kamilkisiela/fast-url-parser@1.1.4': - resolution: {integrity: sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==} - '@metamask/eth-json-rpc-provider@1.0.1': resolution: {integrity: sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA==} engines: {node: '>=14.0.0'} @@ -960,36 +864,6 @@ packages: '@microsoft/tsdoc@0.14.2': resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} - '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': - resolution: {integrity: sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==} - cpu: [arm64] - os: [darwin] - - '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': - resolution: {integrity: sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==} - cpu: [x64] - os: [darwin] - - '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': - resolution: {integrity: sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==} - cpu: [arm64] - os: [linux] - - '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': - resolution: {integrity: sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==} - cpu: [arm] - os: [linux] - - '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': - resolution: {integrity: sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==} - cpu: [x64] - os: [linux] - - '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': - resolution: {integrity: sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==} - cpu: [x64] - os: [win32] - '@next/env@14.0.1': resolution: {integrity: sha512-Ms8ZswqY65/YfcjrlcIwMPD7Rg/dVjdLapMcSHG26W6O67EJDF435ShW4H4LXi1xKO1oRc97tLXUpx8jpLe86A==} @@ -1100,15 +974,6 @@ packages: prisma: optional: true - '@prisma/client@5.20.0': - resolution: {integrity: sha512-CLv55ZuMuUawMsxoqxGtLT3bEZoa2W8L3Qnp6rDIFWy+ZBrUcOFKdoeGPSnbBqxc3SkdxJrF+D1veN/WNynZYA==} - engines: {node: '>=16.13'} - peerDependencies: - prisma: '*' - peerDependenciesMeta: - prisma: - optional: true - '@prisma/debug@5.18.0': resolution: {integrity: sha512-f+ZvpTLidSo3LMJxQPVgAxdAjzv5OpzAo/eF8qZqbwvgi2F5cTOI9XCpdRzJYA0iGfajjwjOKKrVq64vkxEfUw==} @@ -1151,122 +1016,6 @@ packages: '@prisma/schema-files-loader@5.19.1': resolution: {integrity: sha512-YYB6Mm7E2YFZAp8GsTCWdqAoehRhiDWQ+M4EwxXwCNfQnciGywGpjDOghJo0ErbGET1v/u0Xszn727cZvdlbPQ==} - '@proto-kit/api@0.1.1-develop.1088': - resolution: {integrity: sha512-gKRq8+wR1DTEnc2sjCICwo4cc39ZKW2ZxRu6MPd3CxGPGptJ7kh6x99TwxxIUJPSN8gdNUOqB2i40aHnFz2AOw==} - peerDependencies: - '@proto-kit/common': '*' - '@proto-kit/module': '*' - '@proto-kit/protocol': '*' - '@proto-kit/sequencer': '*' - o1js: ^1.1.0 - tsyringe: ^4.7.0 - - '@proto-kit/common@0.1.1-develop.1088': - resolution: {integrity: sha512-vQJpDmsA2MwI7JjAmOgdAorIxxr9o9KnqYHg+5gjl/0v0B48/Q7SU4bNUnLvOxt+QymgUNqOlZgciPBuCmElEw==} - peerDependencies: - o1js: ^1.1.0 - tsyringe: ^4.7.0 - - '@proto-kit/deployment@0.1.1-develop.1088': - resolution: {integrity: sha512-ZBEjWpDDqJMZ1rlyEKd1gb9fDT+YJ+3wyfwwaq972V8kguMJVvAHvOePzvo6/FBCeLRGHhykukTyvkoBLrYa9g==} - peerDependencies: - '@proto-kit/common': '*' - '@proto-kit/persistance': '*' - '@proto-kit/sdk': '*' - '@proto-kit/sequencer': '*' - bullmq: ^3.15.8 - o1js: ^1.1.0 - tsyringe: ^4.7.0 - - '@proto-kit/indexer@0.1.1-develop.1088': - resolution: {integrity: sha512-aGpWPzupHgcT1ED692pZZTewMpAqNia8Dp3ZbOTtf3V1wa0TRL+kaVmSKPKUzmdLpCuXhUx3xFEVI5gXXGpc6g==} - peerDependencies: - '@proto-kit/api': '*' - '@proto-kit/common': '*' - '@proto-kit/library': '*' - '@proto-kit/module': '*' - '@proto-kit/persistance': '*' - '@proto-kit/protocol': '*' - '@proto-kit/sdk': '*' - '@proto-kit/sequencer': '*' - koa: ^2.14.2 - o1js: ^1.1.0 - tsyringe: ^4.7.0 - type-graphql: 2.0.0-rc.2 - typegraphql-prisma: '0.28' - - '@proto-kit/library@0.1.1-develop.1088': - resolution: {integrity: sha512-dfgNhQ4uMbcqny8TN8iR+ZwfpJQm1A1ZXPfK8S/v4WLT+r0ppuLA7HOg6a8oyzlYNrESuMfDslsE/SDkoKroig==} - peerDependencies: - '@proto-kit/common': '*' - '@proto-kit/module': '*' - '@proto-kit/protocol': '*' - '@proto-kit/sequencer': '*' - o1js: ^1.1.0 - tsyringe: ^4.7.0 - - '@proto-kit/module@0.1.1-develop.1088': - resolution: {integrity: sha512-9K32oGNKmGsnNYkNt3EHxvKK0bKMGLdz6YNjrKcksMT6hwC0DL8X/oz5CJ3FxmEx3q4haF7SSqmCE/Vr6i88Mw==} - peerDependencies: - '@proto-kit/common': '*' - '@proto-kit/protocol': '*' - o1js: ^1.1.0 - tsyringe: ^4.7.0 - - '@proto-kit/persistance@0.1.1-develop.1088': - resolution: {integrity: sha512-otXJuhcHe+BLpZtqWN/MrbFFxpvDWocY529O9gePUIbuzMcECG+Q73SlPGoTk9y72bOI/yr69HLAam45b/I8mQ==} - peerDependencies: - '@proto-kit/common': '*' - '@proto-kit/module': '*' - '@proto-kit/protocol': '*' - '@proto-kit/sequencer': '*' - o1js: ^1.1.0 - tsyringe: ^4.7.0 - - '@proto-kit/processor@0.1.1-develop.1088': - resolution: {integrity: sha512-sw73nJgZKhXnWHNGlewqPJwCsw0xAXD5CkuGqA9Kg52pYpyAvopnHES6GflMAAsLeBWQzwM6SSQU3nCDBdkG7g==} - peerDependencies: - '@proto-kit/api': '*' - '@proto-kit/common': '*' - '@proto-kit/library': '*' - '@proto-kit/module': '*' - '@proto-kit/persistance': '*' - '@proto-kit/protocol': '*' - '@proto-kit/sdk': '*' - '@proto-kit/sequencer': '*' - o1js: ^1.1.0 - tsyringe: ^4.7.0 - type-graphql: 2.0.0-rc.2 - typegraphql-prisma: ^0.28 - - '@proto-kit/protocol@0.1.1-develop.1088': - resolution: {integrity: sha512-mZldR8ZykbzttwS4+oEGgZU9gfOXLa1gowYpgYlgQnBu1brphENIP6n0nrtt7Gh88436igf6Nb+DvqlKXc7mmQ==} - peerDependencies: - '@proto-kit/common': '*' - o1js: ^1.1.0 - ts-pattern: ^4.3.0 - tsyringe: ^4.7.0 - - '@proto-kit/sdk@0.1.1-develop.1088': - resolution: {integrity: sha512-ZoENXMAPvvXqohATbdDZBEmiJKfyQWo02kK1wpqdy8y8f0oBf+VeDs/uS0XH7fCDo/eVKbI41wRk5aGrKfvxFw==} - peerDependencies: - '@proto-kit/common': '*' - '@proto-kit/library': '*' - '@proto-kit/module': '*' - '@proto-kit/protocol': '*' - '@proto-kit/sequencer': '*' - o1js: ^1.1.0 - tsyringe: ^4.7.0 - - '@proto-kit/sequencer@0.1.1-develop.1088': - resolution: {integrity: sha512-1JbKUvTooEXmj2PIVXV3DKnBJIHs2zfSFueWvUqZlojqr1iKTu6AqcqxHZWThAAQ8AvSV0gnNsV+65teSSLDiA==} - peerDependencies: - '@proto-kit/common': '*' - '@proto-kit/module': '*' - '@proto-kit/protocol': '*' - o1js: ^1.1.0 - tsyringe: ^4.7.0 - '@radix-ui/primitive@1.1.0': resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==} @@ -1563,35 +1312,6 @@ packages: react-dom: '>=17' wagmi: ^0.4.2 - '@redis/bloom@1.2.0': - resolution: {integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==} - peerDependencies: - '@redis/client': ^1.0.0 - - '@redis/client@1.6.0': - resolution: {integrity: sha512-aR0uffYI700OEEH4gYnitAnv3vzVGXCFvYfdpu/CJKvk4pHfLPEy/JSZyrpQ+15WhXe1yJRXLtfQ84s4mEXnPg==} - engines: {node: '>=14'} - - '@redis/graph@1.1.1': - resolution: {integrity: sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==} - peerDependencies: - '@redis/client': ^1.0.0 - - '@redis/json@1.0.7': - resolution: {integrity: sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==} - peerDependencies: - '@redis/client': ^1.0.0 - - '@redis/search@1.2.0': - resolution: {integrity: sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==} - peerDependencies: - '@redis/client': ^1.0.0 - - '@redis/time-series@1.1.0': - resolution: {integrity: sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==} - peerDependencies: - '@redis/client': ^1.0.0 - '@repeaterjs/repeater@3.0.6': resolution: {integrity: sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==} @@ -1668,9 +1388,6 @@ packages: '@types/graphql-fields@1.3.9': resolution: {integrity: sha512-HynTnp1HrE58uYcFcAK5UOfdrHSOIHDLCjvMU4yCmQLMj21uo7ZiZqnDGrD27pgCgHH5a1e8GYNK98Ndmma7ig==} - '@types/humanize-duration@3.27.4': - resolution: {integrity: sha512-yaf7kan2Sq0goxpbcwTQ+8E9RP6HutFBPv74T/IA/ojcHKhuKVlk2YFYyHhWZeLvZPzzLE3aatuQB4h0iqyyUA==} - '@types/istanbul-lib-coverage@2.0.6': resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -1820,9 +1537,6 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@urql/core@4.3.0': - resolution: {integrity: sha512-wT+FeL8DG4x5o6RfHEnONNFVDM3616ouzATMYUClB6CB+iIu2mwfBKd7xSUxYOZmwtxna5/hDRQdMl3nbQZlnw==} - '@vanilla-extract/css@1.7.0': resolution: {integrity: sha512-2Abpr5aJskwKS+waMWxWnTBqq/rj4J93KtGteW0VSORMUsijrupwjOXECd7Llh+nSFfx/Y6usuexF5/ffyDF8A==} @@ -1945,22 +1659,6 @@ packages: resolution: {integrity: sha512-ApcWxkrs1WmEMS2CaLLFUEem/49erT3sxIVjpzU5f6zmVcnijtDSrhoK2zVobOIikZJdH63jdAXOrvjf6eOUNQ==} engines: {node: '>=18.0.0'} - '@whatwg-node/fetch@0.9.21': - resolution: {integrity: sha512-Wt0jPb+04JjobK0pAAN7mEHxVHcGA9HoP3OyCsZtyAecNQeADXCZ1MihFwVwjsgaRYuGVmNlsCmLxlG6mor8Gw==} - engines: {node: '>=18.0.0'} - - '@whatwg-node/node-fetch@0.5.26': - resolution: {integrity: sha512-4jXDeZ4IH4bylZ6wu14VEx0aDXXhrN4TC279v9rPmn08g4EYekcYf8wdcOOnS9STjDkb6x77/6xBUTqxGgjr8g==} - engines: {node: '>=18.0.0'} - - '@whatwg-node/server@0.9.49': - resolution: {integrity: sha512-3KzLXw80gWnTsQ746G/LFdCThTPfDodjQs4PnmoNuPa6XUOl4HWq8TlJpxtmnEEB+y+UYLal+3VQ68dtYlbUDQ==} - engines: {node: '>=18.0.0'} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1988,10 +1686,6 @@ packages: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} - ansi-escapes@6.2.1: - resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} - engines: {node: '>=14.16'} - ansi-regex@4.1.1: resolution: {integrity: sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==} engines: {node: '>=6'} @@ -2093,10 +1787,6 @@ packages: async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - auto-bind@5.0.1: - resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - autoprefixer@10.4.20: resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} engines: {node: ^10 || ^12 || >=14} @@ -2157,16 +1847,10 @@ packages: resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} engines: {node: '>=0.6'} - bigint-isqrt@0.3.2: - resolution: {integrity: sha512-hfd7Ka2XKmBIAQWWDrDHTCkGsSfZMFjgcB3eCnDtZHsDiszSk+CQvnq16nGYIKuDMBvnSAvjnihoumJDpMnv7A==} - binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - blakejs@1.2.1: - resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} - bn.js@4.11.8: resolution: {integrity: sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==} @@ -2245,21 +1929,10 @@ packages: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} - bullmq@3.15.8: - resolution: {integrity: sha512-k3uimHGhl5svqD7SEak+iI6c5DxeLOaOXzCufI9Ic0ST3nJr69v71TGR4cXCTXdgCff3tLec5HgoBnfyWjgn5A==} - busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} - cache-content-type@1.0.1: - resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} - engines: {node: '>= 6.0.0'} - - cachedir@2.4.0: - resolution: {integrity: sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==} - engines: {node: '>=6'} - call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -2296,10 +1969,6 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} @@ -2328,22 +1997,6 @@ packages: resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} engines: {node: '>=4'} - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - - cli-truncate@3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -2373,10 +2026,6 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - cluster-key-slot@1.1.2: - resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} - engines: {node: '>=0.10.0'} - co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -2384,10 +2033,6 @@ packages: code-block-writer@13.0.2: resolution: {integrity: sha512-XfXzAGiStXSmCIwrkdfvc7FS5Dtj8yelCtyOf2p2skCAfvLd6zu0rGzuS9NSCO3bq1JKpFZ7tbKdKlcd5occQA==} - code-excerpt@4.0.0: - resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - collect-v8-coverage@1.0.2: resolution: {integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==} @@ -2404,38 +2049,16 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - comlink@4.4.1: - resolution: {integrity: sha512-+1dlx0aY5Jo1vHy/tSsIGpSkN4tS9rZSW8FIhG0JH/crs9wwweswIo/POr451r7bZww3hFbPAKnTpimzL/mm4Q==} - commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - compute-gcd@1.2.1: - resolution: {integrity: sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - convert-to-spaces@2.0.1: - resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - cookies@0.9.1: - resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} - engines: {node: '>= 0.8'} - copy-to-clipboard@3.3.3: resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} @@ -2464,17 +2087,9 @@ packages: create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - cron-parser@4.9.0: - resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==} - engines: {node: '>=12.0.0'} - cross-fetch@3.1.8: resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} - cross-inspect@1.0.1: - resolution: {integrity: sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==} - engines: {node: '>=16.0.0'} - cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -2512,9 +2127,6 @@ packages: resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} engines: {node: '>= 0.4'} - dataloader@2.2.2: - resolution: {integrity: sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==} - debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -2548,9 +2160,6 @@ packages: babel-plugin-macros: optional: true - deep-equal@1.0.1: - resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} - deep-equal@2.2.3: resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} @@ -2573,28 +2182,9 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - - denque@2.1.0: - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} - engines: {node: '>=0.10'} - - depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - des.js@1.1.0: resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-browser@5.2.0: resolution: {integrity: sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA==} @@ -2602,10 +2192,6 @@ packages: resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==} engines: {node: '>=12.20'} - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} - engines: {node: '>=8'} - detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -2668,16 +2254,9 @@ packages: resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} engines: {node: '>=12'} - dset@3.1.3: - resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} - engines: {node: '>=4'} - eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - eip1193-provider@1.0.1: resolution: {integrity: sha512-kSuqwQ26d7CzuS/t3yRXo2Su2cVH0QfvyKbr2H7Be7O5YDyIq4hQGCNTo5wRdP07bt+E2R/8nPCzey4ojBHf7g==} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. @@ -2712,10 +2291,6 @@ packages: encode-utf8@1.0.3: resolution: {integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==} - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - enhanced-resolve@5.17.1: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} @@ -2761,9 +2336,6 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -2776,10 +2348,6 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - eslint-config-next@14.0.1: resolution: {integrity: sha512-QfIFK2WD39H4WOespjgf6PLv9Bpsd7KGGelCtmq4l67nGvnlsGpuvj0hIT+aIy6p5gKH+lAChYILsyDlxP52yg==} peerDependencies: @@ -3014,9 +2582,6 @@ packages: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - fast-decode-uri-component@1.0.1: - resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -3030,9 +2595,6 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-querystring@1.1.2: - resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} - fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} @@ -3042,15 +2604,6 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - figlet@1.7.0: - resolution: {integrity: sha512-gO8l3wvqo0V7wEFLXPbkX83b7MVjRrk1oRLfYlZXol8nEpb/ON9pcKLI4qpBv5YtOTfrINtqb7b40iYY2FTWFg==} - engines: {node: '>= 0.4.0'} - hasBin: true - - figures@5.0.0: - resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==} - engines: {node: '>=14'} - file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -3100,10 +2653,6 @@ packages: fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} @@ -3126,10 +2675,6 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - generic-pool@3.9.0: - resolution: {integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==} - engines: {node: '>= 4'} - gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -3191,11 +2736,6 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported - globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -3239,12 +2779,6 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - graphql-yoga@5.7.0: - resolution: {integrity: sha512-QyGVvFAvGhMrzjJvhjsxsyoE+e4lNrj5f5qOsRYJuWIjyw7tHfbBvybZIwzNOGY0aB5sgA8BlVvu5hxjdKJ5tQ==} - engines: {node: '>=18.0.0'} - peerDependencies: - graphql: ^15.2.0 || ^16.0.0 - graphql@16.9.0: resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} @@ -3299,21 +2833,10 @@ packages: html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - http-assert@1.5.0: - resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} - engines: {node: '>= 0.8'} - - http-errors@1.8.1: - resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} - engines: {node: '>= 0.6'} - human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - humanize-duration@3.32.1: - resolution: {integrity: sha512-inh5wue5XdfObhu/IGEMiA1nUXigSGcaKNemcbLRKa7jXYGDZXr3LoT9pTIzq2hPEbld7w/qv9h+ikWGz8fL1g==} - ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -3344,10 +2867,6 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -3355,25 +2874,6 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - ink-ascii@0.0.4: - resolution: {integrity: sha512-x6mZTHevoiAHgxrhxMpSc2p0lomq34uyGjwEFkpku7Rhxg30/MBnAi9gCHR17SMmaqRDzQRp1MS9s8Qvd4RHsA==} - peerDependencies: - ink: '>=2.5.0' - react: '>=16.11.0' - - ink@4.4.1: - resolution: {integrity: sha512-rXckvqPBB0Krifk5rn/5LvQGmyXwCUpBfmTwbkQNBY9JY8RSl3b8OftBNEYxg4+SWUhEKcPifgope28uL9inlA==} - engines: {node: '>=14.16'} - peerDependencies: - '@types/react': '>=18.0.0' - react: '>=18.0.0' - react-devtools-core: ^4.19.1 - peerDependenciesMeta: - '@types/react': - optional: true - react-devtools-core: - optional: true - internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} @@ -3381,10 +2881,6 @@ packages: invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} - ioredis@5.4.1: - resolution: {integrity: sha512-2YZsvl7jopIa1gaePkeMtd9rAcSjOOjPtpcLlOeusyO+XH2SK5ZcT+UCrElPP+WVIInh2TzeI4XW9ENaSLVVHA==} - engines: {node: '>=12.22.0'} - is-arguments@1.1.1: resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} engines: {node: '>= 0.4'} @@ -3422,10 +2918,6 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true - is-core-module@2.15.1: resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} engines: {node: '>= 0.4'} @@ -3453,10 +2945,6 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - is-generator-fn@2.1.0: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} @@ -3469,9 +2957,6 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-lower-case@2.0.2: - resolution: {integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==} - is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -3531,13 +3016,6 @@ packages: is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - - is-upper-case@2.0.2: - resolution: {integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==} - is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -3558,9 +3036,6 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - isomorphic-fetch@3.0.0: - resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==} - istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -3665,19 +3140,6 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-mock-extended@3.0.7: - resolution: {integrity: sha512-7lsKdLFcW9B9l5NzZ66S/yTQ9k8rFtnwYdCNuRU/81fqDWicNDVhitTSPnrGmNeNm0xyw0JHexEOShrIKRCIRQ==} - peerDependencies: - jest: ^24.0.0 || ^25.0.0 || ^26.0.0 || ^27.0.0 || ^28.0.0 || ^29.0.0 - typescript: ^3.0.0 || ^4.0.0 || ^5.0.0 - - jest-mock-extended@4.0.0-beta1: - resolution: {integrity: sha512-MYcI0wQu3ceNhqKoqAJOdEfsVMamAFqDTjoLN5Y45PAG3iIm4WGnhOu0wpMjlWCexVPO71PMoNir9QrGXrnIlw==} - peerDependencies: - '@jest/globals': ^28.0.0 || ^29.0.0 - jest: ^24.0.0 || ^25.0.0 || ^26.0.0 || ^27.0.0 || ^28.0.0 || ^29.0.0 - typescript: ^3.0.0 || ^4.0.0 || ^5.0.0 - jest-mock@29.7.0: resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3748,9 +3210,6 @@ packages: jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - js-sha256@0.9.0: - resolution: {integrity: sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==} - js-sha3@0.8.0: resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} @@ -3818,10 +3277,6 @@ packages: resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} engines: {node: '>=10.0.0'} - keygrip@1.1.0: - resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} - engines: {node: '>= 0.6'} - keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -3832,17 +3287,6 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - koa-compose@4.1.0: - resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} - - koa-convert@2.0.0: - resolution: {integrity: sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==} - engines: {node: '>= 10'} - - koa@2.15.3: - resolution: {integrity: sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==} - engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} - language-subtag-registry@0.3.23: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} @@ -3887,15 +3331,9 @@ packages: lodash.castarray@4.4.0: resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} - lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} - lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} - lodash.isarguments@3.1.0: - resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} - lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} @@ -3927,10 +3365,6 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 - luxon@3.5.0: - resolution: {integrity: sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==} - engines: {node: '>=12'} - make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -3947,10 +3381,6 @@ packages: md5.js@1.3.5: resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -3972,14 +3402,6 @@ packages: resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} hasBin: true - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -3988,6 +3410,10 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} + mina-lightweight-explorer@https://codeload.github.com/o1-labs/mina-lightweight-explorer/tar.gz/b921393d5091035a913d446e38dfdeb29c06cc52: + resolution: {tarball: https://codeload.github.com/o1-labs/mina-lightweight-explorer/tar.gz/b921393d5091035a913d446e38dfdeb29c06cc52} + version: 0.0.0 + minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} @@ -4024,13 +3450,6 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - msgpackr-extract@3.0.3: - resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} - hasBin: true - - msgpackr@1.11.0: - resolution: {integrity: sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw==} - mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -4045,10 +3464,6 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - next-themes@0.2.1: resolution: {integrity: sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A==} peerDependencies: @@ -4083,10 +3498,6 @@ packages: encoding: optional: true - node-gyp-build-optional-packages@5.2.2: - resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} - hasBin: true - node-gyp-build@4.8.2: resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} hasBin: true @@ -4126,11 +3537,6 @@ packages: resolution: {integrity: sha512-wAOd0moNX2kSA2FNvt8+7ORwYaJpQ1ZoWjUYdb1bBCxq4nkWuU0IiJa9VpVxrj5Ks+FGXQd62OC/Bjk0aSr+dg==} hasBin: true - o1js@1.6.0: - resolution: {integrity: sha512-5pHCM0qIHG+MhLlcRJZRK8YFC7MOCjlxwSYbmrLDKER267eUip7JRDtWATytIRxtCPqOBvqKeJb0hR/mvjWxqg==} - engines: {node: '>=18.14.0'} - hasBin: true - object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -4174,10 +3580,6 @@ packages: oblivious-set@1.0.0: resolution: {integrity: sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==} - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -4185,9 +3587,6 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - only@0.0.2: - resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==} - optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -4234,14 +3633,6 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - - patch-console@2.0.0: - resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -4451,11 +3842,6 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - prisma-mock@0.10.3: - resolution: {integrity: sha512-VOAsIU/gtWDUOyY2POz9HhpMVNeXhVAJdVeLLQs99j1KXcdw8nys/e6K1mKeVvt/Pc3RgE8DeEdCNPMrQTFwVA==} - peerDependencies: - '@prisma/client': ^3.5.0 || ^4.7.0 || ^5.0.0 - prisma@5.18.0: resolution: {integrity: sha512-+TrSIxZsh64OPOmaSgVPH7ALL9dfU0jceYaMJXsNrTkFHO7/3RANi5K2ZiPB1De9+KDxCWn7jvRq8y8pvk+o9g==} engines: {node: '>=16.13'} @@ -4547,12 +3933,6 @@ packages: react-native: optional: true - react-reconciler@0.29.2: - resolution: {integrity: sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==} - engines: {node: '>=0.10.0'} - peerDependencies: - react: ^18.3.1 - react-remove-scroll-bar@2.3.6: resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} engines: {node: '>=10'} @@ -4609,17 +3989,6 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - redis-errors@1.2.0: - resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} - engines: {node: '>=4'} - - redis-parser@3.0.0: - resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} - engines: {node: '>=4'} - - redis@4.7.0: - resolution: {integrity: sha512-zvmkHEAdGMn+hMRXuMBtu4Vo5P6rHQjLoHftu+lBqq8ZTA3RCVC/WzD790bkKKiNFp7d5/9PcSD19fJyyRvOdQ==} - reflect-metadata@0.1.14: resolution: {integrity: sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==} @@ -4682,10 +4051,6 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -4752,9 +4117,6 @@ packages: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - sha.js@2.4.11: resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} hasBin: true @@ -4797,14 +4159,6 @@ packages: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} - slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} - - slice-ansi@6.0.0: - resolution: {integrity: sha512-6bn4hRfkTvDfUoEQYkERg0BVF1D0vrX9HEkMl08uDiNWvVvjylLHvZFZWkDo6wjT8tUctbYl1nCOuE66ZTaUtA==} - engines: {node: '>=14.16'} - sort-object-keys@1.1.3: resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} @@ -4846,13 +4200,6 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} - standard-as-callback@2.1.0: - resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} - - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - stop-iteration-iterator@1.0.0: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} @@ -5033,10 +4380,6 @@ packages: toggle-selection@1.0.6: resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - touch@3.1.1: resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} hasBin: true @@ -5053,14 +4396,6 @@ packages: peerDependencies: typescript: '>=4.2.0' - ts-essentials@10.0.2: - resolution: {integrity: sha512-Xwag0TULqriaugXqVdDiGZ5wuZpqABZlpwQ2Ho4GDyiu/R2Xjkp/9+zcFxL7uzeLl/QCPrflnvpVYyS3ouT7Zw==} - peerDependencies: - typescript: '>=4.5.0' - peerDependenciesMeta: - typescript: - optional: true - ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -5088,9 +4423,6 @@ packages: esbuild: optional: true - ts-mixer@6.0.4: - resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==} - ts-morph@23.0.0: resolution: {integrity: sha512-FcvFx7a9E8TUe6T3ShihXJLiJOiqyafzFKUO4aqIHDUCIvADdGNShcbc2W5PMr3LerXRv7mafvFZ9lRENxJmug==} @@ -5108,9 +4440,6 @@ packages: '@swc/wasm': optional: true - ts-pattern@4.3.0: - resolution: {integrity: sha512-pefrkcd4lmIVR0LA49Imjf9DYLK8vtWhqBPA3Ya1ir8xCW0O2yjL9dsCVvI7pCodLC5q7smNpEtDR2yVulQxOg==} - tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} @@ -5120,20 +4449,12 @@ packages: tslib@2.7.0: resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} - tsscmp@1.0.6: - resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} - engines: {node: '>=0.6.x'} - tsutils@3.21.0: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - tsyringe@4.8.0: - resolution: {integrity: sha512-YB1FG+axdxADa3ncEtRnQCFq/M0lALGLxSZeVNbTU8NqhOVc51nnv2CISTcvc1kyv6EGPtXVr0v6lWeDxiijOA==} - engines: {node: '>= 6.0.0'} - turbo-darwin-64@2.1.2: resolution: {integrity: sha512-3TEBxHWh99h2yIzkuIigMEOXt/ItYQp0aPiJjPd1xN4oDcsKK5AxiFKPH9pdtfIBzYsY59kQhZiFj0ELnSP7Bw==} cpu: [x64] @@ -5176,10 +4497,6 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - type-fest@0.12.0: - resolution: {integrity: sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==} - engines: {node: '>=10'} - type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -5207,10 +4524,6 @@ packages: class-validator: optional: true - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - typed-array-buffer@1.0.2: resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} @@ -5244,9 +4557,6 @@ packages: tslib: ^2.6.3 type-graphql: ^1.1.1 || >=1.2.0-rc || >=2.0.0-beta || >=2.0.0-rc - typescript-memoize@1.1.1: - resolution: {integrity: sha512-GQ90TcKpIH4XxYTI2F98yEQYZgjNMOGPpOgdjIBhaLaWji5HPWlRnZ4AeA1hfBxtY7bCGDJsqDDHk/KaHOl5bA==} - typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} @@ -5286,9 +4596,6 @@ packages: resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} engines: {node: '>= 0.4'} - urlpattern-polyfill@10.0.0: - resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} - use-callback-ref@1.3.2: resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} engines: {node: '>=10'} @@ -5334,32 +4641,9 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - validate.io-array@1.0.6: - resolution: {integrity: sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==} - - validate.io-function@1.0.2: - resolution: {integrity: sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==} - - validate.io-integer-array@1.0.0: - resolution: {integrity: sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==} - - validate.io-integer@1.0.5: - resolution: {integrity: sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==} - - validate.io-number@1.0.3: - resolution: {integrity: sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==} - - validator@13.12.0: - resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} - engines: {node: '>= 0.10'} - - value-or-promise@1.0.12: - resolution: {integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==} - engines: {node: '>=12'} - - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} + validator@13.12.0: + resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} + engines: {node: '>= 0.10'} wagmi@0.4.12: resolution: {integrity: sha512-YfpRAJyGL9YvtecYDf6cUT6yaIBksHK9JZyq3WlVMUfeTleFmsqCiIaIaKhlPcE+NZxSsUHz1jbZw8KLWTcwvA==} @@ -5377,9 +4661,6 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - whatwg-fetch@3.6.20: - resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} - whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -5406,13 +4687,6 @@ packages: engines: {node: '>= 8'} hasBin: true - widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} - - wonka@6.3.4: - resolution: {integrity: sha512-CjpbqNtBGNAeyNS/9W6q3kSkKE52+FjIj7AkFlLr11s/VWGUu6a2CdYSdGxocIhIVjaW/zchesBQUKPVU69Cqg==} - word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -5476,18 +4750,6 @@ packages: utf-8-validate: optional: true - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -5502,9 +4764,6 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.5.1: resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} engines: {node: '>= 14'} @@ -5532,10 +4791,6 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} - ylru@1.4.0: - resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==} - engines: {node: '>= 4.0.0'} - yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -5544,9 +4799,6 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yoga-wasm-web@0.3.3: - resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==} - zod@3.23.8: resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} @@ -5567,15 +4819,6 @@ packages: snapshots: - '@0no-co/graphql.web@1.0.8(graphql@16.9.0)': - optionalDependencies: - graphql: 16.9.0 - - '@alcalzone/ansi-tokenize@0.1.3': - dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 - '@alloc/quick-lru@5.2.0': {} '@ampproject/remapping@2.3.0': @@ -5816,22 +5059,6 @@ snapshots: '@emotion/hash@0.8.0': {} - '@envelop/core@5.0.2': - dependencies: - '@envelop/types': 5.0.0 - tslib: 2.7.0 - - '@envelop/extended-validation@4.1.0(@envelop/core@5.0.2)(graphql@16.9.0)': - dependencies: - '@envelop/core': 5.0.2 - '@graphql-tools/utils': 10.5.4(graphql@16.9.0) - graphql: 16.9.0 - tslib: 2.7.0 - - '@envelop/types@5.0.0': - dependencies: - tslib: 2.7.0 - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 @@ -6147,95 +5374,6 @@ snapshots: '@floating-ui/utils@0.2.7': {} - '@graphql-tools/batch-delegate@9.0.3(graphql@16.9.0)': - dependencies: - '@graphql-tools/delegate': 10.0.21(graphql@16.9.0) - '@graphql-tools/utils': 10.5.4(graphql@16.9.0) - dataloader: 2.2.2 - graphql: 16.9.0 - tslib: 2.7.0 - value-or-promise: 1.0.12 - - '@graphql-tools/batch-execute@9.0.4(graphql@16.9.0)': - dependencies: - '@graphql-tools/utils': 10.5.4(graphql@16.9.0) - dataloader: 2.2.2 - graphql: 16.9.0 - tslib: 2.7.0 - value-or-promise: 1.0.12 - - '@graphql-tools/delegate@10.0.21(graphql@16.9.0)': - dependencies: - '@graphql-tools/batch-execute': 9.0.4(graphql@16.9.0) - '@graphql-tools/executor': 1.3.1(graphql@16.9.0) - '@graphql-tools/schema': 10.0.6(graphql@16.9.0) - '@graphql-tools/utils': 10.5.4(graphql@16.9.0) - '@repeaterjs/repeater': 3.0.6 - dataloader: 2.2.2 - graphql: 16.9.0 - tslib: 2.7.0 - - '@graphql-tools/executor@1.3.1(graphql@16.9.0)': - dependencies: - '@graphql-tools/utils': 10.5.4(graphql@16.9.0) - '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) - '@repeaterjs/repeater': 3.0.6 - graphql: 16.9.0 - tslib: 2.7.0 - value-or-promise: 1.0.12 - - '@graphql-tools/merge@9.0.7(graphql@16.9.0)': - dependencies: - '@graphql-tools/utils': 10.5.4(graphql@16.9.0) - graphql: 16.9.0 - tslib: 2.7.0 - - '@graphql-tools/schema@10.0.6(graphql@16.9.0)': - dependencies: - '@graphql-tools/merge': 9.0.7(graphql@16.9.0) - '@graphql-tools/utils': 10.5.4(graphql@16.9.0) - graphql: 16.9.0 - tslib: 2.7.0 - value-or-promise: 1.0.12 - - '@graphql-tools/stitch@9.2.10(graphql@16.9.0)': - dependencies: - '@graphql-tools/batch-delegate': 9.0.3(graphql@16.9.0) - '@graphql-tools/delegate': 10.0.21(graphql@16.9.0) - '@graphql-tools/executor': 1.3.1(graphql@16.9.0) - '@graphql-tools/merge': 9.0.7(graphql@16.9.0) - '@graphql-tools/schema': 10.0.6(graphql@16.9.0) - '@graphql-tools/utils': 10.5.4(graphql@16.9.0) - '@graphql-tools/wrap': 10.0.5(graphql@16.9.0) - graphql: 16.9.0 - tslib: 2.7.0 - value-or-promise: 1.0.12 - - '@graphql-tools/utils@10.5.4(graphql@16.9.0)': - dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) - cross-inspect: 1.0.1 - dset: 3.1.3 - graphql: 16.9.0 - tslib: 2.7.0 - - '@graphql-tools/wrap@10.0.5(graphql@16.9.0)': - dependencies: - '@graphql-tools/delegate': 10.0.21(graphql@16.9.0) - '@graphql-tools/schema': 10.0.6(graphql@16.9.0) - '@graphql-tools/utils': 10.5.4(graphql@16.9.0) - graphql: 16.9.0 - tslib: 2.7.0 - value-or-promise: 1.0.12 - - '@graphql-typed-document-node/core@3.2.0(graphql@16.9.0)': - dependencies: - graphql: 16.9.0 - - '@graphql-yoga/logger@2.0.0': - dependencies: - tslib: 2.7.0 - '@graphql-yoga/subscription@5.0.1': dependencies: '@graphql-yoga/typed-event-target': 3.0.0 @@ -6264,16 +5402,6 @@ snapshots: '@humanwhocodes/object-schema@2.0.3': {} - '@inkjs/ui@1.0.0(ink@4.4.1(@types/react@18.3.5)(react@18.3.1))': - dependencies: - chalk: 5.3.0 - cli-spinners: 2.9.2 - deepmerge: 4.3.1 - figures: 5.0.0 - ink: 4.4.1(@types/react@18.3.5)(react@18.3.1) - - '@ioredis/commands@1.2.0': {} - '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -6497,8 +5625,6 @@ snapshots: '@json-rpc-tools/types': 1.7.6 '@pedrouid/environment': 1.0.1 - '@kamilkisiela/fast-url-parser@1.1.4': {} - '@metamask/eth-json-rpc-provider@1.0.1': dependencies: '@metamask/json-rpc-engine': 7.3.3 @@ -6575,24 +5701,6 @@ snapshots: '@microsoft/tsdoc@0.14.2': {} - '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': - optional: true - - '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': - optional: true - - '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': - optional: true - - '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': - optional: true - - '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': - optional: true - - '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': - optional: true - '@next/env@14.0.1': {} '@next/eslint-plugin-next@14.0.1': @@ -6663,10 +5771,6 @@ snapshots: optionalDependencies: prisma: 5.18.0 - '@prisma/client@5.20.0(prisma@5.18.0)': - optionalDependencies: - prisma: 5.18.0 - '@prisma/debug@5.18.0': {} '@prisma/debug@5.19.1': {} @@ -6732,231 +5836,6 @@ snapshots: '@prisma/prisma-schema-wasm': 5.19.1-2.69d742ee20b815d88e17e54db4a2a7a3b30324e3 fs-extra: 11.1.1 - '@proto-kit/api@0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm)': - dependencies: - '@graphql-tools/stitch': 9.2.10(graphql@16.9.0) - '@proto-kit/common': 0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/module': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/protocol': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0) - '@proto-kit/sequencer': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/module@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - '@types/humanize-duration': 3.27.4 - class-validator: 0.14.1 - graphql: 16.9.0 - graphql-scalars: 1.23.0(graphql@16.9.0) - graphql-yoga: 5.7.0(graphql@16.9.0) - humanize-duration: 3.32.1 - koa: 2.15.3 - lodash: 4.17.21 - o1js: 1.6.0 - reflect-metadata: 0.1.14 - tsyringe: 4.8.0 - type-graphql: 2.0.0-rc.2(class-validator@0.14.1)(graphql-scalars@1.23.0(graphql@16.9.0))(graphql@16.9.0) - transitivePeerDependencies: - - supports-color - - '@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0)': - dependencies: - lodash: 4.17.21 - loglevel: 1.9.2 - o1js: 1.6.0 - reflect-metadata: 0.1.14 - tsyringe: 4.8.0 - typescript-memoize: 1.1.1 - - '@proto-kit/deployment@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/persistance@0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm))(@proto-kit/sdk@0.1.1-develop.1088(kz4qtaab634eddmuun3qxhomby))(@proto-kit/sequencer@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/module@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(bullmq@3.15.8)(o1js@1.6.0)(tsyringe@4.8.0)': - dependencies: - '@proto-kit/common': 0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/persistance': 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) - '@proto-kit/sdk': 0.1.1-develop.1088(kz4qtaab634eddmuun3qxhomby) - '@proto-kit/sequencer': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/module@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - '@types/yargs': 17.0.33 - bullmq: 3.15.8 - loglevel: 1.9.2 - o1js: 1.6.0 - reflect-metadata: 0.1.14 - tsyringe: 4.8.0 - yargs: 17.7.2 - - '@proto-kit/indexer@0.1.1-develop.1088(74ec4zaiazx4kzm54ghtfrdgfu)': - dependencies: - '@envelop/extended-validation': 4.1.0(@envelop/core@5.0.2)(graphql@16.9.0) - '@inkjs/ui': 1.0.0(ink@4.4.1(@types/react@18.3.5)(react@18.3.1)) - '@prisma/client': 5.18.0(prisma@5.18.0) - '@proto-kit/api': 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) - '@proto-kit/common': 0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/library': 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) - '@proto-kit/module': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/persistance': 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) - '@proto-kit/protocol': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0) - '@proto-kit/sdk': 0.1.1-develop.1088(kz4qtaab634eddmuun3qxhomby) - '@proto-kit/sequencer': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/module@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - '@types/yargs': 17.0.33 - figlet: 1.7.0 - ink: 4.4.1(@types/react@18.3.5)(react@18.3.1) - ink-ascii: 0.0.4(ink@4.4.1(@types/react@18.3.5)(react@18.3.1))(react@18.3.1) - koa: 2.15.3 - o1js: 1.6.0 - prisma: 5.18.0 - react: 18.3.1 - reflect-metadata: 0.1.14 - tsyringe: 4.8.0 - type-graphql: 2.0.0-rc.2(class-validator@0.14.1)(graphql-scalars@1.23.0(graphql@16.9.0))(graphql@16.9.0) - typegraphql-prisma: 0.28.0(@prisma/client@5.18.0(prisma@5.18.0))(@types/graphql-fields@1.3.9)(@types/node@20.16.5)(graphql-fields@2.0.3)(graphql-scalars@1.23.0(graphql@16.9.0))(prisma@5.18.0)(tslib@2.7.0)(type-graphql@2.0.0-rc.2(class-validator@0.14.1)(graphql-scalars@1.23.0(graphql@16.9.0))(graphql@16.9.0)) - yargs: 17.7.2 - transitivePeerDependencies: - - '@envelop/core' - - '@types/react' - - bufferutil - - graphql - - react-devtools-core - - utf-8-validate - - '@proto-kit/indexer@0.1.1-develop.1088(hocwyjk2rt53lj4ewlpy6renly)': - dependencies: - '@envelop/extended-validation': 4.1.0(@envelop/core@5.0.2)(graphql@16.9.0) - '@inkjs/ui': 1.0.0(ink@4.4.1(@types/react@18.3.5)(react@18.3.1)) - '@prisma/client': 5.18.0(prisma@5.18.0) - '@proto-kit/api': 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) - '@proto-kit/common': 0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/library': 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) - '@proto-kit/module': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/persistance': 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) - '@proto-kit/protocol': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0) - '@proto-kit/sdk': 0.1.1-develop.1088(kz4qtaab634eddmuun3qxhomby) - '@proto-kit/sequencer': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/module@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - '@types/yargs': 17.0.33 - figlet: 1.7.0 - ink: 4.4.1(@types/react@18.3.5)(react@18.3.1) - ink-ascii: 0.0.4(ink@4.4.1(@types/react@18.3.5)(react@18.3.1))(react@18.3.1) - koa: 2.15.3 - o1js: 1.6.0 - prisma: 5.18.0 - react: 18.3.1 - reflect-metadata: 0.1.14 - tsyringe: 4.8.0 - type-graphql: 2.0.0-rc.2(class-validator@0.14.1)(graphql-scalars@1.23.0(graphql@16.9.0))(graphql@16.9.0) - typegraphql-prisma: 0.28.0(@prisma/client@5.20.0(prisma@5.18.0))(@types/graphql-fields@1.3.9)(@types/node@20.16.5)(graphql-fields@2.0.3)(graphql-scalars@1.23.0(graphql@16.9.0))(prisma@5.18.0)(tslib@2.7.0)(type-graphql@2.0.0-rc.2(class-validator@0.14.1)(graphql-scalars@1.23.0(graphql@16.9.0))(graphql@16.9.0)) - yargs: 17.7.2 - transitivePeerDependencies: - - '@envelop/core' - - '@types/react' - - bufferutil - - graphql - - react-devtools-core - - utf-8-validate - - '@proto-kit/library@0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm)': - dependencies: - '@proto-kit/common': 0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/module': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/protocol': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0) - '@proto-kit/sequencer': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/module@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - bigint-isqrt: 0.3.2 - lodash: 4.17.21 - loglevel: 1.9.2 - o1js: 1.6.0 - reflect-metadata: 0.1.14 - tsyringe: 4.8.0 - - '@proto-kit/module@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0)': - dependencies: - '@proto-kit/common': 0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/protocol': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0) - lodash: 4.17.21 - loglevel: 1.9.2 - o1js: 1.6.0 - reflect-metadata: 0.1.14 - tsyringe: 4.8.0 - - '@proto-kit/persistance@0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm)': - dependencies: - '@prisma/client': 5.18.0(prisma@5.18.0) - '@proto-kit/common': 0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/module': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/protocol': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0) - '@proto-kit/sequencer': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/module@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - lodash: 4.17.21 - o1js: 1.6.0 - prisma: 5.18.0 - redis: 4.7.0 - reflect-metadata: 0.1.14 - tsyringe: 4.8.0 - - '@proto-kit/processor@0.1.1-develop.1088(ln4evwhsdfdpimgiv3gq4x5og4)': - dependencies: - '@inkjs/ui': 1.0.0(ink@4.4.1(@types/react@18.3.5)(react@18.3.1)) - '@prisma/client': 5.18.0(prisma@5.18.0) - '@proto-kit/api': 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) - '@proto-kit/common': 0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/library': 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) - '@proto-kit/module': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/persistance': 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) - '@proto-kit/protocol': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0) - '@proto-kit/sdk': 0.1.1-develop.1088(kz4qtaab634eddmuun3qxhomby) - '@proto-kit/sequencer': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/module@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - '@types/yargs': 17.0.33 - figlet: 1.7.0 - ink: 4.4.1(@types/react@18.3.5)(react@18.3.1) - ink-ascii: 0.0.4(ink@4.4.1(@types/react@18.3.5)(react@18.3.1))(react@18.3.1) - jest-mock-extended: 4.0.0-beta1(@jest/globals@29.7.0)(jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@types/node@20.16.5)(typescript@5.4.5)))(typescript@5.4.5) - o1js: 1.6.0 - prisma-mock: 0.10.3(@prisma/client@5.18.0(prisma@5.18.0))(jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@types/node@20.16.5)(typescript@5.4.5)))(typescript@5.4.5) - react: 18.3.1 - reflect-metadata: 0.1.14 - tsyringe: 4.8.0 - type-graphql: 2.0.0-rc.2(class-validator@0.14.1)(graphql-scalars@1.23.0(graphql@16.9.0))(graphql@16.9.0) - typegraphql-prisma: 0.28.0(@prisma/client@5.18.0(prisma@5.18.0))(@types/graphql-fields@1.3.9)(@types/node@20.16.5)(graphql-fields@2.0.3)(graphql-scalars@1.23.0(graphql@16.9.0))(prisma@5.18.0)(tslib@2.7.0)(type-graphql@2.0.0-rc.2(class-validator@0.14.1)(graphql-scalars@1.23.0(graphql@16.9.0))(graphql@16.9.0)) - yargs: 17.7.2 - transitivePeerDependencies: - - '@jest/globals' - - '@types/react' - - bufferutil - - jest - - prisma - - react-devtools-core - - typescript - - utf-8-validate - - '@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0)': - dependencies: - '@proto-kit/common': 0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0) - lodash: 4.17.21 - loglevel: 1.9.2 - o1js: 1.6.0 - reflect-metadata: 0.1.14 - ts-mixer: 6.0.4 - ts-pattern: 4.3.0 - tsyringe: 4.8.0 - - '@proto-kit/sdk@0.1.1-develop.1088(kz4qtaab634eddmuun3qxhomby)': - dependencies: - '@proto-kit/common': 0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/library': 0.1.1-develop.1088(dul2sxfsuce4wi7o6jzj2llasm) - '@proto-kit/module': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/protocol': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0) - '@proto-kit/sequencer': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/module@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - '@urql/core': 4.3.0(graphql@16.9.0) - comlink: 4.4.1 - lodash: 4.17.21 - loglevel: 1.9.2 - o1js: 1.6.0 - reflect-metadata: 0.1.14 - tsyringe: 4.8.0 - transitivePeerDependencies: - - graphql - - '@proto-kit/sequencer@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/module@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0)': - dependencies: - '@proto-kit/common': 0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/module': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(@proto-kit/protocol@0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0))(o1js@1.6.0)(tsyringe@4.8.0) - '@proto-kit/protocol': 0.1.1-develop.1088(@proto-kit/common@0.1.1-develop.1088(o1js@1.6.0)(tsyringe@4.8.0))(o1js@1.6.0)(ts-pattern@4.3.0)(tsyringe@4.8.0) - compute-gcd: 1.2.1 - lodash: 4.17.21 - o1js: 1.6.0 - reflect-metadata: 0.1.14 - ts-pattern: 4.3.0 - tsyringe: 4.8.0 - '@radix-ui/primitive@1.1.0': {} '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.0)(@types/react@18.3.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': @@ -7229,32 +6108,6 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@redis/bloom@1.2.0(@redis/client@1.6.0)': - dependencies: - '@redis/client': 1.6.0 - - '@redis/client@1.6.0': - dependencies: - cluster-key-slot: 1.1.2 - generic-pool: 3.9.0 - yallist: 4.0.0 - - '@redis/graph@1.1.1(@redis/client@1.6.0)': - dependencies: - '@redis/client': 1.6.0 - - '@redis/json@1.0.7(@redis/client@1.6.0)': - dependencies: - '@redis/client': 1.6.0 - - '@redis/search@1.2.0(@redis/client@1.6.0)': - dependencies: - '@redis/client': 1.6.0 - - '@redis/time-series@1.1.0(@redis/client@1.6.0)': - dependencies: - '@redis/client': 1.6.0 - '@repeaterjs/repeater@3.0.6': {} '@rtsao/scc@1.1.0': {} @@ -7348,8 +6201,6 @@ snapshots: dependencies: graphql: 16.9.0 - '@types/humanize-duration@3.27.4': {} - '@types/istanbul-lib-coverage@2.0.6': {} '@types/istanbul-lib-report@3.0.3': @@ -7394,7 +6245,8 @@ snapshots: '@types/use-sync-external-store@0.0.3': {} - '@types/validator@13.12.1': {} + '@types/validator@13.12.1': + optional: true '@types/yargs-parser@21.0.3': {} @@ -7564,13 +6416,6 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@urql/core@4.3.0(graphql@16.9.0)': - dependencies: - '@0no-co/graphql.web': 1.0.8(graphql@16.9.0) - wonka: 6.3.4 - transitivePeerDependencies: - - graphql - '@vanilla-extract/css@1.7.0': dependencies: '@emotion/hash': 0.8.0 @@ -7802,28 +6647,6 @@ snapshots: dependencies: tslib: 2.7.0 - '@whatwg-node/fetch@0.9.21': - dependencies: - '@whatwg-node/node-fetch': 0.5.26 - urlpattern-polyfill: 10.0.0 - - '@whatwg-node/node-fetch@0.5.26': - dependencies: - '@kamilkisiela/fast-url-parser': 1.1.4 - busboy: 1.6.0 - fast-querystring: 1.1.2 - tslib: 2.7.0 - - '@whatwg-node/server@0.9.49': - dependencies: - '@whatwg-node/fetch': 0.9.21 - tslib: 2.7.0 - - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - acorn-jsx@5.3.2(acorn@8.12.1): dependencies: acorn: 8.12.1 @@ -7849,8 +6672,6 @@ snapshots: dependencies: type-fest: 0.21.3 - ansi-escapes@6.2.1: {} - ansi-regex@4.1.1: {} ansi-regex@5.0.1: {} @@ -7979,8 +6800,6 @@ snapshots: async@3.2.6: {} - auto-bind@5.0.1: {} - autoprefixer@10.4.20(postcss@8.4.45): dependencies: browserslist: 4.23.3 @@ -8068,12 +6887,8 @@ snapshots: big-integer@1.6.52: {} - bigint-isqrt@0.3.2: {} - binary-extensions@2.3.0: {} - blakejs@1.2.1: {} - bn.js@4.11.8: {} bn.js@4.12.0: {} @@ -8186,30 +7001,10 @@ snapshots: builtin-modules@3.3.0: {} - bullmq@3.15.8: - dependencies: - cron-parser: 4.9.0 - glob: 8.1.0 - ioredis: 5.4.1 - lodash: 4.17.21 - msgpackr: 1.11.0 - semver: 7.6.3 - tslib: 2.7.0 - uuid: 9.0.1 - transitivePeerDependencies: - - supports-color - busboy@1.6.0: dependencies: streamsearch: 1.1.0 - cache-content-type@1.0.1: - dependencies: - mime-types: 2.1.35 - ylru: 1.4.0 - - cachedir@2.4.0: {} - call-bind@1.0.7: dependencies: es-define-property: 1.0.0 @@ -8260,8 +7055,6 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.3.0: {} - char-regex@1.0.2: {} chokidar@3.6.0: @@ -8290,6 +7083,7 @@ snapshots: '@types/validator': 13.12.1 libphonenumber-js: 1.11.7 validator: 13.12.0 + optional: true class-variance-authority@0.7.0: dependencies: @@ -8299,19 +7093,6 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - cli-boxes@3.0.0: {} - - cli-cursor@4.0.0: - dependencies: - restore-cursor: 4.0.0 - - cli-spinners@2.9.2: {} - - cli-truncate@3.1.0: - dependencies: - slice-ansi: 5.0.0 - string-width: 5.1.2 - client-only@0.0.1: {} cliui@5.0.0: @@ -8340,16 +7121,10 @@ snapshots: clsx@2.1.1: {} - cluster-key-slot@1.1.2: {} - co@4.6.0: {} code-block-writer@13.0.2: {} - code-excerpt@4.0.0: - dependencies: - convert-to-spaces: 2.0.1 - collect-v8-coverage@1.0.2: {} color-convert@1.9.3: @@ -8364,33 +7139,12 @@ snapshots: color-name@1.1.4: {} - comlink@4.4.1: {} - commander@4.1.1: {} - compute-gcd@1.2.1: - dependencies: - validate.io-array: 1.0.6 - validate.io-function: 1.0.2 - validate.io-integer-array: 1.0.0 - concat-map@0.0.1: {} - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-type@1.0.5: {} - convert-source-map@2.0.0: {} - convert-to-spaces@2.0.1: {} - - cookies@0.9.1: - dependencies: - depd: 2.0.0 - keygrip: 1.1.0 - copy-to-clipboard@3.3.3: dependencies: toggle-selection: 1.0.6 @@ -8438,20 +7192,12 @@ snapshots: create-require@1.1.1: {} - cron-parser@4.9.0: - dependencies: - luxon: 3.5.0 - cross-fetch@3.1.8: dependencies: node-fetch: 2.7.0 transitivePeerDependencies: - encoding - cross-inspect@1.0.1: - dependencies: - tslib: 2.7.0 - cross-spawn@7.0.3: dependencies: path-key: 3.1.1 @@ -8500,8 +7246,6 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.1 - dataloader@2.2.2: {} - debug@3.2.7(supports-color@5.5.0): dependencies: ms: 2.1.3 @@ -8520,8 +7264,6 @@ snapshots: dedent@1.5.3: {} - deep-equal@1.0.1: {} - deep-equal@2.2.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -8561,28 +7303,15 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - delegates@1.0.0: {} - - denque@2.1.0: {} - - depd@1.1.2: {} - - depd@2.0.0: {} - des.js@1.1.0: dependencies: inherits: 2.0.4 minimalistic-assert: 1.0.1 - destroy@1.2.0: {} - detect-browser@5.2.0: {} detect-indent@7.0.1: {} - detect-libc@2.0.3: - optional: true - detect-newline@3.1.0: {} detect-newline@4.0.1: {} @@ -8632,12 +7361,8 @@ snapshots: dotenv@16.4.5: {} - dset@3.1.3: {} - eastasianwidth@0.2.0: {} - ee-first@1.1.1: {} - eip1193-provider@1.0.1: dependencies: '@json-rpc-tools/provider': 1.7.6 @@ -8682,8 +7407,6 @@ snapshots: encode-utf8@1.0.3: {} - encodeurl@1.0.2: {} - enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 @@ -8799,16 +7522,12 @@ snapshots: escalade@3.2.0: {} - escape-html@1.0.3: {} - escape-string-regexp@1.0.5: {} escape-string-regexp@2.0.0: {} escape-string-regexp@4.0.0: {} - escape-string-regexp@5.0.0: {} - eslint-config-next@14.0.1(eslint@8.57.0)(typescript@5.4.5): dependencies: '@next/eslint-plugin-next': 14.0.1 @@ -9253,8 +7972,6 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 - fast-decode-uri-component@1.0.1: {} - fast-deep-equal@3.1.3: {} fast-glob@3.3.2: @@ -9269,10 +7986,6 @@ snapshots: fast-levenshtein@2.0.6: {} - fast-querystring@1.1.2: - dependencies: - fast-decode-uri-component: 1.0.1 - fast-safe-stringify@2.1.1: {} fastq@1.17.1: @@ -9283,13 +7996,6 @@ snapshots: dependencies: bser: 2.1.1 - figlet@1.7.0: {} - - figures@5.0.0: - dependencies: - escape-string-regexp: 5.0.0 - is-unicode-supported: 1.3.0 - file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 @@ -9337,8 +8043,6 @@ snapshots: fraction.js@4.3.7: {} - fresh@0.5.2: {} - fs-extra@11.1.1: dependencies: graceful-fs: 4.2.11 @@ -9361,8 +8065,6 @@ snapshots: functions-have-names@1.2.3: {} - generic-pool@3.9.0: {} - gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -9432,14 +8134,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - globals@11.12.0: {} globals@13.24.0: @@ -9488,21 +8182,6 @@ snapshots: graphql: 16.9.0 tslib: 2.7.0 - graphql-yoga@5.7.0(graphql@16.9.0): - dependencies: - '@envelop/core': 5.0.2 - '@graphql-tools/executor': 1.3.1(graphql@16.9.0) - '@graphql-tools/schema': 10.0.6(graphql@16.9.0) - '@graphql-tools/utils': 10.5.4(graphql@16.9.0) - '@graphql-yoga/logger': 2.0.0 - '@graphql-yoga/subscription': 5.0.1 - '@whatwg-node/fetch': 0.9.21 - '@whatwg-node/server': 0.9.49 - dset: 3.1.3 - graphql: 16.9.0 - lru-cache: 10.4.3 - tslib: 2.7.0 - graphql@16.9.0: {} has-bigints@1.0.2: {} @@ -9553,23 +8232,8 @@ snapshots: html-escaper@2.0.2: {} - http-assert@1.5.0: - dependencies: - deep-equal: 1.0.1 - http-errors: 1.8.1 - - http-errors@1.8.1: - dependencies: - depd: 1.1.2 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 1.5.0 - toidentifier: 1.0.1 - human-signals@2.1.0: {} - humanize-duration@3.32.1: {} - ieee754@1.2.1: {} ignore-by-default@1.0.1: {} @@ -9592,8 +8256,6 @@ snapshots: indent-string@4.0.0: {} - indent-string@5.0.0: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -9601,46 +8263,6 @@ snapshots: inherits@2.0.4: {} - ink-ascii@0.0.4(ink@4.4.1(@types/react@18.3.5)(react@18.3.1))(react@18.3.1): - dependencies: - figlet: 1.7.0 - ink: 4.4.1(@types/react@18.3.5)(react@18.3.1) - react: 18.3.1 - - ink@4.4.1(@types/react@18.3.5)(react@18.3.1): - dependencies: - '@alcalzone/ansi-tokenize': 0.1.3 - ansi-escapes: 6.2.1 - auto-bind: 5.0.1 - chalk: 5.3.0 - cli-boxes: 3.0.0 - cli-cursor: 4.0.0 - cli-truncate: 3.1.0 - code-excerpt: 4.0.0 - indent-string: 5.0.0 - is-ci: 3.0.1 - is-lower-case: 2.0.2 - is-upper-case: 2.0.2 - lodash: 4.17.21 - patch-console: 2.0.0 - react: 18.3.1 - react-reconciler: 0.29.2(react@18.3.1) - scheduler: 0.23.2 - signal-exit: 3.0.7 - slice-ansi: 6.0.0 - stack-utils: 2.0.6 - string-width: 5.1.2 - type-fest: 0.12.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 - ws: 8.18.0 - yoga-wasm-web: 0.3.3 - optionalDependencies: - '@types/react': 18.3.5 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - internal-slot@1.0.7: dependencies: es-errors: 1.3.0 @@ -9651,20 +8273,6 @@ snapshots: dependencies: loose-envify: 1.4.0 - ioredis@5.4.1: - dependencies: - '@ioredis/commands': 1.2.0 - cluster-key-slot: 1.1.2 - debug: 4.3.7(supports-color@5.5.0) - denque: 2.1.0 - lodash.defaults: 4.2.0 - lodash.isarguments: 3.1.0 - redis-errors: 1.2.0 - redis-parser: 3.0.0 - standard-as-callback: 2.1.0 - transitivePeerDependencies: - - supports-color - is-arguments@1.1.1: dependencies: call-bind: 1.0.7 @@ -9704,10 +8312,6 @@ snapshots: is-callable@1.2.7: {} - is-ci@3.0.1: - dependencies: - ci-info: 3.9.0 - is-core-module@2.15.1: dependencies: hasown: 2.0.2 @@ -9730,8 +8334,6 @@ snapshots: is-fullwidth-code-point@3.0.0: {} - is-fullwidth-code-point@4.0.0: {} - is-generator-fn@2.1.0: {} is-generator-function@1.0.10: @@ -9742,10 +8344,6 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-lower-case@2.0.2: - dependencies: - tslib: 2.7.0 - is-map@2.0.3: {} is-nan@1.3.2: @@ -9792,12 +8390,6 @@ snapshots: is-typedarray@1.0.0: {} - is-unicode-supported@1.3.0: {} - - is-upper-case@2.0.2: - dependencies: - tslib: 2.7.0 - is-weakmap@2.0.2: {} is-weakref@1.0.2: @@ -9815,13 +8407,6 @@ snapshots: isexe@2.0.0: {} - isomorphic-fetch@3.0.0: - dependencies: - node-fetch: 2.7.0 - whatwg-fetch: 3.6.20 - transitivePeerDependencies: - - encoding - istanbul-lib-coverage@3.2.2: {} istanbul-lib-instrument@5.2.1: @@ -10038,19 +8623,6 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 - jest-mock-extended@3.0.7(jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@types/node@20.16.5)(typescript@5.4.5)))(typescript@5.4.5): - dependencies: - jest: 29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@types/node@20.16.5)(typescript@5.4.5)) - ts-essentials: 10.0.2(typescript@5.4.5) - typescript: 5.4.5 - - jest-mock-extended@4.0.0-beta1(@jest/globals@29.7.0)(jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@types/node@20.16.5)(typescript@5.4.5)))(typescript@5.4.5): - dependencies: - '@jest/globals': 29.7.0 - jest: 29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@types/node@20.16.5)(typescript@5.4.5)) - ts-essentials: 10.0.2(typescript@5.4.5) - typescript: 5.4.5 - jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 @@ -10212,8 +8784,6 @@ snapshots: jju@1.4.0: {} - js-sha256@0.9.0: {} - js-sha3@0.8.0: {} js-tokens@4.0.0: {} @@ -10273,10 +8843,6 @@ snapshots: node-gyp-build: 4.8.2 readable-stream: 3.6.2 - keygrip@1.1.0: - dependencies: - tsscmp: 1.0.6 - keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -10285,41 +8851,6 @@ snapshots: kleur@3.0.3: {} - koa-compose@4.1.0: {} - - koa-convert@2.0.0: - dependencies: - co: 4.6.0 - koa-compose: 4.1.0 - - koa@2.15.3: - dependencies: - accepts: 1.3.8 - cache-content-type: 1.0.1 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookies: 0.9.1 - debug: 4.3.7(supports-color@5.5.0) - delegates: 1.0.0 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - fresh: 0.5.2 - http-assert: 1.5.0 - http-errors: 1.8.1 - is-generator-function: 1.0.10 - koa-compose: 4.1.0 - koa-convert: 2.0.0 - on-finished: 2.4.1 - only: 0.0.2 - parseurl: 1.3.3 - statuses: 1.5.0 - type-is: 1.6.18 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - language-subtag-registry@0.3.23: {} language-tags@1.0.9: @@ -10333,7 +8864,8 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - libphonenumber-js@1.11.7: {} + libphonenumber-js@1.11.7: + optional: true lilconfig@2.1.0: {} @@ -10356,12 +8888,8 @@ snapshots: lodash.castarray@4.4.0: {} - lodash.defaults@4.2.0: {} - lodash.get@4.4.2: {} - lodash.isarguments@3.1.0: {} - lodash.isplainobject@4.0.6: {} lodash.memoize@4.1.2: {} @@ -10386,8 +8914,6 @@ snapshots: dependencies: react: 18.3.1 - luxon@3.5.0: {} - make-dir@4.0.0: dependencies: semver: 7.6.3 @@ -10409,8 +8935,6 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 - media-typer@0.3.0: {} - merge-stream@2.0.0: {} merge2@1.4.1: {} @@ -10429,16 +8953,12 @@ snapshots: bn.js: 4.12.0 brorand: 1.1.0 - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - mimic-fn@2.1.0: {} min-indent@1.0.1: {} + mina-lightweight-explorer@https://codeload.github.com/o1-labs/mina-lightweight-explorer/tar.gz/b921393d5091035a913d446e38dfdeb29c06cc52: {} + minimalistic-assert@1.0.1: {} minimalistic-crypto-utils@1.0.1: {} @@ -10467,22 +8987,6 @@ snapshots: ms@2.1.3: {} - msgpackr-extract@3.0.3: - dependencies: - node-gyp-build-optional-packages: 5.2.2 - optionalDependencies: - '@msgpackr-extract/msgpackr-extract-darwin-arm64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-darwin-x64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-linux-arm': 3.0.3 - '@msgpackr-extract/msgpackr-extract-linux-arm64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.3 - optional: true - - msgpackr@1.11.0: - optionalDependencies: - msgpackr-extract: 3.0.3 - mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -10497,8 +9001,6 @@ snapshots: natural-compare@1.4.0: {} - negotiator@0.6.3: {} - next-themes@0.2.1(next@14.0.1(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: next: 14.0.1(@babel/core@7.25.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -10536,11 +9038,6 @@ snapshots: dependencies: whatwg-url: 5.0.0 - node-gyp-build-optional-packages@5.2.2: - dependencies: - detect-libc: 2.0.3 - optional: true - node-gyp-build@4.8.2: {} node-int64@0.4.0: {} @@ -10593,17 +9090,6 @@ snapshots: nodemon: 2.0.22 through2: 4.0.2 - o1js@1.6.0: - dependencies: - blakejs: 1.2.1 - cachedir: 2.4.0 - isomorphic-fetch: 3.0.0 - js-sha256: 0.9.0 - reflect-metadata: 0.1.14 - tslib: 2.7.0 - transitivePeerDependencies: - - encoding - object-assign@4.1.1: {} object-hash@3.0.0: {} @@ -10651,10 +9137,6 @@ snapshots: oblivious-set@1.0.0: {} - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - once@1.4.0: dependencies: wrappy: 1.0.2 @@ -10663,8 +9145,6 @@ snapshots: dependencies: mimic-fn: 2.1.0 - only@0.0.2: {} - optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -10720,10 +9200,6 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parseurl@1.3.3: {} - - patch-console@2.0.0: {} - path-browserify@1.0.1: {} path-exists@3.0.0: {} @@ -10851,14 +9327,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - prisma-mock@0.10.3(@prisma/client@5.18.0(prisma@5.18.0))(jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@types/node@20.16.5)(typescript@5.4.5)))(typescript@5.4.5): - dependencies: - '@prisma/client': 5.18.0(prisma@5.18.0) - jest-mock-extended: 3.0.7(jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@types/node@20.16.5)(typescript@5.4.5)))(typescript@5.4.5) - transitivePeerDependencies: - - jest - - typescript - prisma@5.18.0: dependencies: '@prisma/engines': 5.18.0 @@ -10958,12 +9426,6 @@ snapshots: optionalDependencies: react-dom: 18.3.1(react@18.3.1) - react-reconciler@0.29.2(react@18.3.1): - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 - react-remove-scroll-bar@2.3.6(@types/react@18.3.5)(react@18.3.1): dependencies: react: 18.3.1 @@ -11033,21 +9495,6 @@ snapshots: dependencies: picomatch: 2.3.1 - redis-errors@1.2.0: {} - - redis-parser@3.0.0: - dependencies: - redis-errors: 1.2.0 - - redis@4.7.0: - dependencies: - '@redis/bloom': 1.2.0(@redis/client@1.6.0) - '@redis/client': 1.6.0 - '@redis/graph': 1.1.1(@redis/client@1.6.0) - '@redis/json': 1.0.7(@redis/client@1.6.0) - '@redis/search': 1.2.0(@redis/client@1.6.0) - '@redis/time-series': 1.1.0(@redis/client@1.6.0) - reflect-metadata@0.1.14: {} reflect.getprototypeof@1.0.6: @@ -11110,11 +9557,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@4.0.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - reusify@1.0.4: {} rimraf@3.0.2: @@ -11181,8 +9623,6 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 - setprototypeof@1.2.0: {} - sha.js@2.4.11: dependencies: inherits: 2.0.4 @@ -11219,16 +9659,6 @@ snapshots: slash@4.0.0: {} - slice-ansi@5.0.0: - dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 - - slice-ansi@6.0.0: - dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 - sort-object-keys@1.1.3: {} sort-package-json@2.10.1: @@ -11273,10 +9703,6 @@ snapshots: dependencies: escape-string-regexp: 2.0.0 - standard-as-callback@2.1.0: {} - - statuses@1.5.0: {} - stop-iteration-iterator@1.0.0: dependencies: internal-slot: 1.0.7 @@ -11492,8 +9918,6 @@ snapshots: toggle-selection@1.0.6: {} - toidentifier@1.0.1: {} - touch@3.1.1: {} tr46@0.0.3: {} @@ -11508,10 +9932,6 @@ snapshots: dependencies: typescript: 5.4.5 - ts-essentials@10.0.2(typescript@5.4.5): - optionalDependencies: - typescript: 5.4.5 - ts-interface-checker@0.1.13: {} ts-jest@29.2.5(@babel/core@7.25.2)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.2))(jest@29.7.0(@types/node@20.16.5)(ts-node@10.9.2(@types/node@20.16.5)(typescript@5.4.5)))(typescript@5.4.5): @@ -11533,8 +9953,6 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.2) - ts-mixer@6.0.4: {} - ts-morph@23.0.0: dependencies: '@ts-morph/common': 0.24.0 @@ -11558,8 +9976,6 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-pattern@4.3.0: {} - tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -11571,17 +9987,11 @@ snapshots: tslib@2.7.0: {} - tsscmp@1.0.6: {} - tsutils@3.21.0(typescript@4.9.5): dependencies: tslib: 1.14.1 typescript: 4.9.5 - tsyringe@4.8.0: - dependencies: - tslib: 1.14.1 - turbo-darwin-64@2.1.2: optional: true @@ -11615,8 +10025,6 @@ snapshots: type-detect@4.0.8: {} - type-fest@0.12.0: {} - type-fest@0.20.2: {} type-fest@0.21.3: {} @@ -11638,11 +10046,6 @@ snapshots: optionalDependencies: class-validator: 0.14.1 - type-is@1.6.18: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - typed-array-buffer@1.0.2: dependencies: call-bind: 1.0.7 @@ -11695,24 +10098,6 @@ snapshots: tslib: 2.7.0 type-graphql: 2.0.0-rc.2(class-validator@0.14.1)(graphql-scalars@1.23.0(graphql@16.9.0))(graphql@16.9.0) - typegraphql-prisma@0.28.0(@prisma/client@5.20.0(prisma@5.18.0))(@types/graphql-fields@1.3.9)(@types/node@20.16.5)(graphql-fields@2.0.3)(graphql-scalars@1.23.0(graphql@16.9.0))(prisma@5.18.0)(tslib@2.7.0)(type-graphql@2.0.0-rc.2(class-validator@0.14.1)(graphql-scalars@1.23.0(graphql@16.9.0))(graphql@16.9.0)): - dependencies: - '@prisma/client': 5.20.0(prisma@5.18.0) - '@prisma/generator-helper': 5.19.1 - '@prisma/internals': 5.19.1 - '@types/graphql-fields': 1.3.9 - '@types/node': 20.16.5 - graphql-fields: 2.0.3 - graphql-scalars: 1.23.0(graphql@16.9.0) - pluralize: 8.0.0 - prisma: 5.18.0 - semver: 7.6.3 - ts-morph: 23.0.0 - tslib: 2.7.0 - type-graphql: 2.0.0-rc.2(class-validator@0.14.1)(graphql-scalars@1.23.0(graphql@16.9.0))(graphql@16.9.0) - - typescript-memoize@1.1.1: {} - typescript@4.9.5: {} typescript@5.4.5: {} @@ -11750,8 +10135,6 @@ snapshots: punycode: 1.4.1 qs: 6.13.0 - urlpattern-polyfill@10.0.0: {} - use-callback-ref@1.3.2(@types/react@18.3.5)(react@18.3.1): dependencies: react: 18.3.1 @@ -11796,26 +10179,8 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - validate.io-array@1.0.6: {} - - validate.io-function@1.0.2: {} - - validate.io-integer-array@1.0.0: - dependencies: - validate.io-array: 1.0.6 - validate.io-integer: 1.0.5 - - validate.io-integer@1.0.5: - dependencies: - validate.io-number: 1.0.3 - - validate.io-number@1.0.3: {} - - validator@13.12.0: {} - - value-or-promise@1.0.12: {} - - vary@1.1.2: {} + validator@13.12.0: + optional: true wagmi@0.4.12(@types/react@18.3.5)(ethers@5.7.2)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: @@ -11848,8 +10213,6 @@ snapshots: webidl-conversions@3.0.1: {} - whatwg-fetch@3.6.20: {} - whatwg-url@5.0.0: dependencies: tr46: 0.0.3 @@ -11899,12 +10262,6 @@ snapshots: dependencies: isexe: 2.0.0 - widest-line@4.0.1: - dependencies: - string-width: 5.1.2 - - wonka@6.3.4: {} - word-wrap@1.2.5: {} wrap-ansi@5.1.0: @@ -11944,8 +10301,6 @@ snapshots: ws@7.5.3: {} - ws@8.18.0: {} - xtend@4.0.2: {} y18n@4.0.3: {} @@ -11954,8 +10309,6 @@ snapshots: yallist@3.1.1: {} - yallist@4.0.0: {} - yaml@2.5.1: {} yargs-parser@13.1.2: @@ -12007,14 +10360,10 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - ylru@1.4.0: {} - yn@3.1.1: {} yocto-queue@0.1.0: {} - yoga-wasm-web@0.3.3: {} - zod@3.23.8: {} zustand@4.5.5(@types/react@18.3.5)(immer@10.1.1)(react@18.3.1): diff --git a/turbo.json b/turbo.json index fd0305e..0b35dbb 100644 --- a/turbo.json +++ b/turbo.json @@ -64,6 +64,24 @@ "processor:prisma:migrate": { "cache": false }, - "start:headless": {} + "start:headless": {}, + "generate-keys": { + "cache": false + }, + "lightnet:faucet": { + "cache": false + }, + "settlement:deploy": { + "cache": false + }, + "mina-explorer:start": { + "cache": false + }, + "worker:dev": { + "cache": false + }, + "bridge:deposit": { + "cache": false + } } } From e8d160836e55090b146c7e661adad116c37864a8 Mon Sep 17 00:00:00 2001 From: Matej Sima Date: Tue, 14 Jan 2025 12:28:31 +0100 Subject: [PATCH 02/10] WIP bridging integration --- README.md | 37 ++++ apps/web/components/header.tsx | 4 +- apps/web/lib/stores/balances.tsx | 12 +- package.json | 5 +- packages/chain/package.json | 4 +- .../chain/src/environments/development/.env | 9 +- .../environments/development/chain.config.ts | 14 +- packages/chain/src/protocol/index.ts | 4 +- packages/chain/src/runtime/index.ts | 9 +- .../chain/src/runtime/modules/balances.ts | 5 +- .../chain/src/runtime/modules/withdrawals.ts | 23 +++ packages/chain/src/scripts/bridge/deposit.ts | 159 +++++++++++++++++- packages/chain/src/scripts/bridge/withdraw.ts | 43 +++++ .../src/scripts/lightnet/wait-for-network.ts | 24 +++ turbo.json | 6 + 15 files changed, 328 insertions(+), 30 deletions(-) create mode 100644 packages/chain/src/runtime/modules/withdrawals.ts create mode 100644 packages/chain/src/scripts/bridge/withdraw.ts create mode 100644 packages/chain/src/scripts/lightnet/wait-for-network.ts diff --git a/README.md b/README.md index e08d66c..7f1958f 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,43 @@ Finally, you can query the processed data at the indexer's graphql API available You can define which resolvers are available in `chain/src/processor/api/resolvers.ts`. By default all available resolvers generated based on your database schema file are used. You must configure additional middlewares, validations etc. yourself. The example configures a simple validation for the `take` argument for resolvers returning multiple entities at once. +## Lightnet Settlement & Bridging + +At this point in time, the starter-kit offers settlement & bridging integration with lightnet (local mina network). You can enable these features by setting the `PROTOKIT_SETTLEMENT_ENABLED` environment variable to `true` in development .env file. + +Follow these steps to get the sequencer to settle & bridge: +- Fund the sequencer operator key by running: + ``` + pnpm env:development lightnet:faucet B62qizW6aroTxQorJz4ywVNZom4jA6W4QPPCK3wLeyhnJHtVStUNniL + ``` +- Fund a testing account on lightnet (defined in the .env file) + ``` + pnpm env:development lightnet:faucet B62qkVfEwyfkm5yucHEqrRjxbyx98pgdWz82pHv7LYq9Qigs812iWZ8 + ``` + +- Deploy the settlement, dispatch and bridge contracts + ``` + pnpm env:development settlement:deploy + ``` + +- Run a worker, alongside with the sequencer in separate shell instances + ``` + pnpm env:development worker:dev + pnpm env:development sequencer:dev + ``` + +- Bridge the L1 $MINA to your app-chain, and observe your app-chain $MINA balance change after the next settlement lifecycle has been completed by the sequencer + + > Token ID of MINA is `1` on both the L1 and app-chain + ``` + pnpm env:development bridge:deposit 1 TEST_ACCOUNT_1_PRIVATE_KEY TEST_ACCOUNT_1_PUBLIC_KEY 100 + ``` + +- Withdraw your app-chain $MINA tokens back to the L1 + ``` + pnpm env:development bridge:withdraw 1 TEST_ACCOUNT_1_PRIVATE_KEY 100 + ``` + ## Deployments (sovereign environment) When deploying to a server, you should push your code along with your forked starter-kit to some repository, diff --git a/apps/web/components/header.tsx b/apps/web/components/header.tsx index 85db3a8..068df01 100644 --- a/apps/web/components/header.tsx +++ b/apps/web/components/header.tsx @@ -45,7 +45,9 @@ export default function Header({ {balanceLoading && balance === undefined ? ( ) : ( -

{balance} MINA

+

+ {Number(balance) / 1e9} MINA +

)} diff --git a/apps/web/lib/stores/balances.tsx b/apps/web/lib/stores/balances.tsx index bd74188..3a28075 100644 --- a/apps/web/lib/stores/balances.tsx +++ b/apps/web/lib/stores/balances.tsx @@ -3,7 +3,7 @@ import { Client, useClientStore } from "./client"; import { immer } from "zustand/middleware/immer"; import { PendingTransaction, UnsignedTransaction } from "@proto-kit/sequencer"; import { Balance, BalancesKey, TokenId } from "@proto-kit/library"; -import { Provable, PublicKey, UInt64 } from "o1js"; +import { Provable, PublicKey, UInt64, TokenId as O1JSTokenId } from "o1js"; import { useCallback, useEffect } from "react"; import { useChainStore } from "./chain"; import { useWalletStore } from "./wallet"; @@ -25,7 +25,8 @@ function isPendingTransaction( throw new Error("Transaction is not a PendingTransaction"); } -export const tokenId = TokenId.from(0); +export const tokenId = TokenId.from(O1JSTokenId.default); +Provable.log("tokenId", tokenId); export const useBalancesStore = create< BalancesState, @@ -53,7 +54,12 @@ export const useBalancesStore = create< const sender = PublicKey.fromBase58(address); const tx = await client.transaction(sender, async () => { - await balances.addBalance(tokenId, sender, Balance.from(1000)); + await balances.addBalance( + tokenId, + sender, + // @ts-ignore + Balance.from(1000 * 1e9), + ); }); await tx.sign(); diff --git a/package.json b/package.json index b023198..998f191 100644 --- a/package.json +++ b/package.json @@ -31,9 +31,12 @@ "env:sovereign": "dotenv -e ./packages/chain/src/environments/sovereign/.env -- pnpm", "generate-keys": "turbo run generate-keys --env-mode=loose --", "lightnet:faucet": "turbo run lightnet:faucet --env-mode=loose --", + "lightnet:wait-for-network": "turbo run lightnet:wait-for-network --env-mode=loose --", "settlement:deploy": "turbo run settlement:deploy --env-mode=loose --", "mina-explorer:start": "turbo run mina-explorer:start --env-mode=loose --", - "bridge:deposit": "turbo run bridge:deposit --env-mode=loose --" + "bridge:deposit": "turbo run bridge:deposit --env-mode=loose --", + "bridge:withdraw": "turbo run bridge:withdraw --env-mode=loose --", + "docker:prune": "rm -rf ./docker/data/*" }, "devDependencies": { "eslint": "^8.53.0", diff --git a/packages/chain/package.json b/packages/chain/package.json index 485a32d..62a4702 100644 --- a/packages/chain/package.json +++ b/packages/chain/package.json @@ -43,9 +43,11 @@ "processor:prisma:generate": "prisma generate --schema ./src/processor/prisma/schema.prisma", "generate-keys": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/generate-keys.ts $1", "lightnet:faucet": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/lightnet/faucet.ts $1", + "lightnet:wait-for-network": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/lightnet/wait-for-network.ts $1", "settlement:deploy": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/settlement/deploy.ts $1", "mina-explorer:start": "node ./node_modules/mina-lightweight-explorer/server.js", - "bridge:deposit": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/bridge/deposit.ts $1" + "bridge:deposit": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/bridge/deposit.ts $1", + "bridge:withdraw": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/bridge/withdraw.ts $1" }, "peerDependencies": { "@proto-kit/api": "../../../framework/packages/api", diff --git a/packages/chain/src/environments/development/.env b/packages/chain/src/environments/development/.env index 7405ad4..cb64132 100644 --- a/packages/chain/src/environments/development/.env +++ b/packages/chain/src/environments/development/.env @@ -15,8 +15,8 @@ REDIS_PASSWORD=password PROTOKIT_SHOULD_ATTEMPT_DB_MIGRATION=true PROTOKIT_PRUNE_ON_STARTUP=false PROTOKIT_LOG_LEVEL=INFO -PROTOKIT_BLOCK_INTERVAL=5000 -PROTOKIT_SETTLEMENT_INTERVAL=15000 +PROTOKIT_BLOCK_INTERVAL=10000 +PROTOKIT_SETTLEMENT_INTERVAL=60000 PROTOKIT_GRAPHQL_HOST=0.0.0.0 PROTOKIT_GRAPHQL_PORT=8080 @@ -83,4 +83,7 @@ MINA_ACCOUNT_MANAGER_PORT=8084 MINA_EXPLORER_PORT=3001 TEST_ACCOUNT_1_PRIVATE_KEY=EKF5p3wQTFd4tRBiGicRf93yXK82bcRryokC1qoazRM6wq6gMzWJ -TEST_ACCOUNT_1_PUBLIC_KEY=B62qkVfEwyfkm5yucHEqrRjxbyx98pgdWz82pHv7LYq9Qigs812iWZ8 \ No newline at end of file +TEST_ACCOUNT_1_PUBLIC_KEY=B62qkVfEwyfkm5yucHEqrRjxbyx98pgdWz82pHv7LYq9Qigs812iWZ8 + +# generating mock proofs during development seems to be triggering a lot of warnings in node v22.9.0 +NODE_NO_WARNINGS=1 \ No newline at end of file diff --git a/packages/chain/src/environments/development/chain.config.ts b/packages/chain/src/environments/development/chain.config.ts index e9deca1..88b5ab4 100644 --- a/packages/chain/src/environments/development/chain.config.ts +++ b/packages/chain/src/environments/development/chain.config.ts @@ -1,8 +1,18 @@ import { AppChain } from "@proto-kit/sdk"; import { Runtime } from "@proto-kit/module"; import { Protocol } from "@proto-kit/protocol"; -import { DatabasePruneModule, Sequencer } from "@proto-kit/sequencer"; -import { PrismaRedisDatabase } from "@proto-kit/persistance"; +import { + DatabasePruneModule, + PendingTransaction, + Sequencer, + sequencerModule, +} from "@proto-kit/sequencer"; +import type { PrismaConnection } from "@proto-kit/persistance"; +import { + PrismaRedisDatabase, + PrismaTransactionStorage, + TransactionMapper, +} from "@proto-kit/persistance"; import runtime from "../../runtime"; import * as protocol from "../../protocol"; import { diff --git a/packages/chain/src/protocol/index.ts b/packages/chain/src/protocol/index.ts index 0e547fa..0a3b400 100644 --- a/packages/chain/src/protocol/index.ts +++ b/packages/chain/src/protocol/index.ts @@ -25,9 +25,7 @@ export const settlementModulesConfig = { withdrawalEventName: "withdraw", withdrawalStatePath: "Withdrawals.withdrawals", }, - SettlementContract: { - // withdrawalMethodPath: "Withdrawals.withdraw", - }, + SettlementContract: {}, DispatchContract: { incomingMessagesMethods: { deposit: "Balances.deposit", diff --git a/packages/chain/src/runtime/index.ts b/packages/chain/src/runtime/index.ts index c2150d5..afbf6e5 100644 --- a/packages/chain/src/runtime/index.ts +++ b/packages/chain/src/runtime/index.ts @@ -1,11 +1,8 @@ -import { - Balance, - VanillaRuntimeModules, - Withdrawals, -} from "@proto-kit/library"; +import { Balance, VanillaRuntimeModules } from "@proto-kit/library"; import { ModulesConfig } from "@proto-kit/common"; import { Balances } from "./modules/balances"; +import { Withdrawals } from "./modules/withdrawals"; export const modules = VanillaRuntimeModules.with({ Balances, @@ -14,7 +11,7 @@ export const modules = VanillaRuntimeModules.with({ export const config: ModulesConfig = { Balances: { - totalSupply: Balance.from(10_000), + totalSupply: Balance.from(10_000 * 1e9), }, Withdrawals: {}, }; diff --git a/packages/chain/src/runtime/modules/balances.ts b/packages/chain/src/runtime/modules/balances.ts index 1b231d1..f9f98c7 100644 --- a/packages/chain/src/runtime/modules/balances.ts +++ b/packages/chain/src/runtime/modules/balances.ts @@ -11,7 +11,7 @@ import { Balances as BaseBalances, TokenId, } from "@proto-kit/library"; -import { PublicKey } from "o1js"; +import { Provable, PublicKey } from "o1js"; interface BalancesConfig { totalSupply: Balance; @@ -42,10 +42,11 @@ export class Balances extends BaseBalances { @runtimeMessage() public async deposit(deposit: Deposit) { const key = new BalancesKey({ - tokenId: TokenId.from(0), + tokenId: TokenId.from(deposit.tokenId), address: deposit.address, }); const balance = await this.balances.get(key); + Provable.log("deposited", deposit); await this.balances.set( key, balance.value.add(Balance.Unsafe.fromField(deposit.amount.value)) diff --git a/packages/chain/src/runtime/modules/withdrawals.ts b/packages/chain/src/runtime/modules/withdrawals.ts new file mode 100644 index 0000000..3b06a0f --- /dev/null +++ b/packages/chain/src/runtime/modules/withdrawals.ts @@ -0,0 +1,23 @@ +import { Withdrawals as BaseWithdrawals, UInt64 } from "@proto-kit/library"; +import { runtimeMethod, runtimeModule } from "@proto-kit/module"; +import { PublicKey, Field, Provable } from "o1js"; + +@runtimeModule() +export class Withdrawals extends BaseWithdrawals { + @runtimeMethod() + public async withdraw( + address: PublicKey, + amount: UInt64, + tokenId: Field + ): Promise { + const balance = await (this as any).balances.getBalance(tokenId, address); + + // TODO: address must be sender instead + Provable.log("withdraw debug", { + address, + balance, + amount, + }); + await super.withdraw(address, amount, tokenId); + } +} diff --git a/packages/chain/src/scripts/bridge/deposit.ts b/packages/chain/src/scripts/bridge/deposit.ts index fe1f4f5..543f037 100644 --- a/packages/chain/src/scripts/bridge/deposit.ts +++ b/packages/chain/src/scripts/bridge/deposit.ts @@ -14,17 +14,25 @@ import { import { AppChain } from "@proto-kit/sdk"; import { Runtime } from "@proto-kit/module"; import runtime from "../../runtime"; -import { Protocol } from "@proto-kit/protocol"; +import { + Protocol, + TokenBridgeAttestation, + TokenBridgeTree, +} from "@proto-kit/protocol"; import * as protocol from "../../protocol"; import { AccountUpdate, fetchAccount, + Field, Mina, PrivateKey, Provable, PublicKey, + TokenId, + UInt32, UInt64, } from "o1js"; +import { Authorization } from "../../../node_modules/o1js/dist/node/lib/mina/account-update"; class Noop extends SequencerModule { public async start() {} @@ -45,6 +53,7 @@ const appChain = AppChain.from({ Database: InMemoryDatabase, TaskQueue: LocalTaskQueue, ...settlementSequencerModules, + SequencerStartupModule: Noop, OutgoingMessageQueue: Noop, }, }), @@ -73,18 +82,27 @@ const settlementModule = appChain.sequencer.resolveOrFail( const { settlement, dispatch } = settlementModule.getContracts(); +const tokenId = Field(process.argv[2]); + const fromPrivateKey = PrivateKey.fromBase58( - process.env[process.argv[2]] || process.argv[2] + process.env[process.argv[3]] || process.argv[3] +); + +const toPublicKey = PublicKey.fromBase58( + process.env[process.argv[4]] || process.argv[4]! ); -const amount = process.argv[2] ?? 100 * 1e9; +const amount = Number(process.argv[5]) * 1e9; const contractBalanceBefore = settlement.account.balance.get(); Provable.log("contractBalanceBefore", contractBalanceBefore); Provable.log("debug", { - fromPrivateKey: fromPrivateKey.toPublicKey().toBase58(), + fromPublicKey: fromPrivateKey.toPublicKey().toBase58(), + toPublicKey, + amount, + tokenId, }); const account = await fetchAccount({ publicKey: fromPrivateKey.toPublicKey() }); @@ -96,22 +114,147 @@ console.log("existing noonce", { nonce: account.account?.nonce.toBigint(), }); +Provable.log("default", TokenId.default); + +const tree = await TokenBridgeTree.buildTreeFromEvents(dispatch); +const index = tree.getIndex(tokenId); +// Provable.log("tree", tree); +Provable.log("index", { tokenId, index }); +const witness = tree.getWitness(index); +const attestation = new TokenBridgeAttestation({ + index: Field(index), + witness: tree.getWitness(index), +}); + +async function getLatestMempoolNonce(address: PublicKey) { + interface PooledZkAppCommands { + data: { + pooledZkappCommands: { + zkappCommand: { + accountUpdates: { + body: { + publicKey: string; + preconditions: { + account: { + nonce: { + lower: string; + upper: string; + }; + }; + }; + }; + }[]; + }; + }[]; + }; + } + const query = ` + query MyQuery { + pooledZkappCommands { + zkappCommand { + accountUpdates { + body { + publicKey + preconditions { + account { + nonce { + lower, + upper + } + } + } + } + } + } + } + } + `; + const response = await fetch("http://localhost:8083/graphql", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + query, + }), + }); + + const result = (await response.json()) as PooledZkAppCommands; + + let nonce = 0; + result.data.pooledZkappCommands.forEach((zkappCommand) => { + zkappCommand.zkappCommand.accountUpdates.forEach((au) => { + if (au.body.publicKey === address.toBase58()) { + const upperNonce = Number( + au.body.preconditions.account.nonce.upper ?? 0 + ); + nonce = upperNonce > nonce ? upperNonce : nonce; + } + }); + }); + + const account = await fetchAccount({ publicKey: address }); + const knownNonce = Number(account.account?.nonce.toString()); + const latestNonce = knownNonce > nonce ? knownNonce : nonce; + Provable.log("Latest mempool nonce", { + address, + latestNonce, + }); + + return latestNonce; +} + +console.log("forging transaction"); const tx = await Mina.transaction( { sender: fromPrivateKey.toPublicKey(), - fee: 0.01 * 1e9, + fee: 0.1 * 1e9, }, async () => { const au = AccountUpdate.createSigned(fromPrivateKey.toPublicKey()); au.balance.subInPlace(UInt64.from(amount)); - // await dispatch.deposit(UInt64.from(amount)); + + await dispatch.deposit( + UInt64.from(amount), + tokenId, + PublicKey.fromBase58( + process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PUBLIC_KEY! + ), + attestation, + toPublicKey + ); + + // const nonce = await getLatestMempoolNonce(dispatch.address); + // extract the nonce from pending zk app commands and commit to it here for signed settlements + // dispatch.self.body.preconditions.account.nonce.value = { + // lower: UInt32.from(nonce), + // upper: UInt32.from(nonce), + // }; } ); -settlementModule.signTransaction(tx, [fromPrivateKey]); +// TODO: remove if NONE authorization isnt used (outside of lightnet) +tx.transaction.accountUpdates.forEach((au) => { + console.log("au", au); + if ( + [ + process.env.PROTOKIT_SETTLEMENT_CONTRACT_PUBLIC_KEY, + process.env.PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY, + ].includes(au.body.publicKey.toBase58()) + ) { + Authorization.setLazyNone(au); + } +}); + +// settlementModule.signTransaction(tx, [fromPrivateKey]); +tx.sign([fromPrivateKey]); + +// console.log("proving"); +// await tx.prove(); -await tx.prove(); +console.log("tx pretty", tx.toPretty()); +console.log("sending"); const sentTx = await tx.send(); const includedTx = await sentTx.wait(); diff --git a/packages/chain/src/scripts/bridge/withdraw.ts b/packages/chain/src/scripts/bridge/withdraw.ts new file mode 100644 index 0000000..91a38cd --- /dev/null +++ b/packages/chain/src/scripts/bridge/withdraw.ts @@ -0,0 +1,43 @@ +import { ClientAppChain, InMemorySigner } from "@proto-kit/sdk"; +import runtime from "../../runtime"; +import { Field, PrivateKey, Provable } from "o1js"; +import { UInt64 } from "@proto-kit/library"; + +const appChain = ClientAppChain.fromRuntime(runtime.modules, InMemorySigner); + +appChain.configurePartial({ + Runtime: runtime.config, + GraphqlClient: { + url: process.env.NEXT_PUBLIC_PROTOKIT_GRAPHQL_URL, + }, +}); + +await appChain.start(); + +const senderPrivateKey = PrivateKey.fromBase58( + process.env[process.argv[3]] || process.argv[3] +); +const senderPublicKey = senderPrivateKey.toPublicKey(); +const signer = appChain.resolve("Signer"); +signer.config.signer = senderPrivateKey; + +Provable.log("debug", { + senderPrivateKey, + senderPublicKey, + amount: process.argv[4], + tokenId: process.argv[2], +}); + +const withdrawals = appChain.runtime.resolve("Withdrawals"); +const tx = await appChain.transaction(senderPublicKey, async () => { + await withdrawals.withdraw( + senderPublicKey, + UInt64.from(Number(process.argv[4]) * 1e9), + Field(process.argv[2]!) + ); +}); + +await tx.sign(); +await tx.send(); + +console.log("withdrawal tx sent"); diff --git a/packages/chain/src/scripts/lightnet/wait-for-network.ts b/packages/chain/src/scripts/lightnet/wait-for-network.ts new file mode 100644 index 0000000..37eccf2 --- /dev/null +++ b/packages/chain/src/scripts/lightnet/wait-for-network.ts @@ -0,0 +1,24 @@ +import { sleep } from "@proto-kit/common"; +import { fetchLastBlock, Provable } from "o1js"; + +const maxAttempts = 24; +const delay = 5000; +const graphqlEndpoint = `${process.env.MINA_NODE_GRAPHQL_HOST!}:${process.env.MINA_NODE_GRAPHQL_PORT!}/graphql`; +let lastBlock; +let attempt = 0; + +console.log(`Checking if network is ready...`); +while (!lastBlock) { + attempt++; + if (attempt > maxAttempts) { + throw new Error( + `Network was still not ready after ${(delay / 1000) * (attempt - 1)}s` + ); + } + try { + lastBlock = await fetchLastBlock(graphqlEndpoint); + } catch (e) {} + await sleep(delay); +} + +Provable.log("Network is ready", lastBlock); diff --git a/turbo.json b/turbo.json index 0b35dbb..8ba2c12 100644 --- a/turbo.json +++ b/turbo.json @@ -71,6 +71,9 @@ "lightnet:faucet": { "cache": false }, + "lightnet:wait-for-network": { + "cache": false + }, "settlement:deploy": { "cache": false }, @@ -82,6 +85,9 @@ }, "bridge:deposit": { "cache": false + }, + "bridge:withdraw": { + "cache": false } } } From cbf2cbc073a5ea1a76df7e156a6bd1393ffbb243 Mon Sep 17 00:00:00 2001 From: Matej Sima Date: Tue, 4 Feb 2025 21:31:17 +0100 Subject: [PATCH 03/10] WIP bridging --- README.md | 19 +- docker/docker-compose.yml | 1 - docker/lightnet/docker-compose.yml | 2 - package.json | 4 + packages/chain/package.json | 19 +- .../chain/src/environments/development/.env | 2 +- packages/chain/src/scripts/bridge/deposit.ts | 319 ++++++------------ packages/chain/src/scripts/bridge/redeem.ts | 144 ++++++++ packages/chain/src/scripts/bridge/withdraw.ts | 70 ++-- packages/chain/src/scripts/generate-keys.ts | 2 +- packages/chain/src/scripts/lightnet/faucet.ts | 100 +++--- .../src/scripts/lightnet/wait-for-network.ts | 33 +- packages/chain/src/scripts/run.ts | 3 + .../chain/src/scripts/settlement/deploy.ts | 192 ++++++----- turbo.json | 3 + 15 files changed, 480 insertions(+), 433 deletions(-) create mode 100644 packages/chain/src/scripts/bridge/redeem.ts create mode 100644 packages/chain/src/scripts/run.ts diff --git a/README.md b/README.md index 7f1958f..cc09608 100644 --- a/README.md +++ b/README.md @@ -201,18 +201,10 @@ You can define which resolvers are available in `chain/src/processor/api/resolve At this point in time, the starter-kit offers settlement & bridging integration with lightnet (local mina network). You can enable these features by setting the `PROTOKIT_SETTLEMENT_ENABLED` environment variable to `true` in development .env file. Follow these steps to get the sequencer to settle & bridge: -- Fund the sequencer operator key by running: +- Initialize the lightnet process, fund the sequencer operator & deploy settlement+bridging contracts: ``` - pnpm env:development lightnet:faucet B62qizW6aroTxQorJz4ywVNZom4jA6W4QPPCK3wLeyhnJHtVStUNniL - ``` -- Fund a testing account on lightnet (defined in the .env file) - ``` - pnpm env:development lightnet:faucet B62qkVfEwyfkm5yucHEqrRjxbyx98pgdWz82pHv7LYq9Qigs812iWZ8 - ``` - -- Deploy the settlement, dispatch and bridge contracts - ``` - pnpm env:development settlement:deploy + pnpm env:development lightnet:start -d + pnpm env:development lightnet:initialize ``` - Run a worker, alongside with the sequencer in separate shell instances @@ -221,6 +213,11 @@ Follow these steps to get the sequencer to settle & bridge: pnpm env:development sequencer:dev ``` +- Fund a testing account on lightnet (defined in the .env file) + ``` + pnpm env:development lightnet:faucet B62qkVfEwyfkm5yucHEqrRjxbyx98pgdWz82pHv7LYq9Qigs812iWZ8 + ``` + - Bridge the L1 $MINA to your app-chain, and observe your app-chain $MINA balance change after the next settlement lifecycle has been completed by the sequencer > Token ID of MINA is `1` on both the L1 and app-chain diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 301f76d..c93e660 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -7,4 +7,3 @@ include: - ./indexer/docker-compose.yml - ./processor-persistence/docker-compose.yml - ./processor/docker-compose.yml - - ./lightnet/docker-compose.yml diff --git a/docker/lightnet/docker-compose.yml b/docker/lightnet/docker-compose.yml index 396776e..30d38a3 100644 --- a/docker/lightnet/docker-compose.yml +++ b/docker/lightnet/docker-compose.yml @@ -2,8 +2,6 @@ services: lightnet: image: o1labs/mina-local-network:compatible-latest-lightnet container_name: lightnet - profiles: - - lightnet environment: - RUN_ARCHIVE_NODE=true - LOG_LEVEL=INFO diff --git a/package.json b/package.json index 998f191..36263de 100644 --- a/package.json +++ b/package.json @@ -30,12 +30,16 @@ "env:inmemory": "dotenv -e ./packages/chain/src/environments/inmemory/.env -- pnpm", "env:sovereign": "dotenv -e ./packages/chain/src/environments/sovereign/.env -- pnpm", "generate-keys": "turbo run generate-keys --env-mode=loose --", + "lightnet:start": "docker compose -f docker/lightnet/docker-compose.yml up", + "lightnet:stop": "docker compose -f docker/lightnet/docker-compose.yml down", "lightnet:faucet": "turbo run lightnet:faucet --env-mode=loose --", "lightnet:wait-for-network": "turbo run lightnet:wait-for-network --env-mode=loose --", + "lightnet:initialize": "pnpm env:development lightnet:wait-for-network && pnpm env:development lightnet:faucet PROTOKIT_SEQUENCER_PUBLIC_KEY && pnpm env:development lightnet:faucet TEST_ACCOUNT_1_PUBLIC_KEY && pnpm env:development settlement:deploy", "settlement:deploy": "turbo run settlement:deploy --env-mode=loose --", "mina-explorer:start": "turbo run mina-explorer:start --env-mode=loose --", "bridge:deposit": "turbo run bridge:deposit --env-mode=loose --", "bridge:withdraw": "turbo run bridge:withdraw --env-mode=loose --", + "bridge:redeem": "turbo run bridge:redeem --env-mode=loose --", "docker:prune": "rm -rf ./docker/data/*" }, "devDependencies": { diff --git a/packages/chain/package.json b/packages/chain/package.json index 62a4702..bd56690 100644 --- a/packages/chain/package.json +++ b/packages/chain/package.json @@ -24,14 +24,14 @@ "indexer:start": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./dist/start.js start \"./environments/$PROTOKIT_ENV_FOLDER/indexer.config.js\" $1", "processor:start": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./dist/start.js start \"./environments/$PROTOKIT_ENV_FOLDER/processor.config.js\" $1", "dev": "pnpm run sequencer:dev", - "sequencer:dev:run": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/start.ts start \"./environments/$PROTOKIT_ENV_FOLDER/chain.config.ts\" $1", + "sequencer:dev": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/start.ts start \"./environments/$PROTOKIT_ENV_FOLDER/chain.config.ts\" $1", "indexer:dev:run": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/start.ts start \"./environments/$PROTOKIT_ENV_FOLDER/indexer.config.ts\" $1", "processor:dev:run": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/start.ts start \"./environments/$PROTOKIT_ENV_FOLDER/processor.config.ts\" $1", - "sequencer:dev": "nodemon --watch src -e ts --exec \"pnpm sequencer:dev:run\"", + "sequencer:dev:2": "nodemon --watch src -e ts --exec \"pnpm sequencer:dev:run\"", "indexer:dev": "nodemon --watch src -e ts --exec \"pnpm indexer:dev:run\"", "processor:dev": "nodemon --watch src -e ts --exec \"pnpm processor:dev:run\"", - "worker:dev:run": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/start.ts start \"./environments/$PROTOKIT_ENV_FOLDER/worker.config.ts\" $1", - "worker:dev": "nodemon --watch src -e ts --exec \"pnpm worker:dev:run\"", + "worker:dev": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/start.ts start \"./environments/$PROTOKIT_ENV_FOLDER/worker.config.ts\" $1", + "worker:dev:2": "nodemon --watch src -e ts --exec \"pnpm worker:dev:run\"", "prisma:generate": "pnpm run sequencer:prisma:generate && pnpm run indexer:prisma:generate && pnpm run processor:prisma:generate", "prisma:migrate": "pnpm run sequencer:prisma:migrate && pnpm run indexer:prisma:migrate && pnpm run processor:prisma:migrate", "sequencer:prisma:migrate": "prisma migrate deploy --schema ./node_modules/@proto-kit/persistance/prisma/schema.prisma", @@ -42,12 +42,13 @@ "processor:prisma:migrate": "prisma migrate deploy --schema ./src/processor/prisma/schema.prisma", "processor:prisma:generate": "prisma generate --schema ./src/processor/prisma/schema.prisma", "generate-keys": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/generate-keys.ts $1", - "lightnet:faucet": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/lightnet/faucet.ts $1", - "lightnet:wait-for-network": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/lightnet/wait-for-network.ts $1", - "settlement:deploy": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/settlement/deploy.ts $1", + "lightnet:faucet": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/run lightnet/faucet.ts $1", + "lightnet:wait-for-network": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/run lightnet/wait-for-network.ts $1", + "settlement:deploy": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/run settlement/deploy.ts $1", "mina-explorer:start": "node ./node_modules/mina-lightweight-explorer/server.js", - "bridge:deposit": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/bridge/deposit.ts $1", - "bridge:withdraw": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/bridge/withdraw.ts $1" + "bridge:deposit": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/run bridge/deposit.ts $1", + "bridge:withdraw": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/run bridge/withdraw.ts $1", + "bridge:redeem": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/run bridge/redeem.ts $1" }, "peerDependencies": { "@proto-kit/api": "../../../framework/packages/api", diff --git a/packages/chain/src/environments/development/.env b/packages/chain/src/environments/development/.env index cb64132..b35b323 100644 --- a/packages/chain/src/environments/development/.env +++ b/packages/chain/src/environments/development/.env @@ -1,4 +1,4 @@ -COMPOSE_PROFILES=db, indexer-db, processor-db, lightnet +COMPOSE_PROFILES=db,indexer-db,processor-db COMPOSE_PROJECT_NAME=starter-kit POSTGRES_PASSWORD=password diff --git a/packages/chain/src/scripts/bridge/deposit.ts b/packages/chain/src/scripts/bridge/deposit.ts index 543f037..aa33875 100644 --- a/packages/chain/src/scripts/bridge/deposit.ts +++ b/packages/chain/src/scripts/bridge/deposit.ts @@ -34,229 +34,126 @@ import { } from "o1js"; import { Authorization } from "../../../node_modules/o1js/dist/node/lib/mina/account-update"; -class Noop extends SequencerModule { - public async start() {} -} - -const appChain = AppChain.from({ - Runtime: Runtime.from({ - modules: runtime.modules, - }), - Protocol: Protocol.from({ - modules: { - ...protocol.modules, - ...protocol.settlementModules, - }, - }), - Sequencer: Sequencer.from({ - modules: { - Database: InMemoryDatabase, - TaskQueue: LocalTaskQueue, - ...settlementSequencerModules, - SequencerStartupModule: Noop, - OutgoingMessageQueue: Noop, - }, - }), - modules: {}, -}); - -appChain.configure({ - Runtime: runtime.config, - Protocol: { - ...protocol.config, - ...protocol.settlementModulesConfig, - }, - Sequencer: { - Database: {}, - TaskQueue: {}, - ...settlementSequencerModulesConfig, - }, -}); - -await appChain.start(); - -const settlementModule = appChain.sequencer.resolveOrFail( - "SettlementModule", - SettlementModule -); - -const { settlement, dispatch } = settlementModule.getContracts(); - -const tokenId = Field(process.argv[2]); - -const fromPrivateKey = PrivateKey.fromBase58( - process.env[process.argv[3]] || process.argv[3] -); - -const toPublicKey = PublicKey.fromBase58( - process.env[process.argv[4]] || process.argv[4]! -); - -const amount = Number(process.argv[5]) * 1e9; - -const contractBalanceBefore = settlement.account.balance.get(); - -Provable.log("contractBalanceBefore", contractBalanceBefore); - -Provable.log("debug", { - fromPublicKey: fromPrivateKey.toPublicKey().toBase58(), - toPublicKey, - amount, - tokenId, -}); - -const account = await fetchAccount({ publicKey: fromPrivateKey.toPublicKey() }); -await fetchAccount({ publicKey: settlement.address }); -await fetchAccount({ publicKey: dispatch.address }); - -console.log("existing noonce", { - account: account.account?.publicKey.toBase58(), - nonce: account.account?.nonce.toBigint(), -}); - -Provable.log("default", TokenId.default); - -const tree = await TokenBridgeTree.buildTreeFromEvents(dispatch); -const index = tree.getIndex(tokenId); -// Provable.log("tree", tree); -Provable.log("index", { tokenId, index }); -const witness = tree.getWitness(index); -const attestation = new TokenBridgeAttestation({ - index: Field(index), - witness: tree.getWitness(index), -}); - -async function getLatestMempoolNonce(address: PublicKey) { - interface PooledZkAppCommands { - data: { - pooledZkappCommands: { - zkappCommand: { - accountUpdates: { - body: { - publicKey: string; - preconditions: { - account: { - nonce: { - lower: string; - upper: string; - }; - }; - }; - }; - }[]; - }; - }[]; - }; - } - const query = ` - query MyQuery { - pooledZkappCommands { - zkappCommand { - accountUpdates { - body { - publicKey - preconditions { - account { - nonce { - lower, - upper - } - } - } - } - } - } - } - } - `; - const response = await fetch("http://localhost:8083/graphql", { - method: "POST", - headers: { - "Content-Type": "application/json", - }, - body: JSON.stringify({ - query, - }), +export default async function () { + const tokenId = Field(process.argv[3]); + const fromPrivateKey = PrivateKey.fromBase58( + process.env[process.argv[4]] || process.argv[4] + ); + const toPublicKey = PublicKey.fromBase58( + process.env[process.argv[5]] || process.argv[5]! + ); + const amount = Number(process.argv[6]) * 1e9; + const fee = 0.1 * 1e9; + + Provable.log("Preparing to deposit", { + tokenId, + fromPrivateKey, + toPublicKey, + amount, + fee, }); - const result = (await response.json()) as PooledZkAppCommands; + class Noop extends SequencerModule { + public async start() {} + } - let nonce = 0; - result.data.pooledZkappCommands.forEach((zkappCommand) => { - zkappCommand.zkappCommand.accountUpdates.forEach((au) => { - if (au.body.publicKey === address.toBase58()) { - const upperNonce = Number( - au.body.preconditions.account.nonce.upper ?? 0 - ); - nonce = upperNonce > nonce ? upperNonce : nonce; - } - }); + const appChain = AppChain.from({ + Runtime: Runtime.from({ + modules: runtime.modules, + }), + Protocol: Protocol.from({ + modules: { + ...protocol.modules, + ...protocol.settlementModules, + }, + }), + Sequencer: Sequencer.from({ + modules: { + Database: InMemoryDatabase, + TaskQueue: LocalTaskQueue, + ...settlementSequencerModules, + SequencerStartupModule: Noop, + OutgoingMessageQueue: Noop, + }, + }), + modules: {}, }); - const account = await fetchAccount({ publicKey: address }); - const knownNonce = Number(account.account?.nonce.toString()); - const latestNonce = knownNonce > nonce ? knownNonce : nonce; - Provable.log("Latest mempool nonce", { - address, - latestNonce, + appChain.configure({ + Runtime: runtime.config, + Protocol: { + ...protocol.config, + ...protocol.settlementModulesConfig, + }, + Sequencer: { + Database: {}, + TaskQueue: {}, + ...settlementSequencerModulesConfig, + }, }); - return latestNonce; -} + await appChain.start(); -console.log("forging transaction"); -const tx = await Mina.transaction( - { - sender: fromPrivateKey.toPublicKey(), - fee: 0.1 * 1e9, - }, - async () => { - const au = AccountUpdate.createSigned(fromPrivateKey.toPublicKey()); - au.balance.subInPlace(UInt64.from(amount)); + const settlementModule = appChain.sequencer.resolveOrFail( + "SettlementModule", + SettlementModule + ); - await dispatch.deposit( - UInt64.from(amount), - tokenId, - PublicKey.fromBase58( - process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PUBLIC_KEY! - ), - attestation, - toPublicKey - ); + const { settlement, dispatch } = settlementModule.getContracts(); - // const nonce = await getLatestMempoolNonce(dispatch.address); - // extract the nonce from pending zk app commands and commit to it here for signed settlements - // dispatch.self.body.preconditions.account.nonce.value = { - // lower: UInt32.from(nonce), - // upper: UInt32.from(nonce), - // }; - } -); - -// TODO: remove if NONE authorization isnt used (outside of lightnet) -tx.transaction.accountUpdates.forEach((au) => { - console.log("au", au); - if ( - [ - process.env.PROTOKIT_SETTLEMENT_CONTRACT_PUBLIC_KEY, - process.env.PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY, - ].includes(au.body.publicKey.toBase58()) - ) { - Authorization.setLazyNone(au); - } -}); + await fetchAccount({ publicKey: fromPrivateKey.toPublicKey() }); + await fetchAccount({ publicKey: settlement.address }); + await fetchAccount({ publicKey: dispatch.address }); -// settlementModule.signTransaction(tx, [fromPrivateKey]); -tx.sign([fromPrivateKey]); + const tree = await TokenBridgeTree.buildTreeFromEvents(dispatch); + const index = tree.getIndex(tokenId); + const witness = tree.getWitness(index); + const attestation = new TokenBridgeAttestation({ + index: Field(index), + witness, + }); -// console.log("proving"); -// await tx.prove(); + console.log("Forging transaction..."); + const tx = await Mina.transaction( + { + sender: fromPrivateKey.toPublicKey(), + fee, + }, + async () => { + const au = AccountUpdate.createSigned(fromPrivateKey.toPublicKey()); + au.balance.subInPlace(UInt64.from(amount)); + + await dispatch.deposit( + UInt64.from(amount), + tokenId, + PublicKey.fromBase58( + process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PUBLIC_KEY! + ), + attestation, + toPublicKey + ); + } + ); + + // TODO: remove if NONE authorization isnt used (outside of lightnet) + tx.transaction.accountUpdates.forEach((au) => { + if ( + [ + process.env.PROTOKIT_SETTLEMENT_CONTRACT_PUBLIC_KEY, + process.env.PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY, + ].includes(au.body.publicKey.toBase58()) + ) { + Authorization.setLazyNone(au); + } + }); -console.log("tx pretty", tx.toPretty()); + tx.sign([fromPrivateKey]); -console.log("sending"); -const sentTx = await tx.send(); -const includedTx = await sentTx.wait(); + console.log("Sending..."); + const sentTx = await tx.send(); + console.log("Waiting for inclusion..."); + const includedTx = await sentTx.wait(); -console.log("Deposit transaction included in a block:"); -console.log(includedTx.toPretty()); + console.log("Deposit transaction included in a block:"); + console.log(includedTx.toPretty()); +} diff --git a/packages/chain/src/scripts/bridge/redeem.ts b/packages/chain/src/scripts/bridge/redeem.ts new file mode 100644 index 0000000..e6a1b62 --- /dev/null +++ b/packages/chain/src/scripts/bridge/redeem.ts @@ -0,0 +1,144 @@ +// const { settlement, dispatch } = settlementModule.getContracts(); + +import { + BridgingModule, + InMemoryDatabase, + LocalTaskQueue, + Sequencer, + SequencerModule, + SettlementModule, +} from "@proto-kit/sequencer"; +import { + settlementSequencerModules, + settlementSequencerModulesConfig, +} from "../../sequencer"; +import { AppChain } from "@proto-kit/sdk"; +import { Runtime } from "@proto-kit/module"; +import runtime from "../../runtime"; +import { + Protocol, + TokenBridgeAttestation, + TokenBridgeTree, +} from "@proto-kit/protocol"; +import * as protocol from "../../protocol"; +import { + AccountUpdate, + fetchAccount, + Field, + Mina, + PrivateKey, + Provable, + PublicKey, + TokenId, + UInt32, + UInt64, +} from "o1js"; +import { Authorization } from "../../../node_modules/o1js/dist/node/lib/mina/account-update"; + +export default async function () { + const tokenId = Field(process.argv[3]); + const toPrivateKey = PrivateKey.fromBase58( + process.env[process.argv[4]] || process.argv[4] + ); + const amount = Number(process.argv[5]) * 1e9; + const fee = 0.1 * 1e9; + + Provable.log("Preparing to redeem", { + tokenId, + to: toPrivateKey.toPublicKey(), + amount, + fee, + }); + + class Noop extends SequencerModule { + public async start() {} + } + + const appChain = AppChain.from({ + Runtime: Runtime.from({ + modules: runtime.modules, + }), + Protocol: Protocol.from({ + modules: { + ...protocol.modules, + ...protocol.settlementModules, + }, + }), + Sequencer: Sequencer.from({ + modules: { + Database: InMemoryDatabase, + TaskQueue: LocalTaskQueue, + ...settlementSequencerModules, + SequencerStartupModule: Noop, + OutgoingMessageQueue: Noop, + }, + }), + modules: {}, + }); + + appChain.configure({ + Runtime: runtime.config, + Protocol: { + ...protocol.config, + ...protocol.settlementModulesConfig, + }, + Sequencer: { + Database: {}, + TaskQueue: {}, + ...settlementSequencerModulesConfig, + }, + }); + + await appChain.start(); + + const bridgingModule = appChain.sequencer.resolveOrFail( + "BridgingModule", + BridgingModule + ); + + const bridgeContract = await bridgingModule.getBridgeContract(tokenId); + + const customAcc = await fetchAccount({ + publicKey: toPrivateKey.toPublicKey(), + tokenId: bridgeContract.deriveTokenId(), + }); + + Provable.log("Custom account", customAcc.account?.balance); + + console.log("Forging transaction..."); + const tx = await Mina.transaction( + { + sender: toPrivateKey.toPublicKey(), + fee, + }, + async () => { + const au = AccountUpdate.createSigned(toPrivateKey.toPublicKey()); + au.balance.addInPlace(UInt64.from(amount)); + + await bridgeContract.redeem(au); + } + ); + + // TODO: remove if NONE authorization isnt used (outside of lightnet) + tx.transaction.accountUpdates.forEach((au) => { + if ( + [ + process.env.PROTOKIT_SETTLEMENT_CONTRACT_PUBLIC_KEY, + process.env.PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY, + process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PUBLIC_KEY, + ].includes(au.body.publicKey.toBase58()) + ) { + Authorization.setLazyNone(au); + } + }); + + tx.sign([toPrivateKey]); + + console.log("Sending..."); + const sentTx = await tx.send(); + console.log("Waiting for inclusion...", sentTx.toPretty()); + const includedTx = await sentTx.wait(); + + console.log("Redeem transaction included in a block:"); + console.log(includedTx.toPretty()); +} diff --git a/packages/chain/src/scripts/bridge/withdraw.ts b/packages/chain/src/scripts/bridge/withdraw.ts index 91a38cd..d0a66ae 100644 --- a/packages/chain/src/scripts/bridge/withdraw.ts +++ b/packages/chain/src/scripts/bridge/withdraw.ts @@ -3,41 +3,41 @@ import runtime from "../../runtime"; import { Field, PrivateKey, Provable } from "o1js"; import { UInt64 } from "@proto-kit/library"; -const appChain = ClientAppChain.fromRuntime(runtime.modules, InMemorySigner); - -appChain.configurePartial({ - Runtime: runtime.config, - GraphqlClient: { - url: process.env.NEXT_PUBLIC_PROTOKIT_GRAPHQL_URL, - }, -}); - -await appChain.start(); - -const senderPrivateKey = PrivateKey.fromBase58( - process.env[process.argv[3]] || process.argv[3] -); -const senderPublicKey = senderPrivateKey.toPublicKey(); -const signer = appChain.resolve("Signer"); -signer.config.signer = senderPrivateKey; - -Provable.log("debug", { - senderPrivateKey, - senderPublicKey, - amount: process.argv[4], - tokenId: process.argv[2], -}); - -const withdrawals = appChain.runtime.resolve("Withdrawals"); -const tx = await appChain.transaction(senderPublicKey, async () => { - await withdrawals.withdraw( - senderPublicKey, - UInt64.from(Number(process.argv[4]) * 1e9), - Field(process.argv[2]!) +export default async function () { + const tokenId = Field(process.argv[3]!); + const amount = UInt64.from(Number(process.argv[5]) * 1e9); + const appChain = ClientAppChain.fromRuntime(runtime.modules, InMemorySigner); + + appChain.configurePartial({ + Runtime: runtime.config, + GraphqlClient: { + url: process.env.NEXT_PUBLIC_PROTOKIT_GRAPHQL_URL, + }, + }); + + await appChain.start(); + + const senderPrivateKey = PrivateKey.fromBase58( + process.env[process.argv[4]] || process.argv[4] ); -}); + const senderPublicKey = senderPrivateKey.toPublicKey(); + const signer = appChain.resolve("Signer"); + signer.config.signer = senderPrivateKey; + + Provable.log("debug", { + senderPrivateKey, + senderPublicKey, + amount, + tokenId, + }); + + const withdrawals = appChain.runtime.resolve("Withdrawals"); + const tx = await appChain.transaction(senderPublicKey, async () => { + await withdrawals.withdraw(senderPublicKey, amount, tokenId); + }); -await tx.sign(); -await tx.send(); + await tx.sign(); + await tx.send(); -console.log("withdrawal tx sent"); + console.log("withdrawal tx sent"); +} diff --git a/packages/chain/src/scripts/generate-keys.ts b/packages/chain/src/scripts/generate-keys.ts index 788d399..5305a5b 100644 --- a/packages/chain/src/scripts/generate-keys.ts +++ b/packages/chain/src/scripts/generate-keys.ts @@ -1,4 +1,4 @@ -import { PrivateKey, Provable, PublicKey } from "o1js"; +import { PrivateKey } from "o1js"; const numberOFKeysToGenerate = Number(process.argv[2]) || 1; console.log( diff --git a/packages/chain/src/scripts/lightnet/faucet.ts b/packages/chain/src/scripts/lightnet/faucet.ts index 21b19db..bbc0fd1 100644 --- a/packages/chain/src/scripts/lightnet/faucet.ts +++ b/packages/chain/src/scripts/lightnet/faucet.ts @@ -9,66 +9,68 @@ import { } from "o1js"; import "reflect-metadata"; -// configuration -const fee = 0.1 * 1e9; -const fundingAmount = 1000 * 1e9; +export default async function () { + // configuration + const fee = 0.1 * 1e9; + const fundingAmount = 1000 * 1e9; -const net = Mina.Network({ - mina: `${process.env.MINA_NODE_GRAPHQL_HOST!}:${process.env.MINA_NODE_GRAPHQL_PORT!}/graphql`, - archive: `${process.env.MINA_ARCHIVE_GRAPHQL_HOST!}:${process.env.MINA_ARCHIVE_GRAPHQL_PORT!}/graphql`, - lightnetAccountManager: `${process.env.MINA_ACCOUNT_MANAGER_HOST!}:${process.env.MINA_ACCOUNT_MANAGER_PORT!}`, -}); + const net = Mina.Network({ + mina: `${process.env.MINA_NODE_GRAPHQL_HOST!}:${process.env.MINA_NODE_GRAPHQL_PORT!}/graphql`, + archive: `${process.env.MINA_ARCHIVE_GRAPHQL_HOST!}:${process.env.MINA_ARCHIVE_GRAPHQL_PORT!}/graphql`, + lightnetAccountManager: `${process.env.MINA_ACCOUNT_MANAGER_HOST!}:${process.env.MINA_ACCOUNT_MANAGER_PORT!}`, + }); -Mina.setActiveInstance(net); + Mina.setActiveInstance(net); -// get the source account from the account manager -const pair = await Lightnet.acquireKeyPair({ - isRegularAccount: true, -}); + // get the source account from the account manager + const pair = await Lightnet.acquireKeyPair({ + isRegularAccount: true, + }); -// which account to drip to -const keyArg = process.argv[2]; + // which account to drip to + const keyArg = process.env[process.argv[3]] || process.argv[3]; -if (!keyArg) { - throw new Error("No key provided"); -} + if (!keyArg) { + throw new Error("No key provided"); + } -const key = PublicKey.fromBase58(keyArg); + const key = PublicKey.fromBase58(keyArg); -await fetchAccount({ publicKey: pair.publicKey }); + await fetchAccount({ publicKey: pair.publicKey }); -Provable.log( - `Dripping ${fundingAmount / 1e9} MINA from ${pair.publicKey.toBase58()} to ${key.toBase58()}` -); + Provable.log( + `Dripping ${fundingAmount / 1e9} MINA from ${pair.publicKey.toBase58()} to ${key.toBase58()}` + ); -const tx = await Mina.transaction( - { - sender: pair.publicKey, - fee, - }, - async () => { - const account = await fetchAccount({ publicKey: key }); - // if the destination account does not exist yet, pay the creation fee for it - if (account.error) { - AccountUpdate.fundNewAccount(pair.publicKey); - } + const tx = await Mina.transaction( + { + sender: pair.publicKey, + fee, + }, + async () => { + const account = await fetchAccount({ publicKey: key }); + // if the destination account does not exist yet, pay the creation fee for it + if (account.error) { + AccountUpdate.fundNewAccount(pair.publicKey); + } - AccountUpdate.createSigned(pair.publicKey).balance.subInPlace( - fundingAmount - ); - AccountUpdate.create(key).balance.addInPlace(fundingAmount); - } -); + AccountUpdate.createSigned(pair.publicKey).balance.subInPlace( + fundingAmount + ); + AccountUpdate.create(key).balance.addInPlace(fundingAmount); + } + ); -tx.sign([pair.privateKey]); + tx.sign([pair.privateKey]); -const sentTx = await tx.send(); -await sentTx.wait(); + const sentTx = await tx.send(); + await sentTx.wait(); -Provable.log( - `Funded account ${key.toBase58()} with ${fundingAmount / 1e9} MINA` -); + Provable.log( + `Funded account ${key.toBase58()} with ${fundingAmount / 1e9} MINA` + ); -await Lightnet.releaseKeyPair({ - publicKey: pair.publicKey.toBase58(), -}); + await Lightnet.releaseKeyPair({ + publicKey: pair.publicKey.toBase58(), + }); +} diff --git a/packages/chain/src/scripts/lightnet/wait-for-network.ts b/packages/chain/src/scripts/lightnet/wait-for-network.ts index 37eccf2..8f8e5ae 100644 --- a/packages/chain/src/scripts/lightnet/wait-for-network.ts +++ b/packages/chain/src/scripts/lightnet/wait-for-network.ts @@ -4,21 +4,24 @@ import { fetchLastBlock, Provable } from "o1js"; const maxAttempts = 24; const delay = 5000; const graphqlEndpoint = `${process.env.MINA_NODE_GRAPHQL_HOST!}:${process.env.MINA_NODE_GRAPHQL_PORT!}/graphql`; -let lastBlock; -let attempt = 0; -console.log(`Checking if network is ready...`); -while (!lastBlock) { - attempt++; - if (attempt > maxAttempts) { - throw new Error( - `Network was still not ready after ${(delay / 1000) * (attempt - 1)}s` - ); +export default async function () { + let lastBlock; + let attempt = 0; + + console.log(`Waiting for network to be ready...`); + while (!lastBlock) { + attempt++; + if (attempt > maxAttempts) { + throw new Error( + `Network was still not ready after ${(delay / 1000) * (attempt - 1)}s` + ); + } + try { + lastBlock = await fetchLastBlock(graphqlEndpoint); + } catch (e) {} + await sleep(delay); } - try { - lastBlock = await fetchLastBlock(graphqlEndpoint); - } catch (e) {} - await sleep(delay); -} -Provable.log("Network is ready", lastBlock); + Provable.log("Network is ready", lastBlock); +} diff --git a/packages/chain/src/scripts/run.ts b/packages/chain/src/scripts/run.ts new file mode 100644 index 0000000..8544dc3 --- /dev/null +++ b/packages/chain/src/scripts/run.ts @@ -0,0 +1,3 @@ +const script = await import(`./${process.argv[2]}`); +await script.default(); +export {}; diff --git a/packages/chain/src/scripts/settlement/deploy.ts b/packages/chain/src/scripts/settlement/deploy.ts index 56c91b6..c70cd78 100644 --- a/packages/chain/src/scripts/settlement/deploy.ts +++ b/packages/chain/src/scripts/settlement/deploy.ts @@ -1,16 +1,9 @@ -import { Runtime, RuntimeModulesRecord } from "@proto-kit/module"; +import { Runtime } from "@proto-kit/module"; +import { Protocol, SettlementContractModule } from "@proto-kit/protocol"; +import { AppChain } from "@proto-kit/sdk"; import { - MandatoryProtocolModulesRecord, - Protocol, - SettlementContractModule, -} from "@proto-kit/protocol"; -import { AppChain, AppChainModulesRecord } from "@proto-kit/sdk"; -import { - ManualBlockTrigger, - MinaTransactionSimulator, Sequencer, SequencerModule, - SequencerModulesRecord, SettlementModule, } from "@proto-kit/sequencer"; import { PrivateKey, Provable, Transaction } from "o1js"; @@ -30,98 +23,101 @@ class Noop extends SequencerModule { public async start() {} } -const appChain = AppChain.from({ - Runtime: Runtime.from({ - modules: runtime.modules, - }), - Protocol: Protocol.from({ - modules: { - ...protocol.modules, - ...protocol.settlementModules, - }, - }), - Sequencer: Sequencer.from({ - modules: { - Database: PrismaRedisDatabase, - TaskQueue: BullQueue, - ...settlementSequencerModules, - OutgoingMessageQueue: Noop, - SequencerStartupModule: Noop, - }, - }), - modules: {}, -}); - -appChain.configure({ - Runtime: runtime.config, - Protocol: { - ...protocol.config, - ...protocol.settlementModulesConfig, - }, - Sequencer: { - Database: { - redis: { - host: process.env.REDIS_HOST!, - port: Number(process.env.REDIS_PORT)!, - password: process.env.REDIS_PASSWORD!, +export default async function () { + const appChain = AppChain.from({ + Runtime: Runtime.from({ + modules: runtime.modules, + }), + Protocol: Protocol.from({ + modules: { + ...protocol.modules, + ...protocol.settlementModules, }, - prisma: { - connection: process.env.DATABASE_URL!, + }), + Sequencer: Sequencer.from({ + modules: { + Database: PrismaRedisDatabase, + TaskQueue: BullQueue, + ...settlementSequencerModules, + OutgoingMessageQueue: Noop, + SequencerStartupModule: Noop, }, + }), + modules: {}, + }); + + appChain.configure({ + Runtime: runtime.config, + Protocol: { + ...protocol.config, + ...protocol.settlementModulesConfig, }, - TaskQueue: { - redis: { - host: process.env.REDIS_HOST!, - port: Number(process.env.REDIS_PORT)!, - password: process.env.REDIS_PASSWORD!, + Sequencer: { + Database: { + redis: { + host: process.env.REDIS_HOST!, + port: Number(process.env.REDIS_PORT)!, + password: process.env.REDIS_PASSWORD!, + }, + prisma: { + connection: process.env.DATABASE_URL!, + }, }, + TaskQueue: { + redis: { + host: process.env.REDIS_HOST!, + port: Number(process.env.REDIS_PORT)!, + password: process.env.REDIS_PASSWORD!, + }, + }, + ...settlementSequencerModulesConfig, }, - ...settlementSequencerModulesConfig, - }, -}); + }); -@injectable() -class InlineMinaTransactionSender { - public async proveAndSendTransaction(transaction: Transaction) { - const result = await transaction.send(); - await result.wait(); + @injectable() + class InlineMinaTransactionSender { + public async proveAndSendTransaction( + transaction: Transaction + ) { + const result = await transaction.send(); + await result.wait(); + } } -} -// TODO: split start & initialize into separate functions, so that we can use the appchain definition/container without starting -appChain.create(() => container); + // TODO: split start & initialize into separate functions, so that we can use the appchain definition/container without starting + appChain.create(() => container); -console.log("start"); -await appChain.start(); -console.log("after start"); + console.log("start"); + await appChain.start(); + console.log("after start"); -const settlementModule = appChain.sequencer.resolveOrFail( - "SettlementModule", - SettlementModule -); + const settlementModule = appChain.sequencer.resolveOrFail( + "SettlementModule", + SettlementModule + ); -// stub the transaction sender to work inline, standard transaction sender works with the internal worker flows -(settlementModule as any).transactionSender = new InlineMinaTransactionSender(); + // stub the transaction sender to work inline, standard transaction sender works with the internal worker flows + (settlementModule as any).transactionSender = + new InlineMinaTransactionSender(); -const settlementContractModule = appChain.protocol.resolveOrFail( - "SettlementContractModule", - SettlementContractModule -); -// TODO: does not respect are proofs enabled, since it does not have access to it DI-wise -const compileRegistry = container.resolve(CompileRegistry); + const settlementContractModule = appChain.protocol.resolveOrFail( + "SettlementContractModule", + SettlementContractModule + ); + // TODO: does not respect are proofs enabled, since it does not have access to it DI-wise + const compileRegistry = container.resolve(CompileRegistry); -console.log("compile"); -// compile contracts for deployment -const contracts = settlementContractModule.getContractClasses(); -for (const contractName in contracts) { - const target = contracts[contractName]; - await compileRegistry.compile(target); -} + console.log("compile"); + // compile contracts for deployment + const contracts = settlementContractModule.getContractClasses(); + for (const contractName in contracts) { + const target = contracts[contractName]; + await compileRegistry.compile(target); + } -console.log("Deploying settlement contracts..."); + console.log("Deploying settlement contracts..."); -settlementModule - .deploy( + await settlementModule.deploy( PrivateKey.fromBase58( process.env.PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY! ), @@ -131,16 +127,16 @@ settlementModule PrivateKey.fromBase58( process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY! ) - ) - .then(() => { - Provable.log("Deployed and initialized settlement contracts", { - settlement: PrivateKey.fromBase58( - process.env.PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY! - ).toPublicKey(), - dispatcher: PrivateKey.fromBase58( - process.env.PROTOKIT_DISPATCHER_CONTRACT_PRIVATE_KEY! - ).toPublicKey(), - }); + ); - process.exit(0); + Provable.log("Deployed and initialized settlement contracts", { + settlement: PrivateKey.fromBase58( + process.env.PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY! + ).toPublicKey(), + dispatcher: PrivateKey.fromBase58( + process.env.PROTOKIT_DISPATCHER_CONTRACT_PRIVATE_KEY! + ).toPublicKey(), }); + + process.exit(0); +} diff --git a/turbo.json b/turbo.json index 8ba2c12..70c1fc0 100644 --- a/turbo.json +++ b/turbo.json @@ -88,6 +88,9 @@ }, "bridge:withdraw": { "cache": false + }, + "bridge:redeem": { + "cache": false } } } From 695206ba8f5b7159300c9c7ebd34b0c7c7e070cf Mon Sep 17 00:00:00 2001 From: Matej Sima Date: Mon, 19 May 2025 16:27:07 +0200 Subject: [PATCH 04/10] wip bridging --- packages/chain/jest.config.cjs | 1 - packages/chain/src/environments/development/.env | 2 +- .../src/environments/development/chain.config.ts | 6 +++--- packages/chain/src/runtime/modules/balances.ts | 3 +-- packages/chain/src/scripts/bridge/deposit.ts | 8 ++++---- packages/chain/src/scripts/settlement/deploy.ts | 1 - packages/chain/src/sequencer/index.ts | 10 +++++++--- packages/chain/src/sequencer/worker/index.ts | 14 ++++++++++++++ 8 files changed, 30 insertions(+), 15 deletions(-) diff --git a/packages/chain/jest.config.cjs b/packages/chain/jest.config.cjs index eb33a78..48d3e59 100644 --- a/packages/chain/jest.config.cjs +++ b/packages/chain/jest.config.cjs @@ -2,7 +2,6 @@ /* eslint-disable import/unambiguous */ /* eslint-disable import/no-commonjs */ /** @type {import('ts-jest').JestConfigWithTsJest} */ - module.exports = { // because we run tests from within ./packages// rootDir: './', diff --git a/packages/chain/src/environments/development/.env b/packages/chain/src/environments/development/.env index b35b323..524eef2 100644 --- a/packages/chain/src/environments/development/.env +++ b/packages/chain/src/environments/development/.env @@ -16,7 +16,7 @@ PROTOKIT_SHOULD_ATTEMPT_DB_MIGRATION=true PROTOKIT_PRUNE_ON_STARTUP=false PROTOKIT_LOG_LEVEL=INFO PROTOKIT_BLOCK_INTERVAL=10000 -PROTOKIT_SETTLEMENT_INTERVAL=60000 +PROTOKIT_SETTLEMENT_INTERVAL=30000 PROTOKIT_GRAPHQL_HOST=0.0.0.0 PROTOKIT_GRAPHQL_PORT=8080 diff --git a/packages/chain/src/environments/development/chain.config.ts b/packages/chain/src/environments/development/chain.config.ts index 88b5ab4..57b4385 100644 --- a/packages/chain/src/environments/development/chain.config.ts +++ b/packages/chain/src/environments/development/chain.config.ts @@ -46,13 +46,13 @@ export const appChain = AppChain.from({ modules: { // ordering of the modules matters due to dependency resolution Database: PrismaRedisDatabase, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" + ? settlementSequencerModules + : {}), ...baseSequencerModules, ...indexerSequencerModules, TaskQueue: BullQueue, DatabasePruneModule, - ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" - ? settlementSequencerModules - : {}), }, }), modules: baseAppChainModules, diff --git a/packages/chain/src/runtime/modules/balances.ts b/packages/chain/src/runtime/modules/balances.ts index f9f98c7..a3041b2 100644 --- a/packages/chain/src/runtime/modules/balances.ts +++ b/packages/chain/src/runtime/modules/balances.ts @@ -1,10 +1,9 @@ import { runtimeModule, - state, runtimeMethod, runtimeMessage, } from "@proto-kit/module"; -import { Deposit, State, assert } from "@proto-kit/protocol"; +import { Deposit, State, assert, state } from "@proto-kit/protocol"; import { Balance, BalancesKey, diff --git a/packages/chain/src/scripts/bridge/deposit.ts b/packages/chain/src/scripts/bridge/deposit.ts index aa33875..fd6441a 100644 --- a/packages/chain/src/scripts/bridge/deposit.ts +++ b/packages/chain/src/scripts/bridge/deposit.ts @@ -73,7 +73,6 @@ export default async function () { TaskQueue: LocalTaskQueue, ...settlementSequencerModules, SequencerStartupModule: Noop, - OutgoingMessageQueue: Noop, }, }), modules: {}, @@ -135,7 +134,7 @@ export default async function () { } ); - // TODO: remove if NONE authorization isnt used (outside of lightnet) + // TODO: remove if SIGNATURE authorization isnt used (outside of lightnet) tx.transaction.accountUpdates.forEach((au) => { if ( [ @@ -143,13 +142,14 @@ export default async function () { process.env.PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY, ].includes(au.body.publicKey.toBase58()) ) { - Authorization.setLazyNone(au); + Authorization.setLazySignature(au); } }); - tx.sign([fromPrivateKey]); + tx.sign([fromPrivateKey, settlementModule.config.keys.dispatch]); console.log("Sending..."); + Provable.log("AUs", tx.toPretty()); const sentTx = await tx.send(); console.log("Waiting for inclusion..."); const includedTx = await sentTx.wait(); diff --git a/packages/chain/src/scripts/settlement/deploy.ts b/packages/chain/src/scripts/settlement/deploy.ts index c70cd78..3b48253 100644 --- a/packages/chain/src/scripts/settlement/deploy.ts +++ b/packages/chain/src/scripts/settlement/deploy.ts @@ -39,7 +39,6 @@ export default async function () { Database: PrismaRedisDatabase, TaskQueue: BullQueue, ...settlementSequencerModules, - OutgoingMessageQueue: Noop, SequencerStartupModule: Noop, }, }), diff --git a/packages/chain/src/sequencer/index.ts b/packages/chain/src/sequencer/index.ts index bbb485e..895012b 100644 --- a/packages/chain/src/sequencer/index.ts +++ b/packages/chain/src/sequencer/index.ts @@ -10,7 +10,6 @@ import { BlockProducerModule, MinaBaseLayer, SettlementModule, - WithdrawalQueue, ConstantFeeStrategy, BatchProducerModule, SequencerStartupModule, @@ -50,6 +49,13 @@ export const baseSequencerModulesConfig = { blockInterval: Number(process.env.PROTOKIT_BLOCK_INTERVAL!), produceEmptyBlocks: true, settlementInterval: Number(process.env.PROTOKIT_SETTLEMENT_INTERVAL!), + settlementTokenConfig: { + "0": { + bridgingContractPrivateKey: PrivateKey.fromBase58( + process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY! + ), + }, + }, }, } satisfies ModulesConfig; @@ -64,7 +70,6 @@ export const indexerSequencerModulesConfig = { export const settlementSequencerModules = { BaseLayer: MinaBaseLayer, SettlementModule: SettlementModule, - OutgoingMessageQueue: WithdrawalQueue, FeeStrategy: ConstantFeeStrategy, BatchProducerModule, SequencerStartupModule, @@ -103,7 +108,6 @@ export const settlementSequencerModulesConfig = { ), }, }, - OutgoingMessageQueue: {}, FeeStrategy: {}, BatchProducerModule: {}, SequencerStartupModule: {}, diff --git a/packages/chain/src/sequencer/worker/index.ts b/packages/chain/src/sequencer/worker/index.ts index 8a7a3fa..27a82a5 100644 --- a/packages/chain/src/sequencer/worker/index.ts +++ b/packages/chain/src/sequencer/worker/index.ts @@ -1,6 +1,8 @@ import { ModulesConfig } from "@proto-kit/common"; import { BullQueue } from "@proto-kit/deployment"; import { + ConstantFeeStrategy, + InMemoryDatabase, LocalTaskWorkerModule, MinaBaseLayer, SettlementModule, @@ -8,6 +10,10 @@ import { VanillaTaskWorkerModules, } from "@proto-kit/sequencer"; import { PrivateKey, PublicKey } from "o1js"; +import { + settlementSequencerModules, + settlementSequencerModulesConfig, +} from ".."; export const taskModules = { ...VanillaTaskWorkerModules.allTasks(), @@ -18,11 +24,19 @@ export const taskModulesConfig = { } satisfies ModulesConfig; export const workerModules = { + Database: InMemoryDatabase, + BaseLayer: MinaBaseLayer, + SettlementModule: SettlementModule, + FeeStrategy: ConstantFeeStrategy, TaskQueue: BullQueue, LocalTaskWorkerModule: LocalTaskWorkerModule.from(taskModules), }; export const workerModulesConfig = { + Database: {}, + BaseLayer: settlementSequencerModulesConfig.BaseLayer, + SettlementModule: settlementSequencerModulesConfig.SettlementModule, + FeeStrategy: settlementSequencerModulesConfig.FeeStrategy, TaskQueue: { redis: { host: process.env.REDIS_HOST!, From 2494a4a254cf6e45633b41af493029e0a86bea29 Mon Sep 17 00:00:00 2001 From: Raphael Panic Date: Tue, 20 May 2025 15:50:41 +0200 Subject: [PATCH 05/10] Made lightnet settlement and bridging work with signed settlement --- .../environments/development/chain.config.ts | 19 +++-- .../environments/development/worker.config.ts | 3 + packages/chain/src/protocol/index.ts | 2 +- packages/chain/src/scripts/bridge/deposit.ts | 71 +++++++------------ packages/chain/src/scripts/bridge/redeem.ts | 54 +++++--------- .../chain/src/scripts/settlement/deploy.ts | 64 +++-------------- packages/chain/src/sequencer/index.ts | 50 +++++++++---- packages/chain/src/sequencer/worker/index.ts | 16 +---- 8 files changed, 106 insertions(+), 173 deletions(-) diff --git a/packages/chain/src/environments/development/chain.config.ts b/packages/chain/src/environments/development/chain.config.ts index 57b4385..1b8b88a 100644 --- a/packages/chain/src/environments/development/chain.config.ts +++ b/packages/chain/src/environments/development/chain.config.ts @@ -3,15 +3,10 @@ import { Runtime } from "@proto-kit/module"; import { Protocol } from "@proto-kit/protocol"; import { DatabasePruneModule, - PendingTransaction, Sequencer, - sequencerModule, } from "@proto-kit/sequencer"; -import type { PrismaConnection } from "@proto-kit/persistance"; import { PrismaRedisDatabase, - PrismaTransactionStorage, - TransactionMapper, } from "@proto-kit/persistance"; import runtime from "../../runtime"; import * as protocol from "../../protocol"; @@ -20,8 +15,8 @@ import { baseSequencerModulesConfig, indexerSequencerModules, indexerSequencerModulesConfig, - settlementSequencerModules, - settlementSequencerModulesConfig, + baseSettlementSequencerModules, + baseSettlementSequencerModulesConfig, } from "../../sequencer"; import { BullQueue } from "@proto-kit/deployment"; import { Arguments } from "../../start"; @@ -29,6 +24,7 @@ import { baseAppChainModules, baseAppChainModulesConfig, } from "../../app-chain"; +import { log } from "@proto-kit/common"; export const appChain = AppChain.from({ Runtime: Runtime.from({ @@ -46,13 +42,13 @@ export const appChain = AppChain.from({ modules: { // ordering of the modules matters due to dependency resolution Database: PrismaRedisDatabase, + DatabasePruneModule, ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" - ? settlementSequencerModules + ? baseSettlementSequencerModules : {}), ...baseSequencerModules, ...indexerSequencerModules, TaskQueue: BullQueue, - DatabasePruneModule, }, }), modules: baseAppChainModules, @@ -71,7 +67,7 @@ export default async (args: Arguments) => { ...baseSequencerModulesConfig, ...indexerSequencerModulesConfig, ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" - ? settlementSequencerModulesConfig + ? baseSettlementSequencerModulesConfig : {}), DatabasePruneModule: { pruneOnStartup: args.pruneOnStartup, @@ -81,6 +77,7 @@ export default async (args: Arguments) => { host: process.env.REDIS_HOST!, port: Number(process.env.REDIS_PORT)!, password: process.env.REDIS_PASSWORD!, + db: 1, }, }, Database: { @@ -97,5 +94,7 @@ export default async (args: Arguments) => { ...baseAppChainModulesConfig, }); + log.setLevel("DEBUG") + return appChain; }; diff --git a/packages/chain/src/environments/development/worker.config.ts b/packages/chain/src/environments/development/worker.config.ts index 89c0377..ed71a39 100644 --- a/packages/chain/src/environments/development/worker.config.ts +++ b/packages/chain/src/environments/development/worker.config.ts @@ -7,6 +7,7 @@ import * as protocol from "../../protocol"; import { Arguments } from "../../start"; import { workerModules, workerModulesConfig } from "../../sequencer/worker"; +import { log } from "@proto-kit/common"; export const appChain = AppChain.from({ Runtime: Runtime.from({ @@ -42,5 +43,7 @@ export default async (args: Arguments) => { }, }); + log.setLevel("DEBUG") + return appChain; }; diff --git a/packages/chain/src/protocol/index.ts b/packages/chain/src/protocol/index.ts index 0a3b400..be4ae59 100644 --- a/packages/chain/src/protocol/index.ts +++ b/packages/chain/src/protocol/index.ts @@ -22,7 +22,7 @@ export const settlementModules = { export const settlementModulesConfig = { SettlementContractModule: { BridgeContract: { - withdrawalEventName: "withdraw", + withdrawalEventName: "withdrawal", withdrawalStatePath: "Withdrawals.withdrawals", }, SettlementContract: {}, diff --git a/packages/chain/src/scripts/bridge/deposit.ts b/packages/chain/src/scripts/bridge/deposit.ts index fd6441a..0caaf53 100644 --- a/packages/chain/src/scripts/bridge/deposit.ts +++ b/packages/chain/src/scripts/bridge/deposit.ts @@ -1,23 +1,19 @@ -// const { settlement, dispatch } = settlementModule.getContracts(); - import { + BridgingModule, InMemoryDatabase, - LocalTaskQueue, + MinaTransactionSender, Sequencer, - SequencerModule, SettlementModule, } from "@proto-kit/sequencer"; import { - settlementSequencerModules, - settlementSequencerModulesConfig, + scriptsSettlementSequencerModules, + scriptsSettlementSequencerModulesConfig, } from "../../sequencer"; import { AppChain } from "@proto-kit/sdk"; import { Runtime } from "@proto-kit/module"; import runtime from "../../runtime"; import { Protocol, - TokenBridgeAttestation, - TokenBridgeTree, } from "@proto-kit/protocol"; import * as protocol from "../../protocol"; import { @@ -29,10 +25,8 @@ import { Provable, PublicKey, TokenId, - UInt32, UInt64, } from "o1js"; -import { Authorization } from "../../../node_modules/o1js/dist/node/lib/mina/account-update"; export default async function () { const tokenId = Field(process.argv[3]); @@ -53,10 +47,6 @@ export default async function () { fee, }); - class Noop extends SequencerModule { - public async start() {} - } - const appChain = AppChain.from({ Runtime: Runtime.from({ modules: runtime.modules, @@ -70,9 +60,7 @@ export default async function () { Sequencer: Sequencer.from({ modules: { Database: InMemoryDatabase, - TaskQueue: LocalTaskQueue, - ...settlementSequencerModules, - SequencerStartupModule: Noop, + ...scriptsSettlementSequencerModules, }, }), modules: {}, @@ -86,8 +74,7 @@ export default async function () { }, Sequencer: { Database: {}, - TaskQueue: {}, - ...settlementSequencerModulesConfig, + ...scriptsSettlementSequencerModulesConfig, }, }); @@ -98,19 +85,20 @@ export default async function () { SettlementModule ); + const bridgingModule = appChain.sequencer.resolveOrFail( + "BridgingModule", + BridgingModule + ); + const { settlement, dispatch } = settlementModule.getContracts(); await fetchAccount({ publicKey: fromPrivateKey.toPublicKey() }); await fetchAccount({ publicKey: settlement.address }); await fetchAccount({ publicKey: dispatch.address }); + const bridgeAddress = await bridgingModule.getBridgeAddress(TokenId.default); + await fetchAccount({ publicKey: bridgeAddress! }); - const tree = await TokenBridgeTree.buildTreeFromEvents(dispatch); - const index = tree.getIndex(tokenId); - const witness = tree.getWitness(index); - const attestation = new TokenBridgeAttestation({ - index: Field(index), - witness, - }); + const attestation = await bridgingModule.getDepositContractAttestation(tokenId) console.log("Forging transaction..."); const tx = await Mina.transaction( @@ -134,26 +122,19 @@ export default async function () { } ); - // TODO: remove if SIGNATURE authorization isnt used (outside of lightnet) - tx.transaction.accountUpdates.forEach((au) => { - if ( - [ - process.env.PROTOKIT_SETTLEMENT_CONTRACT_PUBLIC_KEY, - process.env.PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY, - ].includes(au.body.publicKey.toBase58()) - ) { - Authorization.setLazySignature(au); - } - }); - - tx.sign([fromPrivateKey, settlementModule.config.keys.dispatch]); + settlementModule.signTransaction( + tx, + [fromPrivateKey], + [], + [dispatch.address] + ); console.log("Sending..."); - Provable.log("AUs", tx.toPretty()); - const sentTx = await tx.send(); - console.log("Waiting for inclusion..."); - const includedTx = await sentTx.wait(); + console.log(tx.toPretty()); + + const { hash } = await appChain.sequencer + .resolveOrFail("TransactionSender", MinaTransactionSender) + .proveAndSendTransaction(tx, "included"); - console.log("Deposit transaction included in a block:"); - console.log(includedTx.toPretty()); + console.log(`Deposit transaction included in a block: ${hash}`); } diff --git a/packages/chain/src/scripts/bridge/redeem.ts b/packages/chain/src/scripts/bridge/redeem.ts index e6a1b62..ce5ce64 100644 --- a/packages/chain/src/scripts/bridge/redeem.ts +++ b/packages/chain/src/scripts/bridge/redeem.ts @@ -1,24 +1,20 @@ -// const { settlement, dispatch } = settlementModule.getContracts(); - import { BridgingModule, InMemoryDatabase, - LocalTaskQueue, + MinaTransactionSender, Sequencer, SequencerModule, SettlementModule, } from "@proto-kit/sequencer"; import { - settlementSequencerModules, - settlementSequencerModulesConfig, + scriptsSettlementSequencerModules, + scriptsSettlementSequencerModulesConfig, } from "../../sequencer"; import { AppChain } from "@proto-kit/sdk"; import { Runtime } from "@proto-kit/module"; import runtime from "../../runtime"; import { Protocol, - TokenBridgeAttestation, - TokenBridgeTree, } from "@proto-kit/protocol"; import * as protocol from "../../protocol"; import { @@ -28,12 +24,8 @@ import { Mina, PrivateKey, Provable, - PublicKey, - TokenId, - UInt32, UInt64, } from "o1js"; -import { Authorization } from "../../../node_modules/o1js/dist/node/lib/mina/account-update"; export default async function () { const tokenId = Field(process.argv[3]); @@ -67,10 +59,7 @@ export default async function () { Sequencer: Sequencer.from({ modules: { Database: InMemoryDatabase, - TaskQueue: LocalTaskQueue, - ...settlementSequencerModules, - SequencerStartupModule: Noop, - OutgoingMessageQueue: Noop, + ...scriptsSettlementSequencerModules, }, }), modules: {}, @@ -84,8 +73,7 @@ export default async function () { }, Sequencer: { Database: {}, - TaskQueue: {}, - ...settlementSequencerModulesConfig, + ...scriptsSettlementSequencerModulesConfig, }, }); @@ -119,26 +107,22 @@ export default async function () { } ); - // TODO: remove if NONE authorization isnt used (outside of lightnet) - tx.transaction.accountUpdates.forEach((au) => { - if ( - [ - process.env.PROTOKIT_SETTLEMENT_CONTRACT_PUBLIC_KEY, - process.env.PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY, - process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PUBLIC_KEY, - ].includes(au.body.publicKey.toBase58()) - ) { - Authorization.setLazyNone(au); - } - }); + const settlementModule = appChain.sequencer.resolveOrFail( + "SettlementModule", + SettlementModule + ); - tx.sign([toPrivateKey]); + settlementModule.signTransaction( + tx, + [toPrivateKey], + ); console.log("Sending..."); - const sentTx = await tx.send(); - console.log("Waiting for inclusion...", sentTx.toPretty()); - const includedTx = await sentTx.wait(); - console.log("Redeem transaction included in a block:"); - console.log(includedTx.toPretty()); + const { hash } = await appChain.sequencer + .resolveOrFail("TransactionSender", MinaTransactionSender) + .proveAndSendTransaction(tx, "included"); + + console.log(`Redeem transaction included in a block: ${hash}`); + console.log(tx.toPretty()); } diff --git a/packages/chain/src/scripts/settlement/deploy.ts b/packages/chain/src/scripts/settlement/deploy.ts index 3b48253..2b9275c 100644 --- a/packages/chain/src/scripts/settlement/deploy.ts +++ b/packages/chain/src/scripts/settlement/deploy.ts @@ -1,27 +1,21 @@ import { Runtime } from "@proto-kit/module"; -import { Protocol, SettlementContractModule } from "@proto-kit/protocol"; +import { Protocol } from "@proto-kit/protocol"; import { AppChain } from "@proto-kit/sdk"; import { Sequencer, SequencerModule, SettlementModule, } from "@proto-kit/sequencer"; -import { PrivateKey, Provable, Transaction } from "o1js"; +import { PrivateKey, Provable } from "o1js"; import "reflect-metadata"; -import { container, injectable } from "tsyringe"; +import { container } from "tsyringe"; import runtime from "../../runtime"; import * as protocol from "../../protocol"; import { - settlementSequencerModules, - settlementSequencerModulesConfig, + scriptsSettlementSequencerModules, + scriptsSettlementSequencerModulesConfig, } from "../../sequencer"; -import { BullQueue } from "@proto-kit/deployment"; import { PrismaRedisDatabase } from "@proto-kit/persistance"; -import { CompileRegistry } from "@proto-kit/common"; - -class Noop extends SequencerModule { - public async start() {} -} export default async function () { const appChain = AppChain.from({ @@ -37,9 +31,7 @@ export default async function () { Sequencer: Sequencer.from({ modules: { Database: PrismaRedisDatabase, - TaskQueue: BullQueue, - ...settlementSequencerModules, - SequencerStartupModule: Noop, + ...scriptsSettlementSequencerModules, }, }), modules: {}, @@ -52,6 +44,7 @@ export default async function () { ...protocol.settlementModulesConfig, }, Sequencer: { + ...scriptsSettlementSequencerModulesConfig, Database: { redis: { host: process.env.REDIS_HOST!, @@ -62,32 +55,12 @@ export default async function () { connection: process.env.DATABASE_URL!, }, }, - TaskQueue: { - redis: { - host: process.env.REDIS_HOST!, - port: Number(process.env.REDIS_PORT)!, - password: process.env.REDIS_PASSWORD!, - }, - }, - ...settlementSequencerModulesConfig, }, }); - @injectable() - class InlineMinaTransactionSender { - public async proveAndSendTransaction( - transaction: Transaction - ) { - const result = await transaction.send(); - await result.wait(); - } - } - - // TODO: split start & initialize into separate functions, so that we can use the appchain definition/container without starting - appChain.create(() => container); - + const chainContainer = container.createChildContainer(); console.log("start"); - await appChain.start(); + await appChain.start(false, chainContainer); console.log("after start"); const settlementModule = appChain.sequencer.resolveOrFail( @@ -95,25 +68,6 @@ export default async function () { SettlementModule ); - // stub the transaction sender to work inline, standard transaction sender works with the internal worker flows - (settlementModule as any).transactionSender = - new InlineMinaTransactionSender(); - - const settlementContractModule = appChain.protocol.resolveOrFail( - "SettlementContractModule", - SettlementContractModule - ); - // TODO: does not respect are proofs enabled, since it does not have access to it DI-wise - const compileRegistry = container.resolve(CompileRegistry); - - console.log("compile"); - // compile contracts for deployment - const contracts = settlementContractModule.getContractClasses(); - for (const contractName in contracts) { - const target = contracts[contractName]; - await compileRegistry.compile(target); - } - console.log("Deploying settlement contracts..."); await settlementModule.deploy( diff --git a/packages/chain/src/sequencer/index.ts b/packages/chain/src/sequencer/index.ts index 895012b..51b7678 100644 --- a/packages/chain/src/sequencer/index.ts +++ b/packages/chain/src/sequencer/index.ts @@ -13,10 +13,13 @@ import { ConstantFeeStrategy, BatchProducerModule, SequencerStartupModule, + LocalTaskQueue, + LocalTaskWorkerModule, + VanillaTaskWorkerModules, SettlementProvingTask, } from "@proto-kit/sequencer"; import { ModulesConfig } from "@proto-kit/common"; import { IndexerNotifier } from "@proto-kit/indexer"; -import { PrivateKey, PublicKey } from "o1js"; +import { PrivateKey } from "o1js"; export const apiSequencerModules = { GraphqlServer, @@ -39,6 +42,7 @@ export const baseSequencerModules = { Mempool: PrivateMempool, BlockProducerModule: BlockProducerModule, BlockTrigger: TimedBlockTrigger, + SequencerStartupModule } satisfies SequencerModulesRecord; export const baseSequencerModulesConfig = { @@ -50,13 +54,14 @@ export const baseSequencerModulesConfig = { produceEmptyBlocks: true, settlementInterval: Number(process.env.PROTOKIT_SETTLEMENT_INTERVAL!), settlementTokenConfig: { - "0": { + "1": { bridgingContractPrivateKey: PrivateKey.fromBase58( process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY! ), }, }, }, + SequencerStartupModule: {} } satisfies ModulesConfig; export const indexerSequencerModules = { @@ -67,15 +72,29 @@ export const indexerSequencerModulesConfig = { IndexerNotifier: {}, } satisfies ModulesConfig; -export const settlementSequencerModules = { +const taskWorkerModule = LocalTaskWorkerModule.from({ + ...VanillaTaskWorkerModules.withoutSettlement(), + SettlementProvingTask, +}); + +export const baseSettlementSequencerModules = { BaseLayer: MinaBaseLayer, - SettlementModule: SettlementModule, FeeStrategy: ConstantFeeStrategy, + BlockProducerModule, BatchProducerModule, + SettlementModule: SettlementModule, +} + +export const scriptsSettlementSequencerModules = { + ...baseSettlementSequencerModules, + Mempool: PrivateMempool, + TaskQueue: LocalTaskQueue, + + LocalTaskWorkerModule: taskWorkerModule, SequencerStartupModule, } satisfies SequencerModulesRecord; -export const settlementSequencerModulesConfig = { +export const baseSettlementSequencerModulesConfig = { BaseLayer: { network: { type: "lightnet", @@ -88,14 +107,6 @@ export const settlementSequencerModulesConfig = { feepayer: PrivateKey.fromBase58( process.env.PROTOKIT_SEQUENCER_PRIVATE_KEY! ), - addresses: { - settlement: PublicKey.fromBase58( - process.env.PROTOKIT_SETTLEMENT_CONTRACT_PUBLIC_KEY! - ), - dispatch: PublicKey.fromBase58( - process.env.PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY! - ), - }, keys: { settlement: PrivateKey.fromBase58( process.env.PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY! @@ -109,6 +120,17 @@ export const settlementSequencerModulesConfig = { }, }, FeeStrategy: {}, + BlockProducerModule: {}, BatchProducerModule: {}, +} satisfies ModulesConfig; + +export const scriptsSettlementSequencerModulesConfig = { + ...baseSettlementSequencerModulesConfig, SequencerStartupModule: {}, -} satisfies ModulesConfig; + TaskQueue: { + simulatedDuration: 0, + }, + Mempool: {}, + LocalTaskWorkerModule: VanillaTaskWorkerModules.defaultConfig(), +} satisfies ModulesConfig; + diff --git a/packages/chain/src/sequencer/worker/index.ts b/packages/chain/src/sequencer/worker/index.ts index 27a82a5..d235406 100644 --- a/packages/chain/src/sequencer/worker/index.ts +++ b/packages/chain/src/sequencer/worker/index.ts @@ -2,17 +2,12 @@ import { ModulesConfig } from "@proto-kit/common"; import { BullQueue } from "@proto-kit/deployment"; import { ConstantFeeStrategy, - InMemoryDatabase, LocalTaskWorkerModule, - MinaBaseLayer, - SettlementModule, TaskWorkerModulesRecord, VanillaTaskWorkerModules, } from "@proto-kit/sequencer"; -import { PrivateKey, PublicKey } from "o1js"; import { - settlementSequencerModules, - settlementSequencerModulesConfig, + baseSettlementSequencerModulesConfig, } from ".."; export const taskModules = { @@ -24,24 +19,19 @@ export const taskModulesConfig = { } satisfies ModulesConfig; export const workerModules = { - Database: InMemoryDatabase, - BaseLayer: MinaBaseLayer, - SettlementModule: SettlementModule, FeeStrategy: ConstantFeeStrategy, TaskQueue: BullQueue, LocalTaskWorkerModule: LocalTaskWorkerModule.from(taskModules), }; export const workerModulesConfig = { - Database: {}, - BaseLayer: settlementSequencerModulesConfig.BaseLayer, - SettlementModule: settlementSequencerModulesConfig.SettlementModule, - FeeStrategy: settlementSequencerModulesConfig.FeeStrategy, + FeeStrategy: baseSettlementSequencerModulesConfig.FeeStrategy, TaskQueue: { redis: { host: process.env.REDIS_HOST!, port: Number(process.env.REDIS_PORT)!, password: process.env.REDIS_PASSWORD!, + db: 1, }, }, LocalTaskWorkerModule: taskModulesConfig, From 315cd9b7fc3dcc5a8d2022ac985def3850b19684 Mon Sep 17 00:00:00 2001 From: Raphael Panic Date: Tue, 20 May 2025 21:28:10 +0200 Subject: [PATCH 06/10] Proofs enabled --- packages/chain/src/environments/development/.env | 6 ++++-- packages/chain/src/scripts/bridge/deposit.ts | 5 ++++- packages/chain/src/scripts/bridge/redeem.ts | 9 ++++----- packages/chain/src/scripts/bridge/withdraw.ts | 2 ++ packages/chain/src/scripts/settlement/deploy.ts | 7 ++++--- packages/chain/src/sequencer/worker/index.ts | 6 ------ packages/chain/src/start.ts | 11 +++++++++-- 7 files changed, 27 insertions(+), 19 deletions(-) diff --git a/packages/chain/src/environments/development/.env b/packages/chain/src/environments/development/.env index 524eef2..c12cdaa 100644 --- a/packages/chain/src/environments/development/.env +++ b/packages/chain/src/environments/development/.env @@ -12,11 +12,13 @@ REDIS_HOST=localhost REDIS_PORT=6379 REDIS_PASSWORD=password +PROTOKIT_PROOFS_ENABLED=false + PROTOKIT_SHOULD_ATTEMPT_DB_MIGRATION=true PROTOKIT_PRUNE_ON_STARTUP=false PROTOKIT_LOG_LEVEL=INFO -PROTOKIT_BLOCK_INTERVAL=10000 -PROTOKIT_SETTLEMENT_INTERVAL=30000 +PROTOKIT_BLOCK_INTERVAL=30000 +PROTOKIT_SETTLEMENT_INTERVAL=60000 PROTOKIT_GRAPHQL_HOST=0.0.0.0 PROTOKIT_GRAPHQL_PORT=8080 diff --git a/packages/chain/src/scripts/bridge/deposit.ts b/packages/chain/src/scripts/bridge/deposit.ts index 0caaf53..5696030 100644 --- a/packages/chain/src/scripts/bridge/deposit.ts +++ b/packages/chain/src/scripts/bridge/deposit.ts @@ -78,7 +78,8 @@ export default async function () { }, }); - await appChain.start(); + const proofsEnabled = process.env.PROTOKIT_PROOFS_ENABLED === "true" + await appChain.start(proofsEnabled); const settlementModule = appChain.sequencer.resolveOrFail( "SettlementModule", @@ -137,4 +138,6 @@ export default async function () { .proveAndSendTransaction(tx, "included"); console.log(`Deposit transaction included in a block: ${hash}`); + + await appChain.close(); } diff --git a/packages/chain/src/scripts/bridge/redeem.ts b/packages/chain/src/scripts/bridge/redeem.ts index ce5ce64..4aadc48 100644 --- a/packages/chain/src/scripts/bridge/redeem.ts +++ b/packages/chain/src/scripts/bridge/redeem.ts @@ -42,10 +42,6 @@ export default async function () { fee, }); - class Noop extends SequencerModule { - public async start() {} - } - const appChain = AppChain.from({ Runtime: Runtime.from({ modules: runtime.modules, @@ -77,7 +73,8 @@ export default async function () { }, }); - await appChain.start(); + const proofsEnabled = process.env.PROTOKIT_PROOFS_ENABLED === "true" + await appChain.start(proofsEnabled); const bridgingModule = appChain.sequencer.resolveOrFail( "BridgingModule", @@ -125,4 +122,6 @@ export default async function () { console.log(`Redeem transaction included in a block: ${hash}`); console.log(tx.toPretty()); + + await appChain.close(); } diff --git a/packages/chain/src/scripts/bridge/withdraw.ts b/packages/chain/src/scripts/bridge/withdraw.ts index d0a66ae..d552762 100644 --- a/packages/chain/src/scripts/bridge/withdraw.ts +++ b/packages/chain/src/scripts/bridge/withdraw.ts @@ -40,4 +40,6 @@ export default async function () { await tx.send(); console.log("withdrawal tx sent"); + + await appChain.close(); } diff --git a/packages/chain/src/scripts/settlement/deploy.ts b/packages/chain/src/scripts/settlement/deploy.ts index 2b9275c..c336bb0 100644 --- a/packages/chain/src/scripts/settlement/deploy.ts +++ b/packages/chain/src/scripts/settlement/deploy.ts @@ -60,7 +60,8 @@ export default async function () { const chainContainer = container.createChildContainer(); console.log("start"); - await appChain.start(false, chainContainer); + const proofsEnabled = process.env.PROTOKIT_PROOFS_ENABLED === "true" + await appChain.start(proofsEnabled, chainContainer); console.log("after start"); const settlementModule = appChain.sequencer.resolveOrFail( @@ -79,7 +80,7 @@ export default async function () { ), PrivateKey.fromBase58( process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY! - ) + ), ); Provable.log("Deployed and initialized settlement contracts", { @@ -91,5 +92,5 @@ export default async function () { ).toPublicKey(), }); - process.exit(0); + await appChain.close(); } diff --git a/packages/chain/src/sequencer/worker/index.ts b/packages/chain/src/sequencer/worker/index.ts index d235406..d66305f 100644 --- a/packages/chain/src/sequencer/worker/index.ts +++ b/packages/chain/src/sequencer/worker/index.ts @@ -1,14 +1,10 @@ import { ModulesConfig } from "@proto-kit/common"; import { BullQueue } from "@proto-kit/deployment"; import { - ConstantFeeStrategy, LocalTaskWorkerModule, TaskWorkerModulesRecord, VanillaTaskWorkerModules, } from "@proto-kit/sequencer"; -import { - baseSettlementSequencerModulesConfig, -} from ".."; export const taskModules = { ...VanillaTaskWorkerModules.allTasks(), @@ -19,13 +15,11 @@ export const taskModulesConfig = { } satisfies ModulesConfig; export const workerModules = { - FeeStrategy: ConstantFeeStrategy, TaskQueue: BullQueue, LocalTaskWorkerModule: LocalTaskWorkerModule.from(taskModules), }; export const workerModulesConfig = { - FeeStrategy: baseSettlementSequencerModulesConfig.FeeStrategy, TaskQueue: { redis: { host: process.env.REDIS_HOST!, diff --git a/packages/chain/src/start.ts b/packages/chain/src/start.ts index 0fbc94d..ba8a632 100644 --- a/packages/chain/src/start.ts +++ b/packages/chain/src/start.ts @@ -8,9 +8,12 @@ export interface Arguments { component: string; pruneOnStartup: boolean; logLevel: LogLevelDesc; + proofsEnabled: boolean; } -export type StartableFactory = (args: Arguments) => Promise; +export type StartableFactory = (args: Arguments) => Promise<{ + start(proofsEnabled: boolean): Promise +}>; yargs(hideBin(process.argv)) .command( @@ -30,6 +33,10 @@ yargs(hideBin(process.argv)) .option("logLevel", { type: "string", default: "info", + }) + .option("proofsEnabled", { + type: "boolean", + default: false, }); }, async (args) => { @@ -41,7 +48,7 @@ yargs(hideBin(process.argv)) const startableFactory: StartableFactory = (await import(path)).default; const startable = await startableFactory(args); - await startable.start(); + await startable.start(args.proofsEnabled); } ) .parse(); From a814592424991904f172d5e042ef546baba412f2 Mon Sep 17 00:00:00 2001 From: Matej Sima Date: Wed, 21 May 2025 09:36:09 +0200 Subject: [PATCH 07/10] added workers & settlement to sovereign mode --- docker/base/Dockerfile | 4 +- docker/docker-compose.yml | 2 + docker/lightnet/docker-compose.yml | 10 +++- docker/sequencer/docker-compose.yml | 18 +++++++ docker/worker/docker-compose.yml | 35 +++++++++++++ .../environments/development/chain.config.ts | 11 +---- .../chain/src/environments/sovereign/.env | 38 +++++++++++++- .../environments/sovereign/chain.config.ts | 34 ++++++++++--- .../environments/sovereign/worker.config.ts | 49 +++++++++++++++++++ .../chain/src/scripts/settlement/deploy.ts | 14 ++---- packages/chain/src/sequencer/index.ts | 15 ++++-- 11 files changed, 193 insertions(+), 37 deletions(-) create mode 100644 docker/worker/docker-compose.yml create mode 100644 packages/chain/src/environments/sovereign/worker.config.ts diff --git a/docker/base/Dockerfile b/docker/base/Dockerfile index 92dc447..18f43b9 100644 --- a/docker/base/Dockerfile +++ b/docker/base/Dockerfile @@ -1,9 +1,9 @@ # For regular deployment -FROM node:18 +# FROM node:18 # For locally built and imported framework references # Make sure you build the base-image first -# FROM protokit-base:latest +FROM protokit-base:latest WORKDIR /app diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index c93e660..457832d 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -7,3 +7,5 @@ include: - ./indexer/docker-compose.yml - ./processor-persistence/docker-compose.yml - ./processor/docker-compose.yml + - ./worker/docker-compose.yml + - ./lightnet/docker-compose.yml \ No newline at end of file diff --git a/docker/lightnet/docker-compose.yml b/docker/lightnet/docker-compose.yml index 30d38a3..68703ab 100644 --- a/docker/lightnet/docker-compose.yml +++ b/docker/lightnet/docker-compose.yml @@ -2,6 +2,7 @@ services: lightnet: image: o1labs/mina-local-network:compatible-latest-lightnet container_name: lightnet + environment: - RUN_ARCHIVE_NODE=true - LOG_LEVEL=INFO @@ -11,5 +12,10 @@ services: - 3085:3085 - 8083:8080 - 8084:8181 -# archive endpoints - - 8085:8282 \ No newline at end of file + # archive endpoints + - 8085:8282 + networks: + - lightnet-net + +networks: + lightnet-net: diff --git a/docker/sequencer/docker-compose.yml b/docker/sequencer/docker-compose.yml index 0bf00ea..2662bb5 100644 --- a/docker/sequencer/docker-compose.yml +++ b/docker/sequencer/docker-compose.yml @@ -17,12 +17,29 @@ services: - REDIS_PORT=${REDIS_PORT} - REDIS_PASSWORD=${REDIS_PASSWORD} + - MINA_NODE_GRAPHQL_HOST=${MINA_NODE_GRAPHQL_HOST} + - MINA_NODE_GRAPHQL_PORT=${MINA_NODE_GRAPHQL_PORT} + - MINA_ARCHIVE_GRAPHQL_HOST=${MINA_ARCHIVE_GRAPHQL_HOST} + - MINA_ARCHIVE_GRAPHQL_PORT=${MINA_ARCHIVE_GRAPHQL_PORT} + - PROTOKIT_TRANSACTION_FEE_RECIPIENT_PRIVATE_KEY=${PROTOKIT_TRANSACTION_FEE_RECIPIENT_PRIVATE_KEY} + - PROTOKIT_TRANSACTION_FEE_RECIPIENT_PUBLIC_KEY=${PROTOKIT_TRANSACTION_FEE_RECIPIENT_PUBLIC_KEY} + - PROTOKIT_SETTLEMENT_INTERVAL=${PROTOKIT_SETTLEMENT_INTERVAL} + - PROTOKIT_SETTLEMENT_ENABLED=${PROTOKIT_SETTLEMENT_ENABLED} - PROTOKIT_SHOULD_ATTEMPT_DB_MIGRATION=${PROTOKIT_SHOULD_ATTEMPT_DB_MIGRATION} - PROTOKIT_LOG_LEVEL=${PROTOKIT_LOG_LEVEL} - PROTOKIT_BLOCK_INTERVAL=${PROTOKIT_BLOCK_INTERVAL} - PROTOKIT_GRAPHQL_HOST=${PROTOKIT_GRAPHQL_HOST} - PROTOKIT_GRAPHQL_PORT=${PROTOKIT_GRAPHQL_PORT} - PROTOKIT_GRAPHIQL_ENABLED=${PROTOKIT_GRAPHIQL_ENABLED} + - PROTOKIT_SEQUENCER_PRIVATE_KEY=${PROTOKIT_SEQUENCER_PRIVATE_KEY} + - PROTOKIT_SEQUENCER_PUBLIC_KEY=${PROTOKIT_SEQUENCER_PUBLIC_KEY} + - PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY=${PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY} + - PROTOKIT_SETTLEMENT_CONTRACT_PUBLIC_KEY=${PROTOKIT_SETTLEMENT_CONTRACT_PUBLIC_KEY} + - PROTOKIT_DISPATCHER_CONTRACT_PRIVATE_KEY=${PROTOKIT_DISPATCHER_CONTRACT_PRIVATE_KEY} + - PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY=${PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY} + - PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY=${PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY} + - PROTOKIT_MINA_BRIDGE_CONTRACT_PUBLIC_KEY=${PROTOKIT_MINA_BRIDGE_CONTRACT_PUBLIC_KEY} + profiles: - monolithic-sequencer depends_on: @@ -34,6 +51,7 @@ services: - db-net - routing-net - chain-net + - lightnet-net ports: - 8080:8080 command: ["./packages/chain/dist/start.js start ./environments/${PROTOKIT_ENV_FOLDER}/chain.config.js"] diff --git a/docker/worker/docker-compose.yml b/docker/worker/docker-compose.yml new file mode 100644 index 0000000..482f4fe --- /dev/null +++ b/docker/worker/docker-compose.yml @@ -0,0 +1,35 @@ +services: + worker: + image: starterkit-chain-base + build: + dockerfile: ./docker/base/Dockerfile + context: ../.. + container_name: starterkit-worker + environment: + - REDIS_HOST=${REDIS_HOST} + - REDIS_PORT=${REDIS_PORT} + - REDIS_PASSWORD=${REDIS_PASSWORD} + + + - PROTOKIT_TRANSACTION_FEE_RECIPIENT_PRIVATE_KEY=${PROTOKIT_TRANSACTION_FEE_RECIPIENT_PRIVATE_KEY} + - PROTOKIT_TRANSACTION_FEE_RECIPIENT_PUBLIC_KEY=${PROTOKIT_TRANSACTION_FEE_RECIPIENT_PUBLIC_KEY} + - PROTOKIT_LOG_LEVEL=${PROTOKIT_LOG_LEVEL} + - PROTOKIT_SEQUENCER_PRIVATE_KEY=${PROTOKIT_SEQUENCER_PRIVATE_KEY} + - PROTOKIT_SEQUENCER_PUBLIC_KEY=${PROTOKIT_SEQUENCER_PUBLIC_KEY} + - PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY=${PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY} + - PROTOKIT_SETTLEMENT_CONTRACT_PUBLIC_KEY=${PROTOKIT_SETTLEMENT_CONTRACT_PUBLIC_KEY} + - PROTOKIT_DISPATCHER_CONTRACT_PRIVATE_KEY=${PROTOKIT_DISPATCHER_CONTRACT_PRIVATE_KEY} + - PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY=${PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY} + - PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY=${PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY} + - PROTOKIT_MINA_BRIDGE_CONTRACT_PUBLIC_KEY=${PROTOKIT_MINA_BRIDGE_CONTRACT_PUBLIC_KEY} + - PROTOKIT_SETTLEMENT_INTERVAL=${PROTOKIT_SETTLEMENT_INTERVAL} + - PROTOKIT_SETTLEMENT_ENABLED=${PROTOKIT_SETTLEMENT_ENABLED} + profiles: + - worker + depends_on: + redis: + condition: service_healthy + networks: + - db-net + command: ["./packages/chain/dist/start.js start ./environments/${PROTOKIT_ENV_FOLDER}/worker.config.js"] + diff --git a/packages/chain/src/environments/development/chain.config.ts b/packages/chain/src/environments/development/chain.config.ts index 1b8b88a..d1e2c87 100644 --- a/packages/chain/src/environments/development/chain.config.ts +++ b/packages/chain/src/environments/development/chain.config.ts @@ -1,13 +1,8 @@ import { AppChain } from "@proto-kit/sdk"; import { Runtime } from "@proto-kit/module"; import { Protocol } from "@proto-kit/protocol"; -import { - DatabasePruneModule, - Sequencer, -} from "@proto-kit/sequencer"; -import { - PrismaRedisDatabase, -} from "@proto-kit/persistance"; +import { DatabasePruneModule, Sequencer } from "@proto-kit/sequencer"; +import { PrismaRedisDatabase } from "@proto-kit/persistance"; import runtime from "../../runtime"; import * as protocol from "../../protocol"; import { @@ -94,7 +89,5 @@ export default async (args: Arguments) => { ...baseAppChainModulesConfig, }); - log.setLevel("DEBUG") - return appChain; }; diff --git a/packages/chain/src/environments/sovereign/.env b/packages/chain/src/environments/sovereign/.env index 8be21e6..530b8ab 100644 --- a/packages/chain/src/environments/sovereign/.env +++ b/packages/chain/src/environments/sovereign/.env @@ -1,4 +1,4 @@ -COMPOSE_PROFILES=db,indexer-db,monolithic-sequencer,monolithic-indexer,proxy,web,processor-db,monolithic-processor +COMPOSE_PROFILES=db,indexer-db,monolithic-sequencer,monolithic-indexer,proxy,web,processor-db,monolithic-processor,worker COMPOSE_PROJECT_NAME=starter-kit @@ -16,7 +16,10 @@ REDIS_PASSWORD=password PROTOKIT_SHOULD_ATTEMPT_DB_MIGRATION=true PROTOKIT_PRUNE_ON_STARTUP=false PROTOKIT_LOG_LEVEL=INFO -PROTOKIT_BLOCK_INTERVAL=5000 +PROTOKIT_BLOCK_INTERVAL=10000 +PROTOKIT_SETTLEMENT_INTERVAL=30000 +PROTOKIT_SETTLEMENT_ENABLED=true + PROTOKIT_GRAPHQL_HOST=0.0.0.0 PROTOKIT_GRAPHQL_PORT=8080 @@ -58,3 +61,34 @@ NEXT_PUBLIC_PROTOKIT_GRAPHQL_URL=https://localhost/graphql # NEXT_PUBLIC_PROTOKIT_GRAPHQL_URL=http://yourdomain.com/graphql NEXT_PUBLIC_PROTOKIT_INDEXER_GRAPHQL_URL=https://localhost/indexer/graphql NEXT_PUBLIC_PROTOKIT_PROCESSOR_GRAPHQL_URL=https://localhost/processor/graphql + +# mina endpoints +MINA_NODE_GRAPHQL_HOST=http://lightnet +MINA_NODE_GRAPHQL_PORT=8080 +MINA_ARCHIVE_GRAPHQL_HOST=http://lightnet +MINA_ARCHIVE_GRAPHQL_PORT=8282 + +PROTOKIT_TRANSACTION_FEE_RECIPIENT_PRIVATE_KEY=EKEssvj33MMBCg2tcybTzL32nTKbbwFHm6yUxd3JassdhL3J5aT8 +PROTOKIT_TRANSACTION_FEE_RECIPIENT_PUBLIC_KEY=B62qk4sNnzZqqjHp8YQXZUV3dBpnjiNieJVnsuh7mD2bMJ9PdbskH5H + +PROTOKIT_SETTLEMENT_ENABLED=true + +PROTOKIT_SEQUENCER_PRIVATE_KEY=EKEdKhgUHMuDvwWJEg2TdCMCeiTSd9hh2HrEr6uYJfPVuwur1s43 +PROTOKIT_SEQUENCER_PUBLIC_KEY=B62qizW6aroTxQorJz4ywVNZom4jA6W4QPPCK3wLeyhnJHtVStUNniL +PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY=EKErS9gYHZNawqKuwfMiwYYJtNptCrvca491QEvB3tz8sFsS5w66 +PROTOKIT_SETTLEMENT_CONTRACT_PUBLIC_KEY=B62qjKhzrvDgTPXCp34ozmpFSx4sC9owZe6eDzhdGPdoiUbGPmBkHTt +PROTOKIT_DISPATCHER_CONTRACT_PRIVATE_KEY=EKF9Ei5G9PeB5ULMh9R6P5LfWX2gs15XxPNsect1pbcbMY9vs6v7 +PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY=B62qmAzUJ1jqcsEf2V3K1k2Ec4MLsEKnodEvvJ5uweTFSLYEUALe1zs +PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY=EKFKTGqWU2egLKhMgoxX8mQ21zXSE1RZYkY82mmK9F3BxdSA7E5M +PROTOKIT_MINA_BRIDGE_CONTRACT_PUBLIC_KEY=B62qn8XRkWcaBvv6F7kvarKs4cViaKRMbTUHT8FrDXLnvxuV6n7CHsN + +# lightnet only +MINA_ACCOUNT_MANAGER_HOST=http://lightnet +MINA_ACCOUNT_MANAGER_PORT=8084 +MINA_EXPLORER_PORT=3001 + +TEST_ACCOUNT_1_PRIVATE_KEY=EKF5p3wQTFd4tRBiGicRf93yXK82bcRryokC1qoazRM6wq6gMzWJ +TEST_ACCOUNT_1_PUBLIC_KEY=B62qkVfEwyfkm5yucHEqrRjxbyx98pgdWz82pHv7LYq9Qigs812iWZ8 + +# generating mock proofs during development seems to be triggering a lot of warnings in node v22.9.0 +NODE_NO_WARNINGS=1 \ No newline at end of file diff --git a/packages/chain/src/environments/sovereign/chain.config.ts b/packages/chain/src/environments/sovereign/chain.config.ts index 614f699..69548c5 100644 --- a/packages/chain/src/environments/sovereign/chain.config.ts +++ b/packages/chain/src/environments/sovereign/chain.config.ts @@ -4,47 +4,66 @@ import { Protocol } from "@proto-kit/protocol"; import { DatabasePruneModule, Sequencer } from "@proto-kit/sequencer"; import { PrismaRedisDatabase } from "@proto-kit/persistance"; import runtime from "../../runtime"; -import protocol from "../../protocol"; +import * as protocol from "../../protocol"; import { baseSequencerModules, baseSequencerModulesConfig, indexerSequencerModules, indexerSequencerModulesConfig, + baseSettlementSequencerModules, + baseSettlementSequencerModulesConfig, } from "../../sequencer"; -import { BullQueue, Startable } from "@proto-kit/deployment"; +import { BullQueue } from "@proto-kit/deployment"; import { Arguments } from "../../start"; import { baseAppChainModules, baseAppChainModulesConfig, } from "../../app-chain"; +import { log } from "@proto-kit/common"; export const appChain = AppChain.from({ Runtime: Runtime.from({ modules: runtime.modules, }), Protocol: Protocol.from({ - modules: protocol.modules, + modules: { + ...protocol.modules, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" + ? protocol.settlementModules + : {}), + }, }), Sequencer: Sequencer.from({ modules: { // ordering of the modules matters due to dependency resolution Database: PrismaRedisDatabase, + DatabasePruneModule, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" + ? baseSettlementSequencerModules + : {}), ...baseSequencerModules, ...indexerSequencerModules, TaskQueue: BullQueue, - DatabasePruneModule, }, }), modules: baseAppChainModules, }); -export default async (args: Arguments): Promise => { +export default async (args: Arguments) => { appChain.configurePartial({ Runtime: runtime.config, - Protocol: protocol.config, + Protocol: { + ...protocol.config, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" + ? protocol.settlementModulesConfig + : {}), + }, Sequencer: { ...baseSequencerModulesConfig, ...indexerSequencerModulesConfig, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" + ? baseSettlementSequencerModulesConfig + : {}), DatabasePruneModule: { pruneOnStartup: args.pruneOnStartup, }, @@ -53,6 +72,7 @@ export default async (args: Arguments): Promise => { host: process.env.REDIS_HOST!, port: Number(process.env.REDIS_PORT)!, password: process.env.REDIS_PASSWORD!, + db: 1, }, }, Database: { @@ -69,5 +89,7 @@ export default async (args: Arguments): Promise => { ...baseAppChainModulesConfig, }); + log.setLevel("DEBUG"); + return appChain; }; diff --git a/packages/chain/src/environments/sovereign/worker.config.ts b/packages/chain/src/environments/sovereign/worker.config.ts new file mode 100644 index 0000000..ed71a39 --- /dev/null +++ b/packages/chain/src/environments/sovereign/worker.config.ts @@ -0,0 +1,49 @@ +import { AppChain } from "@proto-kit/sdk"; +import { Runtime } from "@proto-kit/module"; +import { Protocol } from "@proto-kit/protocol"; +import { Sequencer } from "@proto-kit/sequencer"; +import runtime from "../../runtime"; +import * as protocol from "../../protocol"; +import { Arguments } from "../../start"; + +import { workerModules, workerModulesConfig } from "../../sequencer/worker"; +import { log } from "@proto-kit/common"; + +export const appChain = AppChain.from({ + Runtime: Runtime.from({ + modules: runtime.modules, + }), + Protocol: Protocol.from({ + modules: { + ...protocol.modules, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" + ? protocol.settlementModules + : {}), + }, + }), + Sequencer: Sequencer.from({ + modules: { + ...workerModules, + }, + }), + modules: {}, +}); + +export default async (args: Arguments) => { + appChain.configurePartial({ + Runtime: runtime.config, + Protocol: { + ...protocol.config, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" + ? protocol.settlementModulesConfig + : {}), + }, + Sequencer: { + ...workerModulesConfig, + }, + }); + + log.setLevel("DEBUG") + + return appChain; +}; diff --git a/packages/chain/src/scripts/settlement/deploy.ts b/packages/chain/src/scripts/settlement/deploy.ts index 2b9275c..aa6a49a 100644 --- a/packages/chain/src/scripts/settlement/deploy.ts +++ b/packages/chain/src/scripts/settlement/deploy.ts @@ -2,6 +2,7 @@ import { Runtime } from "@proto-kit/module"; import { Protocol } from "@proto-kit/protocol"; import { AppChain } from "@proto-kit/sdk"; import { + InMemoryDatabase, Sequencer, SequencerModule, SettlementModule, @@ -30,7 +31,7 @@ export default async function () { }), Sequencer: Sequencer.from({ modules: { - Database: PrismaRedisDatabase, + Database: InMemoryDatabase, ...scriptsSettlementSequencerModules, }, }), @@ -45,16 +46,7 @@ export default async function () { }, Sequencer: { ...scriptsSettlementSequencerModulesConfig, - Database: { - redis: { - host: process.env.REDIS_HOST!, - port: Number(process.env.REDIS_PORT)!, - password: process.env.REDIS_PASSWORD!, - }, - prisma: { - connection: process.env.DATABASE_URL!, - }, - }, + Database: {}, }, }); diff --git a/packages/chain/src/sequencer/index.ts b/packages/chain/src/sequencer/index.ts index 51b7678..5559239 100644 --- a/packages/chain/src/sequencer/index.ts +++ b/packages/chain/src/sequencer/index.ts @@ -15,7 +15,8 @@ import { SequencerStartupModule, LocalTaskQueue, LocalTaskWorkerModule, - VanillaTaskWorkerModules, SettlementProvingTask, + VanillaTaskWorkerModules, + SettlementProvingTask, } from "@proto-kit/sequencer"; import { ModulesConfig } from "@proto-kit/common"; import { IndexerNotifier } from "@proto-kit/indexer"; @@ -42,9 +43,14 @@ export const baseSequencerModules = { Mempool: PrivateMempool, BlockProducerModule: BlockProducerModule, BlockTrigger: TimedBlockTrigger, - SequencerStartupModule + SequencerStartupModule, } satisfies SequencerModulesRecord; +console.log("settlement interval", { + SETTLEMENT_ENABLED: process.env.PROTOKIT_SETTLEMENT_ENABLED, + SETTLEMENT_INTERVAL: process.env.PROTOKIT_SETTLEMENT_INTERVAL, +}); + export const baseSequencerModulesConfig = { ...apiSequencerModulesConfig, Mempool: {}, @@ -61,7 +67,7 @@ export const baseSequencerModulesConfig = { }, }, }, - SequencerStartupModule: {} + SequencerStartupModule: {}, } satisfies ModulesConfig; export const indexerSequencerModules = { @@ -83,7 +89,7 @@ export const baseSettlementSequencerModules = { BlockProducerModule, BatchProducerModule, SettlementModule: SettlementModule, -} +}; export const scriptsSettlementSequencerModules = { ...baseSettlementSequencerModules, @@ -133,4 +139,3 @@ export const scriptsSettlementSequencerModulesConfig = { Mempool: {}, LocalTaskWorkerModule: VanillaTaskWorkerModules.defaultConfig(), } satisfies ModulesConfig; - From afd9cb151f342828c477e6b3f5135bbb277cdf19 Mon Sep 17 00:00:00 2001 From: Raphael Panic Date: Wed, 21 May 2025 12:49:34 +0200 Subject: [PATCH 08/10] Added deployment and bridging for custom tokens --- package.json | 1 + packages/chain/package.json | 4 +- .../chain/src/environments/development/.env | 4 + packages/chain/src/scripts/bridge/deposit.ts | 26 +- packages/chain/src/scripts/bridge/redeem.ts | 11 +- .../src/scripts/settlement/deploy-token.ts | 225 ++++++++++++++++++ packages/chain/src/sequencer/index.ts | 12 +- pnpm-lock.yaml | 18 +- turbo.json | 3 + 9 files changed, 290 insertions(+), 14 deletions(-) create mode 100644 packages/chain/src/scripts/settlement/deploy-token.ts diff --git a/package.json b/package.json index 36263de..13e9b86 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "lightnet:wait-for-network": "turbo run lightnet:wait-for-network --env-mode=loose --", "lightnet:initialize": "pnpm env:development lightnet:wait-for-network && pnpm env:development lightnet:faucet PROTOKIT_SEQUENCER_PUBLIC_KEY && pnpm env:development lightnet:faucet TEST_ACCOUNT_1_PUBLIC_KEY && pnpm env:development settlement:deploy", "settlement:deploy": "turbo run settlement:deploy --env-mode=loose --", + "settlement:token:deploy": "turbo run settlement:token:deploy --env-mode=loose --", "mina-explorer:start": "turbo run mina-explorer:start --env-mode=loose --", "bridge:deposit": "turbo run bridge:deposit --env-mode=loose --", "bridge:withdraw": "turbo run bridge:withdraw --env-mode=loose --", diff --git a/packages/chain/package.json b/packages/chain/package.json index bd56690..3dd6ab2 100644 --- a/packages/chain/package.json +++ b/packages/chain/package.json @@ -45,6 +45,7 @@ "lightnet:faucet": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/run lightnet/faucet.ts $1", "lightnet:wait-for-network": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/run lightnet/wait-for-network.ts $1", "settlement:deploy": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/run settlement/deploy.ts $1", + "settlement:token:deploy": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/run settlement/deploy-token.ts $1", "mina-explorer:start": "node ./node_modules/mina-lightweight-explorer/server.js", "bridge:deposit": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/run bridge/deposit.ts $1", "bridge:withdraw": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/run bridge/withdraw.ts $1", @@ -102,7 +103,8 @@ "graphql-scalars": "^1.22.4", "mina-lightweight-explorer": "github:o1-labs/mina-lightweight-explorer", "reflect-metadata": "^0.1.13", - "type-graphql": "2.0.0-rc.2" + "type-graphql": "2.0.0-rc.2", + "mina-fungible-token": "1.0.0" }, "nodemonConfig": { "delay": 1000 diff --git a/packages/chain/src/environments/development/.env b/packages/chain/src/environments/development/.env index c12cdaa..f16562e 100644 --- a/packages/chain/src/environments/development/.env +++ b/packages/chain/src/environments/development/.env @@ -79,6 +79,10 @@ PROTOKIT_DISPATCHER_CONTRACT_PUBLIC_KEY=B62qmAzUJ1jqcsEf2V3K1k2Ec4MLsEKnodEvvJ5u PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY=EKFKTGqWU2egLKhMgoxX8mQ21zXSE1RZYkY82mmK9F3BxdSA7E5M PROTOKIT_MINA_BRIDGE_CONTRACT_PUBLIC_KEY=B62qn8XRkWcaBvv6F7kvarKs4cViaKRMbTUHT8FrDXLnvxuV6n7CHsN +PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY=EKFZHQSo5YdrcU7neDaNZruYHvCiNncvdZyKXuS6MDCW1fyCFKDP +PROTOKIT_CUSTOM_TOKEN_ADMIN_PRIVATE_KEY=EKENQ2QRc4gAJkZjQXU86ZS9MDm1e7HFiNN6LgRJnniHJt1WXDn1 +PROTOKIT_CUSTOM_TOKEN_BRIDGE_PRIVATE_KEY=EKENQ2QRc4gAJkZjQXU86ZS9MDm1e7HFiNN6LgRJnniHJt1WXDn1 + # lightnet only MINA_ACCOUNT_MANAGER_HOST=http://localhost MINA_ACCOUNT_MANAGER_PORT=8084 diff --git a/packages/chain/src/scripts/bridge/deposit.ts b/packages/chain/src/scripts/bridge/deposit.ts index 5696030..83f0a10 100644 --- a/packages/chain/src/scripts/bridge/deposit.ts +++ b/packages/chain/src/scripts/bridge/deposit.ts @@ -13,7 +13,7 @@ import { AppChain } from "@proto-kit/sdk"; import { Runtime } from "@proto-kit/module"; import runtime from "../../runtime"; import { - Protocol, + Protocol, TokenBridgeAttestation, } from "@proto-kit/protocol"; import * as protocol from "../../protocol"; import { @@ -27,6 +27,7 @@ import { TokenId, UInt64, } from "o1js"; +import { FungibleToken } from "mina-fungible-token"; export default async function () { const tokenId = Field(process.argv[3]); @@ -39,6 +40,10 @@ export default async function () { const amount = Number(process.argv[6]) * 1e9; const fee = 0.1 * 1e9; + const isCustomToken = tokenId.toBigInt() !== 1n; + const tokenOwnerPrivateKey = isCustomToken ? PrivateKey.fromBase58(process.env["PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY"]!) : PrivateKey.random(); + const bridgeContractKey = isCustomToken ? PrivateKey.fromBase58(process.env.PROTOKIT_CUSTOM_TOKEN_BRIDGE_PRIVATE_KEY!) : PrivateKey.fromBase58(process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY!) + Provable.log("Preparing to deposit", { tokenId, fromPrivateKey, @@ -96,37 +101,42 @@ export default async function () { await fetchAccount({ publicKey: fromPrivateKey.toPublicKey() }); await fetchAccount({ publicKey: settlement.address }); await fetchAccount({ publicKey: dispatch.address }); - const bridgeAddress = await bridgingModule.getBridgeAddress(TokenId.default); - await fetchAccount({ publicKey: bridgeAddress! }); + const bridgeAddress = await bridgingModule.getBridgeAddress(tokenId); + await fetchAccount({ publicKey: bridgeAddress!, tokenId: tokenId }); + await fetchAccount({ publicKey: bridgeAddress!, tokenId: tokenId }); const attestation = await bridgingModule.getDepositContractAttestation(tokenId) console.log("Forging transaction..."); const tx = await Mina.transaction( { + memo: "User deposit", sender: fromPrivateKey.toPublicKey(), fee, }, async () => { - const au = AccountUpdate.createSigned(fromPrivateKey.toPublicKey()); + const au = AccountUpdate.createSigned(fromPrivateKey.toPublicKey(), tokenId); au.balance.subInPlace(UInt64.from(amount)); await dispatch.deposit( UInt64.from(amount), tokenId, - PublicKey.fromBase58( - process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PUBLIC_KEY! - ), + bridgeContractKey.toPublicKey(), attestation, toPublicKey ); + + if (isCustomToken) { + await new FungibleToken(tokenOwnerPrivateKey.toPublicKey())!.approveAccountUpdates([au, dispatch.self]); + } } ); + console.log(tx.toPretty()); settlementModule.signTransaction( tx, [fromPrivateKey], - [], + [tokenOwnerPrivateKey], [dispatch.address] ); diff --git a/packages/chain/src/scripts/bridge/redeem.ts b/packages/chain/src/scripts/bridge/redeem.ts index 4aadc48..02993ce 100644 --- a/packages/chain/src/scripts/bridge/redeem.ts +++ b/packages/chain/src/scripts/bridge/redeem.ts @@ -26,6 +26,7 @@ import { Provable, UInt64, } from "o1js"; +import { FungibleToken } from "mina-fungible-token"; export default async function () { const tokenId = Field(process.argv[3]); @@ -35,6 +36,9 @@ export default async function () { const amount = Number(process.argv[5]) * 1e9; const fee = 0.1 * 1e9; + const isCustomToken = tokenId.toBigInt() !== 1n; + const tokenOwnerPrivateKey = isCustomToken ? PrivateKey.fromBase58(process.env["PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY"]!) : PrivateKey.random(); + Provable.log("Preparing to redeem", { tokenId, to: toPrivateKey.toPublicKey(), @@ -97,10 +101,14 @@ export default async function () { fee, }, async () => { - const au = AccountUpdate.createSigned(toPrivateKey.toPublicKey()); + const au = AccountUpdate.createSigned(toPrivateKey.toPublicKey(), tokenId); au.balance.addInPlace(UInt64.from(amount)); await bridgeContract.redeem(au); + + if (isCustomToken) { + await new FungibleToken(tokenOwnerPrivateKey.toPublicKey())!.approveAccountUpdate(bridgeContract.self); + } } ); @@ -112,6 +120,7 @@ export default async function () { settlementModule.signTransaction( tx, [toPrivateKey], + [tokenOwnerPrivateKey] ); console.log("Sending..."); diff --git a/packages/chain/src/scripts/settlement/deploy-token.ts b/packages/chain/src/scripts/settlement/deploy-token.ts new file mode 100644 index 0000000..9271583 --- /dev/null +++ b/packages/chain/src/scripts/settlement/deploy-token.ts @@ -0,0 +1,225 @@ +import { Runtime } from "@proto-kit/module"; +import { Protocol, TokenBridgeTree } from "@proto-kit/protocol"; +import { AppChain } from "@proto-kit/sdk"; +import { + ArchiveNode, + MinaTransactionSender, + ProvenSettlementPermissions, + Sequencer, + SettlementModule, SignedSettlementPermissions, +} from "@proto-kit/sequencer"; +import { AccountUpdate, Bool, fetchAccount, Field, Mina, PrivateKey, Provable, PublicKey, UInt64, UInt8 } from "o1js"; +import "reflect-metadata"; +import { container } from "tsyringe"; +import runtime from "../../runtime"; +import * as protocol from "../../protocol"; +import { + scriptsSettlementSequencerModules, + scriptsSettlementSequencerModulesConfig, +} from "../../sequencer"; +import { PrismaRedisDatabase } from "@proto-kit/persistance"; +import { FungibleToken, FungibleTokenAdmin } from "mina-fungible-token"; + +export default async function () { + const appChain = AppChain.from({ + Runtime: Runtime.from({ + modules: runtime.modules, + }), + Protocol: Protocol.from({ + modules: { + ...protocol.modules, + ...protocol.settlementModules, + }, + }), + Sequencer: Sequencer.from({ + modules: { + Database: PrismaRedisDatabase, + ...scriptsSettlementSequencerModules, + }, + }), + modules: {}, + }); + + appChain.configure({ + Runtime: runtime.config, + Protocol: { + ...protocol.config, + ...protocol.settlementModulesConfig, + }, + Sequencer: { + ...scriptsSettlementSequencerModulesConfig, + Database: { + redis: { + host: process.env.REDIS_HOST!, + port: Number(process.env.REDIS_PORT)!, + password: process.env.REDIS_PASSWORD!, + }, + prisma: { + connection: process.env.DATABASE_URL!, + }, + }, + }, + }); + + const chainContainer = container.createChildContainer(); + console.log("start"); + const proofsEnabled = process.env.PROTOKIT_PROOFS_ENABLED === "true" + await appChain.start(proofsEnabled, chainContainer); + console.log("after start"); + + const tokenSymbol = process.argv[3]; + const feepayerPrivateKey = PrivateKey.fromBase58( + process.env[process.argv[4]] || process.argv[4] + ); + const receiverPublicKey = PublicKey.fromBase58( + process.env[process.argv[5]] || process.argv[5]! + ); + const mintAmount = process.argv.length > 6 ? Number(process.argv[6]) * 1e9 : 0; + const fee = 0.1 * 1e9; + + const settlementModule = appChain.sequencer.resolveOrFail( + "SettlementModule", + SettlementModule + ); + + const isSignedSettlement = settlementModule.utils.isSignedSettlement(); + + const tokenOwnerKey = PrivateKey.fromBase58(process.env["PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY"] ?? PrivateKey.random().toBase58()); + const tokenAdminKey = PrivateKey.fromBase58(process.env["PROTOKIT_CUSTOM_TOKEN_ADMIN_PRIVATE_KEY"] ?? PrivateKey.random().toBase58()); + const tokenBridgeKey = PrivateKey.fromBase58(process.env["PROTOKIT_CUSTOM_TOKEN_BRIDGE_PRIVATE_KEY"] ?? PrivateKey.random().toBase58()); + + await ArchiveNode.waitOnSync(appChain.sequencer.resolve("BaseLayer").config) + + async function deployTokenContracts(){ + const permissions = + isSignedSettlement + ? new SignedSettlementPermissions() + : new ProvenSettlementPermissions(); + + const tx = await Mina.transaction( + { + sender: feepayerPrivateKey.toPublicKey(), + memo: "Deploy custom token", + fee + }, + async () => { + AccountUpdate.fundNewAccount(feepayerPrivateKey.toPublicKey(), 3); + + const admin = new FungibleTokenAdmin( + tokenAdminKey.toPublicKey() + ); + await admin.deploy({ + verificationKey: undefined, + adminPublicKey: feepayerPrivateKey.toPublicKey(), + }); + admin.self.account.permissions.set( + permissions.bridgeContractToken() + ); + + const fungibleToken = new FungibleToken(tokenOwnerKey.toPublicKey()) + await fungibleToken.deploy({ + verificationKey: undefined, + src: "", + symbol: tokenSymbol, + }); + fungibleToken!.self.account.permissions.set( + permissions.bridgeContractToken() + ); + + await fungibleToken.initialize( + tokenAdminKey.toPublicKey(), + UInt8.from(9), + Bool(false) + ); + } + ); + console.log("Sending deploy transaction...") + console.log(tx.toPretty()); + + settlementModule.signTransaction( + tx, + [feepayerPrivateKey, tokenOwnerKey, tokenAdminKey], + [tokenOwnerKey, tokenAdminKey] + ); + + await appChain.sequencer + .resolveOrFail("TransactionSender", MinaTransactionSender) + .proveAndSendTransaction(tx, "included"); + + console.log("Deploy transaction included") + } + + async function mint() { + const tokenOwner = new FungibleToken(tokenOwnerKey.toPublicKey()) + await settlementModule.utils.fetchContractAccounts( + { + address: tokenOwner!.address, + tokenId: tokenOwner!.tokenId, + }, + { + address: tokenOwner!.address, + tokenId: tokenOwner!.deriveTokenId(), + } + ); + + const tx = await Mina.transaction( + { + sender: feepayerPrivateKey.toPublicKey(), + memo: "Mint custom token", + fee, + }, + async () => { + AccountUpdate.fundNewAccount(feepayerPrivateKey.toPublicKey(), 1); + + await tokenOwner!.mint( + receiverPublicKey, + UInt64.from(mintAmount) + ); + } + ); + settlementModule.utils.signTransaction( + tx, + [feepayerPrivateKey], + [tokenOwnerKey, tokenAdminKey] + ); + + await appChain.sequencer + .resolveOrFail("TransactionSender", MinaTransactionSender) + .proveAndSendTransaction(tx, "included"); + } + + async function deployBridge() { + const { settlement, dispatch } = settlementModule.getAddresses(); + await fetchAccount({ publicKey: settlementModule.config.feepayer.toPublicKey() }) + await fetchAccount({ publicKey: settlement }) + await fetchAccount({ publicKey: dispatch }) + + const tokenOwner = new FungibleToken(tokenOwnerKey.toPublicKey()) + await settlementModule.deployTokenBridge( + tokenOwner!, + tokenOwnerKey, + tokenBridgeKey, + {} + ); + console.log( + `Token bridge address: ${tokenBridgeKey.toPublicKey().toBase58()} @ ${tokenOwner!.deriveTokenId().toString()}` + ); + } + + await deployTokenContracts(); + await mint(); + await deployBridge(); + + console.log(`Deployed custom token with id ${new FungibleToken(tokenOwnerKey.toPublicKey())!.deriveTokenId()}`) + + Provable.log("Deployed and initialized settlement contracts", { + settlement: PrivateKey.fromBase58( + process.env.PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY! + ).toPublicKey(), + dispatcher: PrivateKey.fromBase58( + process.env.PROTOKIT_DISPATCHER_CONTRACT_PRIVATE_KEY! + ).toPublicKey(), + }); + + await appChain.close(); +} diff --git a/packages/chain/src/sequencer/index.ts b/packages/chain/src/sequencer/index.ts index 5559239..1a13897 100644 --- a/packages/chain/src/sequencer/index.ts +++ b/packages/chain/src/sequencer/index.ts @@ -20,7 +20,8 @@ import { } from "@proto-kit/sequencer"; import { ModulesConfig } from "@proto-kit/common"; import { IndexerNotifier } from "@proto-kit/indexer"; -import { PrivateKey } from "o1js"; +import { PrivateKey, TokenId } from "o1js"; +import { FungibleToken } from "mina-fungible-token"; export const apiSequencerModules = { GraphqlServer, @@ -51,6 +52,14 @@ console.log("settlement interval", { SETTLEMENT_INTERVAL: process.env.PROTOKIT_SETTLEMENT_INTERVAL, }); +const customTokenConfig = process.env.PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY ? { + [TokenId.derive(PrivateKey.fromBase58(process.env.PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY).toPublicKey()).toString()]: { + bridgingContractPrivateKey: PrivateKey.fromBase58(process.env.PROTOKIT_CUSTOM_TOKEN_BRIDGE_PRIVATE_KEY!), + tokenOwner: FungibleToken, + tokenOwnerPrivateKey: process.env.PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY + } +} : {}; + export const baseSequencerModulesConfig = { ...apiSequencerModulesConfig, Mempool: {}, @@ -65,6 +74,7 @@ export const baseSequencerModulesConfig = { process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY! ), }, + ...customTokenConfig }, }, SequencerStartupModule: {}, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 86a4a65..617df72 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -226,6 +226,9 @@ importers: graphql-scalars: specifier: ^1.22.4 version: 1.23.0(graphql@16.9.0) + mina-fungible-token: + specifier: 1.0.0 + version: 1.0.0(o1js@framework+node_modules+o1js) mina-lightweight-explorer: specifier: github:o1-labs/mina-lightweight-explorer version: https://codeload.github.com/o1-labs/mina-lightweight-explorer/tar.gz/b921393d5091035a913d446e38dfdeb29c06cc52 @@ -3410,6 +3413,11 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} + mina-fungible-token@1.0.0: + resolution: {integrity: sha512-2LfoBIuwQO5qk3H1JjRLKsCdZsSu+B/lannjMBdujdoHnoj6aWEcLQOY4jAz4BnhVCgAmJ/uUrTqVZ86J63iTg==} + peerDependencies: + o1js: ^1.6.0 + mina-lightweight-explorer@https://codeload.github.com/o1-labs/mina-lightweight-explorer/tar.gz/b921393d5091035a913d446e38dfdeb29c06cc52: resolution: {tarball: https://codeload.github.com/o1-labs/mina-lightweight-explorer/tar.gz/b921393d5091035a913d446e38dfdeb29c06cc52} version: 0.0.0 @@ -7536,7 +7544,7 @@ snapshots: eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.10.0(eslint@8.57.0) eslint-plugin-react: 7.35.2(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) @@ -7599,7 +7607,7 @@ snapshots: is-bun-module: 1.1.0 is-glob: 4.0.3 optionalDependencies: - eslint-plugin-import: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) + eslint-plugin-import: 2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) transitivePeerDependencies: - '@typescript-eslint/parser' - eslint-import-resolver-node @@ -7662,7 +7670,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0): + eslint-plugin-import@2.30.0(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.30.0(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -8957,6 +8965,10 @@ snapshots: min-indent@1.0.1: {} + mina-fungible-token@1.0.0(o1js@framework+node_modules+o1js): + dependencies: + o1js: link:../framework/node_modules/o1js + mina-lightweight-explorer@https://codeload.github.com/o1-labs/mina-lightweight-explorer/tar.gz/b921393d5091035a913d446e38dfdeb29c06cc52: {} minimalistic-assert@1.0.1: {} diff --git a/turbo.json b/turbo.json index 70c1fc0..da7429e 100644 --- a/turbo.json +++ b/turbo.json @@ -77,6 +77,9 @@ "settlement:deploy": { "cache": false }, + "settlement:token:deploy": { + "cache": false + }, "mina-explorer:start": { "cache": false }, From 6af04fea2efded8b7be6ea583be575be8da5cdb8 Mon Sep 17 00:00:00 2001 From: Raphael Panic Date: Fri, 14 Nov 2025 19:32:21 +0100 Subject: [PATCH 09/10] Adapted settlement to new protokit version --- apps/web/package.json | 24 +- packages/chain/package.json | 30 +- .../environments/development/chain.config.ts | 121 +- .../environments/development/worker.config.ts | 24 +- .../src/environments/inmemory/chain.config.ts | 67 +- .../environments/sovereign/worker.config.ts | 24 +- packages/chain/src/processor/api/resolvers.ts | 1 - packages/chain/src/protocol/index.ts | 9 +- packages/chain/src/scripts/bridge/deposit.ts | 49 +- packages/chain/src/scripts/bridge/redeem.ts | 44 +- packages/chain/src/scripts/bridge/withdraw.ts | 13 +- .../src/scripts/settlement/deploy-token.ts | 119 +- .../chain/src/scripts/settlement/deploy.ts | 27 +- packages/chain/src/sequencer/index.ts | 177 +- pnpm-lock.yaml | 4746 ++--------------- 15 files changed, 943 insertions(+), 4532 deletions(-) diff --git a/apps/web/package.json b/apps/web/package.json index fe4ec4b..96d8a6f 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -50,17 +50,17 @@ "typescript": "^5.4.5" }, "peerDependencies": { - "@proto-kit/api": "0.1.1-develop.1689", - "@proto-kit/common": "0.1.1-develop.1689", - "@proto-kit/deployment": "0.1.1-develop.1689", - "@proto-kit/library": "0.1.1-develop.1689", - "@proto-kit/module": "0.1.1-develop.1689", - "@proto-kit/persistance": "0.1.1-develop.1689", - "@proto-kit/protocol": "0.1.1-develop.1689", - "@proto-kit/sdk": "0.1.1-develop.1689", - "@proto-kit/sequencer": "0.1.1-develop.1689", - "@proto-kit/indexer": "0.1.1-develop.1689", - "o1js": "2.11.0", - "tsyringe": "^4.10.0" + "@proto-kit/api": "../../../framework/packages/api", + "@proto-kit/common": "../../../framework/packages/common", + "@proto-kit/deployment": "../../../framework/packages/deployment", + "@proto-kit/library": "../../../framework/packages/library", + "@proto-kit/module": "../../../framework/packages/module", + "@proto-kit/persistance": "../../../framework/packages/persistance", + "@proto-kit/protocol": "../../../framework/packages/protocol", + "@proto-kit/sdk": "../../../framework/packages/sdk", + "@proto-kit/sequencer": "../../../framework/packages/sequencer", + "@proto-kit/indexer": "../../../framework/packages/indexer", + "o1js": "../../../framework/node_modules/o1js", + "tsyringe": "../../../framework/node_modules/tsyringe" } } diff --git a/packages/chain/package.json b/packages/chain/package.json index c41cb16..301c133 100644 --- a/packages/chain/package.json +++ b/packages/chain/package.json @@ -38,7 +38,7 @@ "sequencer:prisma:generate": "prisma generate --schema ./node_modules/@proto-kit/persistance/prisma/schema.prisma", "indexer:prisma:migrate": "prisma migrate deploy --schema ./node_modules/@proto-kit/indexer/prisma/schema.prisma", "indexer:prisma:generate": "prisma generate --schema ./node_modules/@proto-kit/indexer/prisma/schema.prisma", - "processor:prisma:migrate:dev": "prisma migrate dev --schema ./src/processor/prisma/schema.prisma", + "processor:prisma:migrate:dev": "prisma migrate dev --schema ./src/processor/prisma/schema.prisma", "processor:prisma:migrate": "prisma migrate deploy --schema ./src/processor/prisma/schema.prisma", "processor:prisma:generate": "prisma generate --schema ./src/processor/prisma/schema.prisma", "generate-keys": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/generate-keys.ts $1", @@ -52,19 +52,19 @@ "bridge:redeem": "node --loader ts-node/esm --experimental-vm-modules --experimental-wasm-modules --es-module-specifier-resolution=node ./src/scripts/run bridge/redeem.ts $1" }, "peerDependencies": { - "@proto-kit/api": "0.1.1-develop.1689", - "@proto-kit/common": "0.1.1-develop.1689", - "@proto-kit/deployment": "0.1.1-develop.1689", - "@proto-kit/library": "0.1.1-develop.1689", - "@proto-kit/module": "0.1.1-develop.1689", - "@proto-kit/persistance": "0.1.1-develop.1689", - "@proto-kit/protocol": "0.1.1-develop.1689", - "@proto-kit/sdk": "0.1.1-develop.1689", - "@proto-kit/sequencer": "0.1.1-develop.1689", - "@proto-kit/indexer": "0.1.1-develop.1689", - "@proto-kit/processor": "0.1.1-develop.1689", - "o1js": "2.11.0", - "tsyringe": "^4.10.0" + "@proto-kit/api": "../../../framework/packages/api", + "@proto-kit/common": "../../../framework/packages/common", + "@proto-kit/deployment": "../../../framework/packages/deployment", + "@proto-kit/indexer": "../../../framework/packages/indexer", + "@proto-kit/library": "../../../framework/packages/library", + "@proto-kit/module": "../../../framework/packages/module", + "@proto-kit/persistance": "../../../framework/packages/persistance", + "@proto-kit/processor": "../../../framework/packages/processor", + "@proto-kit/protocol": "../../../framework/packages/protocol", + "@proto-kit/sdk": "../../../framework/packages/sdk", + "@proto-kit/sequencer": "../../../framework/packages/sequencer", + "o1js": "../../../framework/node_modules/o1js", + "tsyringe": "../../../framework/node_modules/tsyringe" }, "devDependencies": { "@jest/globals": "^29.6.1", @@ -104,7 +104,7 @@ "mina-lightweight-explorer": "github:o1-labs/mina-lightweight-explorer", "reflect-metadata": "^0.1.13", "type-graphql": "2.0.0-rc.2", - "mina-fungible-token": "1.0.0" + "mina-fungible-token": "^1.1.0" }, "nodemonConfig": { "delay": 1000 diff --git a/packages/chain/src/environments/development/chain.config.ts b/packages/chain/src/environments/development/chain.config.ts index 9c43072..be4107c 100644 --- a/packages/chain/src/environments/development/chain.config.ts +++ b/packages/chain/src/environments/development/chain.config.ts @@ -1,11 +1,11 @@ import { Runtime } from "@proto-kit/module"; import { Protocol } from "@proto-kit/protocol"; import { - AppChain, - DatabasePruneModule, - LocalTaskWorkerModule, - Sequencer, - VanillaTaskWorkerModules, + AppChain, + DatabasePruneModule, + LocalTaskWorkerModule, + Sequencer, + VanillaTaskWorkerModules, } from "@proto-kit/sequencer"; import { PrismaRedisDatabase } from "@proto-kit/persistance"; import runtime from "../../runtime"; @@ -22,60 +22,75 @@ import { } from "../../sequencer"; import { BullQueue } from "@proto-kit/deployment"; import { Arguments } from "../../start"; -import { baseAppChainModules, baseAppChainModulesConfig } from "../../app-chain"; +import { + baseAppChainModules, + baseAppChainModulesConfig, +} from "../../app-chain"; import { Startable } from "@proto-kit/common"; +const settlementEnabled = process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true"; + export const appChain = AppChain.from({ - Runtime: Runtime.from(runtime.modules), - Protocol: Protocol.from(protocol.modules), - Sequencer: Sequencer.from({ - // ordering of the modules matters due to dependency resolution - Database: PrismaRedisDatabase, - DatabasePruneModule, - ...metricsSequencerModules, - TaskQueue: BullQueue, - LocalTaskWorkerModule: LocalTaskWorkerModule.from( - VanillaTaskWorkerModules.withoutSettlement() - ), - ...baseSequencerModules, - ...indexerSequencerModules, - }), - ...baseAppChainModules, + Runtime: Runtime.from(runtime.modules), + Protocol: Protocol.from({ + ...protocol.modules, + ...(settlementEnabled ? protocol.settlementModules : {}), + }), + Sequencer: Sequencer.from({ + // ordering of the modules matters due to dependency resolution + Database: PrismaRedisDatabase, + DatabasePruneModule, + // ...metricsSequencerModules, + TaskQueue: BullQueue, + LocalTaskWorkerModule: LocalTaskWorkerModule.from( + settlementEnabled + ? VanillaTaskWorkerModules.withoutSettlement() + : VanillaTaskWorkerModules.allTasks() + ), + ...(settlementEnabled ? baseSettlementSequencerModules : {}), + ...baseSequencerModules, + ...indexerSequencerModules, + }), + ...baseAppChainModules, }); export default async (args: Arguments): Promise => { - appChain.configurePartial({ - Runtime: runtime.config, - Protocol: protocol.config, - Sequencer: { - ...baseSequencerModulesConfig, - ...indexerSequencerModulesConfig, - ...metricsSequencerModulesConfig, - DatabasePruneModule: { - pruneOnStartup: args.pruneOnStartup, - }, - TaskQueue: { - redis: { - host: process.env.REDIS_HOST!, - port: Number(process.env.REDIS_PORT)!, - password: process.env.REDIS_PASSWORD!, - db: 1, - }, - }, - Database: { - redis: { - host: process.env.REDIS_HOST!, - port: Number(process.env.REDIS_PORT)!, - password: process.env.REDIS_PASSWORD!, - }, - prisma: { - connection: process.env.DATABASE_URL!, - }, - }, - LocalTaskWorkerModule: VanillaTaskWorkerModules.defaultConfig(), + appChain.configurePartial({ + Runtime: runtime.config, + Protocol: { + ...protocol.config, + ...(settlementEnabled ? protocol.settlementModulesConfig : {}), + }, + Sequencer: { + ...baseSequencerModulesConfig, + ...indexerSequencerModulesConfig, + ...(settlementEnabled ? baseSettlementSequencerModulesConfig : {}), + // ...metricsSequencerModulesConfig, + DatabasePruneModule: { + pruneOnStartup: args.pruneOnStartup, + }, + TaskQueue: { + redis: { + host: process.env.REDIS_HOST!, + port: Number(process.env.REDIS_PORT)!, + password: process.env.REDIS_PASSWORD!, + db: 1, + }, + }, + Database: { + redis: { + host: process.env.REDIS_HOST!, + port: Number(process.env.REDIS_PORT)!, + password: process.env.REDIS_PASSWORD!, + }, + prisma: { + connection: process.env.DATABASE_URL!, }, - ...baseAppChainModulesConfig, - }); + }, + LocalTaskWorkerModule: VanillaTaskWorkerModules.defaultConfig(), + }, + ...baseAppChainModulesConfig, + }); - return appChain; + return appChain; }; diff --git a/packages/chain/src/environments/development/worker.config.ts b/packages/chain/src/environments/development/worker.config.ts index ed71a39..a7dd41e 100644 --- a/packages/chain/src/environments/development/worker.config.ts +++ b/packages/chain/src/environments/development/worker.config.ts @@ -1,7 +1,6 @@ -import { AppChain } from "@proto-kit/sdk"; import { Runtime } from "@proto-kit/module"; import { Protocol } from "@proto-kit/protocol"; -import { Sequencer } from "@proto-kit/sequencer"; +import { Sequencer, AppChain } from "@proto-kit/sequencer"; import runtime from "../../runtime"; import * as protocol from "../../protocol"; import { Arguments } from "../../start"; @@ -10,23 +9,16 @@ import { workerModules, workerModulesConfig } from "../../sequencer/worker"; import { log } from "@proto-kit/common"; export const appChain = AppChain.from({ - Runtime: Runtime.from({ - modules: runtime.modules, - }), + Runtime: Runtime.from(runtime.modules), Protocol: Protocol.from({ - modules: { - ...protocol.modules, - ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" - ? protocol.settlementModules - : {}), - }, + ...protocol.modules, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" + ? protocol.settlementModules + : {}), }), Sequencer: Sequencer.from({ - modules: { - ...workerModules, - }, + ...workerModules, }), - modules: {}, }); export default async (args: Arguments) => { @@ -43,7 +35,7 @@ export default async (args: Arguments) => { }, }); - log.setLevel("DEBUG") + log.setLevel("DEBUG"); return appChain; }; diff --git a/packages/chain/src/environments/inmemory/chain.config.ts b/packages/chain/src/environments/inmemory/chain.config.ts index 5ae0fe7..078133a 100644 --- a/packages/chain/src/environments/inmemory/chain.config.ts +++ b/packages/chain/src/environments/inmemory/chain.config.ts @@ -1,46 +1,49 @@ import { Runtime } from "@proto-kit/module"; import { Protocol } from "@proto-kit/protocol"; import { - AppChain, - InMemoryDatabase, - LocalTaskQueue, - LocalTaskWorkerModule, - Sequencer, - VanillaTaskWorkerModules, + InMemoryDatabase, + Sequencer, + AppChain, + LocalTaskQueue, + LocalTaskWorkerModule, + VanillaTaskWorkerModules, } from "@proto-kit/sequencer"; import runtime from "../../runtime"; import protocol from "../../protocol"; -import { baseSequencerModules, baseSequencerModulesConfig } from "../../sequencer"; +import { + baseSequencerModules, + baseSequencerModulesConfig, +} from "../../sequencer"; import { baseAppChainModules } from "../../app-chain"; export const appChain = AppChain.from({ - Runtime: Runtime.from(runtime.modules), - Protocol: Protocol.from(protocol.modules), - Sequencer: Sequencer.from({ - Database: InMemoryDatabase, - TaskQueue: LocalTaskQueue, - LocalTaskWorkerModule: LocalTaskWorkerModule.from( - VanillaTaskWorkerModules.withoutSettlement() - ), - ...baseSequencerModules, - }), - ...baseAppChainModules, + Runtime: Runtime.from(runtime.modules), + Protocol: Protocol.from(protocol.modules), + Sequencer: Sequencer.from({ + Database: InMemoryDatabase, + ...baseSequencerModules, + TaskQueue: LocalTaskQueue, + LocalTaskWorker: LocalTaskWorkerModule.from( + process.env.PROTOKIT_SETTLEMENT_ENABLED === "true" + ? VanillaTaskWorkerModules.withoutSettlement() + : VanillaTaskWorkerModules.allTasks() + ), + }), + ...baseAppChainModules, }); export default async () => { - appChain.configurePartial({ - Runtime: runtime.config, - Protocol: protocol.config, - Sequencer: { - ...baseSequencerModulesConfig, - Database: {}, - TaskQueue: { - simulatedDuration: 0, - }, - LocalTaskWorkerModule: VanillaTaskWorkerModules.defaultConfig(), - }, - ...baseSequencerModulesConfig, - }); + appChain.configurePartial({ + Runtime: runtime.config, + Protocol: protocol.config, + Sequencer: { + ...baseSequencerModulesConfig, + Database: {}, + TaskQueue: {}, + LocalTaskWorker: VanillaTaskWorkerModules.defaultConfig(), + }, + ...baseSequencerModulesConfig, + }); - return appChain; + return appChain; }; diff --git a/packages/chain/src/environments/sovereign/worker.config.ts b/packages/chain/src/environments/sovereign/worker.config.ts index ed71a39..a7dd41e 100644 --- a/packages/chain/src/environments/sovereign/worker.config.ts +++ b/packages/chain/src/environments/sovereign/worker.config.ts @@ -1,7 +1,6 @@ -import { AppChain } from "@proto-kit/sdk"; import { Runtime } from "@proto-kit/module"; import { Protocol } from "@proto-kit/protocol"; -import { Sequencer } from "@proto-kit/sequencer"; +import { Sequencer, AppChain } from "@proto-kit/sequencer"; import runtime from "../../runtime"; import * as protocol from "../../protocol"; import { Arguments } from "../../start"; @@ -10,23 +9,16 @@ import { workerModules, workerModulesConfig } from "../../sequencer/worker"; import { log } from "@proto-kit/common"; export const appChain = AppChain.from({ - Runtime: Runtime.from({ - modules: runtime.modules, - }), + Runtime: Runtime.from(runtime.modules), Protocol: Protocol.from({ - modules: { - ...protocol.modules, - ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" - ? protocol.settlementModules - : {}), - }, + ...protocol.modules, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true" + ? protocol.settlementModules + : {}), }), Sequencer: Sequencer.from({ - modules: { - ...workerModules, - }, + ...workerModules, }), - modules: {}, }); export default async (args: Arguments) => { @@ -43,7 +35,7 @@ export default async (args: Arguments) => { }, }); - log.setLevel("DEBUG") + log.setLevel("DEBUG"); return appChain; }; diff --git a/packages/chain/src/processor/api/resolvers.ts b/packages/chain/src/processor/api/resolvers.ts index 3daf1c3..dc6081c 100644 --- a/packages/chain/src/processor/api/resolvers.ts +++ b/packages/chain/src/processor/api/resolvers.ts @@ -5,7 +5,6 @@ import { resolvers as generatedResolvers, ResolversEnhanceMap, } from "./generated/type-graphql"; -import {NonEmptyArray} from "type-graphql"; // enhance the generated resolvers with custom middlewares/validations const resolversEnchanceMap: ResolversEnhanceMap = { diff --git a/packages/chain/src/protocol/index.ts b/packages/chain/src/protocol/index.ts index be4ae59..c1d6ffb 100644 --- a/packages/chain/src/protocol/index.ts +++ b/packages/chain/src/protocol/index.ts @@ -13,7 +13,7 @@ export const config: ModulesConfig = { ...VanillaProtocolModules.defaultConfig().TransactionFee, feeRecipient: process.env.PROTOKIT_TRANSACTION_FEE_RECIPIENT_PUBLIC_KEY!, }, -}; +} satisfies ModulesConfig; export const settlementModules = { SettlementContractModule: SettlementContractModule.fromDefaults(), @@ -21,10 +21,7 @@ export const settlementModules = { export const settlementModulesConfig = { SettlementContractModule: { - BridgeContract: { - withdrawalEventName: "withdrawal", - withdrawalStatePath: "Withdrawals.withdrawals", - }, + BridgeContract: {}, SettlementContract: {}, DispatchContract: { incomingMessagesMethods: { @@ -34,4 +31,4 @@ export const settlementModulesConfig = { }, } satisfies ModulesConfig; -export default { modules, config }; +export default { modules, config, settlementModules, settlementModulesConfig }; diff --git a/packages/chain/src/scripts/bridge/deposit.ts b/packages/chain/src/scripts/bridge/deposit.ts index 83f0a10..d68322d 100644 --- a/packages/chain/src/scripts/bridge/deposit.ts +++ b/packages/chain/src/scripts/bridge/deposit.ts @@ -4,17 +4,15 @@ import { MinaTransactionSender, Sequencer, SettlementModule, + AppChain, } from "@proto-kit/sequencer"; import { scriptsSettlementSequencerModules, scriptsSettlementSequencerModulesConfig, } from "../../sequencer"; -import { AppChain } from "@proto-kit/sdk"; import { Runtime } from "@proto-kit/module"; import runtime from "../../runtime"; -import { - Protocol, TokenBridgeAttestation, -} from "@proto-kit/protocol"; +import { Protocol, TokenBridgeAttestation } from "@proto-kit/protocol"; import * as protocol from "../../protocol"; import { AccountUpdate, @@ -41,8 +39,16 @@ export default async function () { const fee = 0.1 * 1e9; const isCustomToken = tokenId.toBigInt() !== 1n; - const tokenOwnerPrivateKey = isCustomToken ? PrivateKey.fromBase58(process.env["PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY"]!) : PrivateKey.random(); - const bridgeContractKey = isCustomToken ? PrivateKey.fromBase58(process.env.PROTOKIT_CUSTOM_TOKEN_BRIDGE_PRIVATE_KEY!) : PrivateKey.fromBase58(process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY!) + const tokenOwnerPrivateKey = isCustomToken + ? PrivateKey.fromBase58(process.env["PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY"]!) + : PrivateKey.random(); + const bridgeContractKey = isCustomToken + ? PrivateKey.fromBase58( + process.env.PROTOKIT_CUSTOM_TOKEN_BRIDGE_PRIVATE_KEY! + ) + : PrivateKey.fromBase58( + process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY! + ); Provable.log("Preparing to deposit", { tokenId, @@ -53,22 +59,15 @@ export default async function () { }); const appChain = AppChain.from({ - Runtime: Runtime.from({ - modules: runtime.modules, - }), + Runtime: Runtime.from(runtime.modules), Protocol: Protocol.from({ - modules: { - ...protocol.modules, - ...protocol.settlementModules, - }, + ...protocol.modules, + ...protocol.settlementModules, }), Sequencer: Sequencer.from({ - modules: { - Database: InMemoryDatabase, - ...scriptsSettlementSequencerModules, - }, + Database: InMemoryDatabase, + ...scriptsSettlementSequencerModules, }), - modules: {}, }); appChain.configure({ @@ -83,7 +82,7 @@ export default async function () { }, }); - const proofsEnabled = process.env.PROTOKIT_PROOFS_ENABLED === "true" + const proofsEnabled = process.env.PROTOKIT_PROOFS_ENABLED === "true"; await appChain.start(proofsEnabled); const settlementModule = appChain.sequencer.resolveOrFail( @@ -105,7 +104,8 @@ export default async function () { await fetchAccount({ publicKey: bridgeAddress!, tokenId: tokenId }); await fetchAccount({ publicKey: bridgeAddress!, tokenId: tokenId }); - const attestation = await bridgingModule.getDepositContractAttestation(tokenId) + const attestation = + await bridgingModule.getDepositContractAttestation(tokenId); console.log("Forging transaction..."); const tx = await Mina.transaction( @@ -115,7 +115,10 @@ export default async function () { fee, }, async () => { - const au = AccountUpdate.createSigned(fromPrivateKey.toPublicKey(), tokenId); + const au = AccountUpdate.createSigned( + fromPrivateKey.toPublicKey(), + tokenId + ); au.balance.subInPlace(UInt64.from(amount)); await dispatch.deposit( @@ -127,7 +130,9 @@ export default async function () { ); if (isCustomToken) { - await new FungibleToken(tokenOwnerPrivateKey.toPublicKey())!.approveAccountUpdates([au, dispatch.self]); + await new FungibleToken( + tokenOwnerPrivateKey.toPublicKey() + )!.approveAccountUpdates([au, dispatch.self]); } } ); diff --git a/packages/chain/src/scripts/bridge/redeem.ts b/packages/chain/src/scripts/bridge/redeem.ts index 02993ce..5fda0e2 100644 --- a/packages/chain/src/scripts/bridge/redeem.ts +++ b/packages/chain/src/scripts/bridge/redeem.ts @@ -5,17 +5,15 @@ import { Sequencer, SequencerModule, SettlementModule, + AppChain, } from "@proto-kit/sequencer"; import { scriptsSettlementSequencerModules, scriptsSettlementSequencerModulesConfig, } from "../../sequencer"; -import { AppChain } from "@proto-kit/sdk"; import { Runtime } from "@proto-kit/module"; import runtime from "../../runtime"; -import { - Protocol, -} from "@proto-kit/protocol"; +import { Protocol } from "@proto-kit/protocol"; import * as protocol from "../../protocol"; import { AccountUpdate, @@ -37,7 +35,9 @@ export default async function () { const fee = 0.1 * 1e9; const isCustomToken = tokenId.toBigInt() !== 1n; - const tokenOwnerPrivateKey = isCustomToken ? PrivateKey.fromBase58(process.env["PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY"]!) : PrivateKey.random(); + const tokenOwnerPrivateKey = isCustomToken + ? PrivateKey.fromBase58(process.env["PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY"]!) + : PrivateKey.random(); Provable.log("Preparing to redeem", { tokenId, @@ -47,22 +47,15 @@ export default async function () { }); const appChain = AppChain.from({ - Runtime: Runtime.from({ - modules: runtime.modules, - }), + Runtime: Runtime.from(runtime.modules), Protocol: Protocol.from({ - modules: { - ...protocol.modules, - ...protocol.settlementModules, - }, + ...protocol.modules, + ...protocol.settlementModules, }), Sequencer: Sequencer.from({ - modules: { - Database: InMemoryDatabase, - ...scriptsSettlementSequencerModules, - }, + Database: InMemoryDatabase, + ...scriptsSettlementSequencerModules, }), - modules: {}, }); appChain.configure({ @@ -77,7 +70,7 @@ export default async function () { }, }); - const proofsEnabled = process.env.PROTOKIT_PROOFS_ENABLED === "true" + const proofsEnabled = process.env.PROTOKIT_PROOFS_ENABLED === "true"; await appChain.start(proofsEnabled); const bridgingModule = appChain.sequencer.resolveOrFail( @@ -101,13 +94,18 @@ export default async function () { fee, }, async () => { - const au = AccountUpdate.createSigned(toPrivateKey.toPublicKey(), tokenId); + const au = AccountUpdate.createSigned( + toPrivateKey.toPublicKey(), + tokenId + ); au.balance.addInPlace(UInt64.from(amount)); await bridgeContract.redeem(au); if (isCustomToken) { - await new FungibleToken(tokenOwnerPrivateKey.toPublicKey())!.approveAccountUpdate(bridgeContract.self); + await new FungibleToken( + tokenOwnerPrivateKey.toPublicKey() + )!.approveAccountUpdate(bridgeContract.self); } } ); @@ -117,11 +115,7 @@ export default async function () { SettlementModule ); - settlementModule.signTransaction( - tx, - [toPrivateKey], - [tokenOwnerPrivateKey] - ); + settlementModule.signTransaction(tx, [toPrivateKey], [tokenOwnerPrivateKey]); console.log("Sending..."); diff --git a/packages/chain/src/scripts/bridge/withdraw.ts b/packages/chain/src/scripts/bridge/withdraw.ts index d552762..dc6de43 100644 --- a/packages/chain/src/scripts/bridge/withdraw.ts +++ b/packages/chain/src/scripts/bridge/withdraw.ts @@ -2,14 +2,25 @@ import { ClientAppChain, InMemorySigner } from "@proto-kit/sdk"; import runtime from "../../runtime"; import { Field, PrivateKey, Provable } from "o1js"; import { UInt64 } from "@proto-kit/library"; +import protocol from "../../protocol"; +import { Runtime } from "@proto-kit/module"; +import { Protocol } from "@proto-kit/protocol"; export default async function () { const tokenId = Field(process.argv[3]!); const amount = UInt64.from(Number(process.argv[5]) * 1e9); - const appChain = ClientAppChain.fromRuntime(runtime.modules, InMemorySigner); + const appChain = ClientAppChain.fromRemoteEndpoint( + Runtime.from(runtime.modules), + Protocol.from({ ...protocol.modules, ...protocol.settlementModules }), + InMemorySigner + ); appChain.configurePartial({ Runtime: runtime.config, + Protocol: { + ...protocol.config, + ...protocol.settlementModulesConfig, + }, GraphqlClient: { url: process.env.NEXT_PUBLIC_PROTOKIT_GRAPHQL_URL, }, diff --git a/packages/chain/src/scripts/settlement/deploy-token.ts b/packages/chain/src/scripts/settlement/deploy-token.ts index 9271583..a3b7ec5 100644 --- a/packages/chain/src/scripts/settlement/deploy-token.ts +++ b/packages/chain/src/scripts/settlement/deploy-token.ts @@ -1,14 +1,26 @@ import { Runtime } from "@proto-kit/module"; import { Protocol, TokenBridgeTree } from "@proto-kit/protocol"; -import { AppChain } from "@proto-kit/sdk"; import { ArchiveNode, MinaTransactionSender, ProvenSettlementPermissions, Sequencer, - SettlementModule, SignedSettlementPermissions, + SettlementModule, + SignedSettlementPermissions, + AppChain, } from "@proto-kit/sequencer"; -import { AccountUpdate, Bool, fetchAccount, Field, Mina, PrivateKey, Provable, PublicKey, UInt64, UInt8 } from "o1js"; +import { + AccountUpdate, + Bool, + fetchAccount, + Field, + Mina, + PrivateKey, + Provable, + PublicKey, + UInt64, + UInt8, +} from "o1js"; import "reflect-metadata"; import { container } from "tsyringe"; import runtime from "../../runtime"; @@ -18,26 +30,23 @@ import { scriptsSettlementSequencerModulesConfig, } from "../../sequencer"; import { PrismaRedisDatabase } from "@proto-kit/persistance"; -import { FungibleToken, FungibleTokenAdmin } from "mina-fungible-token"; +import { + FungibleToken, + FungibleTokenAdmin, + SetAdminEvent, +} from "mina-fungible-token"; export default async function () { const appChain = AppChain.from({ - Runtime: Runtime.from({ - modules: runtime.modules, - }), + Runtime: Runtime.from(runtime.modules), Protocol: Protocol.from({ - modules: { - ...protocol.modules, - ...protocol.settlementModules, - }, + ...protocol.modules, + ...protocol.settlementModules, }), Sequencer: Sequencer.from({ - modules: { - Database: PrismaRedisDatabase, - ...scriptsSettlementSequencerModules, - }, + Database: PrismaRedisDatabase, + ...scriptsSettlementSequencerModules, }), - modules: {}, }); appChain.configure({ @@ -58,14 +67,12 @@ export default async function () { connection: process.env.DATABASE_URL!, }, }, - }, + } as any, }); const chainContainer = container.createChildContainer(); - console.log("start"); - const proofsEnabled = process.env.PROTOKIT_PROOFS_ENABLED === "true" + const proofsEnabled = process.env.PROTOKIT_PROOFS_ENABLED === "true"; await appChain.start(proofsEnabled, chainContainer); - console.log("after start"); const tokenSymbol = process.argv[3]; const feepayerPrivateKey = PrivateKey.fromBase58( @@ -74,7 +81,8 @@ export default async function () { const receiverPublicKey = PublicKey.fromBase58( process.env[process.argv[5]] || process.argv[5]! ); - const mintAmount = process.argv.length > 6 ? Number(process.argv[6]) * 1e9 : 0; + const mintAmount = + process.argv.length > 6 ? Number(process.argv[6]) * 1e9 : 0; const fee = 0.1 * 1e9; const settlementModule = appChain.sequencer.resolveOrFail( @@ -84,43 +92,46 @@ export default async function () { const isSignedSettlement = settlementModule.utils.isSignedSettlement(); - const tokenOwnerKey = PrivateKey.fromBase58(process.env["PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY"] ?? PrivateKey.random().toBase58()); - const tokenAdminKey = PrivateKey.fromBase58(process.env["PROTOKIT_CUSTOM_TOKEN_ADMIN_PRIVATE_KEY"] ?? PrivateKey.random().toBase58()); - const tokenBridgeKey = PrivateKey.fromBase58(process.env["PROTOKIT_CUSTOM_TOKEN_BRIDGE_PRIVATE_KEY"] ?? PrivateKey.random().toBase58()); + const tokenOwnerKey = PrivateKey.fromBase58( + process.env["PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY"] ?? + PrivateKey.random().toBase58() + ); + const tokenAdminKey = PrivateKey.fromBase58( + process.env["PROTOKIT_CUSTOM_TOKEN_ADMIN_PRIVATE_KEY"] ?? + PrivateKey.random().toBase58() + ); + const tokenBridgeKey = PrivateKey.fromBase58( + process.env["PROTOKIT_CUSTOM_TOKEN_BRIDGE_PRIVATE_KEY"] ?? + PrivateKey.random().toBase58() + ); - await ArchiveNode.waitOnSync(appChain.sequencer.resolve("BaseLayer").config) + await ArchiveNode.waitOnSync(appChain.sequencer.resolve("BaseLayer").config); - async function deployTokenContracts(){ - const permissions = - isSignedSettlement - ? new SignedSettlementPermissions() - : new ProvenSettlementPermissions(); + async function deployTokenContracts() { + const permissions = isSignedSettlement + ? new SignedSettlementPermissions() + : new ProvenSettlementPermissions(); const tx = await Mina.transaction( { sender: feepayerPrivateKey.toPublicKey(), memo: "Deploy custom token", - fee + fee, }, async () => { AccountUpdate.fundNewAccount(feepayerPrivateKey.toPublicKey(), 3); - const admin = new FungibleTokenAdmin( - tokenAdminKey.toPublicKey() - ); + const admin = new FungibleTokenAdmin(tokenAdminKey.toPublicKey()); await admin.deploy({ - verificationKey: undefined, adminPublicKey: feepayerPrivateKey.toPublicKey(), }); - admin.self.account.permissions.set( - permissions.bridgeContractToken() - ); + admin.self.account.permissions.set(permissions.bridgeContractToken()); - const fungibleToken = new FungibleToken(tokenOwnerKey.toPublicKey()) + const fungibleToken = new FungibleToken(tokenOwnerKey.toPublicKey()); await fungibleToken.deploy({ - verificationKey: undefined, src: "", symbol: tokenSymbol, + allowUpdates: false, }); fungibleToken!.self.account.permissions.set( permissions.bridgeContractToken() @@ -133,7 +144,7 @@ export default async function () { ); } ); - console.log("Sending deploy transaction...") + console.log("Sending deploy transaction..."); console.log(tx.toPretty()); settlementModule.signTransaction( @@ -146,11 +157,11 @@ export default async function () { .resolveOrFail("TransactionSender", MinaTransactionSender) .proveAndSendTransaction(tx, "included"); - console.log("Deploy transaction included") + console.log("Deploy transaction included"); } async function mint() { - const tokenOwner = new FungibleToken(tokenOwnerKey.toPublicKey()) + const tokenOwner = new FungibleToken(tokenOwnerKey.toPublicKey()); await settlementModule.utils.fetchContractAccounts( { address: tokenOwner!.address, @@ -171,10 +182,7 @@ export default async function () { async () => { AccountUpdate.fundNewAccount(feepayerPrivateKey.toPublicKey(), 1); - await tokenOwner!.mint( - receiverPublicKey, - UInt64.from(mintAmount) - ); + await tokenOwner!.mint(receiverPublicKey, UInt64.from(mintAmount)); } ); settlementModule.utils.signTransaction( @@ -190,11 +198,14 @@ export default async function () { async function deployBridge() { const { settlement, dispatch } = settlementModule.getAddresses(); - await fetchAccount({ publicKey: settlementModule.config.feepayer.toPublicKey() }) - await fetchAccount({ publicKey: settlement }) - await fetchAccount({ publicKey: dispatch }) - - const tokenOwner = new FungibleToken(tokenOwnerKey.toPublicKey()) + await fetchAccount({ + publicKey: settlementModule.config.feepayer.toPublicKey(), + }); + await fetchAccount({ publicKey: settlement }); + await fetchAccount({ publicKey: dispatch }); + + const tokenOwner = new FungibleToken(tokenOwnerKey.toPublicKey()); + // SetAdminEvent. await settlementModule.deployTokenBridge( tokenOwner!, tokenOwnerKey, @@ -210,7 +221,9 @@ export default async function () { await mint(); await deployBridge(); - console.log(`Deployed custom token with id ${new FungibleToken(tokenOwnerKey.toPublicKey())!.deriveTokenId()}`) + console.log( + `Deployed custom token with id ${new FungibleToken(tokenOwnerKey.toPublicKey())!.deriveTokenId()}` + ); Provable.log("Deployed and initialized settlement contracts", { settlement: PrivateKey.fromBase58( diff --git a/packages/chain/src/scripts/settlement/deploy.ts b/packages/chain/src/scripts/settlement/deploy.ts index 1ad6729..bd9eada 100644 --- a/packages/chain/src/scripts/settlement/deploy.ts +++ b/packages/chain/src/scripts/settlement/deploy.ts @@ -1,11 +1,11 @@ import { Runtime } from "@proto-kit/module"; import { Protocol } from "@proto-kit/protocol"; -import { AppChain } from "@proto-kit/sdk"; import { InMemoryDatabase, Sequencer, SequencerModule, SettlementModule, + AppChain, } from "@proto-kit/sequencer"; import { PrivateKey, Provable } from "o1js"; import "reflect-metadata"; @@ -20,22 +20,15 @@ import { PrismaRedisDatabase } from "@proto-kit/persistance"; export default async function () { const appChain = AppChain.from({ - Runtime: Runtime.from({ - modules: runtime.modules, - }), + Runtime: Runtime.from(runtime.modules), Protocol: Protocol.from({ - modules: { - ...protocol.modules, - ...protocol.settlementModules, - }, + ...protocol.modules, + ...protocol.settlementModules, }), Sequencer: Sequencer.from({ - modules: { - Database: InMemoryDatabase, - ...scriptsSettlementSequencerModules, - }, + Database: InMemoryDatabase, + ...scriptsSettlementSequencerModules, }), - modules: {}, }); appChain.configure({ @@ -47,14 +40,12 @@ export default async function () { Sequencer: { ...scriptsSettlementSequencerModulesConfig, Database: {}, - }, + } as any, }); const chainContainer = container.createChildContainer(); - console.log("start"); - const proofsEnabled = process.env.PROTOKIT_PROOFS_ENABLED === "true" + const proofsEnabled = process.env.PROTOKIT_PROOFS_ENABLED === "true"; await appChain.start(proofsEnabled, chainContainer); - console.log("after start"); const settlementModule = appChain.sequencer.resolveOrFail( "SettlementModule", @@ -72,7 +63,7 @@ export default async function () { ), PrivateKey.fromBase58( process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY! - ), + ) ); Provable.log("Deployed and initialized settlement contracts", { diff --git a/packages/chain/src/sequencer/index.ts b/packages/chain/src/sequencer/index.ts index 7656fdc..e4dcbeb 100644 --- a/packages/chain/src/sequencer/index.ts +++ b/packages/chain/src/sequencer/index.ts @@ -1,8 +1,8 @@ import { - VanillaGraphqlModules, - GraphqlSequencerModule, - GraphqlServer, - OpenTelemetryServer, + VanillaGraphqlModules, + GraphqlSequencerModule, + GraphqlServer, + OpenTelemetryServer, } from "@proto-kit/api"; import { PrivateMempool, @@ -25,41 +25,43 @@ import { PrivateKey, TokenId } from "o1js"; import { FungibleToken } from "mina-fungible-token"; export const apiSequencerModules = { - GraphqlServer, - Graphql: GraphqlSequencerModule.from(VanillaGraphqlModules.with({})), + GraphqlServer, + Graphql: GraphqlSequencerModule.from(VanillaGraphqlModules.with({})), } satisfies SequencerModulesRecord; export const apiSequencerModulesConfig = { - Graphql: VanillaGraphqlModules.defaultConfig(), - GraphqlServer: { - port: Number(process.env.PROTOKIT_GRAPHQL_PORT), - host: process.env.PROTOKIT_GRAPHQL_HOST!, - graphiql: Boolean(process.env.PROTOKIT_GRAPHIQL_ENABLED), - }, + Graphql: VanillaGraphqlModules.defaultConfig(), + GraphqlServer: { + port: Number(process.env.PROTOKIT_GRAPHQL_PORT), + host: process.env.PROTOKIT_GRAPHQL_HOST!, + graphiql: Boolean(process.env.PROTOKIT_GRAPHIQL_ENABLED), + }, } satisfies ModulesConfig; export const metricsSequencerModules = { - OpenTelemetryServer, + OpenTelemetryServer, } satisfies SequencerModulesRecord; export const metricsSequencerModulesConfig = { - OpenTelemetryServer: { - metrics: { - enabled: Boolean(process.env.OPEN_TELEMETRY_METRICS_ENABLED ?? false), - prometheus: { - host: process.env.OPEN_TELEMETRY_METRICS_HOST ?? "localhost", - port: Number(process.env.OPEN_TELEMETRY_METRICS_PORT), - appendTimestamp: true, - }, - nodeScrapeInterval: Number(process.env.OPEN_TELEMETRY_METRICS_SCRAPING_FREQUENCY ?? 10), - }, - tracing: { - enabled: Boolean(process.env.OPEN_TELEMETRY_TRACING_ENABLED ?? false), - otlp: { - url: process.env.OPEN_TELEMETRY_TRACING_URL, - }, - }, + OpenTelemetryServer: { + metrics: { + enabled: Boolean(process.env.OPEN_TELEMETRY_METRICS_ENABLED ?? false), + prometheus: { + host: process.env.OPEN_TELEMETRY_METRICS_HOST ?? "localhost", + port: Number(process.env.OPEN_TELEMETRY_METRICS_PORT), + appendTimestamp: true, + }, + nodeScrapeInterval: Number( + process.env.OPEN_TELEMETRY_METRICS_SCRAPING_FREQUENCY ?? 10 + ), + }, + tracing: { + enabled: Boolean(process.env.OPEN_TELEMETRY_TRACING_ENABLED ?? false), + otlp: { + url: process.env.OPEN_TELEMETRY_TRACING_URL, + }, }, + }, } satisfies ModulesConfig; export const baseSequencerModules = { @@ -70,18 +72,22 @@ export const baseSequencerModules = { SequencerStartupModule, } satisfies SequencerModulesRecord; -console.log("settlement interval", { - SETTLEMENT_ENABLED: process.env.PROTOKIT_SETTLEMENT_ENABLED, - SETTLEMENT_INTERVAL: process.env.PROTOKIT_SETTLEMENT_INTERVAL, -}); - -const customTokenConfig = process.env.PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY ? { - [TokenId.derive(PrivateKey.fromBase58(process.env.PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY).toPublicKey()).toString()]: { - bridgingContractPrivateKey: PrivateKey.fromBase58(process.env.PROTOKIT_CUSTOM_TOKEN_BRIDGE_PRIVATE_KEY!), - tokenOwner: FungibleToken, - tokenOwnerPrivateKey: process.env.PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY - } -} : {}; +const customTokenConfig = + process.env.PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY !== undefined + ? { + [TokenId.derive( + PrivateKey.fromBase58( + process.env.PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY + ).toPublicKey() + ).toString()]: { + bridgingContractPrivateKey: PrivateKey.fromBase58( + process.env.PROTOKIT_CUSTOM_TOKEN_BRIDGE_PRIVATE_KEY! + ), + tokenOwner: FungibleToken, + tokenOwnerPrivateKey: process.env.PROTOKIT_CUSTOM_TOKEN_PRIVATE_KEY, + }, + } + : {}; export const baseSequencerModulesConfig = { ...apiSequencerModulesConfig, @@ -90,25 +96,29 @@ export const baseSequencerModulesConfig = { BlockTrigger: { blockInterval: Number(process.env.PROTOKIT_BLOCK_INTERVAL!), produceEmptyBlocks: true, - settlementInterval: Number(process.env.PROTOKIT_SETTLEMENT_INTERVAL!), - settlementTokenConfig: { - "1": { - bridgingContractPrivateKey: PrivateKey.fromBase58( - process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY! - ), - }, - ...customTokenConfig - }, + ...(process.env.PROTOKIT_SETTLEMENT_ENABLED === "true" + ? { + settlementInterval: Number(process.env.PROTOKIT_SETTLEMENT_INTERVAL!), + settlementTokenConfig: { + "1": { + bridgingContractPrivateKey: PrivateKey.fromBase58( + process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY! + ), + }, + ...customTokenConfig, + }, + } + : { settlementInterval: undefined, settlementTokenConfig: {} }), }, SequencerStartupModule: {}, } satisfies ModulesConfig; export const indexerSequencerModules = { - IndexerNotifier: IndexerNotifier, + IndexerNotifier: IndexerNotifier, } satisfies SequencerModulesRecord; export const indexerSequencerModulesConfig = { - IndexerNotifier: {}, + IndexerNotifier: {}, } satisfies ModulesConfig; const taskWorkerModule = LocalTaskWorkerModule.from({ @@ -119,7 +129,6 @@ const taskWorkerModule = LocalTaskWorkerModule.from({ export const baseSettlementSequencerModules = { BaseLayer: MinaBaseLayer, FeeStrategy: ConstantFeeStrategy, - BlockProducerModule, BatchProducerModule, SettlementModule: SettlementModule, }; @@ -133,35 +142,37 @@ export const scriptsSettlementSequencerModules = { SequencerStartupModule, } satisfies SequencerModulesRecord; -export const baseSettlementSequencerModulesConfig = { - BaseLayer: { - network: { - type: "lightnet", - graphql: `${process.env.MINA_NODE_GRAPHQL_HOST!}:${process.env.MINA_NODE_GRAPHQL_PORT!}/graphql`, - archive: `${process.env.MINA_ARCHIVE_GRAPHQL_HOST!}:${process.env.MINA_ARCHIVE_GRAPHQL_PORT!}`, - accountManager: `${process.env.MINA_ACCOUNT_MANAGER_HOST!}:${process.env.MINA_ACCOUNT_MANAGER_PORT!}`, - }, - }, - SettlementModule: { - feepayer: PrivateKey.fromBase58( - process.env.PROTOKIT_SEQUENCER_PRIVATE_KEY! - ), - keys: { - settlement: PrivateKey.fromBase58( - process.env.PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY! - ), - dispatch: PrivateKey.fromBase58( - process.env.PROTOKIT_DISPATCHER_CONTRACT_PRIVATE_KEY! - ), - minaBridge: PrivateKey.fromBase58( - process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY! - ), - }, - }, - FeeStrategy: {}, - BlockProducerModule: {}, - BatchProducerModule: {}, -} satisfies ModulesConfig; +export const baseSettlementSequencerModulesConfig = + process.env.PROTOKIT_SETTLEMENT_ENABLED === "true" + ? ({ + BaseLayer: { + network: { + type: "lightnet", + graphql: `${process.env.MINA_NODE_GRAPHQL_HOST!}:${process.env.MINA_NODE_GRAPHQL_PORT!}/graphql`, + archive: `${process.env.MINA_ARCHIVE_GRAPHQL_HOST!}:${process.env.MINA_ARCHIVE_GRAPHQL_PORT!}`, + accountManager: `${process.env.MINA_ACCOUNT_MANAGER_HOST!}:${process.env.MINA_ACCOUNT_MANAGER_PORT!}`, + }, + }, + SettlementModule: { + feepayer: PrivateKey.fromBase58( + process.env.PROTOKIT_SEQUENCER_PRIVATE_KEY! + ), + keys: { + settlement: PrivateKey.fromBase58( + process.env.PROTOKIT_SETTLEMENT_CONTRACT_PRIVATE_KEY! + ), + dispatch: PrivateKey.fromBase58( + process.env.PROTOKIT_DISPATCHER_CONTRACT_PRIVATE_KEY! + ), + minaBridge: PrivateKey.fromBase58( + process.env.PROTOKIT_MINA_BRIDGE_CONTRACT_PRIVATE_KEY! + ), + }, + }, + FeeStrategy: {}, + BatchProducerModule: {}, + } satisfies ModulesConfig) + : {}; export const scriptsSettlementSequencerModulesConfig = { ...baseSettlementSequencerModulesConfig, @@ -171,4 +182,4 @@ export const scriptsSettlementSequencerModulesConfig = { }, Mempool: {}, LocalTaskWorkerModule: VanillaTaskWorkerModules.defaultConfig(), -} satisfies ModulesConfig; +}; // satisfies ModulesConfig; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2a9dce5..9f932c5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -43,35 +43,35 @@ importers: specifier: ^3.3.2 version: 3.10.0(react-hook-form@7.66.0(react@18.3.1)) '@proto-kit/api': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) + specifier: ../../../framework/packages/api + version: link:../../../framework/packages/api '@proto-kit/common': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0) + specifier: ../../../framework/packages/common + version: link:../../../framework/packages/common '@proto-kit/deployment': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/persistance@0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa))(@proto-kit/sdk@0.1.1-develop.1689(h3x5uf37tqonajdw5tvi4whuiq))(@proto-kit/sequencer@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/module@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(bullmq@3.16.2)(o1js@2.11.0)(tsyringe@4.10.0) + specifier: ../../../framework/packages/deployment + version: link:../../../framework/packages/deployment '@proto-kit/indexer': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(zs6ypwbbw2euwy2mf6l5sazysu) + specifier: ../../../framework/packages/indexer + version: link:../../../framework/packages/indexer '@proto-kit/library': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) + specifier: ../../../framework/packages/library + version: link:../../../framework/packages/library '@proto-kit/module': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) + specifier: ../../../framework/packages/module + version: link:../../../framework/packages/module '@proto-kit/persistance': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) + specifier: ../../../framework/packages/persistance + version: link:../../../framework/packages/persistance '@proto-kit/protocol': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0) + specifier: ../../../framework/packages/protocol + version: link:../../../framework/packages/protocol '@proto-kit/sdk': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(h3x5uf37tqonajdw5tvi4whuiq) + specifier: ../../../framework/packages/sdk + version: link:../../../framework/packages/sdk '@proto-kit/sequencer': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/module@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) + specifier: ../../../framework/packages/sequencer + version: link:../../../framework/packages/sequencer '@radix-ui/react-label': specifier: ^2.0.2 version: 2.1.8(@types/react-dom@18.3.7(@types/react@18.3.26))(@types/react@18.3.26)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -115,8 +115,8 @@ importers: specifier: 14.0.1 version: 14.0.1(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) o1js: - specifier: 2.11.0 - version: 2.11.0 + specifier: ../../../framework/node_modules/o1js + version: link:../../../framework/node_modules/o1js react: specifier: ^18 version: 18.3.1 @@ -139,8 +139,8 @@ importers: specifier: ^1.0.6 version: 1.0.6 tsyringe: - specifier: ^4.10.0 - version: 4.10.0 + specifier: ../../../framework/node_modules/tsyringe + version: link:../../../framework/node_modules/tsyringe zod: specifier: ^3.22.4 version: 3.25.76 @@ -188,53 +188,62 @@ importers: packages/chain: dependencies: '@proto-kit/api': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) + specifier: ../../../framework/packages/api + version: link:../../../framework/packages/api '@proto-kit/common': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0) + specifier: ../../../framework/packages/common + version: link:../../../framework/packages/common '@proto-kit/deployment': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/persistance@0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa))(@proto-kit/sdk@0.1.1-develop.1689(h3x5uf37tqonajdw5tvi4whuiq))(@proto-kit/sequencer@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/module@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(bullmq@3.16.2)(o1js@2.11.0)(tsyringe@4.10.0) + specifier: ../../../framework/packages/deployment + version: link:../../../framework/packages/deployment '@proto-kit/indexer': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(oyksqg65r7bjkfurwhskjnd74m) + specifier: ../../../framework/packages/indexer + version: link:../../../framework/packages/indexer '@proto-kit/library': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) + specifier: ../../../framework/packages/library + version: link:../../../framework/packages/library '@proto-kit/module': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) + specifier: ../../../framework/packages/module + version: link:../../../framework/packages/module '@proto-kit/persistance': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) + specifier: ../../../framework/packages/persistance + version: link:../../../framework/packages/persistance '@proto-kit/processor': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(wn27otudfriepkohnubt5fl2fq) + specifier: ../../../framework/packages/processor + version: link:../../../framework/packages/processor '@proto-kit/protocol': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0) + specifier: ../../../framework/packages/protocol + version: link:../../../framework/packages/protocol '@proto-kit/sdk': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(h3x5uf37tqonajdw5tvi4whuiq) + specifier: ../../../framework/packages/sdk + version: link:../../../framework/packages/sdk '@proto-kit/sequencer': - specifier: 0.1.1-develop.1689 - version: 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/module@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) + specifier: ../../../framework/packages/sequencer + version: link:../../../framework/packages/sequencer graphql-fields: specifier: ^2.0.3 version: 2.0.3 graphql-scalars: specifier: ^1.22.4 version: 1.25.0(graphql@16.12.0) + mina-fungible-token: + specifier: ^1.1.0 + version: 1.1.0(o1js@framework+node_modules+o1js) + mina-lightweight-explorer: + specifier: github:o1-labs/mina-lightweight-explorer + version: https://codeload.github.com/o1-labs/mina-lightweight-explorer/tar.gz/b921393d5091035a913d446e38dfdeb29c06cc52 o1js: - specifier: 2.11.0 - version: 2.11.0 + specifier: ../../../framework/node_modules/o1js + version: link:../../../framework/node_modules/o1js reflect-metadata: specifier: ^0.1.13 version: 0.1.14 tsyringe: - specifier: ^4.10.0 - version: 4.10.0 + specifier: ../../../framework/node_modules/tsyringe + version: link:../../../framework/node_modules/tsyringe + type-graphql: + specifier: 2.0.0-rc.2 + version: 2.0.0-rc.2(class-validator@0.14.2)(graphql-scalars@1.25.0(graphql@16.12.0))(graphql@16.12.0) devDependencies: '@jest/globals': specifier: ^29.6.1 @@ -343,18 +352,6 @@ importers: packages: - '@0no-co/graphql.web@1.2.0': - resolution: {integrity: sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - peerDependenciesMeta: - graphql: - optional: true - - '@alcalzone/ansi-tokenize@0.1.3': - resolution: {integrity: sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw==} - engines: {node: '>=14.13.1'} - '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} @@ -544,25 +541,6 @@ packages: '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - '@envelop/core@5.4.0': - resolution: {integrity: sha512-/1fat63pySE8rw/dZZArEVytLD90JApY85deDJ0/34gm+yhQ3k70CloSUevxoOE4YCGveG3s9SJJfQeeB4NAtQ==} - engines: {node: '>=18.0.0'} - - '@envelop/extended-validation@4.1.0': - resolution: {integrity: sha512-S90LQanW+xg3Lkp2sNiHa2KJnXXpKLucKys05Wk5zpiV0vL0SDX+/cuV+tnDhShWJucunAGi34n8xFCXsUUOkA==} - engines: {node: '>=18.0.0'} - peerDependencies: - '@envelop/core': ^5.0.2 - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 - - '@envelop/instrumentation@1.0.0': - resolution: {integrity: sha512-cxgkB66RQB95H3X27jlnxCRNTmPuSTgmBAq6/4n2Dtv4hsk4yz8FadA1ggmd0uZzvKqWD6CR+WFgTjhDqg7eyw==} - engines: {node: '>=18.0.0'} - - '@envelop/types@5.2.1': - resolution: {integrity: sha512-CsFmA3u3c2QoLDTfEpGr4t25fjMU31nyvse7IzWTvb0ZycuPjMjb0fjlheh+PbhBYb9YLugnT2uY6Mwcg1o+Zg==} - engines: {node: '>=18.0.0'} - '@eslint-community/eslint-utils@4.9.0': resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -581,9 +559,6 @@ packages: resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@fastify/busboy@3.2.0': - resolution: {integrity: sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==} - '@floating-ui/core@1.7.3': resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} @@ -599,69 +574,6 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@graphql-tools/batch-delegate@9.0.41': - resolution: {integrity: sha512-ypPT32Ba4imLoXuDYbmCzU7E7i6y9TzJW/JYgt1CQZZy5BJUNnIQ2SE4AnttnyzSfGbYd3aMiVVSK9Ta3E3dKA==} - engines: {node: '>=18.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/batch-execute@9.0.19': - resolution: {integrity: sha512-VGamgY4PLzSx48IHPoblRw0oTaBa7S26RpZXt0Y4NN90ytoE0LutlpB2484RbkfcTjv9wa64QD474+YP1kEgGA==} - engines: {node: '>=18.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/delegate@10.2.23': - resolution: {integrity: sha512-xrPtl7f1LxS+B6o+W7ueuQh67CwRkfl+UKJncaslnqYdkxKmNBB4wnzVcW8ZsRdwbsla/v43PtwAvSlzxCzq2w==} - engines: {node: '>=18.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/executor@1.4.11': - resolution: {integrity: sha512-e6WwB5Cf9UAwRc32jRy98q87MlYWiq4q81A0FNeWPoccWHNaxj8G2Wqi/6YjxfU3T1Qne2W98Q6u0nhNc5uZuQ==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/merge@9.1.3': - resolution: {integrity: sha512-O53kiNwGU/moJxX8m4BKpf9xHxVhmThhrctZ1gqHkdC3fYmafzWdzyNGkBsZcoh9x0wKM1ORPPuaE6Bwp3OFBA==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/schema@10.0.27': - resolution: {integrity: sha512-Lb5mJG8eF3TPnW0TXS9qoqR40S5rrnS3DFaY9dGf+8y3petTF2nc1khcOaLlOsvyvfSWSMUgkB/U6LRofRjb6w==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/stitch@9.4.29': - resolution: {integrity: sha512-rx7GvUlDQLm7SdWURdtBhxOdjAlqtvbK8PiAFx5J+WmFAN3x9H4uP2B/Wwo3Oqj04f3yiEPRAdrOowdlgPEOlQ==} - engines: {node: '>=18.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/utils@10.10.1': - resolution: {integrity: sha512-9iOZ7x6tuIpp/dviNmTCSH1cDDNLIcrj6T3WKH9lU4nRWx5Pr0e7Faj7T/HmP2Njrjik63dJWuDVRxfQSTOc4g==} - engines: {node: '>=16.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-tools/wrap@10.1.4': - resolution: {integrity: sha512-7pyNKqXProRjlSdqOtrbnFRMQAVamCmEREilOXtZujxY6kYit3tvWWSjUrcIOheltTffoRh7EQSjpy2JDCzasg==} - engines: {node: '>=18.0.0'} - peerDependencies: - graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-typed-document-node/core@3.2.0': - resolution: {integrity: sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - - '@graphql-yoga/logger@2.0.1': - resolution: {integrity: sha512-Nv0BoDGLMg9QBKy9cIswQ3/6aKaKjlTh87x3GiBg2Z4RrjyrM48DvOOK0pJh1C1At+b0mUIM67cwZcFTDLN4sA==} - engines: {node: '>=18.0.0'} - '@graphql-yoga/subscription@5.0.5': resolution: {integrity: sha512-oCMWOqFs6QV96/NZRt/ZhTQvzjkGB4YohBOpKM4jH/lDT4qb7Lex/aGCxpi/JD9njw3zBBtMqxbaC22+tFHVvw==} engines: {node: '>=18.0.0'} @@ -670,15 +582,6 @@ packages: resolution: {integrity: sha512-ZpJxMqB+Qfe3rp6uszCQoag4nSw42icURnBRfFYSOmTgEeOe4rD0vYlbA8spvCu2TlCesNTlEN9BLWtQqLxabA==} engines: {node: '>=18.0.0'} - '@grpc/grpc-js@1.14.1': - resolution: {integrity: sha512-sPxgEWtPUR3EnRJCEtbGZG2iX8LQDUls2wUS3o27jg07KqJFMq6YDeWvMo1wfpmy3rqRdS0rivpLwhqQtEyCuQ==} - engines: {node: '>=12.10.0'} - - '@grpc/proto-loader@0.8.0': - resolution: {integrity: sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==} - engines: {node: '>=6'} - hasBin: true - '@hookform/resolvers@3.10.0': resolution: {integrity: sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==} peerDependencies: @@ -697,15 +600,6 @@ packages: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead - '@inkjs/ui@1.0.0': - resolution: {integrity: sha512-JAVX5ntXG3QokXsGelobIc1ORkTQiJU4XiemUoMUzVaZkBpwzOD7NkMm0qzKvysDyrE1nD6keFHRhwsRvhVamw==} - engines: {node: '>=14.16'} - peerDependencies: - ink: ^4.2.0 - - '@ioredis/commands@1.4.0': - resolution: {integrity: sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==} - '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -803,45 +697,12 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@js-sdsl/ordered-map@4.4.2': - resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} - '@microsoft/tsdoc-config@0.16.2': resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==} '@microsoft/tsdoc@0.14.2': resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==} - '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': - resolution: {integrity: sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==} - cpu: [arm64] - os: [darwin] - - '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': - resolution: {integrity: sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==} - cpu: [x64] - os: [darwin] - - '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': - resolution: {integrity: sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==} - cpu: [arm64] - os: [linux] - - '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': - resolution: {integrity: sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==} - cpu: [arm] - os: [linux] - - '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': - resolution: {integrity: sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==} - cpu: [x64] - os: [linux] - - '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': - resolution: {integrity: sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==} - cpu: [x64] - os: [win32] - '@napi-rs/wasm-runtime@0.2.12': resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} @@ -924,668 +785,199 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} - '@opentelemetry/api-logs@0.57.2': - resolution: {integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==} - engines: {node: '>=14'} - '@opentelemetry/api@1.9.0': resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} - '@opentelemetry/auto-instrumentations-node@0.56.1': - resolution: {integrity: sha512-4cK0+unfkXRRbQQg2r9K3ki8JlE0j9Iw8+4DZEkChShAnmviiE+/JMgHGvK+VVcLrSlgV6BBHv4+ZTLukQwhkA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.4.1 - - '@opentelemetry/context-async-hooks@1.30.1': - resolution: {integrity: sha512-s5vvxXPVdjqS3kTLKMeBMvop9hbWkwzBpu+mUO2M7sZtlkyDJGwFe33wRKnbaYDo8ExRVBIIdwIGrqpxHuKttA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/core@1.30.1': - resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - '@opentelemetry/exporter-logs-otlp-grpc@0.57.2': - resolution: {integrity: sha512-eovEy10n3umjKJl2Ey6TLzikPE+W4cUQ4gCwgGP1RqzTGtgDra0WjIqdy29ohiUKfvmbiL3MndZww58xfIvyFw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@pkgr/core@0.2.9': + resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@opentelemetry/exporter-logs-otlp-http@0.57.2': - resolution: {integrity: sha512-0rygmvLcehBRp56NQVLSleJ5ITTduq/QfU7obOkyWgPpFHulwpw2LYTqNIz5TczKZuy5YY+5D3SDnXZL1tXImg==} - engines: {node: '>=14'} + '@prisma/client@5.18.0': + resolution: {integrity: sha512-BWivkLh+af1kqC89zCJYkHsRcyWsM8/JHpsDMM76DjP3ZdEquJhXa4IeX+HkWPnwJ5FanxEJFZZDTWiDs/Kvyw==} + engines: {node: '>=16.13'} peerDependencies: - '@opentelemetry/api': ^1.3.0 + prisma: '*' + peerDependenciesMeta: + prisma: + optional: true - '@opentelemetry/exporter-logs-otlp-proto@0.57.2': - resolution: {integrity: sha512-ta0ithCin0F8lu9eOf4lEz9YAScecezCHkMMyDkvd9S7AnZNX5ikUmC5EQOQADU+oCcgo/qkQIaKcZvQ0TYKDw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@prisma/debug@5.22.0': + resolution: {integrity: sha512-AUt44v3YJeggO2ZU5BkXI7M4hu9BF2zzH2iF2V5pyXT/lRTyWiElZ7It+bRH1EshoMRxHgpYg4VB6rCM+mG5jQ==} - '@opentelemetry/exporter-metrics-otlp-grpc@0.57.2': - resolution: {integrity: sha512-r70B8yKR41F0EC443b5CGB4rUaOMm99I5N75QQt6sHKxYDzSEc6gm48Diz1CI1biwa5tDPznpylTrywO/pT7qw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': + resolution: {integrity: sha512-2PTmxFR2yHW/eB3uqWtcgRcgAbG1rwG9ZriSvQw+nnb7c4uCr3RAcGMb6/zfE88SKlC1Nj2ziUvc96Z379mHgQ==} - '@opentelemetry/exporter-metrics-otlp-http@0.57.2': - resolution: {integrity: sha512-ttb9+4iKw04IMubjm3t0EZsYRNWr3kg44uUuzfo9CaccYlOh8cDooe4QObDUkvx9d5qQUrbEckhrWKfJnKhemA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@prisma/engines@5.22.0': + resolution: {integrity: sha512-UNjfslWhAt06kVL3CjkuYpHAWSO6L4kDCVPegV6itt7nD1kSJavd3vhgAEhjglLJJKEdJ7oIqDJ+yHk6qO8gPA==} - '@opentelemetry/exporter-metrics-otlp-proto@0.57.2': - resolution: {integrity: sha512-HX068Q2eNs38uf7RIkNN9Hl4Ynl+3lP0++KELkXMCpsCbFO03+0XNNZ1SkwxPlP9jrhQahsMPMkzNXpq3fKsnw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@prisma/fetch-engine@5.22.0': + resolution: {integrity: sha512-bkrD/Mc2fSvkQBV5EpoFcZ87AvOgDxbG99488a5cexp5Ccny+UM6MAe/UFkUC0wLYD9+9befNOqGiIJhhq+HbA==} - '@opentelemetry/exporter-prometheus@0.57.2': - resolution: {integrity: sha512-VqIqXnuxWMWE/1NatAGtB1PvsQipwxDcdG4RwA/umdBcW3/iOHp0uejvFHTRN2O78ZPged87ErJajyUBPUhlDQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@prisma/generator-helper@5.22.0': + resolution: {integrity: sha512-LwqcBQ5/QsuAaLNQZAIVIAJDJBMjHwMwn16e06IYx/3Okj/xEEfw9IvrqB2cJCl3b2mCBlh3eVH0w9WGmi4aHg==} - '@opentelemetry/exporter-trace-otlp-grpc@0.57.2': - resolution: {integrity: sha512-gHU1vA3JnHbNxEXg5iysqCWxN9j83d7/epTYBZflqQnTyCC4N7yZXn/dMM+bEmyhQPGjhCkNZLx4vZuChH1PYw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@prisma/get-platform@5.22.0': + resolution: {integrity: sha512-pHhpQdr1UPFpt+zFfnPazhulaZYCUqeIcPpJViYoq9R+D/yw4fjE+CtnsnKzPYm0ddUbeXUzjGVGIRVgPDCk4Q==} - '@opentelemetry/exporter-trace-otlp-http@0.57.2': - resolution: {integrity: sha512-sB/gkSYFu+0w2dVQ0PWY9fAMl172PKMZ/JrHkkW8dmjCL0CYkmXeE+ssqIL/yBUTPOvpLIpenX5T9RwXRBW/3g==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@prisma/internals@5.22.0': + resolution: {integrity: sha512-Rsjw2ARB9VQzDczzEimUriSBdXmYG/Z5tNRer2IEwof/O8Q6A9cqV3oNVUpJ52TgWfQqMAq5K/KEf8LvvYLLOw==} - '@opentelemetry/exporter-trace-otlp-proto@0.57.2': - resolution: {integrity: sha512-awDdNRMIwDvUtoRYxRhja5QYH6+McBLtoz1q9BeEsskhZcrGmH/V1fWpGx8n+Rc+542e8pJA6y+aullbIzQmlw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@prisma/prisma-schema-wasm@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': + resolution: {integrity: sha512-WPNB7SgTxF/rSHMa5o5/9AIINy4oVnRhvUkRzqR4Nfp8Hu9Q2IyUptxuiDuzRVJdjJBRi/U82sHTxyiD3oBBhQ==} - '@opentelemetry/exporter-zipkin@1.30.1': - resolution: {integrity: sha512-6S2QIMJahIquvFaaxmcwpvQQRD/YFaMTNoIxrfPIPOeITN+a8lfEcPDxNxn8JDAaxkg+4EnXhz8upVDYenoQjA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 + '@prisma/schema-files-loader@5.22.0': + resolution: {integrity: sha512-/TNAJXvMSk6mCgZa+gIBM6sp5OUQBnb7rbjiSQm88gvcSibxEuKkVV/2pT3RmQpEAn1yiabvS4+dOvIotYe3ww==} - '@opentelemetry/instrumentation-amqplib@0.46.1': - resolution: {integrity: sha512-AyXVnlCf/xV3K/rNumzKxZqsULyITJH6OVLiW6730JPRqWA7Zc9bvYoVNpN6iOpTU8CasH34SU/ksVJmObFibQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@radix-ui/primitive@1.1.3': + resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} - '@opentelemetry/instrumentation-aws-lambda@0.50.3': - resolution: {integrity: sha512-kotm/mRvSWUauudxcylc5YCDei+G/r+jnOH6q5S99aPLQ/Ms8D2yonMIxEJUILIPlthEmwLYxkw3ualWzMjm/A==} - engines: {node: '>=14'} + '@radix-ui/react-arrow@1.1.7': + resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@opentelemetry/instrumentation-aws-sdk@0.49.1': - resolution: {integrity: sha512-Vbj4BYeV/1K4Pbbfk+gQ8gwYL0w+tBeUwG88cOxnF7CLPO1XnskGV8Q3Gzut2Ah/6Dg17dBtlzEqL3UiFP2Z6A==} - engines: {node: '>=14'} + '@radix-ui/react-collection@1.1.7': + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@opentelemetry/instrumentation-bunyan@0.45.1': - resolution: {integrity: sha512-T9POV9ccS41UjpsjLrJ4i0m8LfplBiN3dMeH9XZ2btiDrjoaWtDrst6tNb1avetBjkeshOuBp1EWKP22EVSr0g==} - engines: {node: '>=14'} + '@radix-ui/react-compose-refs@1.1.2': + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@opentelemetry/instrumentation-cassandra-driver@0.45.1': - resolution: {integrity: sha512-RqnP0rK2hcKK1AKcmYvedLiL6G5TvFGiSUt2vI9wN0cCBdTt9Y9+wxxY19KoGxq7e9T/aHow6P5SUhCVI1sHvQ==} - engines: {node: '>=14'} + '@radix-ui/react-context@1.1.2': + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@opentelemetry/instrumentation-connect@0.43.1': - resolution: {integrity: sha512-ht7YGWQuV5BopMcw5Q2hXn3I8eG8TH0J/kc/GMcW4CuNTgiP6wCu44BOnucJWL3CmFWaRHI//vWyAhaC8BwePw==} - engines: {node: '>=14'} + '@radix-ui/react-direction@1.1.1': + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@opentelemetry/instrumentation-cucumber@0.14.1': - resolution: {integrity: sha512-ybO+tmH85pDO0ywTskmrMtZcccKyQr7Eb7wHy1keR2HFfx46SzZbjHo1AuGAX//Hook3gjM7+w211gJ2bwKe1Q==} - engines: {node: '>=14'} + '@radix-ui/react-dismissable-layer@1.1.11': + resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} peerDependencies: - '@opentelemetry/api': ^1.0.0 + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@opentelemetry/instrumentation-dataloader@0.16.1': - resolution: {integrity: sha512-K/qU4CjnzOpNkkKO4DfCLSQshejRNAJtd4esgigo/50nxCB6XCyi1dhAblUHM9jG5dRm8eu0FB+t87nIo99LYQ==} - engines: {node: '>=14'} + '@radix-ui/react-id@1.1.1': + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@opentelemetry/instrumentation-dns@0.43.1': - resolution: {integrity: sha512-e/tMZYU1nc+k+J3259CQtqVZIPsPRSLNoAQbGEmSKrjLEY/KJSbpBZ17lu4dFVBzqoF1cZYIZxn9WPQxy4V9ng==} - engines: {node: '>=14'} + '@radix-ui/react-label@2.1.8': + resolution: {integrity: sha512-FmXs37I6hSBVDlO4y764TNz1rLgKwjJMQ0EGte6F3Cb3f4bIuHB/iLa/8I9VKkmOy+gNHq8rql3j686ACVV21A==} peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@opentelemetry/instrumentation-express@0.47.1': - resolution: {integrity: sha512-QNXPTWteDclR2B4pDFpz0TNghgB33UMjUt14B+BZPmtH1MwUFAfLHBaP5If0Z5NZC+jaH8oF2glgYjrmhZWmSw==} - engines: {node: '>=14'} + '@radix-ui/react-popper@1.2.8': + resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@opentelemetry/instrumentation-fastify@0.44.2': - resolution: {integrity: sha512-arSp97Y4D2NWogoXRb8CzFK3W2ooVdvqRRtQDljFt9uC3zI6OuShgey6CVFC0JxT1iGjkAr1r4PDz23mWrFULQ==} - engines: {node: '>=14'} + '@radix-ui/react-portal@1.1.9': + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@opentelemetry/instrumentation-fs@0.19.1': - resolution: {integrity: sha512-6g0FhB3B9UobAR60BGTcXg4IHZ6aaYJzp0Ki5FhnxyAPt8Ns+9SSvgcrnsN2eGmk3RWG5vYycUGOEApycQL24A==} - engines: {node: '>=14'} + '@radix-ui/react-presence@1.1.5': + resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} peerDependencies: - '@opentelemetry/api': ^1.3.0 + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@opentelemetry/instrumentation-generic-pool@0.43.1': - resolution: {integrity: sha512-M6qGYsp1cURtvVLGDrPPZemMFEbuMmCXgQYTReC/IbimV5sGrLBjB+/hANUpRZjX67nGLdKSVLZuQQAiNz+sww==} - engines: {node: '>=14'} + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-graphql@0.47.1': - resolution: {integrity: sha512-EGQRWMGqwiuVma8ZLAZnExQ7sBvbOx0N/AE/nlafISPs8S+QtXX+Viy6dcQwVWwYHQPAcuY3bFt3xgoAwb4ZNQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-grpc@0.57.2': - resolution: {integrity: sha512-TR6YQA67cLSZzdxbf2SrbADJy2Y8eBW1+9mF15P0VK2MYcpdoUSmQTF1oMkBwa3B9NwqDFA2fq7wYTTutFQqaQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-hapi@0.45.2': - resolution: {integrity: sha512-7Ehow/7Wp3aoyCrZwQpU7a2CnoMq0XhIcioFuKjBb0PLYfBfmTsFTUyatlHu0fRxhwcRsSQRTvEhmZu8CppBpQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-http@0.57.2': - resolution: {integrity: sha512-1Uz5iJ9ZAlFOiPuwYg29Bf7bJJc/GeoeJIFKJYQf67nTVKFe8RHbEtxgkOmK4UGZNHKXcpW4P8cWBYzBn1USpg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-ioredis@0.47.1': - resolution: {integrity: sha512-OtFGSN+kgk/aoKgdkKQnBsQFDiG8WdCxu+UrHr0bXScdAmtSzLSraLo7wFIb25RVHfRWvzI5kZomqJYEg/l1iA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-kafkajs@0.7.1': - resolution: {integrity: sha512-OtjaKs8H7oysfErajdYr1yuWSjMAectT7Dwr+axIoZqT9lmEOkD/H/3rgAs8h/NIuEi2imSXD+vL4MZtOuJfqQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-knex@0.44.1': - resolution: {integrity: sha512-U4dQxkNhvPexffjEmGwCq68FuftFK15JgUF05y/HlK3M6W/G2iEaACIfXdSnwVNe9Qh0sPfw8LbOPxrWzGWGMQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-koa@0.47.1': - resolution: {integrity: sha512-l/c+Z9F86cOiPJUllUCt09v+kICKvT+Vg1vOAJHtHPsJIzurGayucfCMq2acd/A/yxeNWunl9d9eqZ0G+XiI6A==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-lru-memoizer@0.44.1': - resolution: {integrity: sha512-5MPkYCvG2yw7WONEjYj5lr5JFehTobW7wX+ZUFy81oF2lr9IPfZk9qO+FTaM0bGEiymwfLwKe6jE15nHn1nmHg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-memcached@0.43.1': - resolution: {integrity: sha512-rK5YWC22gmsLp2aEbaPk5F+9r6BFFZuc9GTnW/ErrWpz2XNHUgeFInoPDg4t+Trs8OttIfn8XwkfFkSKqhxanw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mongodb@0.52.0': - resolution: {integrity: sha512-1xmAqOtRUQGR7QfJFfGV/M2kC7wmI2WgZdpru8hJl3S0r4hW0n3OQpEHlSGXJAaNFyvT+ilnwkT+g5L4ljHR6g==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mongoose@0.46.1': - resolution: {integrity: sha512-3kINtW1LUTPkiXFRSSBmva1SXzS/72we/jL22N+BnF3DFcoewkdkHPYOIdAAk9gSicJ4d5Ojtt1/HeibEc5OQg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mysql2@0.45.2': - resolution: {integrity: sha512-h6Ad60FjCYdJZ5DTz1Lk2VmQsShiViKe0G7sYikb0GHI0NVvApp2XQNRHNjEMz87roFttGPLHOYVPlfy+yVIhQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-mysql@0.45.1': - resolution: {integrity: sha512-TKp4hQ8iKQsY7vnp/j0yJJ4ZsP109Ht6l4RHTj0lNEG1TfgTrIH5vJMbgmoYXWzNHAqBH2e7fncN12p3BP8LFg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-nestjs-core@0.44.1': - resolution: {integrity: sha512-4TXaqJK27QXoMqrt4+hcQ6rKFd8B6V4JfrTJKnqBmWR1cbaqd/uwyl9yxhNH1JEkyo8GaBfdpBC4ZE4FuUhPmg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-net@0.43.1': - resolution: {integrity: sha512-TaMqP6tVx9/SxlY81dHlSyP5bWJIKq+K7vKfk4naB/LX4LBePPY3++1s0edpzH+RfwN+tEGVW9zTb9ci0up/lQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-pg@0.51.1': - resolution: {integrity: sha512-QxgjSrxyWZc7Vk+qGSfsejPVFL1AgAJdSBMYZdDUbwg730D09ub3PXScB9d04vIqPriZ+0dqzjmQx0yWKiCi2Q==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-pino@0.46.1': - resolution: {integrity: sha512-HB8gD/9CNAKlTV+mdZehnFC4tLUtQ7e+729oGq88e4WipxzZxmMYuRwZ2vzOA9/APtq+MRkERJ9PcoDqSIjZ+g==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-redis-4@0.46.1': - resolution: {integrity: sha512-UMqleEoabYMsWoTkqyt9WAzXwZ4BlFZHO40wr3d5ZvtjKCHlD4YXLm+6OLCeIi/HkX7EXvQaz8gtAwkwwSEvcQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-redis@0.46.1': - resolution: {integrity: sha512-AN7OvlGlXmlvsgbLHs6dS1bggp6Fcki+GxgYZdSrb/DB692TyfjR7sVILaCe0crnP66aJuXsg9cge3hptHs9UA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-restify@0.45.1': - resolution: {integrity: sha512-Zd6Go9iEa+0zcoA2vDka9r/plYKaT3BhD3ESIy4JNIzFWXeQBGbH3zZxQIsz0jbNTMEtonlymU7eTLeaGWiApA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-router@0.44.1': - resolution: {integrity: sha512-l4T/S7ByjpY5TCUPeDe1GPns02/5BpR0jroSMexyH3ZnXJt9PtYqx1IKAlOjaFEGEOQF2tGDsMi4PY5l+fSniQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-runtime-node@0.12.2': - resolution: {integrity: sha512-HNBW1rJiHDBTHQlh5oH1IAcV8O5VR7/L5BBOfGAMpGno3Jq9cNqTh96uUp0qBXBuxD8Yl1eoI5N+B5TdmjLteQ==} - engines: {node: '>=17.4.0'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-socket.io@0.46.1': - resolution: {integrity: sha512-9AsCVUAHOqvfe2RM/2I0DsDnx2ihw1d5jIN4+Bly1YPFTJIbk4+bXjAkr9+X6PUfhiV5urQHZkiYYPU1Q4yzPA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-tedious@0.18.1': - resolution: {integrity: sha512-5Cuy/nj0HBaH+ZJ4leuD7RjgvA844aY2WW+B5uLcWtxGjRZl3MNLuxnNg5DYWZNPO+NafSSnra0q49KWAHsKBg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation-undici@0.10.1': - resolution: {integrity: sha512-rkOGikPEyRpMCmNu9AQuV5dtRlDmJp2dK5sw8roVshAGoB6hH/3QjDtRhdwd75SsJwgynWUNRUYe0wAkTo16tQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.7.0 - - '@opentelemetry/instrumentation-winston@0.44.1': - resolution: {integrity: sha512-iexblTsT3fP0hHUz/M1mWr+Ylg3bsYN2En/jvKXZtboW3Qkvt17HrQJYTF9leVIkXAfN97QxAcTE99YGbQW7vQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/instrumentation@0.57.2': - resolution: {integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/otlp-exporter-base@0.57.2': - resolution: {integrity: sha512-XdxEzL23Urhidyebg5E6jZoaiW5ygP/mRjxLHixogbqwDy2Faduzb5N0o/Oi+XTIJu+iyxXdVORjXax+Qgfxag==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/otlp-grpc-exporter-base@0.57.2': - resolution: {integrity: sha512-USn173KTWy0saqqRB5yU9xUZ2xdgb1Rdu5IosJnm9aV4hMTuFFRTUsQxbgc24QxpCHeoKzzCSnS/JzdV0oM2iQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/otlp-transformer@0.57.2': - resolution: {integrity: sha512-48IIRj49gbQVK52jYsw70+Jv+JbahT8BqT2Th7C4H7RCM9d0gZ5sgNPoMpWldmfjvIsSgiGJtjfk9MeZvjhoig==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.3.0 - - '@opentelemetry/propagation-utils@0.30.16': - resolution: {integrity: sha512-ZVQ3Z/PQ+2GQlrBfbMMMT0U7MzvYZLCPP800+ooyaBqm4hMvuQHfP028gB9/db0mwkmyEAMad9houukUVxhwcw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/propagator-b3@1.30.1': - resolution: {integrity: sha512-oATwWWDIJzybAZ4pO76ATN5N6FFbOA1otibAVlS8v90B4S1wClnhRUk7K+2CHAwN1JKYuj4jh/lpCEG5BAqFuQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/propagator-jaeger@1.30.1': - resolution: {integrity: sha512-Pj/BfnYEKIOImirH76M4hDaBSx6HyZ2CXUqk+Kj02m6BB80c/yo4BdWkn/1gDFfU+YPY+bPR2U0DKBfdxCKwmg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/redis-common@0.36.2': - resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==} - engines: {node: '>=14'} - - '@opentelemetry/resource-detector-alibaba-cloud@0.30.1': - resolution: {integrity: sha512-9l0FVP3F4+Z6ax27vMzkmhZdNtxAbDqEfy7rduzya3xFLaRiJSvOpw6cru6Edl5LwO+WvgNui+VzHa9ViE8wCg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/resource-detector-aws@1.12.0': - resolution: {integrity: sha512-Cvi7ckOqiiuWlHBdA1IjS0ufr3sltex2Uws2RK6loVp4gzIJyOijsddAI6IZ5kiO8h/LgCWe8gxPmwkTKImd+Q==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/resource-detector-azure@0.6.1': - resolution: {integrity: sha512-Djr31QCExVfWViaf9cGJnH+bUInD72p0GEfgDGgjCAztyvyji6WJvKjs6qmkpPN+Ig6KLk0ho2VgzT5Kdl4L2Q==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/resource-detector-container@0.6.1': - resolution: {integrity: sha512-o4sLzx149DQXDmVa8pgjBDEEKOj9SuQnkSLbjUVOpQNnn10v0WNR6wLwh30mFsK26xOJ6SpqZBGKZiT7i5MjlA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/resource-detector-gcp@0.33.1': - resolution: {integrity: sha512-/aZJXI1rU6Eus04ih2vU0hxXAibXXMzH1WlDZ8bXcTJmhwmTY8cP392+6l7cWeMnTQOibBUz8UKV3nhcCBAefw==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.0.0 - - '@opentelemetry/resources@1.30.1': - resolution: {integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/sdk-logs@0.57.2': - resolution: {integrity: sha512-TXFHJ5c+BKggWbdEQ/inpgIzEmS2BGQowLE9UhsMd7YYlUfBQJ4uax0VF/B5NYigdM/75OoJGhAV3upEhK+3gg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.4.0 <1.10.0' - - '@opentelemetry/sdk-metrics@1.30.1': - resolution: {integrity: sha512-q9zcZ0Okl8jRgmy7eNW3Ku1XSgg3sDLa5evHZpCwjspw7E8Is4K/haRPDJrBcX3YSn/Y7gUvFnByNYEKQNbNog==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/sdk-node@0.57.2': - resolution: {integrity: sha512-8BaeqZyN5sTuPBtAoY+UtKwXBdqyuRKmekN5bFzAO40CgbGzAxfTpiL3PBerT7rhZ7p2nBdq7FaMv/tBQgHE4A==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.3.0 <1.10.0' - - '@opentelemetry/sdk-trace-base@1.30.1': - resolution: {integrity: sha512-jVPgBbH1gCy2Lb7X0AVQ8XAfgg0pJ4nvl8/IiQA6nxOsPvS+0zMJaFSs2ltXe0J6C8dqjcnpyqINDJmU30+uOg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/sdk-trace-node@1.30.1': - resolution: {integrity: sha512-cBjYOINt1JxXdpw1e5MlHmFRc5fgj4GW/86vsKFxJCJ8AL4PdVtYH41gWwl4qd4uQjqEL1oJVrXkSy5cnduAnQ==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.10.0' - - '@opentelemetry/semantic-conventions@1.28.0': - resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} - engines: {node: '>=14'} - - '@opentelemetry/semantic-conventions@1.38.0': - resolution: {integrity: sha512-kocjix+/sSggfJhwXqClZ3i9Y/MI0fp7b+g7kCRm6psy2dsf8uApTRclwG18h8Avm7C9+fnt+O36PspJ/OzoWg==} - engines: {node: '>=14'} - - '@opentelemetry/sql-common@0.40.1': - resolution: {integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==} - engines: {node: '>=14'} - peerDependencies: - '@opentelemetry/api': ^1.1.0 - - '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - - '@pkgr/core@0.2.9': - resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - - '@prisma/client@5.18.0': - resolution: {integrity: sha512-BWivkLh+af1kqC89zCJYkHsRcyWsM8/JHpsDMM76DjP3ZdEquJhXa4IeX+HkWPnwJ5FanxEJFZZDTWiDs/Kvyw==} - engines: {node: '>=16.13'} - peerDependencies: - prisma: '*' + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - prisma: + '@types/react': optional: true - - '@prisma/client@5.22.0': - resolution: {integrity: sha512-M0SVXfyHnQREBKxCgyo7sffrKttwE6R8PMq330MIUF0pTwjUhLbW84pFDlf06B27XyCR++VtjugEnIHdr07SVA==} - engines: {node: '>=16.13'} - peerDependencies: - prisma: '*' - peerDependenciesMeta: - prisma: + '@types/react-dom': optional: true - '@prisma/debug@5.22.0': - resolution: {integrity: sha512-AUt44v3YJeggO2ZU5BkXI7M4hu9BF2zzH2iF2V5pyXT/lRTyWiElZ7It+bRH1EshoMRxHgpYg4VB6rCM+mG5jQ==} - - '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': - resolution: {integrity: sha512-2PTmxFR2yHW/eB3uqWtcgRcgAbG1rwG9ZriSvQw+nnb7c4uCr3RAcGMb6/zfE88SKlC1Nj2ziUvc96Z379mHgQ==} - - '@prisma/engines@5.22.0': - resolution: {integrity: sha512-UNjfslWhAt06kVL3CjkuYpHAWSO6L4kDCVPegV6itt7nD1kSJavd3vhgAEhjglLJJKEdJ7oIqDJ+yHk6qO8gPA==} - - '@prisma/fetch-engine@5.22.0': - resolution: {integrity: sha512-bkrD/Mc2fSvkQBV5EpoFcZ87AvOgDxbG99488a5cexp5Ccny+UM6MAe/UFkUC0wLYD9+9befNOqGiIJhhq+HbA==} - - '@prisma/generator-helper@5.22.0': - resolution: {integrity: sha512-LwqcBQ5/QsuAaLNQZAIVIAJDJBMjHwMwn16e06IYx/3Okj/xEEfw9IvrqB2cJCl3b2mCBlh3eVH0w9WGmi4aHg==} - - '@prisma/get-platform@5.22.0': - resolution: {integrity: sha512-pHhpQdr1UPFpt+zFfnPazhulaZYCUqeIcPpJViYoq9R+D/yw4fjE+CtnsnKzPYm0ddUbeXUzjGVGIRVgPDCk4Q==} - - '@prisma/internals@5.22.0': - resolution: {integrity: sha512-Rsjw2ARB9VQzDczzEimUriSBdXmYG/Z5tNRer2IEwof/O8Q6A9cqV3oNVUpJ52TgWfQqMAq5K/KEf8LvvYLLOw==} - - '@prisma/prisma-schema-wasm@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': - resolution: {integrity: sha512-WPNB7SgTxF/rSHMa5o5/9AIINy4oVnRhvUkRzqR4Nfp8Hu9Q2IyUptxuiDuzRVJdjJBRi/U82sHTxyiD3oBBhQ==} - - '@prisma/schema-files-loader@5.22.0': - resolution: {integrity: sha512-/TNAJXvMSk6mCgZa+gIBM6sp5OUQBnb7rbjiSQm88gvcSibxEuKkVV/2pT3RmQpEAn1yiabvS4+dOvIotYe3ww==} - - '@proto-kit/api@0.1.1-develop.1689': - resolution: {integrity: sha512-X9Ttihqc3SjnOnz9M/BUuOv4LEnU269oEbhV4UnafRDnIz01gHxOznzaliwRMqUKenziwBt0gfjnXYFQboAUZQ==} - peerDependencies: - '@proto-kit/common': '*' - '@proto-kit/module': '*' - '@proto-kit/protocol': '*' - '@proto-kit/sequencer': '*' - o1js: ^2.10.0 - tsyringe: ^4.10.0 - - '@proto-kit/common@0.1.1-develop.1689': - resolution: {integrity: sha512-dJwHiVJizuPcpTHIYJFujnw+o0ILTCijNWUFsyZB6gFCgOcPBss3oomrNFHtWoKe5SrVySLFvTvQnVBBnhvQlw==} - peerDependencies: - o1js: ^2.10.0 - tsyringe: ^4.10.0 - - '@proto-kit/deployment@0.1.1-develop.1689': - resolution: {integrity: sha512-02ZZjTU316VALoFlfJF907p7ILBKTkXGEprjIF8B5hTlN57mQFA8O6sD9T8HvZ0zXEMUOYd4/jJXUcx4E/Pn+Q==} - peerDependencies: - '@proto-kit/common': '*' - '@proto-kit/persistance': '*' - '@proto-kit/sdk': '*' - '@proto-kit/sequencer': '*' - bullmq: ^3.15.8 - o1js: ^2.10.0 - tsyringe: ^4.10.0 - - '@proto-kit/indexer@0.1.1-develop.1689': - resolution: {integrity: sha512-cVhNqhj+r8/5M19ZdBRatn6ClAh1IIreRLHNSGM8B9KQ7XGzeEHmew9tv986mZqIpFcJVBB/NVp/3VRDF/MTHQ==} - peerDependencies: - '@proto-kit/api': '*' - '@proto-kit/common': '*' - '@proto-kit/library': '*' - '@proto-kit/module': '*' - '@proto-kit/persistance': '*' - '@proto-kit/protocol': '*' - '@proto-kit/sdk': '*' - '@proto-kit/sequencer': '*' - koa: ^2.14.2 - o1js: ^2.10.0 - tsyringe: ^4.10.0 - type-graphql: 2.0.0-rc.2 - typegraphql-prisma: '0.28' - - '@proto-kit/library@0.1.1-develop.1689': - resolution: {integrity: sha512-RPfwBe4cE8XpMSZlzttuREksIPIOymSaH/vrtDDS1d1pyQMFy/F0V9Y/1Mgb2VsKzeUoWhuJATWERkpRcA6n4A==} - peerDependencies: - '@proto-kit/common': '*' - '@proto-kit/module': '*' - '@proto-kit/protocol': '*' - '@proto-kit/sequencer': '*' - o1js: ^2.10.0 - tsyringe: ^4.10.0 - - '@proto-kit/module@0.1.1-develop.1689': - resolution: {integrity: sha512-5mPJAGIQlkHqhw/J+Pvo+LwgrV2VnhHqNDD6GtGEPmjtNy5H5Jcwy90Dvbe20p88eJlLS/LjuWBcdkfyuog8lw==} - peerDependencies: - '@proto-kit/common': '*' - '@proto-kit/protocol': '*' - o1js: ^2.10.0 - tsyringe: ^4.10.0 - - '@proto-kit/persistance@0.1.1-develop.1689': - resolution: {integrity: sha512-34EJM0OHdKqxoxkaO7HYPMFznzt6lI8IOeT9o9Ai5CED3ql5vgGClyuK08y2ktVTCC48N2JPC5uIzYFEqKaeSQ==} - peerDependencies: - '@proto-kit/common': '*' - '@proto-kit/module': '*' - '@proto-kit/protocol': '*' - '@proto-kit/sequencer': '*' - o1js: ^2.10.0 - tsyringe: ^4.10.0 - - '@proto-kit/processor@0.1.1-develop.1689': - resolution: {integrity: sha512-zX9uFP3JfHSFPmew4lP/gyks8reftAamUCy9LQ5pVo5VmYt305BFG28aAn1Brlf/4pVPFV4yg3nYm8m8P4Gq8Q==} - peerDependencies: - '@proto-kit/api': '*' - '@proto-kit/common': '*' - '@proto-kit/library': '*' - '@proto-kit/module': '*' - '@proto-kit/persistance': '*' - '@proto-kit/protocol': '*' - '@proto-kit/sdk': '*' - '@proto-kit/sequencer': '*' - o1js: ^2.10.0 - tsyringe: ^4.10.0 - type-graphql: 2.0.0-rc.2 - typegraphql-prisma: ^0.28 - - '@proto-kit/protocol@0.1.1-develop.1689': - resolution: {integrity: sha512-CbsdCHd+XcIDbAWQjUueiAeVM1/in60QfWvGyIR8agS8Qo6ULInqFP4mya+q+DjhuKTnYoQUq1Mlbp2WcSC0KQ==} - peerDependencies: - '@proto-kit/common': '*' - o1js: ^2.10.0 - ts-pattern: ^4.3.0 - tsyringe: ^4.10.0 - - '@proto-kit/sdk@0.1.1-develop.1689': - resolution: {integrity: sha512-ia/UfXvnQ6STgClPbdUhuERb8T7Ydh5ZXe4G7N1a06NPjBd1oimpcazEAwg3KX7ieyEYKztzIwf8cdNHyEX1Hg==} - peerDependencies: - '@proto-kit/common': '*' - '@proto-kit/library': '*' - '@proto-kit/module': '*' - '@proto-kit/protocol': '*' - '@proto-kit/sequencer': '*' - o1js: ^2.10.0 - tsyringe: ^4.10.0 - - '@proto-kit/sequencer@0.1.1-develop.1689': - resolution: {integrity: sha512-tuL/ALlN6jnWazX9qdiXi1h66c5YQT60O1eAneYCIa9DHA8iZb7gA6zzDlg/26l2XdcrCufIYyCXFAgusXJpjg==} - peerDependencies: - '@proto-kit/common': '*' - '@proto-kit/module': '*' - '@proto-kit/protocol': '*' - o1js: ^2.10.0 - tsyringe: ^4.10.0 - - '@protobufjs/aspromise@1.1.2': - resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} - - '@protobufjs/base64@1.1.2': - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} - - '@protobufjs/codegen@2.0.4': - resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} - - '@protobufjs/eventemitter@1.1.0': - resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} - - '@protobufjs/fetch@1.1.0': - resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} - - '@protobufjs/float@1.0.2': - resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} - - '@protobufjs/inquire@1.1.0': - resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} - - '@protobufjs/path@1.1.2': - resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} - - '@protobufjs/pool@1.1.0': - resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} - - '@protobufjs/utf8@1.1.0': - resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - - '@radix-ui/primitive@1.1.3': - resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} - - '@radix-ui/react-arrow@1.1.7': - resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} + '@radix-ui/react-primitive@2.1.4': + resolution: {integrity: sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1597,8 +989,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-collection@1.1.7': - resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} + '@radix-ui/react-roving-focus@1.1.11': + resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1610,17 +1002,21 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-compose-refs@1.1.2': - resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + '@radix-ui/react-separator@1.1.8': + resolution: {integrity: sha512-sDvqVY4itsKwwSMEe0jtKgfTh+72Sy3gPmQpjqcQneqQ4PFmr/1I0YA+2/puilhggCe2gJcx5EBAYFkWkdpa5g==} peerDependencies: '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true + '@types/react-dom': + optional: true - '@radix-ui/react-context@1.1.2': - resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1628,8 +1024,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-direction@1.1.1': - resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + '@radix-ui/react-slot@1.2.4': + resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1637,152 +1033,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dismissable-layer@1.1.11': - resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-id@1.1.1': - resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-label@2.1.8': - resolution: {integrity: sha512-FmXs37I6hSBVDlO4y764TNz1rLgKwjJMQ0EGte6F3Cb3f4bIuHB/iLa/8I9VKkmOy+gNHq8rql3j686ACVV21A==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-popper@1.2.8': - resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-portal@1.1.9': - resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-presence@1.1.5': - resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-primitive@2.1.3': - resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-primitive@2.1.4': - resolution: {integrity: sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-roving-focus@1.1.11': - resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-separator@1.1.8': - resolution: {integrity: sha512-sDvqVY4itsKwwSMEe0jtKgfTh+72Sy3gPmQpjqcQneqQ4PFmr/1I0YA+2/puilhggCe2gJcx5EBAYFkWkdpa5g==} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - - '@radix-ui/react-slot@1.2.3': - resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-slot@1.2.4': - resolution: {integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==} - peerDependencies: - '@types/react': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - - '@radix-ui/react-tabs@1.1.13': - resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} + '@radix-ui/react-tabs@1.1.13': + resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1899,35 +1151,6 @@ packages: '@radix-ui/rect@1.1.1': resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} - '@redis/bloom@1.2.0': - resolution: {integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==} - peerDependencies: - '@redis/client': ^1.0.0 - - '@redis/client@1.6.1': - resolution: {integrity: sha512-/KCsg3xSlR+nCK8/8ZYSknYxvXHwubJrU82F3Lm1Fp6789VQ0/3RJKfsmRXjqfaTA++23CvC3hqmqe/2GEt6Kw==} - engines: {node: '>=14'} - - '@redis/graph@1.1.1': - resolution: {integrity: sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==} - peerDependencies: - '@redis/client': ^1.0.0 - - '@redis/json@1.0.7': - resolution: {integrity: sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==} - peerDependencies: - '@redis/client': ^1.0.0 - - '@redis/search@1.2.0': - resolution: {integrity: sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==} - peerDependencies: - '@redis/client': ^1.0.0 - - '@redis/time-series@1.1.0': - resolution: {integrity: sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==} - peerDependencies: - '@redis/client': ^1.0.0 - '@repeaterjs/repeater@3.0.6': resolution: {integrity: sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==} @@ -1972,9 +1195,6 @@ packages: '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} - '@types/aws-lambda@8.10.147': - resolution: {integrity: sha512-nD0Z9fNIZcxYX5Mai2CTmFD7wX7UldCkW2ezCF8D1T5hdiLsnTWDGRpfRYntU6VjTdLQjOvyszru7I1c1oCQew==} - '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} @@ -1987,33 +1207,12 @@ packages: '@types/babel__traverse@7.28.0': resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} - '@types/body-parser@1.19.6': - resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} - - '@types/bunyan@1.8.11': - resolution: {integrity: sha512-758fRH7umIMk5qt5ELmRMff4mLDlN+xyYzC+dkPTdKwbSkJFvz6xwyScrytPU0QIBbRRwbiE8/BIg8bpajerNQ==} - - '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} - - '@types/express-serve-static-core@5.1.0': - resolution: {integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==} - - '@types/express@5.0.5': - resolution: {integrity: sha512-LuIQOcb6UmnF7C1PCFmEU1u2hmiHL43fgFQX67sN3H4Z+0Yk0Neo++mFsBjhOAuLzvlQeqAAkeDOZrJs9rzumQ==} - '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} '@types/graphql-fields@1.3.9': resolution: {integrity: sha512-HynTnp1HrE58uYcFcAK5UOfdrHSOIHDLCjvMU4yCmQLMj21uo7ZiZqnDGrD27pgCgHH5a1e8GYNK98Ndmma7ig==} - '@types/http-errors@2.0.5': - resolution: {integrity: sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==} - - '@types/humanize-duration@3.27.4': - resolution: {integrity: sha512-yaf7kan2Sq0goxpbcwTQ+8E9RP6HutFBPv74T/IA/ojcHKhuKVlk2YFYyHhWZeLvZPzzLE3aatuQB4h0iqyyUA==} - '@types/istanbul-lib-coverage@2.0.6': resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} @@ -2032,36 +1231,15 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/memcached@2.2.10': - resolution: {integrity: sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==} - - '@types/mime@1.3.5': - resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - - '@types/mysql@2.15.26': - resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==} - '@types/node@20.19.24': resolution: {integrity: sha512-FE5u0ezmi6y9OZEzlJfg37mqqf6ZDSF2V/NLjUyGrR9uTZ7Sb9F7bLNZ03S4XVUNRWGA7Ck4c1kK+YnuWjl+DA==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/pg-pool@2.0.6': - resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} - - '@types/pg@8.6.1': - resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==} - '@types/prop-types@15.7.15': resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} - '@types/qs@6.14.0': - resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} - - '@types/range-parser@1.2.7': - resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} - '@types/react-dom@18.3.7': resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} peerDependencies: @@ -2073,24 +1251,9 @@ packages: '@types/semver@7.7.1': resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} - '@types/send@0.17.6': - resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} - - '@types/send@1.2.1': - resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} - - '@types/serve-static@1.15.10': - resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} - - '@types/shimmer@1.2.0': - resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} - '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} - '@types/tedious@4.0.14': - resolution: {integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==} - '@types/validator@13.15.4': resolution: {integrity: sha512-LSFfpSnJJY9wbC0LQxgvfb+ynbHftFo0tMsFOl/J4wexLnYMmDSPaj2ZyDv3TkfL1UePxPrxOWJfbiRS8mQv7A==} @@ -2290,9 +1453,6 @@ packages: cpu: [x64] os: [win32] - '@urql/core@4.3.0': - resolution: {integrity: sha512-wT+FeL8DG4x5o6RfHEnONNFVDM3616ouzATMYUClB6CB+iIu2mwfBKd7xSUxYOZmwtxna5/hDRQdMl3nbQZlnw==} - '@vercel/style-guide@5.2.0': resolution: {integrity: sha512-fNSKEaZvSkiBoF6XEefs8CcgAV9K9e+MbcsDZjUsktHycKdA0jvjAzQi1W/FzLS+Nr5zZ6oejCwq/97dHUKe0g==} engines: {node: '>=16'} @@ -2311,39 +1471,10 @@ packages: typescript: optional: true - '@whatwg-node/disposablestack@0.0.6': - resolution: {integrity: sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==} - engines: {node: '>=18.0.0'} - '@whatwg-node/events@0.1.2': resolution: {integrity: sha512-ApcWxkrs1WmEMS2CaLLFUEem/49erT3sxIVjpzU5f6zmVcnijtDSrhoK2zVobOIikZJdH63jdAXOrvjf6eOUNQ==} engines: {node: '>=18.0.0'} - '@whatwg-node/fetch@0.10.13': - resolution: {integrity: sha512-b4PhJ+zYj4357zwk4TTuF2nEe0vVtOrwdsrNo5hL+u1ojXNhh1FgJ6pg1jzDlwlT4oBdzfSwaBwMCtFCsIWg8Q==} - engines: {node: '>=18.0.0'} - - '@whatwg-node/node-fetch@0.8.4': - resolution: {integrity: sha512-AlKLc57loGoyYlrzDbejB9EeR+pfdJdGzbYnkEuZaGekFboBwzfVYVMsy88PMriqPI1ORpiGYGgSSWpx7a2sDA==} - engines: {node: '>=18.0.0'} - - '@whatwg-node/promise-helpers@1.3.2': - resolution: {integrity: sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==} - engines: {node: '>=16.0.0'} - - '@whatwg-node/server@0.10.17': - resolution: {integrity: sha512-QxI+HQfJeI/UscFNCTcSri6nrHP25mtyAMbhEri7W2ctdb3EsorPuJz7IovSgNjvKVs73dg9Fmayewx1O2xOxA==} - engines: {node: '>=18.0.0'} - - accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} - - acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} - peerDependencies: - acorn: ^8 - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -2358,10 +1489,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} - ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -2369,10 +1496,6 @@ packages: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} - ansi-escapes@6.2.1: - resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} - engines: {node: '>=14.16'} - ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -2420,9 +1543,6 @@ packages: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} - array-flatten@1.1.1: - resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} - array-includes@3.1.9: resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} engines: {node: '>= 0.4'} @@ -2455,10 +1575,6 @@ packages: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} - ascii-table3@0.9.0: - resolution: {integrity: sha512-/JcvVCQRTVQHwLI8TCxSeOS9AcCV01MbCJC4plSP5ulygJH+D30lz85nvMcER5k+qoX2fJ1C/i13Zo1/eoMGTw==} - engines: {node: '>=11.14.0'} - asn1.js@4.10.1: resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} @@ -2472,10 +1588,6 @@ packages: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} - auto-bind@5.0.1: - resolution: {integrity: sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - autoprefixer@10.4.22: resolution: {integrity: sha512-ARe0v/t9gO28Bznv6GgqARmVqcWOV3mfgUPn9becPHMiD3o9BwlRgaeccZnwTpZ7Zwqrm+c1sUSsMxIzQzc8Xg==} engines: {node: ^10 || ^12 || >=14} @@ -2530,29 +1642,16 @@ packages: resolution: {integrity: sha512-2NovHVesVF5TXefsGX1yzx1xgr7+m9JQenvz6FQY3qd+YXkKkYiv+vTCc7OriP9mcDZpTC5mAOYN4ocd29+erA==} hasBin: true - bigint-isqrt@0.3.2: - resolution: {integrity: sha512-hfd7Ka2XKmBIAQWWDrDHTCkGsSfZMFjgcB3eCnDtZHsDiszSk+CQvnq16nGYIKuDMBvnSAvjnihoumJDpMnv7A==} - - bignumber.js@9.3.1: - resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} - binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - blakejs@1.2.1: - resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==} - bn.js@4.12.2: resolution: {integrity: sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==} bn.js@5.2.2: resolution: {integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==} - body-parser@1.20.3: - resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} @@ -2608,25 +1707,10 @@ packages: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} - bullmq@3.16.2: - resolution: {integrity: sha512-wZIsCdI2H6lza6GdePquCWbrslhYHS7GnDPpP0hzoHkvKiBOt/5jHcsHcHhJi/fob+dfo8dazWKTSLlGLFFqUw==} - busboy@1.6.0: resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} engines: {node: '>=10.16.0'} - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - - cache-content-type@1.0.1: - resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==} - engines: {node: '>= 6.0.0'} - - cachedir@2.4.0: - resolution: {integrity: sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==} - engines: {node: '>=6'} - call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -2666,10 +1750,6 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.6.2: - resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - char-regex@1.0.2: resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} engines: {node: '>=10'} @@ -2699,22 +1779,6 @@ packages: resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} engines: {node: '>=4'} - cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} - - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} - - cli-truncate@3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - client-only@0.0.1: resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} @@ -2726,10 +1790,6 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - cluster-key-slot@1.1.2: - resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} - engines: {node: '>=0.10.0'} - co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -2737,10 +1797,6 @@ packages: code-block-writer@13.0.3: resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} - code-excerpt@4.0.0: - resolution: {integrity: sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - collect-v8-coverage@1.0.3: resolution: {integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==} @@ -2751,49 +1807,16 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - comlink@4.4.2: - resolution: {integrity: sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==} - - commander@14.0.2: - resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==} - engines: {node: '>=20'} - commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - compute-gcd@1.2.1: - resolution: {integrity: sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - content-disposition@0.5.4: - resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} - engines: {node: '>= 0.6'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - convert-to-spaces@2.0.1: - resolution: {integrity: sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - cookie-signature@1.0.6: - resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} - - cookie@0.7.1: - resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} - engines: {node: '>= 0.6'} - - cookies@0.9.1: - resolution: {integrity: sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==} - engines: {node: '>= 0.8'} - core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -2814,14 +1837,6 @@ packages: create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - cron-parser@4.9.0: - resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==} - engines: {node: '>=12.0.0'} - - cross-inspect@1.0.1: - resolution: {integrity: sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==} - engines: {node: '>=16.0.0'} - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -2853,17 +1868,6 @@ packages: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} - dataloader@2.2.3: - resolution: {integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==} - - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -2889,9 +1893,6 @@ packages: babel-plugin-macros: optional: true - deep-equal@1.0.1: - resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==} - deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -2907,36 +1908,13 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - - denque@2.1.0: - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} - engines: {node: '>=0.10'} - - depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - des.js@1.1.0: resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} - destroy@1.2.0: - resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-indent@7.0.2: resolution: {integrity: sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==} engines: {node: '>=12.20'} - detect-libc@2.1.2: - resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} - engines: {node: '>=8'} - detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} @@ -2990,10 +1968,6 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} - dset@3.1.4: - resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} - engines: {node: '>=4'} - dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -3001,9 +1975,6 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.250: resolution: {integrity: sha512-/5UMj9IiGDMOFBnN4i7/Ry5onJrAGSbOGo3s9FEKmwobGq6xw832ccET0CE3CkkMBZ8GJSlUIesZofpyurqDXw==} @@ -3020,20 +1991,9 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - encodeurl@1.0.2: - resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} - engines: {node: '>= 0.8'} - - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} - error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - es-abstract@1.24.0: resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} engines: {node: '>= 0.4'} @@ -3070,9 +2030,6 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -3085,10 +2042,6 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} - eslint-config-next@14.0.1: resolution: {integrity: sha512-QfIFK2WD39H4WOespjgf6PLv9Bpsd7KGGelCtmq4l67nGvnlsGpuvj0hIT+aIy6p5gKH+lAChYILsyDlxP52yg==} peerDependencies: @@ -3285,10 +2238,6 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -3308,13 +2257,6 @@ packages: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - express@4.21.2: - resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} - engines: {node: '>= 0.10.0'} - - extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -3343,15 +2285,6 @@ packages: picomatch: optional: true - figlet@1.9.3: - resolution: {integrity: sha512-majPgOpVtrZN1iyNGbsUP6bOtZ6eaJgg5HHh0vFvm5DJhh8dc+FJpOC4GABvMZ/A7XHAJUuJujhgUY/2jPWgMA==} - engines: {node: '>= 17.0.0'} - hasBin: true - - figures@5.0.0: - resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==} - engines: {node: '>=14'} - file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -3360,10 +2293,6 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - finalhandler@1.3.1: - resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} - engines: {node: '>= 0.8'} - find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -3387,20 +2316,9 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - forwarded-parse@2.1.2: - resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==} - - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - fraction.js@5.3.4: resolution: {integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==} - fresh@0.5.2: - resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} - engines: {node: '>= 0.6'} - fs-extra@11.1.1: resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} engines: {node: '>=14.14'} @@ -3423,22 +2341,10 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - gaxios@6.7.1: - resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} - engines: {node: '>=14'} - - gcp-metadata@6.1.1: - resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} - engines: {node: '>=14'} - generator-function@2.0.1: resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} engines: {node: '>= 0.4'} - generic-pool@3.9.0: - resolution: {integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==} - engines: {node: '>= 4'} - gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -3496,11 +2402,6 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported - globals@13.24.0: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} @@ -3513,10 +2414,6 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - google-logging-utils@0.0.2: - resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} - engines: {node: '>=14'} - gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -3541,12 +2438,6 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - graphql-yoga@5.16.2: - resolution: {integrity: sha512-heaD8ejapeEZ8+8CxB6DbYzkvMfC4gHEXr1Gc2CQCXEb5PVaDcEnQfiThBNic1KLPpuZixqQdJJ0pjcEVc9H7g==} - engines: {node: '>=18.0.0'} - peerDependencies: - graphql: ^15.2.0 || ^16.0.0 - graphql@16.12.0: resolution: {integrity: sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} @@ -3607,33 +2498,10 @@ packages: html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - http-assert@1.5.0: - resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==} - engines: {node: '>= 0.8'} - - http-errors@1.8.1: - resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==} - engines: {node: '>= 0.6'} - - http-errors@2.0.0: - resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} - engines: {node: '>= 0.8'} - - https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} - human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - humanize-duration@3.33.1: - resolution: {integrity: sha512-hwzSCymnRdFx9YdRkQQ0OYequXiVAV6ZGQA2uzocwB0F4309Ke6pO8dg0P8LHhRQJyVjGteRTAA/zNfEcpXn8A==} - - iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} - ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -3651,9 +2519,6 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - import-in-the-middle@1.15.0: - resolution: {integrity: sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==} - import-local@3.2.0: resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} engines: {node: '>=8'} @@ -3667,10 +2532,6 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -3678,37 +2539,10 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - ink-ascii@0.0.4: - resolution: {integrity: sha512-x6mZTHevoiAHgxrhxMpSc2p0lomq34uyGjwEFkpku7Rhxg30/MBnAi9gCHR17SMmaqRDzQRp1MS9s8Qvd4RHsA==} - peerDependencies: - ink: '>=2.5.0' - react: '>=16.11.0' - - ink@4.4.1: - resolution: {integrity: sha512-rXckvqPBB0Krifk5rn/5LvQGmyXwCUpBfmTwbkQNBY9JY8RSl3b8OftBNEYxg4+SWUhEKcPifgope28uL9inlA==} - engines: {node: '>=14.16'} - peerDependencies: - '@types/react': '>=18.0.0' - react: '>=18.0.0' - react-devtools-core: ^4.19.1 - peerDependenciesMeta: - '@types/react': - optional: true - react-devtools-core: - optional: true - internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - ioredis@5.8.2: - resolution: {integrity: sha512-C6uC+kleiIMmjViJINWk80sOQw5lEzse1ZmvD+S/s8p8CWapftSaC+kocGTx6xrbrJ4WmYQGC08ffHLr6ToR6Q==} - engines: {node: '>=12.22.0'} - - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - is-arguments@1.2.0: resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} engines: {node: '>= 0.4'} @@ -3747,10 +2581,6 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-ci@3.0.1: - resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} - hasBin: true - is-core-module@2.16.1: resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} @@ -3775,10 +2605,6 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - is-generator-fn@2.1.0: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} @@ -3791,9 +2617,6 @@ packages: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - is-lower-case@2.0.2: - resolution: {integrity: sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==} - is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -3850,13 +2673,6 @@ packages: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - - is-upper-case@2.0.2: - resolution: {integrity: sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==} - is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -3978,19 +2794,6 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-mock-extended@3.0.7: - resolution: {integrity: sha512-7lsKdLFcW9B9l5NzZ66S/yTQ9k8rFtnwYdCNuRU/81fqDWicNDVhitTSPnrGmNeNm0xyw0JHexEOShrIKRCIRQ==} - peerDependencies: - jest: ^24.0.0 || ^25.0.0 || ^26.0.0 || ^27.0.0 || ^28.0.0 || ^29.0.0 - typescript: ^3.0.0 || ^4.0.0 || ^5.0.0 - - jest-mock-extended@4.0.0: - resolution: {integrity: sha512-7BZpfuvLam+/HC+NxifIi9b+5VXj/utUDMPUqrDJehGWVuXPtLS9Jqlob2mJLrI/pg2k1S8DMfKDvEB88QNjaQ==} - peerDependencies: - '@jest/globals': ^28.0.0 || ^29.0.0 || ^30.0.0 - jest: ^24.0.0 || ^25.0.0 || ^26.0.0 || ^27.0.0 || ^28.0.0 || ^29.0.0 || ^30.0.0 - typescript: ^3.0.0 || ^4.0.0 || ^5.0.0 - jest-mock@29.7.0: resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -4061,9 +2864,6 @@ packages: jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - js-sha256@0.9.0: - resolution: {integrity: sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==} - js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -4084,9 +2884,6 @@ packages: engines: {node: '>=6'} hasBin: true - json-bigint@1.0.0: - resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} - json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -4115,11 +2912,6 @@ packages: resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} - keygrip@1.1.0: - resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} - engines: {node: '>= 0.6'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -4127,17 +2919,6 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - koa-compose@4.1.0: - resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==} - - koa-convert@2.0.0: - resolution: {integrity: sha512-asOvN6bFlSnxewce2e/DK3p4tltyfC4VM7ZwuTuepI7dEQVcvpyFuBcEARu1+Hxg8DIwytce2n7jrZtRlPrARA==} - engines: {node: '>= 10'} - - koa@2.16.3: - resolution: {integrity: sha512-zPPuIt+ku1iCpFBRwseMcPYQ1cJL8l60rSmKeOuGfOXyE6YnTBmf2aEFNL2HQGrD0cPcLO/t+v9RTgC+fwEh/g==} - engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4} - language-subtag-registry@0.3.23: resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} @@ -4156,12 +2937,6 @@ packages: libphonenumber-js@1.12.26: resolution: {integrity: sha512-MagMOuqEXB2Pa90cWE+BoCmcKJx+de5uBIicaUkQ+uiEslZ0OBMNOkSZT/36syXNHu68UeayTxPm3DYM2IHoLQ==} - libsodium-sumo@0.7.15: - resolution: {integrity: sha512-5tPmqPmq8T8Nikpm1Nqj0hBHvsLFCXvdhBFV7SGOitQPZAA6jso8XoL0r4L7vmfKXr486fiQInvErHtEvizFMw==} - - libsodium-wrappers-sumo@0.7.15: - resolution: {integrity: sha512-aSWY8wKDZh5TC7rMvEdTHoyppVq/1dTSAeAR7H6pzd6QRT3vQWcT5pGwCotLcpPEOLXX6VvqihSPkpEhYAjANA==} - lilconfig@3.1.3: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} @@ -4177,22 +2952,10 @@ packages: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} - - lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - - lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} - lodash.get@4.4.2: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. - lodash.isarguments@3.1.0: - resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} - lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} @@ -4202,16 +2965,10 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - loglevel-plugin-remote@0.6.8: - resolution: {integrity: sha512-EMhWUOAx4/Wtge1bNzYDvvXzv6PLt07emqTjA+Sc8WfViNSYXxe6kWYFyjcqGS6mqNeOqQ3+AG0xuasynHK0XA==} - loglevel@1.9.2: resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} engines: {node: '>= 0.6.0'} - long@5.3.2: - resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} - loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -4227,10 +2984,6 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 - luxon@3.7.2: - resolution: {integrity: sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew==} - engines: {node: '>=12'} - make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -4248,13 +3001,6 @@ packages: md5.js@1.3.5: resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} - media-typer@0.3.0: - resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} - engines: {node: '>= 0.6'} - - merge-descriptors@1.0.3: - resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} - merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -4262,10 +3008,6 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - methods@1.1.2: - resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} - engines: {node: '>= 0.6'} - micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -4274,19 +3016,6 @@ packages: resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} hasBin: true - mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - - mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - - mime@1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -4301,6 +3030,10 @@ packages: peerDependencies: o1js: ^2.1.0 + mina-lightweight-explorer@https://codeload.github.com/o1-labs/mina-lightweight-explorer/tar.gz/b921393d5091035a913d446e38dfdeb29c06cc52: + resolution: {tarball: https://codeload.github.com/o1-labs/mina-lightweight-explorer/tar.gz/b921393d5091035a913d446e38dfdeb29c06cc52} + version: 0.0.0 + minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} @@ -4310,10 +3043,6 @@ packages: minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} @@ -4334,22 +3063,9 @@ packages: engines: {node: '>=10'} hasBin: true - module-details-from-path@1.0.4: - resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} - - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - msgpackr-extract@3.0.3: - resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} - hasBin: true - - msgpackr@1.11.5: - resolution: {integrity: sha512-UjkUHN0yqp9RWKy0Lplhh+wlpdt9oQBYgULZOiFhV3VclSF1JnSQWZ5r9gORQlNYaUKQoR8itv7g7z1xDDuACA==} - mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -4366,10 +3082,6 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} - neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -4388,19 +3100,6 @@ packages: sass: optional: true - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - - node-gyp-build-optional-packages@5.2.2: - resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} - hasBin: true - node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} @@ -4436,11 +3135,6 @@ packages: resolution: {integrity: sha512-wAOd0moNX2kSA2FNvt8+7ORwYaJpQ1ZoWjUYdb1bBCxq4nkWuU0IiJa9VpVxrj5Ks+FGXQd62OC/Bjk0aSr+dg==} hasBin: true - o1js@2.11.0: - resolution: {integrity: sha512-aa49x4q/7RhoCjZDb3JmADm1tTfmo/lbg4/v3jHI6bY9fhKmkh8qtmvY3jkclxCAHNVQe32YDDPolEjR5eqVlQ==} - engines: {node: '>=18.14.0'} - hasBin: true - object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -4481,10 +3175,6 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -4492,9 +3182,6 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - only@0.0.2: - resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==} - optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -4538,14 +3225,6 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - - patch-console@2.0.0: - resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -4568,9 +3247,6 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-to-regexp@0.1.12: - resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} - path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -4579,17 +3255,6 @@ packages: resolution: {integrity: sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==} engines: {node: '>= 0.10'} - pg-int8@1.0.1: - resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} - engines: {node: '>=4.0.0'} - - pg-protocol@1.10.3: - resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==} - - pg-types@2.2.0: - resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} - engines: {node: '>=4'} - picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -4676,22 +3341,6 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} - postgres-array@2.0.0: - resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} - engines: {node: '>=4'} - - postgres-bytea@1.0.0: - resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} - engines: {node: '>=0.10.0'} - - postgres-date@1.0.7: - resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} - engines: {node: '>=0.10.0'} - - postgres-interval@1.2.0: - resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} - engines: {node: '>=0.10.0'} - prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -4765,14 +3414,6 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - printable-characters@1.0.42: - resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} - - prisma-mock@0.10.4: - resolution: {integrity: sha512-tjjzc4pgS8qXfViFzgrLp/OESixE1T2pRjPVjXWfwQqjErmzlNF9rmEOFEZJDJ+Rc1mBOP4HY5rusZuqV+YlDA==} - peerDependencies: - '@prisma/client': ^3.5.0 || ^4.7.0 || ^5.0.0 || ^6.0.0 - prisma@5.22.0: resolution: {integrity: sha512-vtpjW3XuYCSnMsNVBjLMNkTj6OZbudcPPTPYHqX0CJfpcdWciI1dM8uHETwmDxxiqEwCIE6WvXucWUetJgfu/A==} engines: {node: '>=16.13'} @@ -4792,14 +3433,6 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - protobufjs@7.5.4: - resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} - engines: {node: '>=12.0.0'} - - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - pstree.remy@1.1.8: resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} @@ -4816,10 +3449,6 @@ packages: pure-rand@6.1.0: resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} - engines: {node: '>=0.6'} - qs@6.14.0: resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} engines: {node: '>=0.6'} @@ -4833,14 +3462,6 @@ packages: randomfill@1.0.4: resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} - range-parser@1.2.1: - resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} - engines: {node: '>= 0.6'} - - raw-body@2.5.2: - resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} - engines: {node: '>= 0.8'} - react-dom@18.3.1: resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: @@ -4858,12 +3479,6 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-reconciler@0.29.2: - resolution: {integrity: sha512-zZQqIiYgDCTP/f1N/mAR10nJGrPD2ZR+jDSEsKWJHYC7Cm2wodlwbR3upZRdC3cjIjSlTLNVyO7Iu0Yy7t2AYg==} - engines: {node: '>=0.10.0'} - peerDependencies: - react: ^18.3.1 - react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} @@ -4890,17 +3505,6 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - redis-errors@1.2.0: - resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} - engines: {node: '>=4'} - - redis-parser@3.0.0: - resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} - engines: {node: '>=4'} - - redis@4.7.1: - resolution: {integrity: sha512-S1bJDnqLftzHXHP8JsT5II/CtHWQrASX5K96REjWjlmWKrviSOLWmM7QnRLstAWsu1VBBV1ffV6DzCvxNP0UJQ==} - reflect-metadata@0.1.14: resolution: {integrity: sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==} @@ -4924,10 +3528,6 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - require-in-the-middle@7.5.2: - resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==} - engines: {node: '>=8.6.0'} - resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -4959,10 +3559,6 @@ packages: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - reusify@1.1.0: resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -4997,9 +3593,6 @@ packages: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} @@ -5020,14 +3613,6 @@ packages: engines: {node: '>=10'} hasBin: true - send@0.19.0: - resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} - engines: {node: '>= 0.8.0'} - - serve-static@1.16.2: - resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} - engines: {node: '>= 0.8.0'} - set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -5040,9 +3625,6 @@ packages: resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} engines: {node: '>= 0.4'} - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - sha.js@2.4.12: resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} engines: {node: '>= 0.10'} @@ -5056,9 +3638,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shimmer@1.2.1: - resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} - side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} engines: {node: '>= 0.4'} @@ -5097,14 +3676,6 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} - - slice-ansi@6.0.0: - resolution: {integrity: sha512-6bn4hRfkTvDfUoEQYkERg0BVF1D0vrX9HEkMl08uDiNWvVvjylLHvZFZWkDo6wjT8tUctbYl1nCOuE66ZTaUtA==} - engines: {node: '>=14.16'} - sort-object-keys@1.1.3: resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} @@ -5120,10 +3691,6 @@ packages: source-map-support@0.5.13: resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - source-map@0.5.6: - resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} - engines: {node: '>=0.10.0'} - source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -5146,33 +3713,10 @@ packages: stable-hash@0.0.5: resolution: {integrity: sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==} - stack-generator@2.0.10: - resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} - stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} - stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - - stacktrace-gps@3.1.2: - resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} - - stacktrace-js@2.0.2: - resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} - - standard-as-callback@2.1.0: - resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} - - statuses@1.5.0: - resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} - engines: {node: '>= 0.6'} - - statuses@2.0.1: - resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} - engines: {node: '>= 0.8'} - stop-iteration-iterator@1.1.0: resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} engines: {node: '>= 0.4'} @@ -5336,17 +3880,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - touch@3.1.1: resolution: {integrity: sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==} hasBin: true - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - truncate-middle@1.0.6: resolution: {integrity: sha512-oJLDTdHAk27V+JUUu1vKYezKehx/tECV0vnJ1e8JV/rvre5oLoFMaCLP53ZwiPsw4ZIJzyLoZr/TKQABnaNF6A==} @@ -5356,14 +3893,6 @@ packages: peerDependencies: typescript: '>=4.2.0' - ts-essentials@10.1.1: - resolution: {integrity: sha512-4aTB7KLHKmUvkjNj8V+EdnmuVTiECzn3K+zIbRthumvHu+j44x3w63xpfs0JL3NGIzGXqoQ7AV591xHO+XrOTw==} - peerDependencies: - typescript: '>=4.5.0' - peerDependenciesMeta: - typescript: - optional: true - ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -5394,9 +3923,6 @@ packages: jest-util: optional: true - ts-mixer@6.0.4: - resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==} - ts-morph@23.0.0: resolution: {integrity: sha512-FcvFx7a9E8TUe6T3ShihXJLiJOiqyafzFKUO4aqIHDUCIvADdGNShcbc2W5PMr3LerXRv7mafvFZ9lRENxJmug==} @@ -5414,9 +3940,6 @@ packages: '@swc/wasm': optional: true - ts-pattern@4.3.0: - resolution: {integrity: sha512-pefrkcd4lmIVR0LA49Imjf9DYLK8vtWhqBPA3Ya1ir8xCW0O2yjL9dsCVvI7pCodLC5q7smNpEtDR2yVulQxOg==} - tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} @@ -5426,20 +3949,12 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - tsscmp@1.0.6: - resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} - engines: {node: '>=0.6.x'} - tsutils@3.21.0: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - tsyringe@4.10.0: - resolution: {integrity: sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==} - engines: {node: '>= 6.0.0'} - turbo-darwin-64@2.6.1: resolution: {integrity: sha512-Dm0HwhyZF4J0uLqkhUyCVJvKM9Rw7M03v3J9A7drHDQW0qAbIGBrUijQ8g4Q9Cciw/BXRRd8Uzkc3oue+qn+ZQ==} cpu: [x64] @@ -5482,10 +3997,6 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} - type-fest@0.12.0: - resolution: {integrity: sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==} - engines: {node: '>=10'} - type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -5517,10 +4028,6 @@ packages: class-validator: optional: true - type-is@1.6.18: - resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} - engines: {node: '>= 0.6'} - typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} @@ -5551,9 +4058,6 @@ packages: tslib: ^2.6.3 type-graphql: ^1.1.1 || >=1.2.0-rc || >=2.0.0-beta || >=2.0.0-rc - typescript-memoize@1.1.1: - resolution: {integrity: sha512-GQ90TcKpIH4XxYTI2F98yEQYZgjNMOGPpOgdjIBhaLaWji5HPWlRnZ4AeA1hfBxtY7bCGDJsqDDHk/KaHOl5bA==} - typescript@4.9.5: resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} engines: {node: '>=4.2.0'} @@ -5583,10 +4087,6 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - unrs-resolver@1.11.1: resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} @@ -5603,9 +4103,6 @@ packages: resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} engines: {node: '>= 0.4'} - urlpattern-polyfill@10.1.0: - resolution: {integrity: sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==} - use-sync-external-store@1.6.0: resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} peerDependencies: @@ -5617,14 +4114,6 @@ packages: util@0.12.5: resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - utils-merge@1.0.1: - resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} - engines: {node: '>= 0.4.0'} - - uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} @@ -5635,29 +4124,10 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - validate.io-array@1.0.6: - resolution: {integrity: sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==} - - validate.io-function@1.0.2: - resolution: {integrity: sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==} - - validate.io-integer-array@1.0.0: - resolution: {integrity: sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==} - - validate.io-integer@1.0.5: - resolution: {integrity: sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==} - - validate.io-number@1.0.3: - resolution: {integrity: sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==} - validator@13.15.23: resolution: {integrity: sha512-4yoz1kEWqUjzi5zsPbAS/903QXSYp0UOtHsPpp7p9rHAw/W+dkInskAE386Fat3oKRROwO98d9ZB0G4cObgUyw==} engines: {node: '>= 0.10'} - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} - walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} @@ -5665,12 +4135,6 @@ packages: resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} engines: {node: '>=10.13.0'} - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - which-boxed-primitive@1.1.1: resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} engines: {node: '>= 0.4'} @@ -5692,13 +4156,6 @@ packages: engines: {node: '>= 8'} hasBin: true - widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} - - wonka@6.3.5: - resolution: {integrity: sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==} - word-wrap@1.2.5: resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} @@ -5721,22 +4178,6 @@ packages: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - - xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -5744,9 +4185,6 @@ packages: yallist@3.1.1: resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} - yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} @@ -5755,10 +4193,6 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} - ylru@1.4.0: - resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==} - engines: {node: '>= 4.0.0'} - yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -5767,9 +4201,6 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yoga-wasm-web@0.3.3: - resolution: {integrity: sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==} - zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} @@ -5790,15 +4221,6 @@ packages: snapshots: - '@0no-co/graphql.web@1.2.0(graphql@16.12.0)': - optionalDependencies: - graphql: 16.12.0 - - '@alcalzone/ansi-tokenize@0.1.3': - dependencies: - ansi-styles: 6.2.3 - is-fullwidth-code-point: 4.0.0 - '@alloc/quick-lru@5.2.0': {} '@babel/code-frame@7.27.1': @@ -5871,1330 +4293,495 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/helper-plugin-utils@7.27.1': {} - - '@babel/helper-string-parser@7.27.1': {} - - '@babel/helper-validator-identifier@7.28.5': {} - - '@babel/helper-validator-option@7.27.1': {} - - '@babel/helpers@7.28.4': - dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 - - '@babel/parser@7.28.5': - dependencies: - '@babel/types': 7.28.5 - - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': - dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 - - '@babel/template@7.27.2': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 - - '@babel/traverse@7.28.5': - dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 - '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 - debug: 4.4.3(supports-color@5.5.0) - transitivePeerDependencies: - - supports-color - - '@babel/types@7.28.5': - dependencies: - '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.28.5 - - '@bcoe/v8-coverage@0.2.3': {} - - '@cspotcode/source-map-support@0.8.1': - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - - '@emnapi/core@1.7.0': - dependencies: - '@emnapi/wasi-threads': 1.1.0 - tslib: 2.8.1 - optional: true - - '@emnapi/runtime@1.7.0': - dependencies: - tslib: 2.8.1 - optional: true - - '@emnapi/wasi-threads@1.1.0': - dependencies: - tslib: 2.8.1 - optional: true - - '@envelop/core@5.4.0': - dependencies: - '@envelop/instrumentation': 1.0.0 - '@envelop/types': 5.2.1 - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 - - '@envelop/extended-validation@4.1.0(@envelop/core@5.4.0)(graphql@16.12.0)': - dependencies: - '@envelop/core': 5.4.0 - '@graphql-tools/utils': 10.10.1(graphql@16.12.0) - graphql: 16.12.0 - tslib: 2.8.1 - - '@envelop/instrumentation@1.0.0': - dependencies: - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 - - '@envelop/types@5.2.1': - dependencies: - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 - - '@eslint-community/eslint-utils@4.9.0(eslint@8.57.1)': - dependencies: - eslint: 8.57.1 - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.2': {} - - '@eslint/eslintrc@2.1.4': - dependencies: - ajv: 6.12.6 - debug: 4.4.3(supports-color@5.5.0) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@8.57.1': {} - - '@fastify/busboy@3.2.0': {} - - '@floating-ui/core@1.7.3': - dependencies: - '@floating-ui/utils': 0.2.10 - - '@floating-ui/dom@1.7.4': - dependencies: - '@floating-ui/core': 1.7.3 - '@floating-ui/utils': 0.2.10 - - '@floating-ui/react-dom@2.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/dom': 1.7.4 - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - - '@floating-ui/utils@0.2.10': {} - - '@graphql-tools/batch-delegate@9.0.41(graphql@16.12.0)': - dependencies: - '@graphql-tools/delegate': 10.2.23(graphql@16.12.0) - '@graphql-tools/utils': 10.10.1(graphql@16.12.0) - '@whatwg-node/promise-helpers': 1.3.2 - dataloader: 2.2.3 - graphql: 16.12.0 - tslib: 2.8.1 - - '@graphql-tools/batch-execute@9.0.19(graphql@16.12.0)': - dependencies: - '@graphql-tools/utils': 10.10.1(graphql@16.12.0) - '@whatwg-node/promise-helpers': 1.3.2 - dataloader: 2.2.3 - graphql: 16.12.0 - tslib: 2.8.1 - - '@graphql-tools/delegate@10.2.23(graphql@16.12.0)': - dependencies: - '@graphql-tools/batch-execute': 9.0.19(graphql@16.12.0) - '@graphql-tools/executor': 1.4.11(graphql@16.12.0) - '@graphql-tools/schema': 10.0.27(graphql@16.12.0) - '@graphql-tools/utils': 10.10.1(graphql@16.12.0) - '@repeaterjs/repeater': 3.0.6 - '@whatwg-node/promise-helpers': 1.3.2 - dataloader: 2.2.3 - dset: 3.1.4 - graphql: 16.12.0 - tslib: 2.8.1 - - '@graphql-tools/executor@1.4.11(graphql@16.12.0)': - dependencies: - '@graphql-tools/utils': 10.10.1(graphql@16.12.0) - '@graphql-typed-document-node/core': 3.2.0(graphql@16.12.0) - '@repeaterjs/repeater': 3.0.6 - '@whatwg-node/disposablestack': 0.0.6 - '@whatwg-node/promise-helpers': 1.3.2 - graphql: 16.12.0 - tslib: 2.8.1 - - '@graphql-tools/merge@9.1.3(graphql@16.12.0)': - dependencies: - '@graphql-tools/utils': 10.10.1(graphql@16.12.0) - graphql: 16.12.0 - tslib: 2.8.1 - - '@graphql-tools/schema@10.0.27(graphql@16.12.0)': - dependencies: - '@graphql-tools/merge': 9.1.3(graphql@16.12.0) - '@graphql-tools/utils': 10.10.1(graphql@16.12.0) - graphql: 16.12.0 - tslib: 2.8.1 - - '@graphql-tools/stitch@9.4.29(graphql@16.12.0)': - dependencies: - '@graphql-tools/batch-delegate': 9.0.41(graphql@16.12.0) - '@graphql-tools/delegate': 10.2.23(graphql@16.12.0) - '@graphql-tools/executor': 1.4.11(graphql@16.12.0) - '@graphql-tools/merge': 9.1.3(graphql@16.12.0) - '@graphql-tools/schema': 10.0.27(graphql@16.12.0) - '@graphql-tools/utils': 10.10.1(graphql@16.12.0) - '@graphql-tools/wrap': 10.1.4(graphql@16.12.0) - '@whatwg-node/promise-helpers': 1.3.2 - graphql: 16.12.0 - tslib: 2.8.1 - - '@graphql-tools/utils@10.10.1(graphql@16.12.0)': - dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.12.0) - '@whatwg-node/promise-helpers': 1.3.2 - cross-inspect: 1.0.1 - graphql: 16.12.0 - tslib: 2.8.1 - - '@graphql-tools/wrap@10.1.4(graphql@16.12.0)': - dependencies: - '@graphql-tools/delegate': 10.2.23(graphql@16.12.0) - '@graphql-tools/schema': 10.0.27(graphql@16.12.0) - '@graphql-tools/utils': 10.10.1(graphql@16.12.0) - '@whatwg-node/promise-helpers': 1.3.2 - graphql: 16.12.0 - tslib: 2.8.1 - - '@graphql-typed-document-node/core@3.2.0(graphql@16.12.0)': - dependencies: - graphql: 16.12.0 - - '@graphql-yoga/logger@2.0.1': - dependencies: - tslib: 2.8.1 - - '@graphql-yoga/subscription@5.0.5': - dependencies: - '@graphql-yoga/typed-event-target': 3.0.2 - '@repeaterjs/repeater': 3.0.6 - '@whatwg-node/events': 0.1.2 - tslib: 2.8.1 - - '@graphql-yoga/typed-event-target@3.0.2': - dependencies: - '@repeaterjs/repeater': 3.0.6 - tslib: 2.8.1 - - '@grpc/grpc-js@1.14.1': - dependencies: - '@grpc/proto-loader': 0.8.0 - '@js-sdsl/ordered-map': 4.4.2 - - '@grpc/proto-loader@0.8.0': - dependencies: - lodash.camelcase: 4.3.0 - long: 5.3.2 - protobufjs: 7.5.4 - yargs: 17.7.2 - - '@hookform/resolvers@3.10.0(react-hook-form@7.66.0(react@18.3.1))': - dependencies: - react-hook-form: 7.66.0(react@18.3.1) - - '@humanwhocodes/config-array@0.13.0': - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.3(supports-color@5.5.0) - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/object-schema@2.0.3': {} - - '@inkjs/ui@1.0.0(ink@4.4.1(@types/react@18.3.26)(react@18.3.1))': - dependencies: - chalk: 5.6.2 - cli-spinners: 2.9.2 - deepmerge: 4.3.1 - figures: 5.0.0 - ink: 4.4.1(@types/react@18.3.26)(react@18.3.1) - - '@ioredis/commands@1.4.0': {} - - '@isaacs/cliui@8.0.2': - dependencies: - string-width: 5.1.2 - string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.2 - strip-ansi-cjs: strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: wrap-ansi@7.0.0 - - '@istanbuljs/load-nyc-config@1.1.0': - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - - '@istanbuljs/schema@0.1.3': {} - - '@jest/console@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.19.24 - chalk: 4.1.2 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - slash: 3.0.0 - - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@20.19.24)(typescript@5.4.5))': - dependencies: - '@jest/console': 29.7.0 - '@jest/reporters': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.19.24 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.9.0 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.19.24)(ts-node@10.9.2(@types/node@20.19.24)(typescript@5.4.5)) - jest-haste-map: 29.7.0 - jest-message-util: 29.7.0 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-resolve-dependencies: 29.7.0 - jest-runner: 29.7.0 - jest-runtime: 29.7.0 - jest-snapshot: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 - jest-watcher: 29.7.0 - micromatch: 4.0.8 - pretty-format: 29.7.0 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - babel-plugin-macros - - supports-color - - ts-node - - '@jest/environment@29.7.0': - dependencies: - '@jest/fake-timers': 29.7.0 - '@jest/types': 29.6.3 - '@types/node': 20.19.24 - jest-mock: 29.7.0 - - '@jest/expect-utils@29.7.0': - dependencies: - jest-get-type: 29.6.3 - - '@jest/expect@29.7.0': - dependencies: - expect: 29.7.0 - jest-snapshot: 29.7.0 - transitivePeerDependencies: - - supports-color - - '@jest/fake-timers@29.7.0': - dependencies: - '@jest/types': 29.6.3 - '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.19.24 - jest-message-util: 29.7.0 - jest-mock: 29.7.0 - jest-util: 29.7.0 - - '@jest/globals@29.7.0': - dependencies: - '@jest/environment': 29.7.0 - '@jest/expect': 29.7.0 - '@jest/types': 29.6.3 - jest-mock: 29.7.0 - transitivePeerDependencies: - - supports-color - - '@jest/reporters@29.7.0': - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 20.19.24 - chalk: 4.1.2 - collect-v8-coverage: 1.0.3 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.3 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.2.0 - jest-message-util: 29.7.0 - jest-util: 29.7.0 - jest-worker: 29.7.0 - slash: 3.0.0 - string-length: 4.0.2 - strip-ansi: 6.0.1 - v8-to-istanbul: 9.3.0 - transitivePeerDependencies: - - supports-color - - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jest/source-map@29.6.3': - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - callsites: 3.1.0 - graceful-fs: 4.2.11 - - '@jest/test-result@29.7.0': - dependencies: - '@jest/console': 29.7.0 - '@jest/types': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.3 - - '@jest/test-sequencer@29.7.0': - dependencies: - '@jest/test-result': 29.7.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - slash: 3.0.0 - - '@jest/transform@29.7.0': - dependencies: - '@babel/core': 7.28.5 - '@jest/types': 29.6.3 - '@jridgewell/trace-mapping': 0.3.31 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 29.7.0 - jest-regex-util: 29.6.3 - jest-util: 29.7.0 - micromatch: 4.0.8 - pirates: 4.0.7 - slash: 3.0.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color - - '@jest/types@29.6.3': - dependencies: - '@jest/schemas': 29.6.3 - '@types/istanbul-lib-coverage': 2.0.6 - '@types/istanbul-reports': 3.0.4 - '@types/node': 20.19.24 - '@types/yargs': 17.0.34 - chalk: 4.1.2 - - '@jridgewell/gen-mapping@0.3.13': - dependencies: - '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/remapping@2.3.5': - dependencies: - '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.31 - - '@jridgewell/resolve-uri@3.1.2': {} - - '@jridgewell/sourcemap-codec@1.5.5': {} - - '@jridgewell/trace-mapping@0.3.31': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@jridgewell/trace-mapping@0.3.9': - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.5.5 - - '@js-sdsl/ordered-map@4.4.2': {} - - '@microsoft/tsdoc-config@0.16.2': - dependencies: - '@microsoft/tsdoc': 0.14.2 - ajv: 6.12.6 - jju: 1.4.0 - resolve: 1.19.0 - - '@microsoft/tsdoc@0.14.2': {} - - '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': - optional: true - - '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': - optional: true - - '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': - optional: true - - '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': - optional: true - - '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': - optional: true - - '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': - optional: true - - '@napi-rs/wasm-runtime@0.2.12': - dependencies: - '@emnapi/core': 1.7.0 - '@emnapi/runtime': 1.7.0 - '@tybys/wasm-util': 0.10.1 - optional: true - - '@next/env@14.0.1': {} - - '@next/eslint-plugin-next@14.0.1': - dependencies: - glob: 7.1.7 - - '@next/swc-darwin-arm64@14.0.1': - optional: true - - '@next/swc-darwin-x64@14.0.1': - optional: true - - '@next/swc-linux-arm64-gnu@14.0.1': - optional: true - - '@next/swc-linux-arm64-musl@14.0.1': - optional: true - - '@next/swc-linux-x64-gnu@14.0.1': - optional: true - - '@next/swc-linux-x64-musl@14.0.1': - optional: true - - '@next/swc-win32-arm64-msvc@14.0.1': - optional: true - - '@next/swc-win32-ia32-msvc@14.0.1': - optional: true - - '@next/swc-win32-x64-msvc@14.0.1': - optional: true + '@babel/helper-plugin-utils@7.27.1': {} - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - dependencies: - eslint-scope: 5.1.1 + '@babel/helper-string-parser@7.27.1': {} - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 + '@babel/helper-validator-identifier@7.28.5': {} - '@nodelib/fs.stat@2.0.5': {} + '@babel/helper-validator-option@7.27.1': {} - '@nodelib/fs.walk@1.2.8': + '@babel/helpers@7.28.4': dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 - - '@nolyfill/is-core-module@1.0.39': {} + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 - '@opentelemetry/api-logs@0.57.2': + '@babel/parser@7.28.5': dependencies: - '@opentelemetry/api': 1.9.0 - - '@opentelemetry/api@1.9.0': {} + '@babel/types': 7.28.5 - '@opentelemetry/auto-instrumentations-node@0.56.1(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-amqplib': 0.46.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-aws-lambda': 0.50.3(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-aws-sdk': 0.49.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-bunyan': 0.45.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-cassandra-driver': 0.45.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-connect': 0.43.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-cucumber': 0.14.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dataloader': 0.16.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-dns': 0.43.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-express': 0.47.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fastify': 0.44.2(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-fs': 0.19.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-generic-pool': 0.43.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-graphql': 0.47.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-grpc': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-hapi': 0.45.2(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-http': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-ioredis': 0.47.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-kafkajs': 0.7.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-knex': 0.44.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-koa': 0.47.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-lru-memoizer': 0.44.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-memcached': 0.43.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongodb': 0.52.0(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mongoose': 0.46.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql': 0.45.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-mysql2': 0.45.2(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-nestjs-core': 0.44.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-net': 0.43.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pg': 0.51.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-pino': 0.46.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-redis': 0.46.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-redis-4': 0.46.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-restify': 0.45.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-router': 0.44.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-socket.io': 0.46.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-tedious': 0.18.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-undici': 0.10.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-winston': 0.44.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-alibaba-cloud': 0.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-aws': 1.12.0(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-azure': 0.6.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-container': 0.6.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resource-detector-gcp': 0.33.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-node': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - encoding - - supports-color + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/context-async-hooks@1.30.1(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)': dependencies: - '@opentelemetry/api': 1.9.0 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/semantic-conventions': 1.28.0 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/exporter-logs-otlp-grpc@0.57.2(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)': dependencies: - '@grpc/grpc-js': 1.14.1 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.57.2(@opentelemetry/api@1.9.0) + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/exporter-logs-otlp-http@0.57.2(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.57.2 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.57.2(@opentelemetry/api@1.9.0) + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/exporter-logs-otlp-proto@0.57.2(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.57.2 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/exporter-metrics-otlp-grpc@0.57.2(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)': dependencies: - '@grpc/grpc-js': 1.14.1 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/exporter-metrics-otlp-http@0.57.2(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/exporter-metrics-otlp-proto@0.57.2(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/exporter-prometheus@0.57.2(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/exporter-trace-otlp-grpc@0.57.2(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)': dependencies: - '@grpc/grpc-js': 1.14.1 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-grpc-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/exporter-trace-otlp-http@0.57.2(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/exporter-trace-otlp-proto@0.57.2(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/exporter-zipkin@1.30.1(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/instrumentation-amqplib@0.46.1(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/instrumentation-aws-lambda@0.50.3(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - '@types/aws-lambda': 8.10.147 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/instrumentation-aws-sdk@0.49.1(@opentelemetry/api@1.9.0)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/propagation-utils': 0.30.16(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 - '@opentelemetry/instrumentation-bunyan@0.45.1(@opentelemetry/api@1.9.0)': + '@babel/template@7.27.2': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.57.2 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@types/bunyan': 1.8.11 - transitivePeerDependencies: - - supports-color + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 - '@opentelemetry/instrumentation-cassandra-driver@0.45.1(@opentelemetry/api@1.9.0)': + '@babel/traverse@7.28.5': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/helper-globals': 7.28.0 + '@babel/parser': 7.28.5 + '@babel/template': 7.27.2 + '@babel/types': 7.28.5 + debug: 4.4.3(supports-color@5.5.0) transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-connect@0.43.1(@opentelemetry/api@1.9.0)': + '@babel/types@7.28.5': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - '@types/connect': 3.4.38 - transitivePeerDependencies: - - supports-color + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 - '@opentelemetry/instrumentation-cucumber@0.14.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + '@bcoe/v8-coverage@0.2.3': {} - '@opentelemetry/instrumentation-dataloader@0.16.1(@opentelemetry/api@1.9.0)': + '@cspotcode/source-map-support@0.8.1': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color + '@jridgewell/trace-mapping': 0.3.9 - '@opentelemetry/instrumentation-dns@0.43.1(@opentelemetry/api@1.9.0)': + '@emnapi/core@1.7.0': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color + '@emnapi/wasi-threads': 1.1.0 + tslib: 2.8.1 + optional: true - '@opentelemetry/instrumentation-express@0.47.1(@opentelemetry/api@1.9.0)': + '@emnapi/runtime@1.7.0': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + tslib: 2.8.1 + optional: true - '@opentelemetry/instrumentation-fastify@0.44.2(@opentelemetry/api@1.9.0)': + '@emnapi/wasi-threads@1.1.0': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + tslib: 2.8.1 + optional: true - '@opentelemetry/instrumentation-fs@0.19.1(@opentelemetry/api@1.9.0)': + '@eslint-community/eslint-utils@4.9.0(eslint@8.57.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 - '@opentelemetry/instrumentation-generic-pool@0.43.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color + '@eslint-community/regexpp@4.12.2': {} - '@opentelemetry/instrumentation-graphql@0.47.1(@opentelemetry/api@1.9.0)': + '@eslint/eslintrc@2.1.4': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + ajv: 6.12.6 + debug: 4.4.3(supports-color@5.5.0) + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-grpc@0.57.2(@opentelemetry/api@1.9.0)': + '@eslint/js@8.57.1': {} + + '@floating-ui/core@1.7.3': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 - transitivePeerDependencies: - - supports-color + '@floating-ui/utils': 0.2.10 - '@opentelemetry/instrumentation-hapi@0.45.2(@opentelemetry/api@1.9.0)': + '@floating-ui/dom@1.7.4': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + '@floating-ui/core': 1.7.3 + '@floating-ui/utils': 0.2.10 - '@opentelemetry/instrumentation-http@0.57.2(@opentelemetry/api@1.9.0)': + '@floating-ui/react-dom@2.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 - forwarded-parse: 2.1.2 - semver: 7.7.3 - transitivePeerDependencies: - - supports-color + '@floating-ui/dom': 1.7.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@opentelemetry/instrumentation-ioredis@0.47.1(@opentelemetry/api@1.9.0)': + '@floating-ui/utils@0.2.10': {} + + '@graphql-yoga/subscription@5.0.5': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + '@graphql-yoga/typed-event-target': 3.0.2 + '@repeaterjs/repeater': 3.0.6 + '@whatwg-node/events': 0.1.2 + tslib: 2.8.1 - '@opentelemetry/instrumentation-kafkajs@0.7.1(@opentelemetry/api@1.9.0)': + '@graphql-yoga/typed-event-target@3.0.2': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + '@repeaterjs/repeater': 3.0.6 + tslib: 2.8.1 - '@opentelemetry/instrumentation-knex@0.44.1(@opentelemetry/api@1.9.0)': + '@hookform/resolvers@3.10.0(react-hook-form@7.66.0(react@18.3.1))': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + react-hook-form: 7.66.0(react@18.3.1) - '@opentelemetry/instrumentation-koa@0.47.1(@opentelemetry/api@1.9.0)': + '@humanwhocodes/config-array@0.13.0': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.4.3(supports-color@5.5.0) + minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-lru-memoizer@0.44.1(@opentelemetry/api@1.9.0)': + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@isaacs/cliui@8.0.2': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.2 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 - '@opentelemetry/instrumentation-memcached@0.43.1(@opentelemetry/api@1.9.0)': + '@istanbuljs/load-nyc-config@1.1.0': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - '@types/memcached': 2.2.10 - transitivePeerDependencies: - - supports-color + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + + '@istanbuljs/schema@0.1.3': {} - '@opentelemetry/instrumentation-mongodb@0.52.0(@opentelemetry/api@1.9.0)': + '@jest/console@29.7.0': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + '@jest/types': 29.6.3 + '@types/node': 20.19.24 + chalk: 4.1.2 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + slash: 3.0.0 - '@opentelemetry/instrumentation-mongoose@0.46.1(@opentelemetry/api@1.9.0)': + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@20.19.24)(typescript@5.4.5))': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.19.24 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 3.9.0 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.19.24)(ts-node@10.9.2(@types/node@20.19.24)(typescript@5.4.5)) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + strip-ansi: 6.0.1 transitivePeerDependencies: + - babel-plugin-macros - supports-color + - ts-node - '@opentelemetry/instrumentation-mysql2@0.45.2(@opentelemetry/api@1.9.0)': + '@jest/environment@29.7.0': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 20.19.24 + jest-mock: 29.7.0 - '@opentelemetry/instrumentation-mysql@0.45.1(@opentelemetry/api@1.9.0)': + '@jest/expect-utils@29.7.0': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - '@types/mysql': 2.15.26 - transitivePeerDependencies: - - supports-color + jest-get-type: 29.6.3 - '@opentelemetry/instrumentation-nestjs-core@0.44.1(@opentelemetry/api@1.9.0)': + '@jest/expect@29.7.0': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + expect: 29.7.0 + jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-net@0.43.1(@opentelemetry/api@1.9.0)': + '@jest/fake-timers@29.7.0': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 20.19.24 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 - '@opentelemetry/instrumentation-pg@0.51.1(@opentelemetry/api@1.9.0)': + '@jest/globals@29.7.0': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0) - '@types/pg': 8.6.1 - '@types/pg-pool': 2.0.6 + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-pino@0.46.1(@opentelemetry/api@1.9.0)': + '@jest/reporters@29.7.0': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.57.2 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@bcoe/v8-coverage': 0.2.3 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.31 + '@types/node': 20.19.24 + chalk: 4.1.2 + collect-v8-coverage: 1.0.3 + exit: 0.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.2.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 + slash: 3.0.0 + string-length: 4.0.2 + strip-ansi: 6.0.1 + v8-to-istanbul: 9.3.0 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-redis-4@0.46.1(@opentelemetry/api@1.9.0)': + '@jest/schemas@29.6.3': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + '@sinclair/typebox': 0.27.8 - '@opentelemetry/instrumentation-redis@0.46.1(@opentelemetry/api@1.9.0)': + '@jest/source-map@29.6.3': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/redis-common': 0.36.2 - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + '@jridgewell/trace-mapping': 0.3.31 + callsites: 3.1.0 + graceful-fs: 4.2.11 - '@opentelemetry/instrumentation-restify@0.45.1(@opentelemetry/api@1.9.0)': + '@jest/test-result@29.7.0': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.3 - '@opentelemetry/instrumentation-router@0.44.1(@opentelemetry/api@1.9.0)': + '@jest/test-sequencer@29.7.0': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + '@jest/test-result': 29.7.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + slash: 3.0.0 - '@opentelemetry/instrumentation-runtime-node@0.12.2(@opentelemetry/api@1.9.0)': + '@jest/transform@29.7.0': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) + '@babel/core': 7.28.5 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.31 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.8 + pirates: 4.0.7 + slash: 3.0.0 + write-file-atomic: 4.0.2 transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-socket.io@0.46.1(@opentelemetry/api@1.9.0)': + '@jest/types@29.6.3': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - transitivePeerDependencies: - - supports-color + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.19.24 + '@types/yargs': 17.0.34 + chalk: 4.1.2 - '@opentelemetry/instrumentation-tedious@0.18.1(@opentelemetry/api@1.9.0)': + '@jridgewell/gen-mapping@0.3.13': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - '@types/tedious': 4.0.14 - transitivePeerDependencies: - - supports-color + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 - '@opentelemetry/instrumentation-undici@0.10.1(@opentelemetry/api@1.9.0)': + '@jridgewell/remapping@2.3.5': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 - '@opentelemetry/instrumentation-winston@0.44.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.57.2 - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - transitivePeerDependencies: - - supports-color + '@jridgewell/resolve-uri@3.1.2': {} - '@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.57.2 - '@types/shimmer': 1.2.0 - import-in-the-middle: 1.15.0 - require-in-the-middle: 7.5.2 - semver: 7.7.3 - shimmer: 1.2.1 - transitivePeerDependencies: - - supports-color + '@jridgewell/sourcemap-codec@1.5.5': {} - '@opentelemetry/otlp-exporter-base@0.57.2(@opentelemetry/api@1.9.0)': + '@jridgewell/trace-mapping@0.3.31': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 - '@opentelemetry/otlp-grpc-exporter-base@0.57.2(@opentelemetry/api@1.9.0)': + '@jridgewell/trace-mapping@0.3.9': dependencies: - '@grpc/grpc-js': 1.14.1 - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-exporter-base': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/otlp-transformer': 0.57.2(@opentelemetry/api@1.9.0) + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 - '@opentelemetry/otlp-transformer@0.57.2(@opentelemetry/api@1.9.0)': + '@microsoft/tsdoc-config@0.16.2': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.57.2 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - protobufjs: 7.5.4 + '@microsoft/tsdoc': 0.14.2 + ajv: 6.12.6 + jju: 1.4.0 + resolve: 1.19.0 - '@opentelemetry/propagation-utils@0.30.16(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 + '@microsoft/tsdoc@0.14.2': {} - '@opentelemetry/propagator-b3@1.30.1(@opentelemetry/api@1.9.0)': + '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@emnapi/core': 1.7.0 + '@emnapi/runtime': 1.7.0 + '@tybys/wasm-util': 0.10.1 + optional: true + + '@next/env@14.0.1': {} - '@opentelemetry/propagator-jaeger@1.30.1(@opentelemetry/api@1.9.0)': + '@next/eslint-plugin-next@14.0.1': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + glob: 7.1.7 - '@opentelemetry/redis-common@0.36.2': {} + '@next/swc-darwin-arm64@14.0.1': + optional: true - '@opentelemetry/resource-detector-alibaba-cloud@0.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@next/swc-darwin-x64@14.0.1': + optional: true - '@opentelemetry/resource-detector-aws@1.12.0(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@next/swc-linux-arm64-gnu@14.0.1': + optional: true - '@opentelemetry/resource-detector-azure@0.6.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@next/swc-linux-arm64-musl@14.0.1': + optional: true - '@opentelemetry/resource-detector-container@0.6.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 + '@next/swc-linux-x64-gnu@14.0.1': + optional: true - '@opentelemetry/resource-detector-gcp@0.33.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - gcp-metadata: 6.1.1 - transitivePeerDependencies: - - encoding - - supports-color + '@next/swc-linux-x64-musl@14.0.1': + optional: true - '@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 + '@next/swc-win32-arm64-msvc@14.0.1': + optional: true - '@opentelemetry/sdk-logs@0.57.2(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.57.2 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@next/swc-win32-ia32-msvc@14.0.1': + optional: true - '@opentelemetry/sdk-metrics@1.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) + '@next/swc-win32-x64-msvc@14.0.1': + optional: true - '@opentelemetry/sdk-node@0.57.2(@opentelemetry/api@1.9.0)': + '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/api-logs': 0.57.2 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-logs-otlp-grpc': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-logs-otlp-http': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-logs-otlp-proto': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-grpc': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-http': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-metrics-otlp-proto': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-prometheus': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-grpc': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-http': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-proto': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-zipkin': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-logs': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-node': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 - transitivePeerDependencies: - - supports-color + eslint-scope: 5.1.1 - '@opentelemetry/sdk-trace-base@1.30.1(@opentelemetry/api@1.9.0)': + '@nodelib/fs.scandir@2.1.5': dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.28.0 + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 - '@opentelemetry/sdk-trace-node@1.30.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-b3': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/propagator-jaeger': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-base': 1.30.1(@opentelemetry/api@1.9.0) - semver: 7.7.3 + '@nodelib/fs.stat@2.0.5': {} - '@opentelemetry/semantic-conventions@1.28.0': {} + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 - '@opentelemetry/semantic-conventions@1.38.0': {} + '@nolyfill/is-core-module@1.0.39': {} - '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.0)': - dependencies: - '@opentelemetry/api': 1.9.0 - '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/api@1.9.0': + optional: true '@pkgjs/parseargs@0.11.0': optional: true @@ -7205,10 +4792,6 @@ snapshots: optionalDependencies: prisma: 5.22.0 - '@prisma/client@5.22.0(prisma@5.22.0)': - optionalDependencies: - prisma: 5.22.0 - '@prisma/debug@5.22.0': {} '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': {} @@ -7253,272 +4836,6 @@ snapshots: '@prisma/prisma-schema-wasm': 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 fs-extra: 11.1.1 - '@proto-kit/api@0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa)': - dependencies: - '@graphql-tools/stitch': 9.4.29(graphql@16.12.0) - '@opentelemetry/api': 1.9.0 - '@opentelemetry/auto-instrumentations-node': 0.56.1(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-prometheus': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/exporter-trace-otlp-grpc': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/instrumentation-runtime-node': 0.12.2(@opentelemetry/api@1.9.0) - '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-metrics': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-node': 0.57.2(@opentelemetry/api@1.9.0) - '@opentelemetry/sdk-trace-node': 1.30.1(@opentelemetry/api@1.9.0) - '@opentelemetry/semantic-conventions': 1.38.0 - '@proto-kit/common': 0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/module': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/protocol': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0) - '@proto-kit/sequencer': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/module@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - '@types/express': 5.0.5 - '@types/humanize-duration': 3.27.4 - class-validator: 0.14.2 - express: 4.21.2 - graphql: 16.12.0 - graphql-scalars: 1.25.0(graphql@16.12.0) - graphql-yoga: 5.16.2(graphql@16.12.0) - humanize-duration: 3.33.1 - koa: 2.16.3 - lodash: 4.17.21 - loglevel-plugin-remote: 0.6.8 - o1js: 2.11.0 - reflect-metadata: 0.1.14 - tsyringe: 4.10.0 - type-graphql: 2.0.0-rc.2(class-validator@0.14.2)(graphql-scalars@1.25.0(graphql@16.12.0))(graphql@16.12.0) - transitivePeerDependencies: - - encoding - - supports-color - - '@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0)': - dependencies: - lodash: 4.17.21 - loglevel: 1.9.2 - o1js: 2.11.0 - reflect-metadata: 0.1.14 - ts-mixer: 6.0.4 - tsyringe: 4.10.0 - typescript-memoize: 1.1.1 - - '@proto-kit/deployment@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/persistance@0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa))(@proto-kit/sdk@0.1.1-develop.1689(h3x5uf37tqonajdw5tvi4whuiq))(@proto-kit/sequencer@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/module@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(bullmq@3.16.2)(o1js@2.11.0)(tsyringe@4.10.0)': - dependencies: - '@proto-kit/common': 0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/persistance': 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) - '@proto-kit/sdk': 0.1.1-develop.1689(h3x5uf37tqonajdw5tvi4whuiq) - '@proto-kit/sequencer': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/module@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - '@types/yargs': 17.0.34 - bullmq: 3.16.2 - loglevel: 1.9.2 - o1js: 2.11.0 - reflect-metadata: 0.1.14 - tsyringe: 4.10.0 - yargs: 17.7.2 - - '@proto-kit/indexer@0.1.1-develop.1689(oyksqg65r7bjkfurwhskjnd74m)': - dependencies: - '@envelop/extended-validation': 4.1.0(@envelop/core@5.4.0)(graphql@16.12.0) - '@inkjs/ui': 1.0.0(ink@4.4.1(@types/react@18.3.26)(react@18.3.1)) - '@prisma/client': 5.18.0(prisma@5.22.0) - '@proto-kit/api': 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) - '@proto-kit/common': 0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/library': 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) - '@proto-kit/module': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/persistance': 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) - '@proto-kit/protocol': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0) - '@proto-kit/sdk': 0.1.1-develop.1689(h3x5uf37tqonajdw5tvi4whuiq) - '@proto-kit/sequencer': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/module@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - '@types/yargs': 17.0.34 - figlet: 1.9.3 - ink: 4.4.1(@types/react@18.3.26)(react@18.3.1) - ink-ascii: 0.0.4(ink@4.4.1(@types/react@18.3.26)(react@18.3.1))(react@18.3.1) - koa: 2.16.3 - o1js: 2.11.0 - prisma: 5.22.0 - react: 18.3.1 - reflect-metadata: 0.1.14 - tsyringe: 4.10.0 - type-graphql: 2.0.0-rc.2(class-validator@0.14.2)(graphql-scalars@1.25.0(graphql@16.12.0))(graphql@16.12.0) - typegraphql-prisma: 0.28.0(@prisma/client@5.18.0(prisma@5.22.0))(@types/graphql-fields@1.3.9)(@types/node@20.19.24)(graphql-fields@2.0.3)(graphql-scalars@1.25.0(graphql@16.12.0))(prisma@5.22.0)(tslib@2.8.1)(type-graphql@2.0.0-rc.2(class-validator@0.14.2)(graphql-scalars@1.25.0(graphql@16.12.0))(graphql@16.12.0)) - yargs: 17.7.2 - transitivePeerDependencies: - - '@envelop/core' - - '@types/react' - - bufferutil - - graphql - - react-devtools-core - - utf-8-validate - - '@proto-kit/indexer@0.1.1-develop.1689(zs6ypwbbw2euwy2mf6l5sazysu)': - dependencies: - '@envelop/extended-validation': 4.1.0(@envelop/core@5.4.0)(graphql@16.12.0) - '@inkjs/ui': 1.0.0(ink@4.4.1(@types/react@18.3.26)(react@18.3.1)) - '@prisma/client': 5.18.0(prisma@5.22.0) - '@proto-kit/api': 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) - '@proto-kit/common': 0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/library': 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) - '@proto-kit/module': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/persistance': 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) - '@proto-kit/protocol': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0) - '@proto-kit/sdk': 0.1.1-develop.1689(h3x5uf37tqonajdw5tvi4whuiq) - '@proto-kit/sequencer': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/module@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - '@types/yargs': 17.0.34 - figlet: 1.9.3 - ink: 4.4.1(@types/react@18.3.26)(react@18.3.1) - ink-ascii: 0.0.4(ink@4.4.1(@types/react@18.3.26)(react@18.3.1))(react@18.3.1) - koa: 2.16.3 - o1js: 2.11.0 - prisma: 5.22.0 - react: 18.3.1 - reflect-metadata: 0.1.14 - tsyringe: 4.10.0 - type-graphql: 2.0.0-rc.2(class-validator@0.14.2)(graphql-scalars@1.25.0(graphql@16.12.0))(graphql@16.12.0) - typegraphql-prisma: 0.28.0(@prisma/client@5.22.0(prisma@5.22.0))(@types/graphql-fields@1.3.9)(@types/node@20.19.24)(graphql-fields@2.0.3)(graphql-scalars@1.25.0(graphql@16.12.0))(prisma@5.22.0)(tslib@2.8.1)(type-graphql@2.0.0-rc.2(class-validator@0.14.2)(graphql-scalars@1.25.0(graphql@16.12.0))(graphql@16.12.0)) - yargs: 17.7.2 - transitivePeerDependencies: - - '@envelop/core' - - '@types/react' - - bufferutil - - graphql - - react-devtools-core - - utf-8-validate - - '@proto-kit/library@0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa)': - dependencies: - '@proto-kit/common': 0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/module': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/protocol': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0) - '@proto-kit/sequencer': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/module@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - bigint-isqrt: 0.3.2 - lodash: 4.17.21 - loglevel: 1.9.2 - o1js: 2.11.0 - reflect-metadata: 0.1.14 - tsyringe: 4.10.0 - - '@proto-kit/module@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0)': - dependencies: - '@proto-kit/common': 0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/protocol': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0) - lodash: 4.17.21 - loglevel: 1.9.2 - o1js: 2.11.0 - reflect-metadata: 0.1.14 - tsyringe: 4.10.0 - - '@proto-kit/persistance@0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa)': - dependencies: - '@prisma/client': 5.18.0(prisma@5.22.0) - '@proto-kit/common': 0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/module': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/protocol': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0) - '@proto-kit/sequencer': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/module@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - lodash: 4.17.21 - o1js: 2.11.0 - prisma: 5.22.0 - redis: 4.7.1 - reflect-metadata: 0.1.14 - tsyringe: 4.10.0 - - '@proto-kit/processor@0.1.1-develop.1689(wn27otudfriepkohnubt5fl2fq)': - dependencies: - '@inkjs/ui': 1.0.0(ink@4.4.1(@types/react@18.3.26)(react@18.3.1)) - '@prisma/client': 5.22.0(prisma@5.22.0) - '@proto-kit/api': 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) - '@proto-kit/common': 0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/library': 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) - '@proto-kit/module': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/persistance': 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) - '@proto-kit/protocol': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0) - '@proto-kit/sdk': 0.1.1-develop.1689(h3x5uf37tqonajdw5tvi4whuiq) - '@proto-kit/sequencer': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/module@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - '@types/yargs': 17.0.34 - figlet: 1.9.3 - ink: 4.4.1(@types/react@18.3.26)(react@18.3.1) - ink-ascii: 0.0.4(ink@4.4.1(@types/react@18.3.26)(react@18.3.1))(react@18.3.1) - jest-mock-extended: 4.0.0(@jest/globals@29.7.0)(jest@29.7.0(@types/node@20.19.24)(ts-node@10.9.2(@types/node@20.19.24)(typescript@5.4.5)))(typescript@5.4.5) - o1js: 2.11.0 - prisma-mock: 0.10.4(@prisma/client@5.22.0(prisma@5.22.0))(jest@29.7.0(@types/node@20.19.24)(ts-node@10.9.2(@types/node@20.19.24)(typescript@5.4.5)))(typescript@5.4.5) - react: 18.3.1 - reflect-metadata: 0.1.14 - tsyringe: 4.10.0 - type-graphql: 2.0.0-rc.2(class-validator@0.14.2)(graphql-scalars@1.25.0(graphql@16.12.0))(graphql@16.12.0) - typegraphql-prisma: 0.28.0(@prisma/client@5.18.0(prisma@5.22.0))(@types/graphql-fields@1.3.9)(@types/node@20.19.24)(graphql-fields@2.0.3)(graphql-scalars@1.25.0(graphql@16.12.0))(prisma@5.22.0)(tslib@2.8.1)(type-graphql@2.0.0-rc.2(class-validator@0.14.2)(graphql-scalars@1.25.0(graphql@16.12.0))(graphql@16.12.0)) - yargs: 17.7.2 - transitivePeerDependencies: - - '@jest/globals' - - '@types/react' - - bufferutil - - jest - - prisma - - react-devtools-core - - typescript - - utf-8-validate - - '@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0)': - dependencies: - '@proto-kit/common': 0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0) - lodash: 4.17.21 - loglevel: 1.9.2 - o1js: 2.11.0 - reflect-metadata: 0.1.14 - ts-mixer: 6.0.4 - ts-pattern: 4.3.0 - tsyringe: 4.10.0 - - '@proto-kit/sdk@0.1.1-develop.1689(h3x5uf37tqonajdw5tvi4whuiq)': - dependencies: - '@proto-kit/common': 0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/library': 0.1.1-develop.1689(t4eztggzs5xflkqxc7jjfbxzpa) - '@proto-kit/module': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/protocol': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0) - '@proto-kit/sequencer': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/module@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - '@urql/core': 4.3.0(graphql@16.12.0) - comlink: 4.4.2 - lodash: 4.17.21 - loglevel: 1.9.2 - o1js: 2.11.0 - reflect-metadata: 0.1.14 - tsyringe: 4.10.0 - transitivePeerDependencies: - - graphql - - '@proto-kit/sequencer@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/module@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0)': - dependencies: - '@proto-kit/common': 0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/module': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(@proto-kit/protocol@0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0))(o1js@2.11.0)(tsyringe@4.10.0) - '@proto-kit/protocol': 0.1.1-develop.1689(@proto-kit/common@0.1.1-develop.1689(o1js@2.11.0)(tsyringe@4.10.0))(o1js@2.11.0)(ts-pattern@4.3.0)(tsyringe@4.10.0) - ascii-table3: 0.9.0 - compute-gcd: 1.2.1 - lodash-es: 4.17.21 - mina-fungible-token: 1.1.0(o1js@2.11.0) - o1js: 2.11.0 - reflect-metadata: 0.1.14 - ts-pattern: 4.3.0 - tsyringe: 4.10.0 - - '@protobufjs/aspromise@1.1.2': {} - - '@protobufjs/base64@1.1.2': {} - - '@protobufjs/codegen@2.0.4': {} - - '@protobufjs/eventemitter@1.1.0': {} - - '@protobufjs/fetch@1.1.0': - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/inquire': 1.1.0 - - '@protobufjs/float@1.0.2': {} - - '@protobufjs/inquire@1.1.0': {} - - '@protobufjs/path@1.1.2': {} - - '@protobufjs/pool@1.1.0': {} - - '@protobufjs/utf8@1.1.0': {} - '@radix-ui/primitive@1.1.3': {} '@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.26))(@types/react@18.3.26)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': @@ -7800,32 +5117,6 @@ snapshots: '@radix-ui/rect@1.1.1': {} - '@redis/bloom@1.2.0(@redis/client@1.6.1)': - dependencies: - '@redis/client': 1.6.1 - - '@redis/client@1.6.1': - dependencies: - cluster-key-slot: 1.1.2 - generic-pool: 3.9.0 - yallist: 4.0.0 - - '@redis/graph@1.1.1(@redis/client@1.6.1)': - dependencies: - '@redis/client': 1.6.1 - - '@redis/json@1.0.7(@redis/client@1.6.1)': - dependencies: - '@redis/client': 1.6.1 - - '@redis/search@1.2.0(@redis/client@1.6.1)': - dependencies: - '@redis/client': 1.6.1 - - '@redis/time-series@1.1.0(@redis/client@1.6.1)': - dependencies: - '@redis/client': 1.6.1 - '@repeaterjs/repeater@3.0.6': {} '@rtsao/scc@1.1.0': {} @@ -7871,8 +5162,6 @@ snapshots: tslib: 2.8.1 optional: true - '@types/aws-lambda@8.10.147': {} - '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.28.5 @@ -7894,32 +5183,6 @@ snapshots: dependencies: '@babel/types': 7.28.5 - '@types/body-parser@1.19.6': - dependencies: - '@types/connect': 3.4.38 - '@types/node': 20.19.24 - - '@types/bunyan@1.8.11': - dependencies: - '@types/node': 20.19.24 - - '@types/connect@3.4.38': - dependencies: - '@types/node': 20.19.24 - - '@types/express-serve-static-core@5.1.0': - dependencies: - '@types/node': 20.19.24 - '@types/qs': 6.14.0 - '@types/range-parser': 1.2.7 - '@types/send': 1.2.1 - - '@types/express@5.0.5': - dependencies: - '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 5.1.0 - '@types/serve-static': 1.15.10 - '@types/graceful-fs@4.1.9': dependencies: '@types/node': 20.19.24 @@ -7928,10 +5191,6 @@ snapshots: dependencies: graphql: 16.12.0 - '@types/http-errors@2.0.5': {} - - '@types/humanize-duration@3.27.4': {} - '@types/istanbul-lib-coverage@2.0.6': {} '@types/istanbul-lib-report@3.0.3': @@ -7951,38 +5210,14 @@ snapshots: '@types/json5@0.0.29': {} - '@types/memcached@2.2.10': - dependencies: - '@types/node': 20.19.24 - - '@types/mime@1.3.5': {} - - '@types/mysql@2.15.26': - dependencies: - '@types/node': 20.19.24 - '@types/node@20.19.24': dependencies: undici-types: 6.21.0 '@types/normalize-package-data@2.4.4': {} - '@types/pg-pool@2.0.6': - dependencies: - '@types/pg': 8.6.1 - - '@types/pg@8.6.1': - dependencies: - '@types/node': 20.19.24 - pg-protocol: 1.10.3 - pg-types: 2.2.0 - '@types/prop-types@15.7.15': {} - '@types/qs@6.14.0': {} - - '@types/range-parser@1.2.7': {} - '@types/react-dom@18.3.7(@types/react@18.3.26)': dependencies: '@types/react': 18.3.26 @@ -7994,30 +5229,10 @@ snapshots: '@types/semver@7.7.1': {} - '@types/send@0.17.6': - dependencies: - '@types/mime': 1.3.5 - '@types/node': 20.19.24 - - '@types/send@1.2.1': - dependencies: - '@types/node': 20.19.24 - - '@types/serve-static@1.15.10': - dependencies: - '@types/http-errors': 2.0.5 - '@types/node': 20.19.24 - '@types/send': 0.17.6 - - '@types/shimmer@1.2.0': {} - '@types/stack-utils@2.0.3': {} - '@types/tedious@4.0.14': - dependencies: - '@types/node': 20.19.24 - - '@types/validator@13.15.4': {} + '@types/validator@13.15.4': + optional: true '@types/yargs-parser@21.0.3': {} @@ -8246,13 +5461,6 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.11.1': optional: true - '@urql/core@4.3.0(graphql@16.12.0)': - dependencies: - '@0no-co/graphql.web': 1.2.0(graphql@16.12.0) - wonka: 6.3.5 - transitivePeerDependencies: - - graphql - '@vercel/style-guide@5.2.0(@next/eslint-plugin-next@14.0.1)(eslint@8.57.1)(jest@29.7.0)(prettier@3.6.2)(typescript@4.9.5)': dependencies: '@babel/core': 7.28.5 @@ -8285,48 +5493,10 @@ snapshots: - jest - supports-color - '@whatwg-node/disposablestack@0.0.6': - dependencies: - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 - '@whatwg-node/events@0.1.2': dependencies: tslib: 2.8.1 - '@whatwg-node/fetch@0.10.13': - dependencies: - '@whatwg-node/node-fetch': 0.8.4 - urlpattern-polyfill: 10.1.0 - - '@whatwg-node/node-fetch@0.8.4': - dependencies: - '@fastify/busboy': 3.2.0 - '@whatwg-node/disposablestack': 0.0.6 - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 - - '@whatwg-node/promise-helpers@1.3.2': - dependencies: - tslib: 2.8.1 - - '@whatwg-node/server@0.10.17': - dependencies: - '@envelop/instrumentation': 1.0.0 - '@whatwg-node/disposablestack': 0.0.6 - '@whatwg-node/fetch': 0.10.13 - '@whatwg-node/promise-helpers': 1.3.2 - tslib: 2.8.1 - - accepts@1.3.8: - dependencies: - mime-types: 2.1.35 - negotiator: 0.6.3 - - acorn-import-attributes@1.9.5(acorn@8.15.0): - dependencies: - acorn: 8.15.0 - acorn-jsx@5.3.2(acorn@8.15.0): dependencies: acorn: 8.15.0 @@ -8337,8 +5507,6 @@ snapshots: acorn@8.15.0: {} - agent-base@7.1.4: {} - ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -8350,8 +5518,6 @@ snapshots: dependencies: type-fest: 0.21.3 - ansi-escapes@6.2.1: {} - ansi-regex@5.0.1: {} ansi-regex@6.2.2: {} @@ -8388,8 +5554,6 @@ snapshots: call-bound: 1.0.4 is-array-buffer: 3.0.5 - array-flatten@1.1.1: {} - array-includes@3.1.9: dependencies: call-bind: 1.0.8 @@ -8454,10 +5618,6 @@ snapshots: get-intrinsic: 1.3.0 is-array-buffer: 3.0.5 - ascii-table3@0.9.0: - dependencies: - printable-characters: 1.0.42 - asn1.js@4.10.1: dependencies: bn.js: 4.12.2 @@ -8476,8 +5636,6 @@ snapshots: async-function@1.0.0: {} - auto-bind@5.0.1: {} - autoprefixer@10.4.22(postcss@8.5.6): dependencies: browserslist: 4.28.0 @@ -8557,35 +5715,12 @@ snapshots: baseline-browser-mapping@2.8.25: {} - bigint-isqrt@0.3.2: {} - - bignumber.js@9.3.1: {} - binary-extensions@2.3.0: {} - blakejs@1.2.1: {} - bn.js@4.12.2: {} bn.js@5.2.2: {} - body-parser@1.20.3: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.13.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 @@ -8668,32 +5803,10 @@ snapshots: builtin-modules@3.3.0: {} - bullmq@3.16.2: - dependencies: - cron-parser: 4.9.0 - glob: 8.1.0 - ioredis: 5.8.2 - lodash: 4.17.21 - msgpackr: 1.11.5 - semver: 7.7.3 - tslib: 2.8.1 - uuid: 9.0.1 - transitivePeerDependencies: - - supports-color - busboy@1.6.0: dependencies: streamsearch: 1.1.0 - bytes@3.1.2: {} - - cache-content-type@1.0.1: - dependencies: - mime-types: 2.1.35 - ylru: 1.4.0 - - cachedir@2.4.0: {} - call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -8728,8 +5841,6 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.6.2: {} - char-regex@1.0.2: {} chokidar@3.6.0: @@ -8759,6 +5870,7 @@ snapshots: '@types/validator': 13.15.4 libphonenumber-js: 1.12.26 validator: 13.15.23 + optional: true class-variance-authority@0.7.1: dependencies: @@ -8768,19 +5880,6 @@ snapshots: dependencies: escape-string-regexp: 1.0.5 - cli-boxes@3.0.0: {} - - cli-cursor@4.0.0: - dependencies: - restore-cursor: 4.0.0 - - cli-spinners@2.9.2: {} - - cli-truncate@3.1.0: - dependencies: - slice-ansi: 5.0.0 - string-width: 5.1.2 - client-only@0.0.1: {} cliui@8.0.1: @@ -8791,16 +5890,10 @@ snapshots: clsx@2.1.1: {} - cluster-key-slot@1.1.2: {} - co@4.6.0: {} code-block-writer@13.0.3: {} - code-excerpt@4.0.0: - dependencies: - convert-to-spaces: 2.0.1 - collect-v8-coverage@1.0.3: {} color-convert@2.0.1: @@ -8809,39 +5902,12 @@ snapshots: color-name@1.1.4: {} - comlink@4.4.2: {} - - commander@14.0.2: {} - commander@4.1.1: {} - compute-gcd@1.2.1: - dependencies: - validate.io-array: 1.0.6 - validate.io-function: 1.0.2 - validate.io-integer-array: 1.0.0 - concat-map@0.0.1: {} - content-disposition@0.5.4: - dependencies: - safe-buffer: 5.2.1 - - content-type@1.0.5: {} - convert-source-map@2.0.0: {} - convert-to-spaces@2.0.1: {} - - cookie-signature@1.0.6: {} - - cookie@0.7.1: {} - - cookies@0.9.1: - dependencies: - depd: 2.0.0 - keygrip: 1.1.0 - core-util-is@1.0.3: {} create-ecdh@4.0.4: @@ -8883,14 +5949,6 @@ snapshots: create-require@1.1.1: {} - cron-parser@4.9.0: - dependencies: - luxon: 3.7.2 - - cross-inspect@1.0.1: - dependencies: - tslib: 2.8.1 - cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -8936,12 +5994,6 @@ snapshots: es-errors: 1.3.0 is-data-view: 1.0.2 - dataloader@2.2.3: {} - - debug@2.6.9: - dependencies: - ms: 2.0.0 - debug@3.2.7(supports-color@5.5.0): dependencies: ms: 2.1.3 @@ -8956,8 +6008,6 @@ snapshots: dedent@1.7.0: {} - deep-equal@1.0.1: {} - deep-is@0.1.4: {} deepmerge@4.3.1: {} @@ -8974,26 +6024,13 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - delegates@1.0.0: {} - - denque@2.1.0: {} - - depd@1.1.2: {} - - depd@2.0.0: {} - des.js@1.1.0: dependencies: inherits: 2.0.4 minimalistic-assert: 1.0.1 - destroy@1.2.0: {} - detect-indent@7.0.2: {} - detect-libc@2.1.2: - optional: true - detect-newline@3.1.0: {} detect-newline@4.0.1: {} @@ -9037,8 +6074,6 @@ snapshots: dotenv@16.6.1: {} - dset@3.1.4: {} - dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -9047,8 +6082,6 @@ snapshots: eastasianwidth@0.2.0: {} - ee-first@1.1.1: {} - electron-to-chromium@1.5.250: {} elliptic@6.6.1: @@ -9067,18 +6100,10 @@ snapshots: emoji-regex@9.2.2: {} - encodeurl@1.0.2: {} - - encodeurl@2.0.0: {} - error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 - error-stack-parser@2.1.4: - dependencies: - stackframe: 1.3.4 - es-abstract@1.24.0: dependencies: array-buffer-byte-length: 1.0.2 @@ -9182,16 +6207,12 @@ snapshots: escalade@3.2.0: {} - escape-html@1.0.3: {} - escape-string-regexp@1.0.5: {} escape-string-regexp@2.0.0: {} escape-string-regexp@4.0.0: {} - escape-string-regexp@5.0.0: {} - eslint-config-next@14.0.1(eslint@8.57.1)(typescript@5.4.5): dependencies: '@next/eslint-plugin-next': 14.0.1 @@ -9530,8 +6551,6 @@ snapshots: esutils@2.0.3: {} - etag@1.8.1: {} - events@3.3.0: {} evp_bytestokey@1.0.3: @@ -9561,44 +6580,6 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 - express@4.21.2: - dependencies: - accepts: 1.3.8 - array-flatten: 1.1.1 - body-parser: 1.20.3 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookie: 0.7.1 - cookie-signature: 1.0.6 - debug: 2.6.9 - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 1.3.1 - fresh: 0.5.2 - http-errors: 2.0.0 - merge-descriptors: 1.0.3 - methods: 1.1.2 - on-finished: 2.4.1 - parseurl: 1.3.3 - path-to-regexp: 0.1.12 - proxy-addr: 2.0.7 - qs: 6.13.0 - range-parser: 1.2.1 - safe-buffer: 5.2.1 - send: 0.19.0 - serve-static: 1.16.2 - setprototypeof: 1.2.0 - statuses: 2.0.1 - type-is: 1.6.18 - utils-merge: 1.0.1 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - - extend@3.0.2: {} - fast-deep-equal@3.1.3: {} fast-glob@3.3.3: @@ -9625,15 +6606,6 @@ snapshots: optionalDependencies: picomatch: 4.0.3 - figlet@1.9.3: - dependencies: - commander: 14.0.2 - - figures@5.0.0: - dependencies: - escape-string-regexp: 5.0.0 - is-unicode-supported: 1.3.0 - file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 @@ -9642,18 +6614,6 @@ snapshots: dependencies: to-regex-range: 5.0.1 - finalhandler@1.3.1: - dependencies: - debug: 2.6.9 - encodeurl: 2.0.0 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.1 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -9681,14 +6641,8 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - forwarded-parse@2.1.2: {} - - forwarded@0.2.0: {} - fraction.js@5.3.4: {} - fresh@0.5.2: {} - fs-extra@11.1.1: dependencies: graceful-fs: 4.2.11 @@ -9713,30 +6667,8 @@ snapshots: functions-have-names@1.2.3: {} - gaxios@6.7.1: - dependencies: - extend: 3.0.2 - https-proxy-agent: 7.0.6 - is-stream: 2.0.1 - node-fetch: 2.7.0 - uuid: 9.0.1 - transitivePeerDependencies: - - encoding - - supports-color - - gcp-metadata@6.1.1: - dependencies: - gaxios: 6.7.1 - google-logging-utils: 0.0.2 - json-bigint: 1.0.0 - transitivePeerDependencies: - - encoding - - supports-color - generator-function@2.0.1: {} - generic-pool@3.9.0: {} - gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} @@ -9812,14 +6744,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - globals@13.24.0: dependencies: type-fest: 0.20.2 @@ -9838,8 +6762,6 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - google-logging-utils@0.0.2: {} - gopd@1.2.0: {} graceful-fs@4.2.11: {} @@ -9858,22 +6780,6 @@ snapshots: graphql: 16.12.0 tslib: 2.8.1 - graphql-yoga@5.16.2(graphql@16.12.0): - dependencies: - '@envelop/core': 5.4.0 - '@envelop/instrumentation': 1.0.0 - '@graphql-tools/executor': 1.4.11(graphql@16.12.0) - '@graphql-tools/schema': 10.0.27(graphql@16.12.0) - '@graphql-tools/utils': 10.10.1(graphql@16.12.0) - '@graphql-yoga/logger': 2.0.1 - '@graphql-yoga/subscription': 5.0.5 - '@whatwg-node/fetch': 0.10.13 - '@whatwg-node/promise-helpers': 1.3.2 - '@whatwg-node/server': 0.10.17 - graphql: 16.12.0 - lru-cache: 10.4.3 - tslib: 2.8.1 - graphql@16.12.0: {} handlebars@4.7.8: @@ -9936,42 +6842,8 @@ snapshots: html-escaper@2.0.2: {} - http-assert@1.5.0: - dependencies: - deep-equal: 1.0.1 - http-errors: 1.8.1 - - http-errors@1.8.1: - dependencies: - depd: 1.1.2 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 1.5.0 - toidentifier: 1.0.1 - - http-errors@2.0.0: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.1 - toidentifier: 1.0.1 - - https-proxy-agent@7.0.6: - dependencies: - agent-base: 7.1.4 - debug: 4.4.3(supports-color@5.5.0) - transitivePeerDependencies: - - supports-color - human-signals@2.1.0: {} - humanize-duration@3.33.1: {} - - iconv-lite@0.4.24: - dependencies: - safer-buffer: 2.1.2 - ieee754@1.2.1: {} ignore-by-default@1.0.1: {} @@ -9985,13 +6857,6 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-in-the-middle@1.15.0: - dependencies: - acorn: 8.15.0 - acorn-import-attributes: 1.9.5(acorn@8.15.0) - cjs-module-lexer: 1.4.3 - module-details-from-path: 1.0.4 - import-local@3.2.0: dependencies: pkg-dir: 4.2.0 @@ -10001,8 +6866,6 @@ snapshots: indent-string@4.0.0: {} - indent-string@5.0.0: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -10010,68 +6873,12 @@ snapshots: inherits@2.0.4: {} - ink-ascii@0.0.4(ink@4.4.1(@types/react@18.3.26)(react@18.3.1))(react@18.3.1): - dependencies: - figlet: 1.9.3 - ink: 4.4.1(@types/react@18.3.26)(react@18.3.1) - react: 18.3.1 - - ink@4.4.1(@types/react@18.3.26)(react@18.3.1): - dependencies: - '@alcalzone/ansi-tokenize': 0.1.3 - ansi-escapes: 6.2.1 - auto-bind: 5.0.1 - chalk: 5.6.2 - cli-boxes: 3.0.0 - cli-cursor: 4.0.0 - cli-truncate: 3.1.0 - code-excerpt: 4.0.0 - indent-string: 5.0.0 - is-ci: 3.0.1 - is-lower-case: 2.0.2 - is-upper-case: 2.0.2 - lodash: 4.17.21 - patch-console: 2.0.0 - react: 18.3.1 - react-reconciler: 0.29.2(react@18.3.1) - scheduler: 0.23.2 - signal-exit: 3.0.7 - slice-ansi: 6.0.0 - stack-utils: 2.0.6 - string-width: 5.1.2 - type-fest: 0.12.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 - ws: 8.18.3 - yoga-wasm-web: 0.3.3 - optionalDependencies: - '@types/react': 18.3.26 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - internal-slot@1.1.0: dependencies: es-errors: 1.3.0 hasown: 2.0.2 side-channel: 1.1.0 - ioredis@5.8.2: - dependencies: - '@ioredis/commands': 1.4.0 - cluster-key-slot: 1.1.2 - debug: 4.4.3(supports-color@5.5.0) - denque: 2.1.0 - lodash.defaults: 4.2.0 - lodash.isarguments: 3.1.0 - redis-errors: 1.2.0 - redis-parser: 3.0.0 - standard-as-callback: 2.1.0 - transitivePeerDependencies: - - supports-color - - ipaddr.js@1.9.1: {} - is-arguments@1.2.0: dependencies: call-bound: 1.0.4 @@ -10116,10 +6923,6 @@ snapshots: is-callable@1.2.7: {} - is-ci@3.0.1: - dependencies: - ci-info: 3.9.0 - is-core-module@2.16.1: dependencies: hasown: 2.0.2 @@ -10143,8 +6946,6 @@ snapshots: is-fullwidth-code-point@3.0.0: {} - is-fullwidth-code-point@4.0.0: {} - is-generator-fn@2.1.0: {} is-generator-function@1.1.2: @@ -10159,10 +6960,6 @@ snapshots: dependencies: is-extglob: 2.1.1 - is-lower-case@2.0.2: - dependencies: - tslib: 2.8.1 - is-map@2.0.3: {} is-nan@1.3.2: @@ -10213,12 +7010,6 @@ snapshots: dependencies: which-typed-array: 1.1.19 - is-unicode-supported@1.3.0: {} - - is-upper-case@2.0.2: - dependencies: - tslib: 2.8.1 - is-weakmap@2.0.2: {} is-weakref@1.1.1: @@ -10446,19 +7237,6 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 - jest-mock-extended@3.0.7(jest@29.7.0(@types/node@20.19.24)(ts-node@10.9.2(@types/node@20.19.24)(typescript@5.4.5)))(typescript@5.4.5): - dependencies: - jest: 29.7.0(@types/node@20.19.24)(ts-node@10.9.2(@types/node@20.19.24)(typescript@5.4.5)) - ts-essentials: 10.1.1(typescript@5.4.5) - typescript: 5.4.5 - - jest-mock-extended@4.0.0(@jest/globals@29.7.0)(jest@29.7.0(@types/node@20.19.24)(ts-node@10.9.2(@types/node@20.19.24)(typescript@5.4.5)))(typescript@5.4.5): - dependencies: - '@jest/globals': 29.7.0 - jest: 29.7.0(@types/node@20.19.24)(ts-node@10.9.2(@types/node@20.19.24)(typescript@5.4.5)) - ts-essentials: 10.1.1(typescript@5.4.5) - typescript: 5.4.5 - jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 @@ -10620,8 +7398,6 @@ snapshots: jju@1.4.0: {} - js-sha256@0.9.0: {} - js-tokens@4.0.0: {} js-yaml@3.14.1: @@ -10637,10 +7413,6 @@ snapshots: jsesc@3.1.0: {} - json-bigint@1.0.0: - dependencies: - bignumber.js: 9.3.1 - json-buffer@3.0.1: {} json-parse-even-better-errors@2.3.1: {} @@ -10668,51 +7440,12 @@ snapshots: object.assign: 4.1.7 object.values: 1.2.1 - keygrip@1.1.0: - dependencies: - tsscmp: 1.0.6 - keyv@4.5.4: dependencies: json-buffer: 3.0.1 kleur@3.0.3: {} - koa-compose@4.1.0: {} - - koa-convert@2.0.0: - dependencies: - co: 4.6.0 - koa-compose: 4.1.0 - - koa@2.16.3: - dependencies: - accepts: 1.3.8 - cache-content-type: 1.0.1 - content-disposition: 0.5.4 - content-type: 1.0.5 - cookies: 0.9.1 - debug: 4.4.3(supports-color@5.5.0) - delegates: 1.0.0 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - fresh: 0.5.2 - http-assert: 1.5.0 - http-errors: 1.8.1 - is-generator-function: 1.1.2 - koa-compose: 4.1.0 - koa-convert: 2.0.0 - on-finished: 2.4.1 - only: 0.0.2 - parseurl: 1.3.3 - statuses: 1.5.0 - type-is: 1.6.18 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - language-subtag-registry@0.3.23: {} language-tags@1.0.9: @@ -10726,13 +7459,8 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - libphonenumber-js@1.12.26: {} - - libsodium-sumo@0.7.15: {} - - libsodium-wrappers-sumo@0.7.15: - dependencies: - libsodium-sumo: 0.7.15 + libphonenumber-js@1.12.26: + optional: true lilconfig@3.1.3: {} @@ -10746,28 +7474,16 @@ snapshots: dependencies: p-locate: 5.0.0 - lodash-es@4.17.21: {} - - lodash.camelcase@4.3.0: {} - - lodash.defaults@4.2.0: {} - lodash.get@4.4.2: {} - lodash.isarguments@3.1.0: {} - lodash.memoize@4.1.2: {} lodash.merge@4.6.2: {} lodash@4.17.21: {} - loglevel-plugin-remote@0.6.8: {} - loglevel@1.9.2: {} - long@5.3.2: {} - loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -10782,8 +7498,6 @@ snapshots: dependencies: react: 18.3.1 - luxon@3.7.2: {} - make-dir@4.0.0: dependencies: semver: 7.7.3 @@ -10802,16 +7516,10 @@ snapshots: inherits: 2.0.4 safe-buffer: 5.2.1 - media-typer@0.3.0: {} - - merge-descriptors@1.0.3: {} - merge-stream@2.0.0: {} merge2@1.4.1: {} - methods@1.1.2: {} - micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -10822,21 +7530,15 @@ snapshots: bn.js: 4.12.2 brorand: 1.1.0 - mime-db@1.52.0: {} - - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 - - mime@1.6.0: {} - mimic-fn@2.1.0: {} min-indent@1.0.1: {} - mina-fungible-token@1.1.0(o1js@2.11.0): + mina-fungible-token@1.1.0(o1js@framework+node_modules+o1js): dependencies: - o1js: 2.11.0 + o1js: link:../framework/node_modules/o1js + + mina-lightweight-explorer@https://codeload.github.com/o1-labs/mina-lightweight-explorer/tar.gz/b921393d5091035a913d446e38dfdeb29c06cc52: {} minimalistic-assert@1.0.1: {} @@ -10846,10 +7548,6 @@ snapshots: dependencies: brace-expansion: 1.1.12 - minimatch@5.1.6: - dependencies: - brace-expansion: 2.0.2 - minimatch@9.0.3: dependencies: brace-expansion: 2.0.2 @@ -10864,28 +7562,8 @@ snapshots: mkdirp@3.0.1: {} - module-details-from-path@1.0.4: {} - - ms@2.0.0: {} - ms@2.1.3: {} - msgpackr-extract@3.0.3: - dependencies: - node-gyp-build-optional-packages: 5.2.2 - optionalDependencies: - '@msgpackr-extract/msgpackr-extract-darwin-arm64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-darwin-x64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-linux-arm': 3.0.3 - '@msgpackr-extract/msgpackr-extract-linux-arm64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.3 - '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.3 - optional: true - - msgpackr@1.11.5: - optionalDependencies: - msgpackr-extract: 3.0.3 - mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -10898,8 +7576,6 @@ snapshots: natural-compare@1.4.0: {} - negotiator@0.6.3: {} - neo-async@2.6.2: {} next@14.0.1(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -10928,15 +7604,6 @@ snapshots: - '@babel/core' - babel-plugin-macros - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - - node-gyp-build-optional-packages@5.2.2: - dependencies: - detect-libc: 2.1.2 - optional: true - node-int64@0.4.0: {} node-releases@2.0.27: {} @@ -10987,16 +7654,6 @@ snapshots: nodemon: 2.0.22 through2: 4.0.2 - o1js@2.11.0: - dependencies: - blakejs: 1.2.1 - cachedir: 2.4.0 - js-sha256: 0.9.0 - libsodium-wrappers-sumo: 0.7.15 - reflect-metadata: 0.1.14 - stacktrace-js: 2.0.2 - tslib: 2.8.1 - object-assign@4.1.1: {} object-hash@3.0.0: {} @@ -11046,10 +7703,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - once@1.4.0: dependencies: wrappy: 1.0.2 @@ -11058,8 +7711,6 @@ snapshots: dependencies: mimic-fn: 2.1.0 - only@0.0.2: {} - optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -11114,10 +7765,6 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parseurl@1.3.3: {} - - patch-console@2.0.0: {} - path-browserify@1.0.1: {} path-exists@4.0.0: {} @@ -11133,8 +7780,6 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-to-regexp@0.1.12: {} - path-type@4.0.0: {} pbkdf2@3.1.5: @@ -11146,18 +7791,6 @@ snapshots: sha.js: 2.4.12 to-buffer: 1.2.2 - pg-int8@1.0.1: {} - - pg-protocol@1.10.3: {} - - pg-types@2.2.0: - dependencies: - pg-int8: 1.0.1 - postgres-array: 2.0.0 - postgres-bytea: 1.0.0 - postgres-date: 1.0.7 - postgres-interval: 1.2.0 - picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -11224,16 +7857,6 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - postgres-array@2.0.0: {} - - postgres-bytea@1.0.0: {} - - postgres-date@1.0.7: {} - - postgres-interval@1.2.0: - dependencies: - xtend: 4.0.2 - prelude-ls@1.2.1: {} prettier-plugin-packagejson@2.5.19(prettier@3.6.2): @@ -11255,16 +7878,6 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - printable-characters@1.0.42: {} - - prisma-mock@0.10.4(@prisma/client@5.22.0(prisma@5.22.0))(jest@29.7.0(@types/node@20.19.24)(ts-node@10.9.2(@types/node@20.19.24)(typescript@5.4.5)))(typescript@5.4.5): - dependencies: - '@prisma/client': 5.22.0(prisma@5.22.0) - jest-mock-extended: 3.0.7(jest@29.7.0(@types/node@20.19.24)(ts-node@10.9.2(@types/node@20.19.24)(typescript@5.4.5)))(typescript@5.4.5) - transitivePeerDependencies: - - jest - - typescript - prisma@5.22.0: dependencies: '@prisma/engines': 5.22.0 @@ -11286,26 +7899,6 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 - protobufjs@7.5.4: - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/base64': 1.1.2 - '@protobufjs/codegen': 2.0.4 - '@protobufjs/eventemitter': 1.1.0 - '@protobufjs/fetch': 1.1.0 - '@protobufjs/float': 1.0.2 - '@protobufjs/inquire': 1.1.0 - '@protobufjs/path': 1.1.2 - '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.0 - '@types/node': 20.19.24 - long: 5.3.2 - - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - pstree.remy@1.1.8: {} public-encrypt@4.0.3: @@ -11323,10 +7916,6 @@ snapshots: pure-rand@6.1.0: {} - qs@6.13.0: - dependencies: - side-channel: 1.1.0 - qs@6.14.0: dependencies: side-channel: 1.1.0 @@ -11342,15 +7931,6 @@ snapshots: randombytes: 2.1.0 safe-buffer: 5.2.1 - range-parser@1.2.1: {} - - raw-body@2.5.2: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - unpipe: 1.0.0 - react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 @@ -11365,12 +7945,6 @@ snapshots: react-is@18.3.1: {} - react-reconciler@0.29.2(react@18.3.1): - dependencies: - loose-envify: 1.4.0 - react: 18.3.1 - scheduler: 0.23.2 - react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -11412,21 +7986,6 @@ snapshots: dependencies: picomatch: 2.3.1 - redis-errors@1.2.0: {} - - redis-parser@3.0.0: - dependencies: - redis-errors: 1.2.0 - - redis@4.7.1: - dependencies: - '@redis/bloom': 1.2.0(@redis/client@1.6.1) - '@redis/client': 1.6.1 - '@redis/graph': 1.1.1(@redis/client@1.6.1) - '@redis/json': 1.0.7(@redis/client@1.6.1) - '@redis/search': 1.2.0(@redis/client@1.6.1) - '@redis/time-series': 1.1.0(@redis/client@1.6.1) - reflect-metadata@0.1.14: {} reflect.getprototypeof@1.0.10: @@ -11457,14 +8016,6 @@ snapshots: require-directory@2.1.1: {} - require-in-the-middle@7.5.2: - dependencies: - debug: 4.4.3(supports-color@5.5.0) - module-details-from-path: 1.0.4 - resolve: 1.22.11 - transitivePeerDependencies: - - supports-color - resolve-cwd@3.0.0: dependencies: resolve-from: 5.0.0 @@ -11494,11 +8045,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@4.0.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - reusify@1.1.0: {} rimraf@3.0.2: @@ -11537,8 +8083,6 @@ snapshots: es-errors: 1.3.0 is-regex: 1.2.1 - safer-buffer@2.1.2: {} - scheduler@0.23.2: dependencies: loose-envify: 1.4.0 @@ -11551,33 +8095,6 @@ snapshots: semver@7.7.3: {} - send@0.19.0: - dependencies: - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - encodeurl: 1.0.2 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 0.5.2 - http-errors: 2.0.0 - mime: 1.6.0 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.2.1 - statuses: 2.0.1 - transitivePeerDependencies: - - supports-color - - serve-static@1.16.2: - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 0.19.0 - transitivePeerDependencies: - - supports-color - set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -11600,8 +8117,6 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.1.1 - setprototypeof@1.2.0: {} - sha.js@2.4.12: dependencies: inherits: 2.0.4 @@ -11614,8 +8129,6 @@ snapshots: shebang-regex@3.0.0: {} - shimmer@1.2.1: {} - side-channel-list@1.0.0: dependencies: es-errors: 1.3.0 @@ -11660,16 +8173,6 @@ snapshots: slash@3.0.0: {} - slice-ansi@5.0.0: - dependencies: - ansi-styles: 6.2.3 - is-fullwidth-code-point: 4.0.0 - - slice-ansi@6.0.0: - dependencies: - ansi-styles: 6.2.3 - is-fullwidth-code-point: 4.0.0 - sort-object-keys@1.1.3: {} sort-package-json@3.4.0: @@ -11689,8 +8192,6 @@ snapshots: buffer-from: 1.1.2 source-map: 0.6.1 - source-map@0.5.6: {} - source-map@0.6.1: {} spdx-correct@3.2.0: @@ -11711,33 +8212,10 @@ snapshots: stable-hash@0.0.5: {} - stack-generator@2.0.10: - dependencies: - stackframe: 1.3.4 - stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 - stackframe@1.3.4: {} - - stacktrace-gps@3.1.2: - dependencies: - source-map: 0.5.6 - stackframe: 1.3.4 - - stacktrace-js@2.0.2: - dependencies: - error-stack-parser: 2.1.4 - stack-generator: 2.0.10 - stacktrace-gps: 3.1.2 - - standard-as-callback@2.1.0: {} - - statuses@1.5.0: {} - - statuses@2.0.1: {} - stop-iteration-iterator@1.1.0: dependencies: es-errors: 1.3.0 @@ -11949,12 +8427,8 @@ snapshots: dependencies: is-number: 7.0.0 - toidentifier@1.0.1: {} - touch@3.1.1: {} - tr46@0.0.3: {} - truncate-middle@1.0.6: {} ts-api-utils@1.4.3(typescript@4.9.5): @@ -11965,10 +8439,6 @@ snapshots: dependencies: typescript: 5.4.5 - ts-essentials@10.1.1(typescript@5.4.5): - optionalDependencies: - typescript: 5.4.5 - ts-interface-checker@0.1.13: {} ts-jest@29.4.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(jest-util@29.7.0)(jest@29.7.0(@types/node@20.19.24)(ts-node@10.9.2(@types/node@20.19.24)(typescript@5.4.5)))(typescript@5.4.5): @@ -11991,8 +8461,6 @@ snapshots: babel-jest: 29.7.0(@babel/core@7.28.5) jest-util: 29.7.0 - ts-mixer@6.0.4: {} - ts-morph@23.0.0: dependencies: '@ts-morph/common': 0.24.0 @@ -12016,8 +8484,6 @@ snapshots: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - ts-pattern@4.3.0: {} - tsconfig-paths@3.15.0: dependencies: '@types/json5': 0.0.29 @@ -12029,17 +8495,11 @@ snapshots: tslib@2.8.1: {} - tsscmp@1.0.6: {} - tsutils@3.21.0(typescript@4.9.5): dependencies: tslib: 1.14.1 typescript: 4.9.5 - tsyringe@4.10.0: - dependencies: - tslib: 1.14.1 - turbo-darwin-64@2.6.1: optional: true @@ -12073,8 +8533,6 @@ snapshots: type-detect@4.0.8: {} - type-fest@0.12.0: {} - type-fest@0.20.2: {} type-fest@0.21.3: {} @@ -12098,11 +8556,6 @@ snapshots: optionalDependencies: class-validator: 0.14.2 - type-is@1.6.18: - dependencies: - media-typer: 0.3.0 - mime-types: 2.1.35 - typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.4 @@ -12152,24 +8605,6 @@ snapshots: tslib: 2.8.1 type-graphql: 2.0.0-rc.2(class-validator@0.14.2)(graphql-scalars@1.25.0(graphql@16.12.0))(graphql@16.12.0) - typegraphql-prisma@0.28.0(@prisma/client@5.22.0(prisma@5.22.0))(@types/graphql-fields@1.3.9)(@types/node@20.19.24)(graphql-fields@2.0.3)(graphql-scalars@1.25.0(graphql@16.12.0))(prisma@5.22.0)(tslib@2.8.1)(type-graphql@2.0.0-rc.2(class-validator@0.14.2)(graphql-scalars@1.25.0(graphql@16.12.0))(graphql@16.12.0)): - dependencies: - '@prisma/client': 5.22.0(prisma@5.22.0) - '@prisma/generator-helper': 5.22.0 - '@prisma/internals': 5.22.0 - '@types/graphql-fields': 1.3.9 - '@types/node': 20.19.24 - graphql-fields: 2.0.3 - graphql-scalars: 1.25.0(graphql@16.12.0) - pluralize: 8.0.0 - prisma: 5.22.0 - semver: 7.7.3 - ts-morph: 23.0.0 - tslib: 2.8.1 - type-graphql: 2.0.0-rc.2(class-validator@0.14.2)(graphql-scalars@1.25.0(graphql@16.12.0))(graphql@16.12.0) - - typescript-memoize@1.1.1: {} - typescript@4.9.5: {} typescript@5.4.5: {} @@ -12190,8 +8625,6 @@ snapshots: universalify@2.0.1: {} - unpipe@1.0.0: {} - unrs-resolver@1.11.1: dependencies: napi-postinstall: 0.3.4 @@ -12231,8 +8664,6 @@ snapshots: punycode: 1.4.1 qs: 6.14.0 - urlpattern-polyfill@10.1.0: {} - use-sync-external-store@1.6.0(react@18.3.1): dependencies: react: 18.3.1 @@ -12247,10 +8678,6 @@ snapshots: is-typed-array: 1.1.15 which-typed-array: 1.1.19 - utils-merge@1.0.1: {} - - uuid@9.0.1: {} - v8-compile-cache-lib@3.0.1: {} v8-to-istanbul@9.3.0: @@ -12264,24 +8691,8 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - validate.io-array@1.0.6: {} - - validate.io-function@1.0.2: {} - - validate.io-integer-array@1.0.0: - dependencies: - validate.io-array: 1.0.6 - validate.io-integer: 1.0.5 - - validate.io-integer@1.0.5: - dependencies: - validate.io-number: 1.0.3 - - validate.io-number@1.0.3: {} - - validator@13.15.23: {} - - vary@1.1.2: {} + validator@13.15.23: + optional: true walker@1.0.8: dependencies: @@ -12292,13 +8703,6 @@ snapshots: glob-to-regexp: 0.4.1 graceful-fs: 4.2.11 - webidl-conversions@3.0.1: {} - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - which-boxed-primitive@1.1.1: dependencies: is-bigint: 1.1.0 @@ -12344,12 +8748,6 @@ snapshots: dependencies: isexe: 2.0.0 - widest-line@4.0.1: - dependencies: - string-width: 5.1.2 - - wonka@6.3.5: {} - word-wrap@1.2.5: {} wordwrap@1.0.0: {} @@ -12373,16 +8771,10 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 3.0.7 - ws@8.18.3: {} - - xtend@4.0.2: {} - y18n@5.0.8: {} yallist@3.1.1: {} - yallist@4.0.0: {} - yargs-parser@21.1.1: {} yargs@17.7.2: @@ -12395,14 +8787,10 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - ylru@1.4.0: {} - yn@3.1.1: {} yocto-queue@0.1.0: {} - yoga-wasm-web@0.3.3: {} - zod@3.25.76: {} zustand@4.5.7(@types/react@18.3.26)(immer@10.2.0)(react@18.3.1): From dc4879658d843cf542164e8cc330149d27c8b604 Mon Sep 17 00:00:00 2001 From: Raphael Panic Date: Fri, 28 Nov 2025 14:36:16 +0900 Subject: [PATCH 10/10] Added settlement to sovereign mode --- .../environments/sovereign/chain.config.ts | 114 ++++++++++-------- 1 file changed, 63 insertions(+), 51 deletions(-) diff --git a/packages/chain/src/environments/sovereign/chain.config.ts b/packages/chain/src/environments/sovereign/chain.config.ts index 6b2c96f..6480bd2 100644 --- a/packages/chain/src/environments/sovereign/chain.config.ts +++ b/packages/chain/src/environments/sovereign/chain.config.ts @@ -1,11 +1,11 @@ import { Runtime } from "@proto-kit/module"; import { Protocol } from "@proto-kit/protocol"; import { - AppChain, - DatabasePruneModule, - LocalTaskWorkerModule, - Sequencer, - VanillaTaskWorkerModules, + AppChain, + DatabasePruneModule, + LocalTaskWorkerModule, + Sequencer, + VanillaTaskWorkerModules, } from "@proto-kit/sequencer"; import { PrismaRedisDatabase } from "@proto-kit/persistance"; import runtime from "../../runtime"; @@ -29,57 +29,69 @@ import { } from "../../app-chain"; import { log } from "@proto-kit/common"; +const settlementEnabled = process.env.PROTOKIT_SETTLEMENT_ENABLED! === "true"; + export const appChain = AppChain.from({ - Runtime: Runtime.from(runtime.modules), - Protocol: Protocol.from(protocol.modules), - Sequencer: Sequencer.from({ - // ordering of the modules matters due to dependency resolution - Database: PrismaRedisDatabase, - DatabasePruneModule, - LocalTaskWorkerModule: LocalTaskWorkerModule.from( - VanillaTaskWorkerModules.withoutSettlement() - ), - TaskQueue: BullQueue, - ...baseSequencerModules, - ...indexerSequencerModules, - ...metricsSequencerModules, - }), - ...baseAppChainModules, + Runtime: Runtime.from(runtime.modules), + Protocol: Protocol.from({ + ...protocol.modules, + ...(settlementEnabled ? protocol.settlementModules : {}), + }), + Sequencer: Sequencer.from({ + // ordering of the modules matters due to dependency resolution + Database: PrismaRedisDatabase, + DatabasePruneModule, + LocalTaskWorkerModule: LocalTaskWorkerModule.from( + settlementEnabled + ? VanillaTaskWorkerModules.withoutSettlement() + : VanillaTaskWorkerModules.allTasks() + ), + TaskQueue: BullQueue, + ...baseSequencerModules, + ...(settlementEnabled ? baseSettlementSequencerModules : {}), + ...indexerSequencerModules, + ...metricsSequencerModules, + }), + ...baseAppChainModules, }); export default async (args: Arguments): Promise => { - appChain.configurePartial({ - Runtime: runtime.config, - Protocol: protocol.config, - Sequencer: { - ...baseSequencerModulesConfig, - ...indexerSequencerModulesConfig, - ...metricsSequencerModulesConfig, - DatabasePruneModule: { - pruneOnStartup: args.pruneOnStartup, - }, - TaskQueue: { - redis: { - host: process.env.REDIS_HOST!, - port: Number(process.env.REDIS_PORT)!, - password: process.env.REDIS_PASSWORD!, - db: 1, - }, - }, - Database: { - redis: { - host: process.env.REDIS_HOST!, - port: Number(process.env.REDIS_PORT)!, - password: process.env.REDIS_PASSWORD!, - }, - prisma: { - connection: process.env.DATABASE_URL!, - }, - }, - LocalTaskWorkerModule: VanillaTaskWorkerModules.defaultConfig(), + appChain.configurePartial({ + Runtime: runtime.config, + Protocol: { + ...protocol.config, + ...(settlementEnabled ? protocol.settlementModulesConfig : {}), + }, + Sequencer: { + ...baseSequencerModulesConfig, + ...indexerSequencerModulesConfig, + ...metricsSequencerModulesConfig, + ...(settlementEnabled ? baseSettlementSequencerModulesConfig : {}), + DatabasePruneModule: { + pruneOnStartup: args.pruneOnStartup, + }, + TaskQueue: { + redis: { + host: process.env.REDIS_HOST!, + port: Number(process.env.REDIS_PORT)!, + password: process.env.REDIS_PASSWORD!, + db: 1, + }, + }, + Database: { + redis: { + host: process.env.REDIS_HOST!, + port: Number(process.env.REDIS_PORT)!, + password: process.env.REDIS_PASSWORD!, + }, + prisma: { + connection: process.env.DATABASE_URL!, }, - ...baseAppChainModulesConfig, - }); + }, + LocalTaskWorkerModule: VanillaTaskWorkerModules.defaultConfig(), + }, + ...baseAppChainModulesConfig, + }); log.setLevel("DEBUG");