diff --git a/.cspell.json b/.cspell.json index 902d1ed..1d65d5e 100644 --- a/.cspell.json +++ b/.cspell.json @@ -27,6 +27,9 @@ "adminpw", "mychannel", "localmspid", + "Atharva", + "Kathe", + "Parth", "mspconfig", "tlscacerts", "tlsca", @@ -117,6 +120,7 @@ "**/npm-shrinkwrap.json", "examples/cactus-common-example-server/**", "examples/cactus-example-cbdc-bridging-frontend/**", - "examples/cactus-example-cbdc-bridging-backend/**" + "examples/cactus-example-cbdc-bridging-backend/**", + "examples/cactus-example-cbdc-bridging/**" ] } diff --git a/docs/release-1.0.0.md b/docs/release-1.0.0.md index 061e93e..5bcb337 100644 --- a/docs/release-1.0.0.md +++ b/docs/release-1.0.0.md @@ -73,30 +73,30 @@ This document tracks cacti-demos version updates. ## Release Summary -| Metric | Value | -|--------|-------| -| Tag | `1.0.0` | -| Previous tag | [`0.0.1`](https://github.com/hyperledger-cacti/cacti-demos/releases/tag/0.0.1) | -| Date range | 2025-11-12 (0.0.1) - 2026-08-03 | -| Total commits | 35 | -| Non-merge commits | 34 | -| Files changed | 582 | -| Lines added | +142,616 | -| Lines removed | -450 | -| Referenced PR/issue IDs | 16 | -| Contributors (author identities) | 7 | -| Unique contributor emails | 6 | +| Metric | Value | +| -------------------------------- | ------------------------------------------------------------------------------ | +| Tag | `1.0.0` | +| Previous tag | [`0.0.1`](https://github.com/hyperledger-cacti/cacti-demos/releases/tag/0.0.1) | +| Date range | 2025-11-12 (0.0.1) - 2026-08-03 | +| Total commits | 35 | +| Non-merge commits | 34 | +| Files changed | 582 | +| Lines added | +142,616 | +| Lines removed | -450 | +| Referenced PR/issue IDs | 16 | +| Contributors (author identities) | 7 | +| Unique contributor emails | 6 | ### Contributions by type -| Category | Count | -|----------|------:| -| Features | 8 | -| Bug Fixes | 1 | -| Documentation | 6 | -| Refactors | 10 | -| Chores / CI / Dependency updates | 9 | -| Merge commits | 1 | +| Category | Count | +| -------------------------------- | ----: | +| Features | 8 | +| Bug Fixes | 1 | +| Documentation | 6 | +| Refactors | 10 | +| Chores / CI / Dependency updates | 9 | +| Merge commits | 1 | ## Contributors diff --git a/examples/cactus-example-cbdc-bridging-backend/package.json b/examples/cactus-example-cbdc-bridging-backend/package.json index cc80696..692b948 100644 --- a/examples/cactus-example-cbdc-bridging-backend/package.json +++ b/examples/cactus-example-cbdc-bridging-backend/package.json @@ -107,7 +107,7 @@ "@openzeppelin/contracts": "4.9.6", "@openzeppelin/contracts-upgradeable": "5.6.1", "async-exit-hook": "2.0.1", - "axios": "1.19.0", + "axios": "1.18.1", "body-parser": "2.3.0", "cors": "2.8.6", "crypto-js": "4.2.0", @@ -128,6 +128,7 @@ "socket.io": "4.8.3", "sqlite3": "6.0.1", "ts-results": "3.3.0", + "tslib": "^2.8.1", "typescript-optional": "2.0.1", "uuid": "14.0.1", "web3": "4.16.0", @@ -138,6 +139,7 @@ "devDependencies": { "@apidevtools/swagger-cli": "4.0.4", "@foundry-rs/hardhat-forge": "0.1.17", + "@openapitools/openapi-generator-cli": "^2.40.1", "@types/body-parser": "1.19.6", "@types/cors": "2.8.19", "@types/crypto-js": "4.2.2", diff --git a/examples/cactus-example-cbdc-bridging-backend/run-cbdc-app.sh b/examples/cactus-example-cbdc-bridging-backend/run-cbdc-app.sh old mode 100644 new mode 100755 index 18975e2..248d9c3 --- a/examples/cactus-example-cbdc-bridging-backend/run-cbdc-app.sh +++ b/examples/cactus-example-cbdc-bridging-backend/run-cbdc-app.sh @@ -4,8 +4,8 @@ function main() echo "Sleeping to let dockerd spin up" sleep 10 - docker pull ghcr.io/hyperledger/cactus-besu-all-in-one:2024-06-09-cc2f9c5 - docker pull ghcr.io/hyperledger/cactus-fabric2-all-in-one:v1.0.0-rc.22024-03-03--issue-2945-fabric-v2-5-6 + docker pull ghcr.io/hyperledger-cacti/besu-all-in-one:v2.2.0-rc.2 + #docker pull ghcr.io/hyperledger/cactus-fabric2-all-in-one:v1.0.0-rc.22024-03-03--issue-2945-fabric-v2-5-6 /root/.nvm/versions/node/v18.18.2/bin/node -r ts-node/register /usr/src/app/cactus/examples/cactus-example-cbdc-bridging-backend/dist/lib/main/typescript/cbdc-bridging-app-cli.js } diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/json/openapi-bundled.json b/examples/cactus-example-cbdc-bridging-backend/src/main/json/openapi-bundled.json index 7f0c002..1bb9712 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/json/openapi-bundled.json +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/json/openapi-bundled.json @@ -65,7 +65,7 @@ "properties": { "assetType": { "type": "string", - "enum": ["FABRIC", "BESU"] + "enum": ["BESU_A", "BESU_B"] } } }, @@ -75,7 +75,7 @@ "properties": { "assetType": { "type": "string", - "enum": ["FABRIC", "BESU"] + "enum": ["BESU_A", "BESU_B"] } } }, @@ -193,7 +193,7 @@ "in": "query", "schema": { "type": "string", - "enum": ["FABRIC", "BESU"] + "enum": ["BESU_A", "BESU_B"] }, "description": "Unique identifier for the session." } @@ -269,7 +269,7 @@ "in": "query", "schema": { "type": "string", - "enum": ["FABRIC", "BESU"] + "enum": ["BESU_A", "BESU_B"] } } ], @@ -338,7 +338,7 @@ "properties": { "assetType": { "type": "string", - "enum": ["FABRIC", "BESU"] + "enum": ["BESU_A", "BESU_B"] } } } @@ -446,7 +446,7 @@ "properties": { "assetType": { "type": "string", - "enum": ["FABRIC", "BESU"] + "enum": ["BESU_A", "BESU_B"] } } } @@ -545,7 +545,7 @@ "in": "query", "schema": { "type": "string", - "enum": ["FABRIC", "BESU"] + "enum": ["BESU_A", "BESU_B"] } } ], @@ -607,7 +607,7 @@ "properties": { "assetType": { "type": "string", - "enum": ["FABRIC", "BESU"] + "enum": ["BESU_A", "BESU_B"] } } }, @@ -617,7 +617,7 @@ "properties": { "assetType": { "type": "string", - "enum": ["FABRIC", "BESU"] + "enum": ["BESU_A", "BESU_B"] } } }, diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/cbdc-bridging-app-cli.ts b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/cbdc-bridging-app-cli.ts old mode 100644 new mode 100755 diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/generated/openapi/typescript-axios/.openapi-generator/FILES b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/generated/openapi/typescript-axios/.openapi-generator/FILES index 16b445e..a80cd4f 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/generated/openapi/typescript-axios/.openapi-generator/FILES +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/generated/openapi/typescript-axios/.openapi-generator/FILES @@ -1,6 +1,5 @@ .gitignore .npmignore -.openapi-generator-ignore api.ts base.ts common.ts diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/generated/openapi/typescript-axios/api.ts b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/generated/openapi/typescript-axios/api.ts index 6cdfa7d..8c41287 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/generated/openapi/typescript-axios/api.ts +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/generated/openapi/typescript-axios/api.ts @@ -20,6 +20,10 @@ import globalAxios from "axios"; import { DUMMY_BASE_URL, assertParamExists, + setApiKeyToObject, + setBasicAuthToObject, + setBearerAuthToObject, + setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, @@ -27,7 +31,13 @@ import { } from "./common"; import type { RequestArgs } from "./base"; // @ts-ignore -import { BASE_PATH, BaseAPI, operationServerMap } from "./base"; +import { + BASE_PATH, + COLLECTION_FORMATS, + BaseAPI, + RequiredError, + operationServerMap, +} from "./base"; /** * Request schema for approving a transaction. @@ -256,8 +266,8 @@ export interface TransactRequestSourceChain { } export const TransactRequestSourceChainAssetTypeEnum = { - Fabric: "FABRIC", - Besu: "BESU", + A: "BESU_A", + B: "BESU_B", } as const; export type TransactRequestSourceChainAssetTypeEnum = @@ -620,8 +630,8 @@ export class GetAmountApprovedApi extends BaseAPI { * @export */ export const GetAmountApprovedChainEnum = { - Fabric: "FABRIC", - Besu: "BESU", + A: "BESU_A", + B: "BESU_B", } as const; export type GetAmountApprovedChainEnum = (typeof GetAmountApprovedChainEnum)[keyof typeof GetAmountApprovedChainEnum]; @@ -793,8 +803,8 @@ export class GetBalanceApi extends BaseAPI { * @export */ export const GetBalanceChainEnum = { - Fabric: "FABRIC", - Besu: "BESU", + A: "BESU_A", + B: "BESU_B", } as const; export type GetBalanceChainEnum = (typeof GetBalanceChainEnum)[keyof typeof GetBalanceChainEnum]; @@ -957,8 +967,8 @@ export class GetSessionsReferencesApi extends BaseAPI { * @export */ export const GetSessionsReferencesLedgerEnum = { - Fabric: "FABRIC", - Besu: "BESU", + A: "BESU_A", + B: "BESU_B", } as const; export type GetSessionsReferencesLedgerEnum = (typeof GetSessionsReferencesLedgerEnum)[keyof typeof GetSessionsReferencesLedgerEnum]; diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/cbdc-besu-environment.ts b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/cbdc-besu-environment.ts index dce1e86..18de3fe 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/cbdc-besu-environment.ts +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/cbdc-besu-environment.ts @@ -33,6 +33,14 @@ import CryptoMaterial from "../../../crypto-material/crypto-material.json"; import { getUserFromPseudonim } from "./utils"; import ExampleOntology from "../../json/ontologies/ontology-satp-erc20-interact-besu.json"; +export interface IBesuEnvironmentOptions { + dockerNetwork?: string; + networkId?: string; + assetId?: string; + assetReferenceId?: string; + label?: string; +} + export class BesuEnvironment { public static readonly BESU_ASSET_ID: string = "BesuCBDCAsset"; public static readonly BESU_NETWORK_ID: string = "BesuLedgerCBDCNetwork"; @@ -57,25 +65,36 @@ export class BesuEnvironment { public keychainPlugin1!: PluginKeychainMemory; public keychainPlugin2!: PluginKeychainMemory; - public readonly network: NetworkId = { - id: BesuEnvironment.BESU_NETWORK_ID, - ledgerType: LedgerType.Besu2X, - }; + public readonly network: NetworkId; + public readonly assetId: string; + public readonly assetReferenceId: string; private dockerContainerIP?: string; private approveAddress?: string; private readonly logLevel: LogLevelDesc; + private readonly label: string; - public constructor(logLevel: LogLevelDesc, network?: string) { - if (network) { - this.dockerNetwork = network; - } + public constructor( + logLevel: LogLevelDesc, + options: IBesuEnvironmentOptions = {}, + ) { + this.dockerNetwork = options.dockerNetwork ?? this.dockerNetwork; + this.assetId = options.assetId ?? BesuEnvironment.BESU_ASSET_ID; + this.assetReferenceId = + options.assetReferenceId ?? BesuEnvironment.BESU_ASSET_REFERENCE_ID; + this.label = options.label ?? "BesuEnvironment"; + this.network = { + id: options.networkId ?? BesuEnvironment.BESU_NETWORK_ID, + ledgerType: LedgerType.Besu2X, + }; this.logLevel = logLevel || "INFO"; - const label = "BesuEnvironment"; - this.log = LoggerProvider.getOrCreate({ level: this.logLevel, label }); + this.log = LoggerProvider.getOrCreate({ + level: this.logLevel, + label: this.label, + }); } // Initializes the Besu ledger, accounts, and connector for testing @@ -84,8 +103,8 @@ export class BesuEnvironment { emitContainerLogs: true, envVars: ["BESU_NETWORK=dev"], networkName: this.dockerNetwork, - containerImageVersion: "2024-06-09-cc2f9c5", - containerImageName: "ghcr.io/hyperledger/cactus-besu-all-in-one", + containerImageVersion: "v2.2.0-rc.2", + containerImageName: "ghcr.io/hyperledger-cacti/besu-all-in-one", }); const docker = new Docker(); @@ -226,6 +245,11 @@ export class BesuEnvironment { } } + // Backwards-compatibility alias retained for callers not yet migrated. + public async mintTokensFabric(user: string, amount: string): Promise { + await this.mintTokensBesu(user, parseInt(amount)); + } + public async giveRoleToBridge(wrapperAddress: string): Promise { const giveRoleRes = await this.connector?.invokeContract({ contractName: BesuEnvironment.SATP_CONTRACT_NAME, @@ -321,7 +345,7 @@ export class BesuEnvironment { return parseInt(response.callOutput); } catch (error) { this.log.error( - `BESU - Error getting balance user: ${frontendUser} with error: ${error}`, + `${this.label} - Error getting balance user: ${frontendUser} with error: ${error}`, ); return -1; } @@ -357,11 +381,24 @@ export class BesuEnvironment { gas: 1000000, }); } catch (error) { - this.log.error("Failed to transfer tokens"); + this.log.error(error); throw new Error("Failed to transfer tokens"); } } + // Backwards-compatibility alias retained for callers not yet migrated. + public async transferTokensFabric( + frontendUserFrom: string, + frontendUserTo: string, + amount: string, + ): Promise { + await this.transferTokensBesu( + frontendUserFrom, + frontendUserTo, + parseInt(amount), + ); + } + public async approveNTokensBesu(frontendUserFrom: string, amount: number) { const from = this.getEthAddress(frontendUserFrom); this.log.debug(`Approving Besu tokens for user: ${frontendUserFrom}`); @@ -390,6 +427,14 @@ export class BesuEnvironment { } } + // Backwards-compatibility alias retained for callers not yet migrated. + public async approveNTokensFabric( + frontendUserFrom: string, + amount: string, + ): Promise { + return this.approveNTokensBesu(frontendUserFrom, parseInt(amount)); + } + public async getAmountApprovedBesu(frontendUser: string) { const from = this.getEthAddress(frontendUser); this.log.debug(`Getting approved balance for user: ${frontendUser}`); @@ -421,22 +466,32 @@ export class BesuEnvironment { } } + // Backwards-compatibility alias retained for callers not yet migrated. + public async getAmountApprovedFabric(frontendUser: string): Promise { + return this.getAmountApprovedBesu(frontendUser); + } + public getBesuAsset(owner: string, amount: string) { return { owner: owner, contractName: BesuEnvironment.SATP_CONTRACT_NAME, contractAddress: this.assetContractAddress, - id: BesuEnvironment.BESU_ASSET_ID, - referenceId: BesuEnvironment.BESU_ASSET_REFERENCE_ID, + id: this.assetId, + referenceId: this.assetReferenceId, amount, tokenType: TokenType.Fungible, networkId: { - id: BesuEnvironment.BESU_NETWORK_ID, + id: this.network.id, ledgerType: NetworkIdLedgerTypeEnum.Besu2X, }, } as TransactRequestSourceAsset; } + // Backwards-compatibility alias retained for callers not yet migrated. + public getFabricAsset(owner: string, amount: string) { + return this.getBesuAsset(owner, amount); + } + public getEthAddress(user: string) { switch (getUserFromPseudonim(user)) { case "userA": @@ -450,6 +505,16 @@ export class BesuEnvironment { } } + // Backwards-compatibility alias retained for callers not yet migrated. + public getFabricId(user: string): string { + return this.getEthAddress(user); + } + + // Backwards-compatibility alias retained for callers not yet migrated. + public async getFabricBalance(frontendUser: string): Promise { + return this.getBesuBalance(frontendUser); + } + private getEthUserPrKey(user: string) { switch (getUserFromPseudonim(user)) { case "userA": diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/cbdc-bridging-app-dummy-infrastructure.ts b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/cbdc-bridging-app-dummy-infrastructure.ts index 596e1ed..a0f3fdb 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/cbdc-bridging-app-dummy-infrastructure.ts +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/cbdc-bridging-app-dummy-infrastructure.ts @@ -37,7 +37,6 @@ import { TransactionApi, TransactRequest, } from "@hyperledger-cacti/cactus-plugin-satp-hermes"; -import { FabricEnvironment } from "./cbdc-fabric-environment"; import { BesuEnvironment } from "./cbdc-besu-environment"; import { Container } from "dockerode"; import { createPGDatabase, setupDBTable } from "./db-infrastructure"; @@ -46,7 +45,7 @@ import { DEFAULT_PORT_GATEWAY_SERVER, DEFAULT_PORT_GATEWAY_OAPI, } from "@hyperledger-cacti/cactus-plugin-satp-hermes"; -import { getTestConfigFilesDirectory, setupGatewayDockerFiles } from "./utils"; +import { setupGatewayDockerFiles } from "./utils"; import { ISATPGatewayRunnerConstructorOptions, SATPGatewayRunner, @@ -55,6 +54,8 @@ import { import Docker from "dockerode"; import http from "node:http"; +import { createMonitorSystem } from "./monitoring-infrastructure"; +import { LedgerId } from "../types"; export interface ICbdcBridgingAppDummyInfrastructureOptions { logLevel?: LogLevelDesc; @@ -65,15 +66,14 @@ export class CbdcBridgingAppDummyInfrastructure { private static readonly networkName = "CDBC_Network"; - private static readonly DOCKER_IMAGE_VERSION = "612643f9f-2026-06-07"; - private static readonly DOCKER_IMAGE_NAME = - "rafaelapb/cacti-satp-hermes-gateway"; + private static readonly DOCKER_IMAGE_VERSION = "2026-02-02-1458"; + private static readonly DOCKER_IMAGE_NAME = "tomassilva2187/satp-gateway"; private readonly log: Logger; private readonly logLevel: LogLevelDesc; - private readonly besuEnvironment: BesuEnvironment; - private readonly fabricEnvironment: FabricEnvironment; + private readonly besuAEnvironment: BesuEnvironment; + private readonly besuBEnvironment: BesuEnvironment; private db_local_config1?: Knex.Config; private db_remote_config1?: Knex.Config; @@ -83,20 +83,21 @@ export class CbdcBridgingAppDummyInfrastructure { private db_remote1?: Container; private db_local2?: Container; private db_remote2?: Container; + private monitorService?: Container; - private besuGatewayRunner?: SATPGatewayRunner; - private fabricGatewayRunner?: SATPGatewayRunner; + private besuAGatewayRunner?: SATPGatewayRunner; + private besuBGatewayRunner?: SATPGatewayRunner; - private besuGatewayAddress = "besu-gateway.satp-hermes"; - private fabricGatewayAddress = "fabric-gateway.satp-hermes"; + private besuAGatewayAddress = "besu-a-gateway.satp-hermes"; + private besuBGatewayAddress = "besu-b-gateway.satp-hermes"; - private besuGatewayApproveAddress?: string; - private fabricGatewayApproveAddress?: string; + private besuAGatewayApproveAddress?: string; + private besuBGatewayApproveAddress?: string; - private besuGatewayTransactApi?: TransactionApi; - private besuGatewayAdminApi?: AdminApi; - private fabricGatewayTransactApi?: TransactionApi; - private fabricGatewayAdminApi?: AdminApi; + private besuAGatewayTransactApi?: TransactionApi; + private besuAGatewayAdminApi?: AdminApi; + private besuBGatewayTransactApi?: TransactionApi; + private besuBGatewayAdminApi?: AdminApi; private endpoints?: IWebServiceEndpoint[]; @@ -118,14 +119,20 @@ export class CbdcBridgingAppDummyInfrastructure { this.log = LoggerProvider.getOrCreate({ level: this.logLevel, label }); - this.besuEnvironment = new BesuEnvironment( - this.logLevel, - CbdcBridgingAppDummyInfrastructure.networkName, - ); - this.fabricEnvironment = new FabricEnvironment( - this.logLevel, - CbdcBridgingAppDummyInfrastructure.networkName, - ); + this.besuAEnvironment = new BesuEnvironment(this.logLevel, { + dockerNetwork: CbdcBridgingAppDummyInfrastructure.networkName, + networkId: "BesuLedgerCBDCNetworkA", + assetId: "BesuCBDCAssetA", + assetReferenceId: "SATP-ERC20-BESU", + label: "BesuEnvironmentA", + }); + this.besuBEnvironment = new BesuEnvironment(this.logLevel, { + dockerNetwork: CbdcBridgingAppDummyInfrastructure.networkName, + networkId: "BesuLedgerCBDCNetworkB", + assetId: "BesuCBDCAssetB", + assetReferenceId: "SATP-ERC20-BESU", + label: "BesuEnvironmentB", + }); } public async start(): Promise { @@ -146,16 +153,18 @@ export class CbdcBridgingAppDummyInfrastructure { } await Promise.all([ - this.besuEnvironment.init(), - this.fabricEnvironment.init(), + this.besuAEnvironment.init(), + this.besuBEnvironment.init(), ]); this.log.info(`Deploying contracts...`); await Promise.all([ - this.besuEnvironment.deployAndSetupContracts(), - this.fabricEnvironment.deployAndSetupContracts(), + this.besuAEnvironment.deployAndSetupContracts(), + this.besuBEnvironment.deployAndSetupContracts(), ]); this.log.info(`Creating databases...`); await this.createDBs(); + this.log.info(`Creating Monitoring Service...`); + await this.createMonitorSystem(); this.log.info(`Creating SATP Gateways...`); await this.createSATPGateways(); this.log.debug("creating api server..."); @@ -171,12 +180,12 @@ export class CbdcBridgingAppDummyInfrastructure { try { this.log.info(`Stopping...`); await Promise.all([ - this.besuGatewayRunner?.stop(), - this.fabricGatewayRunner?.stop(), + this.besuAGatewayRunner?.stop(), + this.besuBGatewayRunner?.stop(), ]); await Promise.all([ - this.besuGatewayRunner?.destroy(), - this.fabricGatewayRunner?.destroy(), + this.besuAGatewayRunner?.destroy(), + this.besuBGatewayRunner?.destroy(), ]); await this.db_local1?.stop(); @@ -187,10 +196,12 @@ export class CbdcBridgingAppDummyInfrastructure { await this.db_local2?.remove(); await this.db_remote2?.stop(); await this.db_remote2?.remove(); + await this.monitorService?.stop(); + await this.monitorService?.remove(); await Promise.all([ - this.besuEnvironment.tearDown(), - this.fabricEnvironment.tearDown(), + this.besuAEnvironment.tearDown(), + this.besuBEnvironment.tearDown(), ]); if (this.webServer) { @@ -247,15 +258,19 @@ export class CbdcBridgingAppDummyInfrastructure { await setupDBTable(this.db_remote_config2); } + private async createMonitorSystem(): Promise { + this.monitorService = await createMonitorSystem({}); + } + public async createSATPGateways(): Promise { const fnTag = `${this.className}#createSATPGateways()`; this.log.info(`${fnTag} Creating SATP Gateways...`); - const fabricGatewayKeyPair = Secp256k1Keys.generateKeyPairsBuffer(); - const besuGatewayKeyPair = Secp256k1Keys.generateKeyPairsBuffer(); + const besuAGatewayKeyPair = Secp256k1Keys.generateKeyPairsBuffer(); + const besuBGatewayKeyPair = Secp256k1Keys.generateKeyPairsBuffer(); - const fabricGatewayIdentity = { - id: "FabricGateway", + const besuAGatewayIdentity = { + id: "BesuAGateway", name: "CustomGateway", version: [ { @@ -266,20 +281,20 @@ export class CbdcBridgingAppDummyInfrastructure { ], connectedDLTs: [ { - id: FabricEnvironment.FABRIC_NETWORK_ID, - ledgerType: LedgerType.Fabric2, + id: this.besuAEnvironment.network.id, + ledgerType: LedgerType.Besu2X, }, ], proofID: "mockProofID10", - address: `http://${this.fabricGatewayAddress}`, + address: `http://${this.besuAGatewayAddress}`, gatewayClientPort: DEFAULT_PORT_GATEWAY_CLIENT, gatewayServerPort: DEFAULT_PORT_GATEWAY_SERVER, gatewayOapiPort: DEFAULT_PORT_GATEWAY_OAPI, - pubKey: Buffer.from(fabricGatewayKeyPair.publicKey).toString("hex"), + pubKey: Buffer.from(besuAGatewayKeyPair.publicKey).toString("hex"), } as GatewayIdentity; - const besuGatewayIdentity = { - id: "BesuGateway", + const besuBGatewayIdentity = { + id: "BesuBGateway", name: "CustomGateway", version: [ { @@ -290,28 +305,27 @@ export class CbdcBridgingAppDummyInfrastructure { ], connectedDLTs: [ { - id: BesuEnvironment.BESU_NETWORK_ID, + id: this.besuBEnvironment.network.id, ledgerType: LedgerType.Besu2X, }, ], proofID: "mockProofID11", - address: `http://${this.besuGatewayAddress}`, + address: `http://${this.besuBGatewayAddress}`, + // Keep in-container SATP ports at defaults to match the gateway image's + // internal listeners and healthcheck expectations. gatewayClientPort: DEFAULT_PORT_GATEWAY_CLIENT, gatewayServerPort: DEFAULT_PORT_GATEWAY_SERVER, gatewayOapiPort: DEFAULT_PORT_GATEWAY_OAPI, - pubKey: Buffer.from(besuGatewayKeyPair.publicKey).toString("hex"), + pubKey: Buffer.from(besuBGatewayKeyPair.publicKey).toString("hex"), } as GatewayIdentity; - const fabricConfig = await this.fabricEnvironment.createFabricDockerConfig( - getTestConfigFilesDirectory(`gateway-info-${fabricGatewayIdentity.id}`), - ); + const besuAConfig = await this.besuAEnvironment.createBesuDockerConfig(); + const besuBConfig = await this.besuBEnvironment.createBesuDockerConfig(); - const besuConfig = await this.besuEnvironment.createBesuDockerConfig(); - - const besuGatewayOptions: Partial = { - gid: besuGatewayIdentity, + const besuAGatewayOptions: Partial = { + gid: besuAGatewayIdentity, logLevel: this.logLevel, - counterPartyGateways: [fabricGatewayIdentity], + counterPartyGateways: [besuBGatewayIdentity], localRepository: this.db_local_config1 ? ({ client: this.db_local_config1.client, @@ -326,20 +340,20 @@ export class CbdcBridgingAppDummyInfrastructure { : undefined, environment: "production", ccConfig: { - bridgeConfig: [besuConfig], + bridgeConfig: [besuAConfig], }, enableCrashRecovery: false, keyPair: { - publicKey: Buffer.from(besuGatewayKeyPair.publicKey).toString("hex"), - privateKey: besuGatewayKeyPair.privateKey.toString("hex"), + publicKey: Buffer.from(besuAGatewayKeyPair.publicKey).toString("hex"), + privateKey: besuAGatewayKeyPair.privateKey.toString("hex"), }, ontologyPath: "/opt/cacti/satp-hermes/ontologies", }; - const fabricGatewayOptions: Partial = { - gid: fabricGatewayIdentity, + const besuBGatewayOptions: Partial = { + gid: besuBGatewayIdentity, logLevel: this.logLevel, - counterPartyGateways: [besuGatewayIdentity], + counterPartyGateways: [besuAGatewayIdentity], localRepository: this.db_local_config2 ? ({ client: this.db_local_config2.client, @@ -354,21 +368,22 @@ export class CbdcBridgingAppDummyInfrastructure { : undefined, environment: "production", ccConfig: { - bridgeConfig: [fabricConfig], + bridgeConfig: [besuBConfig], }, enableCrashRecovery: false, keyPair: { - publicKey: Buffer.from(fabricGatewayKeyPair.publicKey).toString("hex"), - privateKey: fabricGatewayKeyPair.privateKey.toString("hex"), + publicKey: Buffer.from(besuBGatewayKeyPair.publicKey).toString("hex"), + privateKey: besuBGatewayKeyPair.privateKey.toString("hex"), }, ontologyPath: "/opt/cacti/satp-hermes/ontologies", }; - const besuGatewayDockerFiles = setupGatewayDockerFiles(besuGatewayOptions); - const fabricGatewayDockerFiles = - setupGatewayDockerFiles(fabricGatewayOptions); + const besuAGatewayDockerFiles = + setupGatewayDockerFiles(besuAGatewayOptions); + const besuBGatewayDockerFiles = + setupGatewayDockerFiles(besuBGatewayOptions); - const besuGatewayRunnerOptions: ISATPGatewayRunnerConstructorOptions = { + const besuAGatewayRunnerOptions: ISATPGatewayRunnerConstructorOptions = { containerImageVersion: CbdcBridgingAppDummyInfrastructure.DOCKER_IMAGE_VERSION, containerImageName: CbdcBridgingAppDummyInfrastructure.DOCKER_IMAGE_NAME, @@ -377,14 +392,14 @@ export class CbdcBridgingAppDummyInfrastructure { oapiPort: DEFAULT_PORT_GATEWAY_OAPI, logLevel: this.logLevel, emitContainerLogs: true, - configPath: besuGatewayDockerFiles.configPath, - logsPath: besuGatewayDockerFiles.logsPath, - ontologiesPath: besuGatewayDockerFiles.ontologiesPath, + configPath: besuAGatewayDockerFiles.configPath, + logsPath: besuAGatewayDockerFiles.logsPath, + ontologiesPath: besuAGatewayDockerFiles.ontologiesPath, networkName: CbdcBridgingAppDummyInfrastructure.networkName, - url: this.besuGatewayAddress, + url: this.besuAGatewayAddress, }; - const fabricGatewayRunnerOptions: ISATPGatewayRunnerConstructorOptions = { + const besuBGatewayRunnerOptions: ISATPGatewayRunnerConstructorOptions = { containerImageVersion: CbdcBridgingAppDummyInfrastructure.DOCKER_IMAGE_VERSION, containerImageName: CbdcBridgingAppDummyInfrastructure.DOCKER_IMAGE_NAME, @@ -393,115 +408,163 @@ export class CbdcBridgingAppDummyInfrastructure { oapiPort: DEFAULT_PORT_GATEWAY_OAPI + 100, logLevel: this.logLevel, emitContainerLogs: true, - configPath: fabricGatewayDockerFiles.configPath, - logsPath: fabricGatewayDockerFiles.logsPath, - ontologiesPath: fabricGatewayDockerFiles.ontologiesPath, + configPath: besuBGatewayDockerFiles.configPath, + logsPath: besuBGatewayDockerFiles.logsPath, + ontologiesPath: besuBGatewayDockerFiles.ontologiesPath, networkName: CbdcBridgingAppDummyInfrastructure.networkName, - url: this.fabricGatewayAddress, + url: this.besuBGatewayAddress, }; - this.besuGatewayRunner = new SATPGatewayRunner(besuGatewayRunnerOptions); + this.besuAGatewayRunner = new SATPGatewayRunner(besuAGatewayRunnerOptions); this.log.debug("starting gatewayRunner..."); - await this.besuGatewayRunner.start(); + await this.besuAGatewayRunner.start(); this.log.debug("gatewayRunner started successfully"); - this.fabricGatewayRunner = new SATPGatewayRunner( - fabricGatewayRunnerOptions, - ); + this.besuBGatewayRunner = new SATPGatewayRunner(besuBGatewayRunnerOptions); this.log.debug("starting gatewayRunner..."); - await this.fabricGatewayRunner.start(); + await this.besuBGatewayRunner.start(); this.log.debug("gatewayRunner started successfully"); - const besuGatewayApproveAddressApi = new GetApproveAddressApi( + const besuAGatewayApproveAddressApi = new GetApproveAddressApi( new Configuration({ - basePath: `http://${await this.besuGatewayRunner.getOApiHost()}`, + basePath: `http://${await this.besuAGatewayRunner.getOApiHost()}`, }), ); - const reqApproveBesuAddress = - await besuGatewayApproveAddressApi.getApproveAddress( + const reqApproveBesuAAddress = + await besuAGatewayApproveAddressApi.getApproveAddress( { - id: BesuEnvironment.BESU_NETWORK_ID, + id: this.besuAEnvironment.network.id, ledgerType: LedgerType.Besu2X, }, TokenType.Fungible, ); - if (!reqApproveBesuAddress?.data.approveAddress) { + if (!reqApproveBesuAAddress?.data.approveAddress) { throw new Error("Approve address is undefined"); } - this.besuGatewayApproveAddress = reqApproveBesuAddress.data.approveAddress; - if (!this.besuGatewayApproveAddress) { - throw new Error("Besu approve address is undefined"); - } + this.besuAGatewayApproveAddress = + reqApproveBesuAAddress.data.approveAddress; + this.besuAEnvironment.setApproveAddress(this.besuAGatewayApproveAddress); - this.besuEnvironment.setApproveAddress( - reqApproveBesuAddress.data.approveAddress, - ); - - const fabricGatewayApproveAddressApi = new GetApproveAddressApi( + const besuBGatewayApproveAddressApi = new GetApproveAddressApi( new Configuration({ - basePath: `http://${await this.fabricGatewayRunner.getOApiHost()}`, + basePath: `http://${await this.besuBGatewayRunner.getOApiHost()}`, }), ); - const reqApproveFabricAddress = - await fabricGatewayApproveAddressApi.getApproveAddress( + const reqApproveBesuBAddress = + await besuBGatewayApproveAddressApi.getApproveAddress( { - id: FabricEnvironment.FABRIC_NETWORK_ID, - ledgerType: LedgerType.Fabric2, + id: this.besuBEnvironment.network.id, + ledgerType: LedgerType.Besu2X, }, TokenType.Fungible, ); - if (!reqApproveFabricAddress?.data.approveAddress) { + if (!reqApproveBesuBAddress?.data.approveAddress) { throw new Error("Approve address is undefined"); } - this.fabricGatewayApproveAddress = - reqApproveFabricAddress.data.approveAddress; + this.besuBGatewayApproveAddress = + reqApproveBesuBAddress.data.approveAddress; + this.besuBEnvironment.setApproveAddress(this.besuBGatewayApproveAddress); - if (!this.fabricGatewayApproveAddress) { - throw new Error("Fabric approve address is undefined"); + if (!this.besuAGatewayApproveAddress) { + throw new Error("Besu A approve address is undefined"); } - this.fabricEnvironment.setApproveAddress(this.fabricGatewayApproveAddress); - - if (!this.besuGatewayApproveAddress) { - throw new Error("Besu approve address is undefined"); + if (!this.besuBGatewayApproveAddress) { + throw new Error("Besu B approve address is undefined"); } - await this.besuEnvironment.giveRoleToBridge(this.besuGatewayApproveAddress); - await this.fabricEnvironment.giveRoleToBridge("Org2MSP"); + await this.besuAEnvironment.giveRoleToBridge( + this.besuAGatewayApproveAddress, + ); + await this.besuBEnvironment.giveRoleToBridge( + this.besuBGatewayApproveAddress, + ); - this.besuGatewayTransactApi = new TransactionApi( + this.besuAGatewayTransactApi = new TransactionApi( new Configuration({ - basePath: `http://${await this.besuGatewayRunner.getOApiHost()}`, + basePath: `http://${await this.besuAGatewayRunner.getOApiHost()}`, }), ); - this.besuGatewayAdminApi = new AdminApi( + this.besuAGatewayAdminApi = new AdminApi( new Configuration({ - basePath: `http://${await this.besuGatewayRunner.getOApiHost()}`, + basePath: `http://${await this.besuAGatewayRunner.getOApiHost()}`, }), ); - this.fabricGatewayTransactApi = new TransactionApi( + this.besuBGatewayTransactApi = new TransactionApi( new Configuration({ - basePath: `http://${await this.fabricGatewayRunner.getOApiHost()}`, + basePath: `http://${await this.besuBGatewayRunner.getOApiHost()}`, }), ); - this.fabricGatewayAdminApi = new AdminApi( + this.besuBGatewayAdminApi = new AdminApi( new Configuration({ - basePath: `http://${await this.fabricGatewayRunner.getOApiHost()}`, + basePath: `http://${await this.besuBGatewayRunner.getOApiHost()}`, }), ); this.log.info(`SATP Gateways created`); } - public getFabricEnvironment(): FabricEnvironment { - return this.fabricEnvironment; + public getBesuAEnvironment(): BesuEnvironment { + return this.besuAEnvironment; + } + + public getBesuBEnvironment(): BesuEnvironment { + return this.besuBEnvironment; } + + // Backwards-compatible accessor retained for callers that still use this name. public getBesuEnvironment(): BesuEnvironment { - return this.besuEnvironment; + return this.besuAEnvironment; + } + + // Backwards-compatible accessor retained for callers that still use this name. + public getFabricEnvironment(): BesuEnvironment { + return this.besuBEnvironment; + } + + public async mintTokens( + ledgerId: LedgerId, + user: string, + amount: number, + ): Promise { + const ledger = this.getEnvironmentByLedgerId(ledgerId); + await ledger.mintTokensBesu(user, amount); + } + + public async approveTokens( + ledgerId: LedgerId, + user: string, + amount: number, + ): Promise { + const ledger = this.getEnvironmentByLedgerId(ledgerId); + await ledger.approveNTokensBesu(user, amount); + } + + public async getBalance(ledgerId: LedgerId, user: string): Promise { + const ledger = this.getEnvironmentByLedgerId(ledgerId); + return ledger.getBesuBalance(user); + } + + public async getAmountApproved( + ledgerId: LedgerId, + user: string, + ): Promise { + const ledger = this.getEnvironmentByLedgerId(ledgerId); + return ledger.getAmountApprovedBesu(user); + } + + public async transferTokens( + ledgerId: LedgerId, + from: string, + to: string, + amount: number, + ): Promise { + const ledger = this.getEnvironmentByLedgerId(ledgerId); + await ledger.transferTokensBesu(from, to, amount); } private async createApiServer(): Promise { @@ -595,12 +658,7 @@ export class CbdcBridgingAppDummyInfrastructure { public async getSessionsData(gateway: string): Promise { this.log.debug(`Getting sessions data from ${gateway}`); - let api; - if (gateway === "FABRIC") { - api = this.fabricGatewayAdminApi; - } else { - api = this.besuGatewayAdminApi; - } + const api = this.getAdminApiByLedgerId(gateway as LedgerId); try { if (api === undefined) { throw new Error("API is undefined"); @@ -669,53 +727,24 @@ export class CbdcBridgingAppDummyInfrastructure { this.log.debug( `Bridging tokens from ${sourceChain} to ${destinationChain}`, ); - let sourceAsset; - let receiverAsset; - - let api; - - if (sourceChain === "FABRIC") { - const fabricSenderAddress = this.fabricEnvironment.getFabricId(sender); - if (!fabricSenderAddress) { - throw new Error(`Fabric sender address not found for ${sender}`); - } - sourceAsset = this.fabricEnvironment.getFabricAsset( - fabricSenderAddress, - amount.toString(), - ); - api = this.fabricGatewayTransactApi; - } else { - const besuSenderAddress = this.besuEnvironment.getEthAddress(sender); - if (!besuSenderAddress) { - throw new Error(`Besu sender address not found for ${sender}`); - } - sourceAsset = this.besuEnvironment.getBesuAsset( - besuSenderAddress, - amount.toString(), + if (sourceChain === destinationChain) { + throw new Error( + `Bridge operation requires different ledgers. Received ${sourceChain}`, ); - api = this.besuGatewayTransactApi; } - if (destinationChain === "BESU") { - const besuReceiverAddress = this.besuEnvironment.getEthAddress(recipient); - if (!besuReceiverAddress) { - throw new Error(`Besu recipient address not found for ${recipient}`); - } - receiverAsset = this.besuEnvironment.getBesuAsset( - besuReceiverAddress, - amount.toString(), - ); - } else { - const fabricReceiverAddress = - this.fabricEnvironment.getFabricId(recipient); - if (!fabricReceiverAddress) { - throw new Error(`Fabric recipient address not found for ${recipient}`); - } - receiverAsset = this.fabricEnvironment.getFabricAsset( - fabricReceiverAddress, - amount.toString(), - ); - } + const sourceLedger = this.getEnvironmentByLedgerId(sourceChain as LedgerId); + const destinationLedger = this.getEnvironmentByLedgerId( + destinationChain as LedgerId, + ); + const sourceAddress = sourceLedger.getEthAddress(sender); + const destinationAddress = destinationLedger.getEthAddress(recipient); + const sourceAsset = sourceLedger.getBesuAsset(sourceAddress, `${amount}`); + const receiverAsset = destinationLedger.getBesuAsset( + destinationAddress, + `${amount}`, + ); + const api = this.getTransactApiByLedgerId(sourceChain as LedgerId); if (api === undefined) { throw new Error("API is undefined"); @@ -735,4 +764,36 @@ export class CbdcBridgingAppDummyInfrastructure { throw error; } } + + private getEnvironmentByLedgerId(ledgerId: LedgerId): BesuEnvironment { + if (ledgerId === "BESU_A") { + return this.besuAEnvironment; + } + if (ledgerId === "BESU_B") { + return this.besuBEnvironment; + } + throw new Error(`Unsupported ledger id: ${ledgerId}`); + } + + private getTransactApiByLedgerId( + ledgerId: LedgerId, + ): TransactionApi | undefined { + if (ledgerId === "BESU_A") { + return this.besuAGatewayTransactApi; + } + if (ledgerId === "BESU_B") { + return this.besuBGatewayTransactApi; + } + return undefined; + } + + private getAdminApiByLedgerId(ledgerId: LedgerId): AdminApi | undefined { + if (ledgerId === "BESU_A") { + return this.besuAGatewayAdminApi; + } + if (ledgerId === "BESU_B") { + return this.besuBGatewayAdminApi; + } + return undefined; + } } diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/cbdc-fabric-environment.ts b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/cbdc-fabric-environment.ts index 9124812..79d5ec5 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/cbdc-fabric-environment.ts +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/cbdc-fabric-environment.ts @@ -220,7 +220,18 @@ export class FabricEnvironment { "peer0", ); - const filePath = path.join(__dirname, "../../yml/resources/core.yml"); + let filePath: string; + if (process.cwd().includes("cactus-example-cbdc-bridging-backend")) { + // Running from the backend package folder + filePath = path.join(__dirname, "../../yml/resources/core.yml"); + } else { + // Running from root project + filePath = path.join( + __dirname, + "../../../../../src/main/yml/resources/core.yml", + ); + } + const buffer = await fs.readFile(filePath); this.coreFile = { body: buffer.toString("base64"), @@ -230,9 +241,20 @@ export class FabricEnvironment { // Deploys smart contracts and sets up configurations for testing public async deployAndSetupContracts() { - const satpContractRelPath = - "./fabric-contracts/satp-contract/chaincode-typescript"; - const satpContractDir = path.join(__dirname, satpContractRelPath); + let satpContractDir: string; + if (process.cwd().includes("cactus-example-cbdc-bridging-backend")) { + // Running from the backend package folder + satpContractDir = path.join( + __dirname, + "./fabric-contracts/satp-contract/chaincode-typescript", + ); + } else { + // Running from root project + satpContractDir = path.join( + __dirname, + "../../../../../src/main/typescript/infrastructure/fabric-contracts/satp-contract/chaincode-typescript", + ); + } // ├── package.json // ├── src @@ -451,7 +473,7 @@ export class FabricEnvironment { `Fabric - Minting tokens for user: ${frontendUser} is ${JSON.stringify(response)}`, ); } catch (error) { - this.log.error("Failed to mint tokens"); + this.log.error(error.msg); throw new Error("Failed to mint tokens"); } } @@ -565,7 +587,7 @@ export class FabricEnvironment { }, }); } catch (error) { - this.log.error("Failed to transfer tokens"); + this.log.error(error.msg); throw new Error("Failed to transfer tokens"); } } diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/fabric-contracts/satp-contract/chaincode-typescript/yarn.lock b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/fabric-contracts/satp-contract/chaincode-typescript/yarn.lock index 9f601bd..8e34479 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/fabric-contracts/satp-contract/chaincode-typescript/yarn.lock +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/fabric-contracts/satp-contract/chaincode-typescript/yarn.lock @@ -5,7 +5,17 @@ __metadata: version: 8 cacheKey: 10 -"@babel/code-frame@npm:^7.0.0": +"@ampproject/remapping@npm:^2.2.0": + version: 2.3.0 + resolution: "@ampproject/remapping@npm:2.3.0" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10/f3451525379c68a73eb0a1e65247fbf28c0cccd126d93af21c75fceff77773d43c0d4a2d51978fb131aff25b5f2cb41a9fe48cc296e61ae65e679c4f6918b0ab + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.2": version: 7.24.2 resolution: "@babel/code-frame@npm:7.24.2" dependencies: @@ -15,107 +25,140 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/code-frame@npm:7.29.7" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.29.7" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.1.1" - checksum: 10/84da552e51a55795a50b3589116edb2f9e368a647d266380683775f18effd9acd4521b0246bebd0b049a7f32af1f87b1e8475d3bcb665f876bd04ade8da99697 +"@babel/compat-data@npm:^7.23.5": + version: 7.24.4 + resolution: "@babel/compat-data@npm:7.24.4" + checksum: 10/e51faec0ac8259f03cc5029d2b4a944b4fee44cb5188c11530769d5beb81f384d031dba951febc3e33dbb48ceb8045b1184f5c1ac4c5f86ab1f5e951e9aaf7af languageName: node linkType: hard -"@babel/compat-data@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/compat-data@npm:7.29.7" - checksum: 10/ad2272714087f68970977f6e2b53597a8503fc9c3028c4a91686474bd77a707dd00903cdde4b73788972016d1bad4dc3fa4e5ff38e1ed8f1c3bde1095352973a - languageName: node - linkType: hard - -"@babel/core@npm:7.29.7": - version: 7.29.7 - resolution: "@babel/core@npm:7.29.7" - dependencies: - "@babel/code-frame": "npm:^7.29.7" - "@babel/generator": "npm:^7.29.7" - "@babel/helper-compilation-targets": "npm:^7.29.7" - "@babel/helper-module-transforms": "npm:^7.29.7" - "@babel/helpers": "npm:^7.29.7" - "@babel/parser": "npm:^7.29.7" - "@babel/template": "npm:^7.29.7" - "@babel/traverse": "npm:^7.29.7" - "@babel/types": "npm:^7.29.7" - "@jridgewell/remapping": "npm:^2.3.5" +"@babel/core@npm:^7.7.5": + version: 7.24.5 + resolution: "@babel/core@npm:7.24.5" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.24.2" + "@babel/generator": "npm:^7.24.5" + "@babel/helper-compilation-targets": "npm:^7.23.6" + "@babel/helper-module-transforms": "npm:^7.24.5" + "@babel/helpers": "npm:^7.24.5" + "@babel/parser": "npm:^7.24.5" + "@babel/template": "npm:^7.24.0" + "@babel/traverse": "npm:^7.24.5" + "@babel/types": "npm:^7.24.5" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10/38e71cf81db790b0bb2a3a0c8140c2b1c87576b61dc6be676de4fab8c3be871af590a739e8c489fe8e8f9a8e5899fa11e35e59e9e09d40b259c6a675f2f98928 + checksum: 10/b0d02c51f39cc4c6f8fcaab7052d17dea63aab36d7e2567bfbad074e5a027df737ebcaf3029c3a659bc719bbac806311c2e8786be1d686abd093c48a6068395c languageName: node linkType: hard -"@babel/generator@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/generator@npm:7.29.7" +"@babel/generator@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/generator@npm:7.24.5" dependencies: - "@babel/parser": "npm:^7.29.7" - "@babel/types": "npm:^7.29.7" - "@jridgewell/gen-mapping": "npm:^0.3.12" - "@jridgewell/trace-mapping": "npm:^0.3.28" - jsesc: "npm:^3.0.2" - checksum: 10/60fb0432ebeab791b2d68e5fc49da6f8e8b68bcc4751211ccf08ac0101e9dcaddefd0cbbbd488afb1c1517515c7c3e76f63d9b05d06deaeb008afd499488db9c + "@babel/types": "npm:^7.24.5" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^2.5.1" + checksum: 10/7a3782f1d2f824025a538444a0fce44f5b30a7b013984279561bcb3450eec91a41526533fd0b25b1a6fde627bebd0e645c0ea2aa907cc15c7f3da2d9eb71f069 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/helper-compilation-targets@npm:7.29.7" +"@babel/helper-compilation-targets@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helper-compilation-targets@npm:7.23.6" dependencies: - "@babel/compat-data": "npm:^7.29.7" - "@babel/helper-validator-option": "npm:^7.29.7" - browserslist: "npm:^4.24.0" + "@babel/compat-data": "npm:^7.23.5" + "@babel/helper-validator-option": "npm:^7.23.5" + browserslist: "npm:^4.22.2" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10/af9ed4299ad5cfbe48432a964f37cbbfc200bbeb0f8ba9cbc86448503fa929382d5161d32096274752230c9feb919c9ef595559498833da656fc6a8e24a62383 + checksum: 10/05595cd73087ddcd81b82d2f3297aac0c0422858dfdded43d304786cf680ec33e846e2317e6992d2c964ee61d93945cbf1fa8ec80b55aee5bfb159227fb02cb9 languageName: node linkType: hard -"@babel/helper-globals@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/helper-globals@npm:7.29.7" - checksum: 10/e53203e87ae24a45f59639edea0c429bc3c63c6d74f1862fe60a35032d89478e7511d2f34855da0fcb65782668d72e59e93d1de5bc00121ba9bc1aa38f1f0ad3 +"@babel/helper-environment-visitor@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-environment-visitor@npm:7.22.20" + checksum: 10/d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/helper-module-imports@npm:7.29.7" +"@babel/helper-function-name@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-function-name@npm:7.23.0" dependencies: - "@babel/traverse": "npm:^7.29.7" - "@babel/types": "npm:^7.29.7" - checksum: 10/28ec6f7efd99588d6eebfb25c9f1ccc34cb0cdb0839c4c0f08b3ec0105ccaefbe7e8b4f651f3f55a4f5c4fcb1d979bd32a9b8ee23e3e62163ea22aaa7ee0dfa1 + "@babel/template": "npm:^7.22.15" + "@babel/types": "npm:^7.23.0" + checksum: 10/7b2ae024cd7a09f19817daf99e0153b3bf2bc4ab344e197e8d13623d5e36117ed0b110914bc248faa64e8ccd3e97971ec7b41cc6fd6163a2b980220c58dcdf6d languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/helper-module-transforms@npm:7.29.7" +"@babel/helper-hoist-variables@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-hoist-variables@npm:7.22.5" dependencies: - "@babel/helper-module-imports": "npm:^7.29.7" - "@babel/helper-validator-identifier": "npm:^7.29.7" - "@babel/traverse": "npm:^7.29.7" + "@babel/types": "npm:^7.22.5" + checksum: 10/394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.24.3": + version: 7.24.3 + resolution: "@babel/helper-module-imports@npm:7.24.3" + dependencies: + "@babel/types": "npm:^7.24.0" + checksum: 10/42fe124130b78eeb4bb6af8c094aa749712be0f4606f46716ce74bc18a5ea91c918c547c8bb2307a2e4b33f163e4ad2cb6a7b45f80448e624eae45b597ea3499 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-module-transforms@npm:7.24.5" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-module-imports": "npm:^7.24.3" + "@babel/helper-simple-access": "npm:^7.24.5" + "@babel/helper-split-export-declaration": "npm:^7.24.5" + "@babel/helper-validator-identifier": "npm:^7.24.5" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10/33251b1fb44d726194a974a0078b1269511d130a2609357ff829b479e9e4dca96ecd5384c534a477095f665ffb01503d3e680699c2002e5b62e6ca1a272f1892 + checksum: 10/1a91e8abc2f427f8273ce3b99ef7b9c013eb3628221428553e0d4bc9c6db2e73bc4fc1b8535bd258544936accab9380e0d095f2449f913cad650ddee744b2124 + languageName: node + linkType: hard + +"@babel/helper-simple-access@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-simple-access@npm:7.24.5" + dependencies: + "@babel/types": "npm:^7.24.5" + checksum: 10/db8768a16592faa1bde9061cac3d903bdbb2ddb2a7e9fb73c5904daee1f1b1dc69ba4d249dc22c45885c0d4b54fd0356ee78e6d67a9a90330c7dd37e6cd3acff + languageName: node + linkType: hard + +"@babel/helper-split-export-declaration@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helper-split-export-declaration@npm:7.24.5" + dependencies: + "@babel/types": "npm:^7.24.5" + checksum: 10/84777b6304ef0fe6501038985b61aaa118082688aa54eca8265f14f3ae2e01adf137e9111f4eb9870e0e9bc23901e0b8859bb2a9e4362ddf89d05e1c409c2422 + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.24.1": + version: 7.24.1 + resolution: "@babel/helper-string-parser@npm:7.24.1" + checksum: 10/04c0ede77b908b43e6124753b48bc485528112a9335f0a21a226bff1ace75bb6e64fab24c85cb4b1610ef3494dacd1cb807caeb6b79a7b36c43d48c289b35949 languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/helper-string-parser@npm:7.29.7" - checksum: 10/4d8ef0ef7105f3d9fe4361137c8f42e5b4c7a52b5380b962762f2a528a1ba89064e2c6236090716ce34b63707b886ae0ebf36b2c2fcc2851f27e652febfc3648 +"@babel/helper-string-parser@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-string-parser@npm:7.24.7" + checksum: 10/603d8d962bbe89907aa99a8f19a006759ab7b2464615f20a6a22e3e2e8375af37ddd0e5175c9e622e1c4b2d83607ffb41055a59d0ce34404502af30fde573a5c languageName: node linkType: hard @@ -126,27 +169,28 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/helper-validator-identifier@npm:7.29.7" - checksum: 10/2efa42701eb05babf26dff3332109c9e5e1a3400a71fb9e68ee27af28235036a2a72c2494c04bdab3f909075f42a58b2e8271074372bc7f8e79ec02bd364d7a7 +"@babel/helper-validator-identifier@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-validator-identifier@npm:7.24.7" + checksum: 10/86875063f57361471b531dbc2ea10bbf5406e12b06d249b03827d361db4cad2388c6f00936bcd9dc86479f7e2c69ea21412c2228d4b3672588b754b70a449d4b languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/helper-validator-option@npm:7.29.7" - checksum: 10/aeb6aa966f59300d3cc2fea7c68e1dfd7ad011fc10e535c8e2b2de3094b27c859428dc7220f16420350f8b1cde99da120b673be04bcb0c2f37b56258c96bed58 +"@babel/helper-validator-option@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/helper-validator-option@npm:7.23.5" + checksum: 10/537cde2330a8aede223552510e8a13e9c1c8798afee3757995a7d4acae564124fe2bf7e7c3d90d62d3657434a74340a274b3b3b1c6f17e9a2be1f48af29cb09e languageName: node linkType: hard -"@babel/helpers@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/helpers@npm:7.29.7" +"@babel/helpers@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/helpers@npm:7.24.5" dependencies: - "@babel/template": "npm:^7.29.7" - "@babel/types": "npm:^7.29.7" - checksum: 10/b4d1ef12c19e896585c009ba29677839097ff04f8b11a2430d335c3fb6bd667b4f9e96a3b185a083fdde6b1137eabbbf2600c32425cb69cefc81d81d5cfe425d + "@babel/template": "npm:^7.24.0" + "@babel/traverse": "npm:^7.24.5" + "@babel/types": "npm:^7.24.5" + checksum: 10/efd74325823c70a32aa9f5e263c8eb0a1f729f5e9ea168e3226fa92a10b1702593b76034812e9f7b560d6447f9cd446bad231d7086af842129c6596306300094 languageName: node linkType: hard @@ -162,50 +206,63 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/parser@npm:7.29.7" - dependencies: - "@babel/types": "npm:^7.29.7" +"@babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/parser@npm:7.24.5" bin: parser: ./bin/babel-parser.js - checksum: 10/da40c5928c95997b01aabe84fc3440881b8f20b866714fefa142961d37e82ffc03fbb9afed706f15f8a688278f95286ca0cea0d87ad6c77600f8c6c45d9824ee + checksum: 10/f5ed1c5fd4b0045a364fb906f54fd30e2fff93a45069068b6d80d3ab2b64f5569c90fb41d39aff80fb7e925ca4d44917965a76776a3ca11924ec1fae3be5d1ea languageName: node linkType: hard -"@babel/template@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/template@npm:7.29.7" +"@babel/template@npm:^7.22.15, @babel/template@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/template@npm:7.24.0" dependencies: - "@babel/code-frame": "npm:^7.29.7" - "@babel/parser": "npm:^7.29.7" - "@babel/types": "npm:^7.29.7" - checksum: 10/da92f7a5b61e05d2fb3934a44f18cec6006ee3c595116c17a3b44cb9756ecd43205c7360dbfa326fa8f4d00aaeb9e777342a881070d11c2305e9c694bc3ca6ff + "@babel/code-frame": "npm:^7.23.5" + "@babel/parser": "npm:^7.24.0" + "@babel/types": "npm:^7.24.0" + checksum: 10/8c538338c7de8fac8ada691a5a812bdcbd60bd4a4eb5adae2cc9ee19773e8fb1a724312a00af9e1ce49056ffd3c3475e7287b5668cf6360bfb3f8ac827a06ffe languageName: node linkType: hard -"@babel/traverse@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/traverse@npm:7.29.7" - dependencies: - "@babel/code-frame": "npm:^7.29.7" - "@babel/generator": "npm:^7.29.7" - "@babel/helper-globals": "npm:^7.29.7" - "@babel/parser": "npm:^7.29.7" - "@babel/template": "npm:^7.29.7" - "@babel/types": "npm:^7.29.7" +"@babel/traverse@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/traverse@npm:7.24.5" + dependencies: + "@babel/code-frame": "npm:^7.24.2" + "@babel/generator": "npm:^7.24.5" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-hoist-variables": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.24.5" + "@babel/parser": "npm:^7.24.5" + "@babel/types": "npm:^7.24.5" debug: "npm:^4.3.1" - checksum: 10/ce24086a7dd8c408cbdb159437d3c8e02464a6d32b320d884fa742e2c5a3344b9342a923c7a371fc1789b4d82a59972a7008b5d8bbc1bc0c5ae42a39b28dc7f6 + globals: "npm:^11.1.0" + checksum: 10/e237de56e0c30795293fdb6f2cb09a75e6230836e3dc67dc4fa21781eb4d5842996bf3af95bc57ac5c7e6e97d06446f14732d0952eb57d5d9643de7c4f95bee6 languageName: node linkType: hard -"@babel/types@npm:^7.29.7": - version: 7.29.7 - resolution: "@babel/types@npm:7.29.7" +"@babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.24.0, @babel/types@npm:^7.24.5": + version: 7.24.5 + resolution: "@babel/types@npm:7.24.5" dependencies: - "@babel/helper-string-parser": "npm:^7.29.7" - "@babel/helper-validator-identifier": "npm:^7.29.7" - checksum: 10/bd4f5635db1057bd0abeebf93eb3ae38399e152271cea8dce8288350f0afa13ed3e2db2e16e22bd3303068890eec18965a83420539afbe0dde31432b4cf9636d + "@babel/helper-string-parser": "npm:^7.24.1" + "@babel/helper-validator-identifier": "npm:^7.24.5" + to-fast-properties: "npm:^2.0.0" + checksum: 10/259e7512476ae64830e73f2addf143159232bcbf0eba6a6a27cab25a960cd353a11c826eb54185fdf7d8d9865922cbcd6522149e9ec55b967131193f9c9111a1 + languageName: node + linkType: hard + +"@babel/types@npm:^7.8.3": + version: 7.24.7 + resolution: "@babel/types@npm:7.24.7" + dependencies: + "@babel/helper-string-parser": "npm:^7.24.7" + "@babel/helper-validator-identifier": "npm:^7.24.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10/ad3c8c0d6fb4acb0bb74bb5b4bb849b181bf6185677ef9c59c18856c81e43628d0858253cf232f0eca806f02e08eff85a1d3e636a3e94daea737597796b0b430 languageName: node linkType: hard @@ -245,12 +302,12 @@ __metadata: linkType: hard "@grpc/grpc-js@npm:^1.4.1": - version: 1.14.4 - resolution: "@grpc/grpc-js@npm:1.14.4" + version: 1.10.9 + resolution: "@grpc/grpc-js@npm:1.10.9" dependencies: - "@grpc/proto-loader": "npm:^0.8.0" + "@grpc/proto-loader": "npm:^0.7.13" "@js-sdsl/ordered-map": "npm:^4.4.2" - checksum: 10/f9cdbd81e7388dc784c57274fcf6f4f4484da8968dd0975b97a14708d3fb117ae4a7bc2848e1bd1cc8b8ed9ee7a80ff131bfe728c85260da90a4e0b170e31ca9 + checksum: 10/8991a997798f19ae849d0f274280f5fdba981048f77211744a301e22207620bb24661d0dfaea51ee6259c5c8e6c159b62fe2499c879d9f14decf20957c219124 languageName: node linkType: hard @@ -269,17 +326,17 @@ __metadata: languageName: node linkType: hard -"@grpc/proto-loader@npm:^0.8.0": - version: 0.8.1 - resolution: "@grpc/proto-loader@npm:0.8.1" +"@grpc/proto-loader@npm:^0.7.13": + version: 0.7.13 + resolution: "@grpc/proto-loader@npm:0.7.13" dependencies: lodash.camelcase: "npm:^4.3.0" long: "npm:^5.0.0" - protobufjs: "npm:^7.5.5" + protobufjs: "npm:^7.2.5" yargs: "npm:^17.7.2" bin: proto-loader-gen-types: build/bin/proto-loader-gen-types.js - checksum: 10/d9ef734a43fa3003b9fea4ad9392137f353b79d62b6452b68f8f6b1d8f97947139141d111108ba3e858642989e966e4aa1211012a657d1e41f80a9c7540070ec + checksum: 10/7e2d842c2061cbaf6450c71da0077263be3bab165454d5c8a3e1ae4d3c6d2915f02fd27da63ff01f05e127b1221acd40705273f5d29303901e60514e852992f4 languageName: node linkType: hard @@ -317,23 +374,14 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.12, @jridgewell/gen-mapping@npm:^0.3.5": - version: 0.3.13 - resolution: "@jridgewell/gen-mapping@npm:0.3.13" +"@jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.5 + resolution: "@jridgewell/gen-mapping@npm:0.3.5" dependencies: - "@jridgewell/sourcemap-codec": "npm:^1.5.0" + "@jridgewell/set-array": "npm:^1.2.1" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" "@jridgewell/trace-mapping": "npm:^0.3.24" - checksum: 10/902f8261dcf450b4af7b93f9656918e02eec80a2169e155000cb2059f90113dd98f3ccf6efc6072cee1dd84cac48cade51da236972d942babc40e4c23da4d62a - languageName: node - linkType: hard - -"@jridgewell/remapping@npm:^2.3.5": - version: 2.3.5 - resolution: "@jridgewell/remapping@npm:2.3.5" - dependencies: - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.24" - checksum: 10/c2bb01856e65b506d439455f28aceacf130d6c023d1d4e3b48705e88def3571753e1a887daa04b078b562316c92d26ce36408a60534bceca3f830aec88a339ad + checksum: 10/81587b3c4dd8e6c60252122937cea0c637486311f4ed208b52b62aae2e7a87598f63ec330e6cd0984af494bfb16d3f0d60d3b21d7e5b4aedd2602ff3fe9d32e2 languageName: node linkType: hard @@ -344,21 +392,21 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.14": - version: 1.4.15 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" - checksum: 10/89960ac087781b961ad918978975bcdf2051cd1741880469783c42de64239703eab9db5230d776d8e6a09d73bb5e4cb964e07d93ee6e2e7aea5a7d726e865c09 +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 10/832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.5.0": - version: 1.5.5 - resolution: "@jridgewell/sourcemap-codec@npm:1.5.5" - checksum: 10/5d9d207b462c11e322d71911e55e21a4e2772f71ffe8d6f1221b8eb5ae6774458c1d242f897fb0814e8714ca9a6b498abfa74dfe4f434493342902b1a48b33a5 +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.4.15 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" + checksum: 10/89960ac087781b961ad918978975bcdf2051cd1741880469783c42de64239703eab9db5230d776d8e6a09d73bb5e4cb964e07d93ee6e2e7aea5a7d726e865c09 languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.24": +"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -368,16 +416,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.28": - version: 0.3.31 - resolution: "@jridgewell/trace-mapping@npm:0.3.31" - dependencies: - "@jridgewell/resolve-uri": "npm:^3.1.0" - "@jridgewell/sourcemap-codec": "npm:^1.4.14" - checksum: 10/da0283270e691bdb5543806077548532791608e52386cfbbf3b9e8fb00457859d1bd01d512851161c886eb3a2f3ce6fd9bcf25db8edf3bddedd275bd4a88d606 - languageName: node - linkType: hard - "@js-sdsl/ordered-map@npm:^4.4.2": version: 4.4.2 resolution: "@js-sdsl/ordered-map@npm:4.4.2" @@ -414,7 +452,80 @@ __metadata: languageName: node linkType: hard -"@sinonjs/commons@npm:^1, @sinonjs/commons@npm:^1.6.0, @sinonjs/commons@npm:^1.7.0": +"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/aspromise@npm:1.1.2" + checksum: 10/8a938d84fe4889411296db66b29287bd61ea3c14c2d23e7a8325f46a2b8ce899857c5f038d65d7641805e6c1d06b495525c7faf00c44f85a7ee6476649034969 + languageName: node + linkType: hard + +"@protobufjs/base64@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/base64@npm:1.1.2" + checksum: 10/c71b100daeb3c9bdccab5cbc29495b906ba0ae22ceedc200e1ba49717d9c4ab15a6256839cebb6f9c6acae4ed7c25c67e0a95e734f612b258261d1a3098fe342 + languageName: node + linkType: hard + +"@protobufjs/codegen@npm:^2.0.4": + version: 2.0.4 + resolution: "@protobufjs/codegen@npm:2.0.4" + checksum: 10/c6ee5fa172a8464f5253174d3c2353ea520c2573ad7b6476983d9b1346f4d8f2b44aa29feb17a949b83c1816bc35286a5ea265ed9d8fdd2865acfa09668c0447 + languageName: node + linkType: hard + +"@protobufjs/eventemitter@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/eventemitter@npm:1.1.0" + checksum: 10/03af3e99f17ad421283d054c88a06a30a615922a817741b43ca1b13e7c6b37820a37f6eba9980fb5150c54dba6e26cb6f7b64a6f7d8afa83596fafb3afa218c3 + languageName: node + linkType: hard + +"@protobufjs/fetch@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/fetch@npm:1.1.0" + dependencies: + "@protobufjs/aspromise": "npm:^1.1.1" + "@protobufjs/inquire": "npm:^1.1.0" + checksum: 10/67ae40572ad536e4ef94269199f252c024b66e3059850906bdaee161ca1d75c73d04d35cd56f147a8a5a079f5808e342b99e61942c1dae15604ff0600b09a958 + languageName: node + linkType: hard + +"@protobufjs/float@npm:^1.0.2": + version: 1.0.2 + resolution: "@protobufjs/float@npm:1.0.2" + checksum: 10/634c2c989da0ef2f4f19373d64187e2a79f598c5fb7991afb689d29a2ea17c14b796b29725945fa34b9493c17fb799e08ac0a7ccaae460ee1757d3083ed35187 + languageName: node + linkType: hard + +"@protobufjs/inquire@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/inquire@npm:1.1.0" + checksum: 10/c09efa34a5465cb120775e1a482136f2340a58b4abce7e93d72b8b5a9324a0e879275016ef9fcd73d72a4731639c54f2bb755bb82f916e4a78892d1d840bb3d2 + languageName: node + linkType: hard + +"@protobufjs/path@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/path@npm:1.1.2" + checksum: 10/bb709567935fd385a86ad1f575aea98131bbd719c743fb9b6edd6b47ede429ff71a801cecbd64fc72deebf4e08b8f1bd8062793178cdaed3713b8d15771f9b83 + languageName: node + linkType: hard + +"@protobufjs/pool@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/pool@npm:1.1.0" + checksum: 10/b9c7047647f6af28e92aac54f6f7c1f7ff31b201b4bfcc7a415b2861528854fce3ec666d7e7e10fd744da905f7d4aef2205bbcc8944ca0ca7a82e18134d00c46 + languageName: node + linkType: hard + +"@protobufjs/utf8@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/utf8@npm:1.1.0" + checksum: 10/131e289c57534c1d73a0e55782d6751dd821db1583cb2f7f7e017c9d6747addaebe79f28120b2e0185395d990aad347fb14ffa73ef4096fa38508d61a0e64602 + languageName: node + linkType: hard + +"@sinonjs/commons@npm:^1.6.0, @sinonjs/commons@npm:^1.7.0, @sinonjs/commons@npm:^1.8.1": version: 1.8.6 resolution: "@sinonjs/commons@npm:1.8.6" dependencies: @@ -423,7 +534,7 @@ __metadata: languageName: node linkType: hard -"@sinonjs/fake-timers@npm:^6.0.0": +"@sinonjs/fake-timers@npm:^6.0.0, @sinonjs/fake-timers@npm:^6.0.1": version: 6.0.1 resolution: "@sinonjs/fake-timers@npm:6.0.1" dependencies: @@ -432,17 +543,7 @@ __metadata: languageName: node linkType: hard -"@sinonjs/formatio@npm:^5.0.1": - version: 5.0.1 - resolution: "@sinonjs/formatio@npm:5.0.1" - dependencies: - "@sinonjs/commons": "npm:^1" - "@sinonjs/samsam": "npm:^5.0.2" - checksum: 10/a6b0ef6a8f9faa6ca71515b6ac48d27ed0920f28a3491f243749c27a0a5bdf828af73f910e205787d45059b96cbcdea7f6f1e249b9ac94832a5a9bb7595a64e5 - languageName: node - linkType: hard - -"@sinonjs/samsam@npm:^5.0.2, @sinonjs/samsam@npm:^5.0.3": +"@sinonjs/samsam@npm:^5.3.1": version: 5.3.1 resolution: "@sinonjs/samsam@npm:5.3.1" dependencies: @@ -460,29 +561,22 @@ __metadata: languageName: node linkType: hard -"@types/chai-as-promised@npm:7.1.2": - version: 7.1.2 - resolution: "@types/chai-as-promised@npm:7.1.2" +"@types/chai-as-promised@npm:^7.1.2": + version: 7.1.8 + resolution: "@types/chai-as-promised@npm:7.1.8" dependencies: "@types/chai": "npm:*" - checksum: 10/70c54d747001393182e6e4cd15eea5d3b81dea569782846850a5f67a7e68730e76e203aaec5fac54e8dbc970770be240792a16d6050c4af3d9e5fa9a07cb204d + checksum: 10/88e2d42f14d1de19ba1c7b5c35f263fef37d3ad241c71f5eb59b10763706f3902f4131b93854c9c6ed520081c7e36be555849f202418357f905bea71178b7d02 languageName: node linkType: hard -"@types/chai@npm:*": +"@types/chai@npm:*, @types/chai@npm:^4.2.11": version: 4.3.16 resolution: "@types/chai@npm:4.3.16" checksum: 10/f84a9049a7f13284f7237236872ed4afce5045dd6ea3926c8b0ac995490f5a524b247b2e70fcd3ebc85832201349a8f026bd0c336b90b5baca9eed0c7a4dbd3f languageName: node linkType: hard -"@types/chai@npm:4.2.11": - version: 4.2.11 - resolution: "@types/chai@npm:4.2.11" - checksum: 10/886654934141ce34220ad43cc67c90ededf196b0b551cdc37e219d01bec5ac7636ec3c6e04a048fb5be6db63d48a3dcd723062f924290b477fbd5d6c339aeae5 - languageName: node - linkType: hard - "@types/long@npm:^4.0.1": version: 4.0.2 resolution: "@types/long@npm:4.0.2" @@ -490,14 +584,14 @@ __metadata: languageName: node linkType: hard -"@types/mocha@npm:7.0.2": +"@types/mocha@npm:^7.0.2": version: 7.0.2 resolution: "@types/mocha@npm:7.0.2" checksum: 10/8d9cfcd2fcaf0dcd4840c2f54e737e88b3999c334b363b0ed184db40e765da20befa8281211b351d213781231a2372bfb4ca043e9ee8188885bf7be83c2928fd languageName: node linkType: hard -"@types/node@npm:18.11.9": +"@types/node@npm:18.11.9, @types/node@npm:>=13.7.0": version: 18.11.9 resolution: "@types/node@npm:18.11.9" checksum: 10/d87a947519d8c1569b812a95cd18383f7a1500204c18454b69ba817f4aef2a563bb925432debcab25a3db1ba116c8ddb1ef79d8fded054fb3866424847325bae @@ -511,17 +605,17 @@ __metadata: languageName: node linkType: hard -"@types/sinon-chai@npm:3.2.3": - version: 3.2.3 - resolution: "@types/sinon-chai@npm:3.2.3" +"@types/sinon-chai@npm:^3.2.3": + version: 3.2.12 + resolution: "@types/sinon-chai@npm:3.2.12" dependencies: "@types/chai": "npm:*" "@types/sinon": "npm:*" - checksum: 10/f00cea8948642028836739e1fa7a0e53c47215d2957f83d1c409abee2909d195e60229466752a42edfd01774c46d0decfb7baf007b6467450579650e2b9d087b + checksum: 10/d906f2f766613534c5e9fe1437ec740fb6a9a550f02d1a0abe180c5f18fe73a99f0c12935195404d42f079f5f72a371e16b81e2aef963a6ef0ee0ed9d5d7f391 languageName: node linkType: hard -"@types/sinon@npm:*, @types/sinon@npm:7.5.2": +"@types/sinon@npm:*, @types/sinon@npm:^7.5.2": version: 7.5.2 resolution: "@types/sinon@npm:7.5.2" checksum: 10/66163c371dd84f1c485ae4c60401e4cfdb376974c85d91123dcc8c38334ecc4909c4ae9ffc5008bf0f5212593c7d91f70f460963c01510d2dfe93a689fc8e9ea @@ -569,14 +663,14 @@ __metadata: linkType: hard "ajv@npm:^6.12.2": - version: 6.14.0 - resolution: "ajv@npm:6.14.0" + version: 6.12.6 + resolution: "ajv@npm:6.12.6" dependencies: fast-deep-equal: "npm:^3.1.1" fast-json-stable-stringify: "npm:^2.0.0" json-schema-traverse: "npm:^0.4.1" uri-js: "npm:^4.2.2" - checksum: 10/c71f14dd2b6f2535d043f74019c8169f7aeb1106bafbb741af96f34fdbf932255c919ddd46344043d03b62ea0ccb319f83667ec5eedf612393f29054fe5ce4a5 + checksum: 10/48d6ad21138d12eb4d16d878d630079a2bda25a04e745c07846a4ad768319533031e28872a9b3c5790fa1ec41aabdf2abed30a56e5a03ebc2cf92184b8ee306c languageName: node linkType: hard @@ -682,15 +776,6 @@ __metadata: languageName: node linkType: hard -"async@npm:^2.6.1": - version: 2.6.4 - resolution: "async@npm:2.6.4" - dependencies: - lodash: "npm:^4.17.14" - checksum: 10/df8e52817d74677ab50c438d618633b9450aff26deb274da6dfedb8014130909482acdc7753bce9b72e6171ce9a9f6a92566c4ced34c3cb3714d57421d58ad27 - languageName: node - linkType: hard - "async@npm:^3.2.3": version: 3.2.5 resolution: "async@npm:3.2.5" @@ -705,22 +790,6 @@ __metadata: languageName: node linkType: hard -"balanced-match@npm:^4.0.2": - version: 4.0.4 - resolution: "balanced-match@npm:4.0.4" - checksum: 10/fb07bb66a0959c2843fc055838047e2a95ccebb837c519614afb067ebfdf2fa967ca8d712c35ced07f2cd26fc6f07964230b094891315ad74f11eba3d53178a0 - languageName: node - linkType: hard - -"baseline-browser-mapping@npm:^2.10.38": - version: 2.10.42 - resolution: "baseline-browser-mapping@npm:2.10.42" - bin: - baseline-browser-mapping: dist/cli.cjs - checksum: 10/7ea956db54694e4386fd14de665d9582aaa53901c09f21925abfe0ee0d5751947947775b890daad73d21673ed51de5bbefd888076edb8f9aaf76e53da47b061f - languageName: node - linkType: hard - "binary-extensions@npm:^2.0.0": version: 2.3.0 resolution: "binary-extensions@npm:2.3.0" @@ -729,21 +798,21 @@ __metadata: linkType: hard "brace-expansion@npm:^1.1.7": - version: 1.1.15 - resolution: "brace-expansion@npm:1.1.15" + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" dependencies: balanced-match: "npm:^1.0.0" concat-map: "npm:0.0.1" - checksum: 10/f2a950034e670523cc186da61aabe3beab74b1b8a7c74a756bf6b172dad1917312f255d9ec46906c9f0cab530868095d8c143918576930dd0e1323c3803850f1 + checksum: 10/faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 languageName: node linkType: hard -"brace-expansion@npm:^5.0.2": - version: 5.0.7 - resolution: "brace-expansion@npm:5.0.7" +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" dependencies: - balanced-match: "npm:^4.0.2" - checksum: 10/98c12de33fa53ab07b2b5179f6740045508c61c4319638faf47a0d72615db80058f66c0d1cb74dc8ed591bbf507c068027e80cfb86a2f467bfd330574e13ed7b + balanced-match: "npm:^1.0.0" + checksum: 10/a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 languageName: node linkType: hard @@ -763,18 +832,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.24.0": - version: 4.28.4 - resolution: "browserslist@npm:4.28.4" +"browserslist@npm:^4.22.2": + version: 4.23.0 + resolution: "browserslist@npm:4.23.0" dependencies: - baseline-browser-mapping: "npm:^2.10.38" - caniuse-lite: "npm:^1.0.30001799" - electron-to-chromium: "npm:^1.5.376" - node-releases: "npm:^2.0.48" - update-browserslist-db: "npm:^1.2.3" + caniuse-lite: "npm:^1.0.30001587" + electron-to-chromium: "npm:^1.4.668" + node-releases: "npm:^2.0.14" + update-browserslist-db: "npm:^1.0.13" bin: browserslist: cli.js - checksum: 10/beb030f5b301b6af3fc7df3291d56f9edb34b7e4bd3cdc50d379c84c3410ad1ba013602952bcec1d98af940cf6596609fc81ef09d200f7f2e25e9f84d9d38201 + checksum: 10/496c3862df74565dd942b4ae65f502c575cbeba1fa4a3894dad7aa3b16130dc3033bc502d8848147f7b625154a284708253d9598bcdbef5a1e34cf11dc7bad8e languageName: node linkType: hard @@ -838,35 +906,36 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001799": - version: 1.0.30001800 - resolution: "caniuse-lite@npm:1.0.30001800" - checksum: 10/7fb170f87cf0cf3633b660371eeabf981b7c878a14efcdb17c86f7262432e036cd43d228cbe2d442f3795194f8f9e0d520877d93b6d265ca841bcd2a4c16500a +"caniuse-lite@npm:^1.0.30001587": + version: 1.0.30001621 + resolution: "caniuse-lite@npm:1.0.30001621" + checksum: 10/238187b8565edd98b041829a4157ff23406e8b573a8f5a7f7d75fd6bd46c508e4d1a07eb4a0086cfa1bce2f45fcd3b08ea7ffc36584ef2b1d38f8215b7301853 languageName: node linkType: hard -"chai-as-promised@npm:7.1.1": - version: 7.1.1 - resolution: "chai-as-promised@npm:7.1.1" +"chai-as-promised@npm:^7.1.1": + version: 7.1.2 + resolution: "chai-as-promised@npm:7.1.2" dependencies: check-error: "npm:^1.0.2" peerDependencies: - chai: ">= 2.1.2 < 5" - checksum: 10/5d9ecab37b313047f5ea25d00b1cb6e7f2710c6e2f57d91aed7cfed5008d995cb65ea723af4e5d782bafd9a6eff5a4267af53dfe7212dc10dd1d92b9127bc531 + chai: ">= 2.1.2 < 6" + checksum: 10/be372540dad92ef85cde3954bc0e9b0b33e4e6454f3740b17bfb16e36eda638911619089c05a4e4f2bf6722563bf893bb78c2af59b318c23abb2199e5c20ca1f languageName: node linkType: hard -"chai@npm:4.2.0": - version: 4.2.0 - resolution: "chai@npm:4.2.0" +"chai@npm:^4.2.0": + version: 4.4.1 + resolution: "chai@npm:4.4.1" dependencies: assertion-error: "npm:^1.1.0" - check-error: "npm:^1.0.2" - deep-eql: "npm:^3.0.1" - get-func-name: "npm:^2.0.0" - pathval: "npm:^1.1.0" - type-detect: "npm:^4.0.5" - checksum: 10/e6116e8c19005909cd9ad0540061f3e0f943ae63935aca8e20d118306954b0ff42b4e3e8a4d740b4152a452aab016ac9d24406dfcf82a2e747004037a0f40485 + check-error: "npm:^1.0.3" + deep-eql: "npm:^4.1.3" + get-func-name: "npm:^2.0.2" + loupe: "npm:^2.3.6" + pathval: "npm:^1.1.1" + type-detect: "npm:^4.0.8" + checksum: 10/c6d7aba913a67529c68dbec3673f94eb9c586c5474cc5142bd0b587c9c9ec9e5fbaa937e038ecaa6475aea31433752d5fabdd033b9248bde6ae53befcde774ae languageName: node linkType: hard @@ -891,7 +960,7 @@ __metadata: languageName: node linkType: hard -"check-error@npm:^1.0.2": +"check-error@npm:^1.0.2, check-error@npm:^1.0.3": version: 1.0.3 resolution: "check-error@npm:1.0.3" dependencies: @@ -1025,13 +1094,6 @@ __metadata: languageName: node linkType: hard -"colornames@npm:^1.1.1": - version: 1.1.1 - resolution: "colornames@npm:1.1.1" - checksum: 10/04df188a7ba8dcc70e43d86200e1abc5463a6ea75ef8e5bc9f8f84558a8e5c41ad4a259fe10e00ab31e27edc7aa910be95871c78089b02be13146e9b4feb7766 - languageName: node - linkType: hard - "colorspace@npm:1.1.x": version: 1.1.4 resolution: "colorspace@npm:1.1.4" @@ -1078,13 +1140,13 @@ __metadata: linkType: hard "cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3": - version: 7.0.6 - resolution: "cross-spawn@npm:7.0.6" + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" dependencies: path-key: "npm:^3.1.0" shebang-command: "npm:^2.0.0" which: "npm:^2.0.1" - checksum: 10/0d52657d7ae36eb130999dffff1168ec348687b48dd38e2ff59992ed916c88d328cf1d07ff4a4a10bc78de5e1c23f04b306d569e42f7a2293915c081e4dfee86 + checksum: 10/e1a13869d2f57d974de0d9ef7acbf69dc6937db20b918525a01dacb5032129bd552d290d886d981e99f1b624cb03657084cc87bd40f115c07ecf376821c729ce languageName: node linkType: hard @@ -1112,19 +1174,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.1.0, debug@npm:^4.3.1": - version: 4.4.3 - resolution: "debug@npm:4.4.3" - dependencies: - ms: "npm:^2.1.3" - peerDependenciesMeta: - supports-color: - optional: true - checksum: 10/9ada3434ea2993800bd9a1e320bd4aa7af69659fb51cca685d390949434bc0a8873c21ed7c9b852af6f2455a55c6d050aa3937d52b3c69f796dab666f762acad - languageName: node - linkType: hard - -"debug@npm:^4.1.1": +"debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -1150,12 +1200,12 @@ __metadata: languageName: node linkType: hard -"deep-eql@npm:^3.0.1": - version: 3.0.1 - resolution: "deep-eql@npm:3.0.1" +"deep-eql@npm:^4.1.3": + version: 4.1.3 + resolution: "deep-eql@npm:4.1.3" dependencies: type-detect: "npm:^4.0.0" - checksum: 10/d8f8e141ece42b7945ca85f08094c80540ed277bcea268b0da1801cfa5b001e164d2548c8d7ba17e935f001da401ccb33a1b6d2005713f1684a0e7dadc4e52d1 + checksum: 10/12ce93ae63de187e77b076d3d51bfc28b11f98910a22c18714cce112791195e86a94f97788180994614b14562a86c9763f67c69f785e4586f806b5df39bf9301 languageName: node linkType: hard @@ -1168,17 +1218,6 @@ __metadata: languageName: node linkType: hard -"diagnostics@npm:^1.1.1": - version: 1.1.1 - resolution: "diagnostics@npm:1.1.1" - dependencies: - colorspace: "npm:1.1.x" - enabled: "npm:1.0.x" - kuler: "npm:1.0.x" - checksum: 10/e137d8c7cf803b087f77cc1ec9e8b762a821d8768a665e71e314ab3c0264219c4c82b3861c24f9122d818f1f5419fc7abaa096bb8354af6a43a66d49e453c7f4 - languageName: node - linkType: hard - "diff@npm:5.0.0": version: 5.0.0 resolution: "diff@npm:5.0.0" @@ -1187,9 +1226,9 @@ __metadata: linkType: hard "diff@npm:^4.0.1, diff@npm:^4.0.2": - version: 4.0.4 - resolution: "diff@npm:4.0.4" - checksum: 10/5019b3f5ae124ea9e95137119e1a83a59c252c75ddac873cc967832fd7a834570a58a4d58b941bdbd07832ebf98dcb232b27c561b7f5584357da6dae59bcac62 + version: 4.0.2 + resolution: "diff@npm:4.0.2" + checksum: 10/ec09ec2101934ca5966355a229d77afcad5911c92e2a77413efda5455636c4cf2ce84057e2d7715227a2eeeda04255b849bd3ae3a4dd22eb22e86e76456df069 languageName: node linkType: hard @@ -1200,10 +1239,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.376": - version: 1.5.387 - resolution: "electron-to-chromium@npm:1.5.387" - checksum: 10/987c002c3a8e08b33977ae4130c7a67a7047c69120b1240cbaedd0a2b72e9a67d32c52d2644b521092dbb2ce058129690f77fd376e58d895cdba12a9eddea689 +"electron-to-chromium@npm:^1.4.668": + version: 1.4.782 + resolution: "electron-to-chromium@npm:1.4.782" + checksum: 10/d5550876e4ee04df75e3bf6e0809de2b8d6129dd1ef3a8508020c0620bc814c496b5852b3a99cfe1bb79662c8dd5182ae18844af089414e6e92790d5deeea864 languageName: node linkType: hard @@ -1221,15 +1260,6 @@ __metadata: languageName: node linkType: hard -"enabled@npm:1.0.x": - version: 1.0.2 - resolution: "enabled@npm:1.0.2" - dependencies: - env-variable: "npm:0.0.x" - checksum: 10/1384023547d3fe6c3b3e18b02f4f9d10831c2e2ac7610885cce32db47b8a6ee1f5cab2c44133e2e8b44e4732b157a4ca1440b5d834d96adb49aedac9421a1bda - languageName: node - linkType: hard - "enabled@npm:2.0.x": version: 2.0.0 resolution: "enabled@npm:2.0.0" @@ -1253,13 +1283,6 @@ __metadata: languageName: node linkType: hard -"env-variable@npm:0.0.x": - version: 0.0.6 - resolution: "env-variable@npm:0.0.6" - checksum: 10/8c3130111cfc264644611df5deea2599e9c0915413302c501df9cc37c5eb894a32944d8799f947bcf9b1485b8bb56f025219318463fc9956b87fb4cff2c9f56f - languageName: node - linkType: hard - "err-code@npm:^2.0.2": version: 2.0.3 resolution: "err-code@npm:2.0.3" @@ -1274,20 +1297,13 @@ __metadata: languageName: node linkType: hard -"escalade@npm:^3.1.1": +"escalade@npm:^3.1.1, escalade@npm:^3.1.2": version: 3.1.2 resolution: "escalade@npm:3.1.2" checksum: 10/a1e07fea2f15663c30e40b9193d658397846ffe28ce0a3e4da0d8e485fedfeca228ab846aee101a05015829adf39f9934ff45b2a3fca47bed37a29646bd05cd3 languageName: node linkType: hard -"escalade@npm:^3.2.0": - version: 3.2.0 - resolution: "escalade@npm:3.2.0" - checksum: 10/9d7169e3965b2f9ae46971afa392f6e5a25545ea30f2e2dd99c9b0a95a3f52b5653681a84f5b2911a413ddad2d7a93d3514165072f349b5ffc59c75a899970d6 - languageName: node - linkType: hard - "escape-string-regexp@npm:4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" @@ -1333,6 +1349,20 @@ __metadata: languageName: node linkType: hard +"fabric-contract-api@npm:^2.4.1": + version: 2.5.4 + resolution: "fabric-contract-api@npm:2.5.4" + dependencies: + class-transformer: "npm:^0.4.0" + fabric-shim-api: "npm:2.5.4" + fast-safe-stringify: "npm:^2.1.1" + get-params: "npm:^0.1.2" + reflect-metadata: "npm:^0.1.13" + winston: "npm:^3.7.2" + checksum: 10/09001db44761f9afa50ba8af7f0740fd7a33bce0a6e4ee597767169f2b187f13a13d2a1713400f42e3eaf53c999fd0ae0d07619faf6da8344efbe6a6e9ffc4bb + languageName: node + linkType: hard + "fabric-shim-api@npm:2.4.1": version: 2.4.1 resolution: "fabric-shim-api@npm:2.4.1" @@ -1340,6 +1370,13 @@ __metadata: languageName: node linkType: hard +"fabric-shim-api@npm:2.5.4": + version: 2.5.4 + resolution: "fabric-shim-api@npm:2.5.4" + checksum: 10/aee691043d245a99dd8c8dd44ca7e29feb2de60e44bcc572050bfefa17a8e64d978c8264308d4ce079e5f1ec3779e58d962af9adc52bdeb0b579fe857b4bacad + languageName: node + linkType: hard + "fabric-shim@npm:2.4.1": version: 2.4.1 resolution: "fabric-shim@npm:2.4.1" @@ -1549,7 +1586,7 @@ __metadata: languageName: node linkType: hard -"get-func-name@npm:^2.0.0, get-func-name@npm:^2.0.2": +"get-func-name@npm:^2.0.1, get-func-name@npm:^2.0.2": version: 2.0.2 resolution: "get-func-name@npm:2.0.2" checksum: 10/3f62f4c23647de9d46e6f76d2b3eafe58933a9b3830c60669e4180d6c601ce1b4aa310ba8366143f55e52b139f992087a9f0647274e8745621fa2af7e0acf13b @@ -1579,22 +1616,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:10.5.0": - version: 10.5.0 - resolution: "glob@npm:10.5.0" - dependencies: - foreground-child: "npm:^3.1.0" - jackspeak: "npm:^3.1.2" - minimatch: "npm:^9.0.4" - minipass: "npm:^7.1.2" - package-json-from-dist: "npm:^1.0.0" - path-scurry: "npm:^1.11.1" - bin: - glob: dist/esm/bin.mjs - checksum: 10/ab3bccfefcc0afaedbd1f480cd0c4a2c0e322eb3f0aa7ceaa31b3f00b825069f17cf0f1fc8b6f256795074b903f37c0ade37ddda6a176aa57f1c2bbfe7240653 - languageName: node - linkType: hard - "glob@npm:7.2.0, glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.2.0 resolution: "glob@npm:7.2.0" @@ -1609,6 +1630,22 @@ __metadata: languageName: node linkType: hard +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.4.2 + resolution: "glob@npm:10.4.2" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10/e412776b5952a818eba790c830bea161c9a56813fd767d8c4c49f855603b1fb962b3e73f1f627a47298a57d2992b9f0f2fe15cf93e74ecaaa63fb45d63fdd090 + languageName: node + linkType: hard + "glob@npm:^7.1.6": version: 7.2.3 resolution: "glob@npm:7.2.3" @@ -1623,6 +1660,13 @@ __metadata: languageName: node linkType: hard +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 10/9f054fa38ff8de8fa356502eb9d2dae0c928217b8b5c8de1f09f5c9b6c8a96d8b9bd3afc49acbcd384a98a81fea713c859e1b09e214c60509517bb8fc2bc13c2 + languageName: node + linkType: hard + "graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" @@ -1832,13 +1876,6 @@ __metadata: languageName: node linkType: hard -"is-stream@npm:^1.1.0": - version: 1.1.0 - resolution: "is-stream@npm:1.1.0" - checksum: 10/351aa77c543323c4e111204482808cfad68d2e940515949e31ccd0b010fc13d5fba4b9c230e4887fd24284713040f43e542332fbf172f6b9944b7d62e389c0ec - languageName: node - linkType: hard - "is-stream@npm:^2.0.0": version: 2.0.1 resolution: "is-stream@npm:2.0.1" @@ -1952,13 +1989,13 @@ __metadata: languageName: node linkType: hard -"istanbul-reports@npm:^3.0.0": - version: 3.2.0 - resolution: "istanbul-reports@npm:3.2.0" +"istanbul-reports@npm:^3.0.2": + version: 3.1.7 + resolution: "istanbul-reports@npm:3.1.7" dependencies: html-escaper: "npm:^2.0.0" istanbul-lib-report: "npm:^3.0.0" - checksum: 10/6773a1d5c7d47eeec75b317144fe2a3b1da84a44b6282bebdc856e09667865e58c9b025b75b3d87f5bc62939126cbba4c871ee84254537d934ba5da5d4c4ec4e + checksum: 10/f1faaa4684efaf57d64087776018d7426312a59aa6eeb4e0e3a777347d23cd286ad18f427e98f0e3dee666103d7404c9d7abc5f240406a912fa16bd6695437fa languageName: node linkType: hard @@ -1982,26 +2019,26 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:3.15.0": - version: 3.15.0 - resolution: "js-yaml@npm:3.15.0" +"js-yaml@npm:4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" dependencies: - argparse: "npm:^1.0.7" - esprima: "npm:^4.0.0" + argparse: "npm:^2.0.1" bin: js-yaml: bin/js-yaml.js - checksum: 10/2fdf3a1453ed93a8e06d6ca8054c0bec145cf40ab51f305d1071736a03668b95e40f47cfd0239d7d50019b4780a18cdaca3c935def935594c9876964c49f1185 + checksum: 10/c138a34a3fd0d08ebaf71273ad4465569a483b8a639e0b118ff65698d257c2791d3199e3f303631f2cb98213fa7b5f5d6a4621fd0fff819421b990d30d967140 languageName: node linkType: hard -"js-yaml@npm:4.2.0": - version: 4.2.0 - resolution: "js-yaml@npm:4.2.0" +"js-yaml@npm:^3.13.1": + version: 3.14.1 + resolution: "js-yaml@npm:3.14.1" dependencies: - argparse: "npm:^2.0.1" + argparse: "npm:^1.0.7" + esprima: "npm:^4.0.0" bin: js-yaml: bin/js-yaml.js - checksum: 10/51de2067a2b44b07ba5206132e56005f8b568ff279bb4d2f645068958c56fa4827d40a6841c983234671fa0a134bf094d0b0717873c2a3d319185297af145a6d + checksum: 10/9e22d80b4d0105b9899135365f746d47466ed53ef4223c529b3c0f7a39907743fdbd3c4379f94f1106f02755b5e90b2faaf84801a891135544e1ea475d1a1379 languageName: node linkType: hard @@ -2012,12 +2049,12 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^3.0.2": - version: 3.1.0 - resolution: "jsesc@npm:3.1.0" +"jsesc@npm:^2.5.1": + version: 2.5.2 + resolution: "jsesc@npm:2.5.2" bin: jsesc: bin/jsesc - checksum: 10/20bd37a142eca5d1794f354db8f1c9aeb54d85e1f5c247b371de05d23a9751ecd7bd3a9c4fc5298ea6fa09a100dafb4190fa5c98c6610b75952c3487f3ce7967 + checksum: 10/d2096abdcdec56969764b40ffc91d4a23408aa2f351b4d1c13f736f25476643238c43fdbaf38a191c26b1b78fd856d965f5d4d0dde7b89459cd94025190cdf13 languageName: node linkType: hard @@ -2057,15 +2094,6 @@ __metadata: languageName: node linkType: hard -"kuler@npm:1.0.x": - version: 1.0.1 - resolution: "kuler@npm:1.0.1" - dependencies: - colornames: "npm:^1.1.1" - checksum: 10/c725c179099ca414ed7419e192313ffda23c6b130b644a6426f22b71f88fa42acf94575ef4a5e95f1ce03a40d515780ba1d322a790cc94a8d6e819636ea7fabd - languageName: node - linkType: hard - "kuler@npm:^2.0.0": version: 2.0.0 resolution: "kuler@npm:2.0.0" @@ -2112,13 +2140,6 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.14": - version: 4.18.1 - resolution: "lodash@npm:4.18.1" - checksum: 10/306fea53dfd39dad1f03d45ba654a2405aebd35797b673077f401edb7df2543623dc44b9effbb98f69b32152295fff725a4cec99c684098947430600c6af0c3f - languageName: node - linkType: hard - "log-symbols@npm:4.1.0": version: 4.1.0 resolution: "log-symbols@npm:4.1.0" @@ -2129,20 +2150,6 @@ __metadata: languageName: node linkType: hard -"logform@npm:^2.1.1, logform@npm:^2.7.0": - version: 2.7.0 - resolution: "logform@npm:2.7.0" - dependencies: - "@colors/colors": "npm:1.6.0" - "@types/triple-beam": "npm:^1.3.2" - fecha: "npm:^4.2.0" - ms: "npm:^2.1.1" - safe-stable-stringify: "npm:^2.3.1" - triple-beam: "npm:^1.3.0" - checksum: 10/4b861bfd67efe599ab41113ae3ffe92b1873bf86793fb442f58971852430d8f416f9904da69e5043071fb3725690e2499a13acbfe92a57ba7d21690004f9edc0 - languageName: node - linkType: hard - "logform@npm:^2.3.2, logform@npm:^2.4.0": version: 2.6.0 resolution: "logform@npm:2.6.0" @@ -2171,10 +2178,12 @@ __metadata: languageName: node linkType: hard -"long@npm:^5.3.2": - version: 5.3.2 - resolution: "long@npm:5.3.2" - checksum: 10/b6b55ddae56fcce2864d37119d6b02fe28f6dd6d9e44fd22705f86a9254b9321bd69e9ffe35263b4846d54aba197c64882adcb8c543f2383c1e41284b321ea64 +"loupe@npm:^2.3.6": + version: 2.3.7 + resolution: "loupe@npm:2.3.7" + dependencies: + get-func-name: "npm:^2.0.1" + checksum: 10/635c8f0914c2ce7ecfe4e239fbaf0ce1d2c00e4246fafcc4ed000bfdb1b8f89d05db1a220054175cca631ebf3894872a26fffba0124477fcb562f78762848fb1 languageName: node linkType: hard @@ -2239,21 +2248,30 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:3.1.4": - version: 3.1.4 - resolution: "minimatch@npm:3.1.4" +"minimatch@npm:4.2.1": + version: 4.2.1 + resolution: "minimatch@npm:4.2.1" + dependencies: + brace-expansion: "npm:^1.1.7" + checksum: 10/27e49fb720116face9588c29634404edc0c6677e5448ba01b4ec6179002461cc4fabc842497a0537edc5aa87bc93e65cfb0fe6dc32b850563429a64836dd1d54 + languageName: node + linkType: hard + +"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" dependencies: brace-expansion: "npm:^1.1.7" - checksum: 10/8d679c9df6caad31465c7681ae72b5e0f5d3b4fda6235c4473b14819f4d72ff8924ebd73ce991cc50be4b370daca51cc4d8c7fea6a3aa05108702ede115ab4c9 + checksum: 10/e0b25b04cd4ec6732830344e5739b13f8690f8a012d73445a4a19fbc623f5dd481ef7a5827fde25954cd6026fede7574cc54dc4643c99d6c6b653d6203f94634 languageName: node linkType: hard -"minimatch@npm:9.0.7": - version: 9.0.7 - resolution: "minimatch@npm:9.0.7" +"minimatch@npm:^9.0.4": + version: 9.0.4 + resolution: "minimatch@npm:9.0.4" dependencies: - brace-expansion: "npm:^5.0.2" - checksum: 10/72b9ba4af39f6a89934d56c9cc3bf1d86fb004b00c5e5b3d7f48b004f224005fd2919f52785643b7a18d53fc86f7befc7f25c85ef194cc06708b078682f8c9e5 + brace-expansion: "npm:^2.0.1" + checksum: 10/4cdc18d112b164084513e890d6323370db14c22249d536ad1854539577a895e690a27513dc346392f61a4a50afbbd8abc88f3f25558bfbbbb862cd56508b20f5 languageName: node linkType: hard @@ -2348,7 +2366,7 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^0.5.1": +"mkdirp@npm:^0.5.3": version: 0.5.6 resolution: "mkdirp@npm:0.5.6" dependencies: @@ -2368,9 +2386,9 @@ __metadata: languageName: node linkType: hard -"mocha@npm:9.2.0": - version: 9.2.0 - resolution: "mocha@npm:9.2.0" +"mocha@npm:^9.2.0": + version: 9.2.2 + resolution: "mocha@npm:9.2.2" dependencies: "@ungap/promise-all-settled": "npm:1.1.2" ansi-colors: "npm:4.1.1" @@ -2385,9 +2403,9 @@ __metadata: he: "npm:1.2.0" js-yaml: "npm:4.1.0" log-symbols: "npm:4.1.0" - minimatch: "npm:3.0.4" + minimatch: "npm:4.2.1" ms: "npm:2.1.3" - nanoid: "npm:3.2.0" + nanoid: "npm:3.3.1" serialize-javascript: "npm:6.0.0" strip-json-comments: "npm:3.1.1" supports-color: "npm:8.1.1" @@ -2399,7 +2417,7 @@ __metadata: bin: _mocha: bin/_mocha mocha: bin/mocha - checksum: 10/96253e3d8bf873afdc6e123b5f340990c4a83c7706bf8911f14476e2e4d6f76a568bc0ab4294ed46cacea64fbff640d218d37a9e28ad7e8af4a9685ac2416e7c + checksum: 10/8ee58bff8694ad4013fc0fbb5670c5ec6d8404c601df2d4ae798fad01dd03b5f9395347cf59167006b315a14813a6f839290d60dcbdee8ef4246afe43609d2dc languageName: node linkType: hard @@ -2410,19 +2428,19 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.3, ms@npm:^2.1.1, ms@npm:^2.1.3": +"ms@npm:2.1.3, ms@npm:^2.1.1": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: 10/aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d languageName: node linkType: hard -"nanoid@npm:3.2.0": - version: 3.2.0 - resolution: "nanoid@npm:3.2.0" +"nanoid@npm:3.3.1": + version: 3.3.1 + resolution: "nanoid@npm:3.3.1" bin: nanoid: bin/nanoid.cjs - checksum: 10/a9d802255bf0161bfa7cd614a92bba64ef2074600d28b2750c1f40cff6202cd6c9b826c8bef982aaefb6beafb6e1b01cbd95b324f8bbc94f35b1fa81f7efcb7f + checksum: 10/306f2cb9e4dcfb94738b09de9dc63839a37db33626f66b24dbcc8f66d4b91784645794a7c4f250d629e4d66f5385164c6748c58ac5b7c95217e9e048590efbe4 languageName: node linkType: hard @@ -2433,7 +2451,7 @@ __metadata: languageName: node linkType: hard -"nise@npm:^4.0.1": +"nise@npm:^4.0.4": version: 4.1.0 resolution: "nise@npm:4.1.0" dependencies: @@ -2466,7 +2484,7 @@ __metadata: languageName: node linkType: hard -"node-preload@npm:^0.2.0": +"node-preload@npm:^0.2.1": version: 0.2.1 resolution: "node-preload@npm:0.2.1" dependencies: @@ -2475,10 +2493,10 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.48": - version: 2.0.50 - resolution: "node-releases@npm:2.0.50" - checksum: 10/c40306176fc9d43d27b919034fab57ab0753448dfcabeb1ae669128d28f595fba4c329a269b2d7fa9bb7d5a6d2bda8b2bd8fe5e8446226bb809f448fec2e80fb +"node-releases@npm:^2.0.14": + version: 2.0.14 + resolution: "node-releases@npm:2.0.14" + checksum: 10/0f7607ec7db5ef1dc616899a5f24ae90c869b6a54c2d4f36ff6d84a282ab9343c7ff3ca3670fe4669171bb1e8a9b3e286e1ef1c131f09a83d70554f855d54f24 languageName: node linkType: hard @@ -2500,9 +2518,9 @@ __metadata: languageName: node linkType: hard -"nyc@npm:15.0.0": - version: 15.0.0 - resolution: "nyc@npm:15.0.0" +"nyc@npm:^15.0.0": + version: 15.1.0 + resolution: "nyc@npm:15.1.0" dependencies: "@istanbuljs/load-nyc-config": "npm:^1.0.0" "@istanbuljs/schema": "npm:^0.1.2" @@ -2512,6 +2530,7 @@ __metadata: find-cache-dir: "npm:^3.2.0" find-up: "npm:^4.1.0" foreground-child: "npm:^2.0.0" + get-package-type: "npm:^0.1.0" glob: "npm:^7.1.6" istanbul-lib-coverage: "npm:^3.0.0" istanbul-lib-hook: "npm:^3.0.0" @@ -2519,10 +2538,9 @@ __metadata: istanbul-lib-processinfo: "npm:^2.0.2" istanbul-lib-report: "npm:^3.0.0" istanbul-lib-source-maps: "npm:^4.0.0" - istanbul-reports: "npm:^3.0.0" - js-yaml: "npm:^3.13.1" + istanbul-reports: "npm:^3.0.2" make-dir: "npm:^3.0.0" - node-preload: "npm:^0.2.0" + node-preload: "npm:^0.2.1" p-map: "npm:^3.0.0" process-on-spawn: "npm:^1.0.0" resolve-from: "npm:^5.0.0" @@ -2530,11 +2548,10 @@ __metadata: signal-exit: "npm:^3.0.2" spawn-wrap: "npm:^2.0.0" test-exclude: "npm:^6.0.0" - uuid: "npm:^3.3.3" yargs: "npm:^15.0.2" bin: nyc: bin/nyc.js - checksum: 10/07a41110603bb6191c73f691b08b53f87baa47782d8152b888a578140c169132501ebc4b97df1a2cbb384e81839beae91d2cad6963015b0b48a866dcb9a16e6e + checksum: 10/c987f04f4192dfd94e9e69869c76a54220b3ed555016751f380a413a378cceff8ec346df579e9126035b6acbc60ab893cc65e67729cc427c0171361bcb481e66 languageName: node linkType: hard @@ -2547,13 +2564,6 @@ __metadata: languageName: node linkType: hard -"one-time@npm:0.0.4": - version: 0.0.4 - resolution: "one-time@npm:0.0.4" - checksum: 10/0e5b05762e978519f65d3f48ac249f38b541c62d6b8d5267e1265be128d22dc6d48d979987a48d2579cf157387dc7af951b077a92124b2c2a67ae9a6d7dcb82d - languageName: node - linkType: hard - "one-time@npm:^1.0.0": version: 1.0.0 resolution: "one-time@npm:1.0.0" @@ -2682,39 +2692,32 @@ __metadata: linkType: hard "path-to-regexp@npm:^1.7.0": - version: 1.9.0 - resolution: "path-to-regexp@npm:1.9.0" + version: 1.8.0 + resolution: "path-to-regexp@npm:1.8.0" dependencies: isarray: "npm:0.0.1" - checksum: 10/67f0f4823f7aab356523d93a83f9f8222bdd119fa0b27a8f8b587e8e6c9825294bb4ccd16ae619def111ff3fe5d15ff8f658cdd3b0d58b9c882de6fd15bc1b76 + checksum: 10/45a01690f72919163cf89714e31a285937b14ad54c53734c826363fcf7beba9d9d0f2de802b4986b1264374562d6a3398a2e5289753a764e3a256494f1e52add languageName: node linkType: hard -"pathval@npm:^1.1.0": +"pathval@npm:^1.1.1": version: 1.1.1 resolution: "pathval@npm:1.1.1" checksum: 10/b50a4751068aa3a5428f5a0b480deecedc6f537666a3630a0c2ae2d5e7c0f4bf0ee77b48404441ec1220bef0c91625e6030b3d3cf5a32ab0d9764018d1d9dbb6 languageName: node linkType: hard -"picocolors@npm:^1.0.0": +"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": version: 1.0.1 resolution: "picocolors@npm:1.0.1" checksum: 10/fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5 languageName: node linkType: hard -"picocolors@npm:^1.1.1": - version: 1.1.1 - resolution: "picocolors@npm:1.1.1" - checksum: 10/e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 - languageName: node - linkType: hard - "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1": - version: 2.3.2 - resolution: "picomatch@npm:2.3.2" - checksum: 10/b788ef8148a2415b9dec12f0bb350ae6a5830f8f1950e472abc2f5225494debf7d1b75eb031df0ceaea9e8ec3e7bad599e8dbf3c60d61b42be429ba41bff4426 + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 10/60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc languageName: node linkType: hard @@ -2760,12 +2763,47 @@ __metadata: languageName: node linkType: hard -"protobufjs@npm:>=8.6.6": - version: 8.6.6 - resolution: "protobufjs@npm:8.6.6" +"protobufjs@npm:^6.11.3": + version: 6.11.4 + resolution: "protobufjs@npm:6.11.4" dependencies: - long: "npm:^5.3.2" - checksum: 10/d3a60d06182ebb89bb688c70914867813dcf37ba5983f6b3d45d44ccb326b039f832d054013669da561e6b8caf20b1bc01fca47ae71a46c9c5ffda575511f3c7 + "@protobufjs/aspromise": "npm:^1.1.2" + "@protobufjs/base64": "npm:^1.1.2" + "@protobufjs/codegen": "npm:^2.0.4" + "@protobufjs/eventemitter": "npm:^1.1.0" + "@protobufjs/fetch": "npm:^1.1.0" + "@protobufjs/float": "npm:^1.0.2" + "@protobufjs/inquire": "npm:^1.1.0" + "@protobufjs/path": "npm:^1.1.2" + "@protobufjs/pool": "npm:^1.1.0" + "@protobufjs/utf8": "npm:^1.1.0" + "@types/long": "npm:^4.0.1" + "@types/node": "npm:>=13.7.0" + long: "npm:^4.0.0" + bin: + pbjs: bin/pbjs + pbts: bin/pbts + checksum: 10/6b7fd7540d74350d65c38f69f398c9995ae019da070e79d9cd464a458c6d19b40b07c9a026be4e10704c824a344b603307745863310c50026ebd661ce4da0663 + languageName: node + linkType: hard + +"protobufjs@npm:^7.2.5": + version: 7.3.0 + resolution: "protobufjs@npm:7.3.0" + dependencies: + "@protobufjs/aspromise": "npm:^1.1.2" + "@protobufjs/base64": "npm:^1.1.2" + "@protobufjs/codegen": "npm:^2.0.4" + "@protobufjs/eventemitter": "npm:^1.1.0" + "@protobufjs/fetch": "npm:^1.1.0" + "@protobufjs/float": "npm:^1.0.2" + "@protobufjs/inquire": "npm:^1.1.0" + "@protobufjs/path": "npm:^1.1.2" + "@protobufjs/pool": "npm:^1.1.0" + "@protobufjs/utf8": "npm:^1.1.0" + "@types/node": "npm:>=13.7.0" + long: "npm:^5.0.0" + checksum: 10/aff4aa2a3a2f011accb51e23fcae122acbee35cb761abe51f799675a61ab39ad9a506911f307e0fdb9a1703bed1f522cfbdaafaeefd2b3aaca2ddc18f03029d9 languageName: node linkType: hard @@ -2785,7 +2823,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0, readable-stream@npm:^3.6.2": +"readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: @@ -2911,24 +2949,24 @@ __metadata: version: 0.0.0-use.local resolution: "satp-contract@workspace:." dependencies: - "@types/chai": "npm:4.2.11" - "@types/chai-as-promised": "npm:7.1.2" - "@types/mocha": "npm:7.0.2" + "@types/chai": "npm:^4.2.11" + "@types/chai-as-promised": "npm:^7.1.2" + "@types/mocha": "npm:^7.0.2" "@types/node": "npm:18.11.9" - "@types/sinon": "npm:7.5.2" - "@types/sinon-chai": "npm:3.2.3" - chai: "npm:4.2.0" - chai-as-promised: "npm:7.1.1" - fabric-contract-api: "npm:2.4.1" + "@types/sinon": "npm:^7.5.2" + "@types/sinon-chai": "npm:^3.2.3" + chai: "npm:^4.2.0" + chai-as-promised: "npm:^7.1.1" + fabric-contract-api: "npm:^2.4.1" fabric-shim: "npm:2.4.1" - mocha: "npm:9.2.0" - nyc: "npm:15.0.0" - sinon: "npm:9.0.1" - sinon-chai: "npm:3.5.0" - ts-node: "npm:8.8.1" - tslint: "npm:6.1.0" - typescript: "npm:5.5.2" - winston: "npm:3.2.1" + mocha: "npm:^9.2.0" + nyc: "npm:^15.0.0" + sinon: "npm:^9.0.1" + sinon-chai: "npm:^3.5.0" + ts-node: "npm:^8.8.1" + tslint: "npm:^6.1.0" + typescript: "npm:5.3.3" + winston: "npm:^3.2.1" languageName: unknown linkType: soft @@ -3014,28 +3052,27 @@ __metadata: languageName: node linkType: hard -"sinon-chai@npm:3.5.0": - version: 3.5.0 - resolution: "sinon-chai@npm:3.5.0" +"sinon-chai@npm:^3.5.0": + version: 3.7.0 + resolution: "sinon-chai@npm:3.7.0" peerDependencies: chai: ^4.0.0 - sinon: ">=4.0.0 <10.0.0" - checksum: 10/e160c5f535dc504d22a161198930b9138727bb7058b1a703a35ee65cc2a0e18580e5f983bd89960ded55d3737d9b6cb02c3803280b2b2eaa9e11acc39933ff58 + sinon: ">=4.0.0" + checksum: 10/028853eb8a545ca613c6863014a40f07d1e6b81467e20939fefcd13f170206d24165b91099fb297aeb4d137745e321da25daa8e2d665cc0a78f90d5b877e8bbe languageName: node linkType: hard -"sinon@npm:9.0.1": - version: 9.0.1 - resolution: "sinon@npm:9.0.1" +"sinon@npm:^9.0.1": + version: 9.2.4 + resolution: "sinon@npm:9.2.4" dependencies: - "@sinonjs/commons": "npm:^1.7.0" - "@sinonjs/fake-timers": "npm:^6.0.0" - "@sinonjs/formatio": "npm:^5.0.1" - "@sinonjs/samsam": "npm:^5.0.3" + "@sinonjs/commons": "npm:^1.8.1" + "@sinonjs/fake-timers": "npm:^6.0.1" + "@sinonjs/samsam": "npm:^5.3.1" diff: "npm:^4.0.2" - nise: "npm:^4.0.1" + nise: "npm:^4.0.4" supports-color: "npm:^7.1.0" - checksum: 10/dbb22128d8baf7915edd70bb61433f722f4a541997df42ed8cc4976ddaa954753bf6490920bebef4544f57dedc55148e592ab0c26f64950c387a9ef8dae4b872 + checksum: 10/4597c12e2490b22aaae5fb1edca169a10e71dee73c13d2d12d6d9fa7f3bdbdb53ec5ad52c631c301fb3eab79471a30b05be65155c30ca415169470ea4789eae6 languageName: node linkType: hard @@ -3067,7 +3104,7 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:^0.5.6": +"source-map-support@npm:^0.5.17": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -3257,6 +3294,13 @@ __metadata: languageName: node linkType: hard +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: 10/be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 + languageName: node + linkType: hard + "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -3273,14 +3317,14 @@ __metadata: languageName: node linkType: hard -"ts-node@npm:8.8.1": - version: 8.8.1 - resolution: "ts-node@npm:8.8.1" +"ts-node@npm:^8.8.1": + version: 8.10.2 + resolution: "ts-node@npm:8.10.2" dependencies: arg: "npm:^4.1.0" diff: "npm:^4.0.1" make-error: "npm:^1.1.1" - source-map-support: "npm:^0.5.6" + source-map-support: "npm:^0.5.17" yn: "npm:3.1.1" peerDependencies: typescript: ">=2.7" @@ -3289,20 +3333,20 @@ __metadata: ts-node-script: dist/bin-script.js ts-node-transpile-only: dist/bin-transpile.js ts-script: dist/bin-script-deprecated.js - checksum: 10/889445c9b15eba15b0879394b829d32acee1819309caff795700e683349798c2973f7fe5b69dd0265b9c5afe6556fc49c001ec02cc0d38571a341ef616a26e6d + checksum: 10/1431026e6e9e8971ecaba14fdf9960541918c0560344d95e4942b765dbd96d5648b99ca02a5090046130aa9870164b82ba8090a4eda048d19da3ad7aceeb0b49 languageName: node linkType: hard -"tslib@npm:^1.10.0, tslib@npm:^1.8.1": +"tslib@npm:^1.13.0, tslib@npm:^1.8.1": version: 1.14.1 resolution: "tslib@npm:1.14.1" checksum: 10/7dbf34e6f55c6492637adb81b555af5e3b4f9cc6b998fb440dac82d3b42bdc91560a35a5fb75e20e24a076c651438234da6743d139e4feabf0783f3cdfe1dddb languageName: node linkType: hard -"tslint@npm:6.1.0": - version: 6.1.0 - resolution: "tslint@npm:6.1.0" +"tslint@npm:^6.1.0": + version: 6.1.3 + resolution: "tslint@npm:6.1.3" dependencies: "@babel/code-frame": "npm:^7.0.0" builtin-modules: "npm:^1.1.1" @@ -3312,16 +3356,16 @@ __metadata: glob: "npm:^7.1.1" js-yaml: "npm:^3.13.1" minimatch: "npm:^3.0.4" - mkdirp: "npm:^0.5.1" + mkdirp: "npm:^0.5.3" resolve: "npm:^1.3.2" semver: "npm:^5.3.0" - tslib: "npm:^1.10.0" + tslib: "npm:^1.13.0" tsutils: "npm:^2.29.0" peerDependencies: - typescript: ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev" + typescript: ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" bin: tslint: bin/tslint - checksum: 10/ac61f5446111f5af1ba07d686d1617c6a38ef1b2dd179247d662e3ad650809e07bc3d9e8bf063b088be064e5e9406d2cde6c310596d2592af8a76999359a87d8 + checksum: 10/26720946260151c6b4e91e637443f3c09466dcd29bb3455ba4ae39a8d8d249a5f63cb6ec09ae916bd9e4385533f1df9954a2b349349336fb44ed826f5c38e6ec languageName: node linkType: hard @@ -3350,13 +3394,6 @@ __metadata: languageName: node linkType: hard -"type-detect@npm:^4.0.5": - version: 4.1.0 - resolution: "type-detect@npm:4.1.0" - checksum: 10/e363bf0352427a79301f26a7795a27718624c49c576965076624eb5495d87515030b207217845f7018093adcbe169b2d119bb9b7f1a31a92bfbb1ab9639ca8dd - languageName: node - linkType: hard - "type-fest@npm:^0.8.0": version: 0.8.1 resolution: "type-fest@npm:0.8.1" @@ -3373,23 +3410,23 @@ __metadata: languageName: node linkType: hard -"typescript@npm:5.5.2": - version: 5.5.2 - resolution: "typescript@npm:5.5.2" +"typescript@npm:5.3.3": + version: 5.3.3 + resolution: "typescript@npm:5.3.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/9118b20f248e76b0dbff8737fef65dfa89d02668d4e633d2c5ceac99033a0ca5e8a1c1a53bc94da68e8f67677a88f318663dde859c9e9a09c1e116415daec2ba + checksum: 10/6e4e6a14a50c222b3d14d4ea2f729e79f972fa536ac1522b91202a9a65af3605c2928c4a790a4a50aa13694d461c479ba92cedaeb1e7b190aadaa4e4b96b8e18 languageName: node linkType: hard -"typescript@patch:typescript@npm%3A5.5.2#optional!builtin": - version: 5.5.2 - resolution: "typescript@patch:typescript@npm%3A5.5.2#optional!builtin::version=5.5.2&hash=379a07" +"typescript@patch:typescript@npm%3A5.3.3#optional!builtin": + version: 5.3.3 + resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10/ac3145f65cf9e72ab29f2196e05d5816b355dc1a9195b9f010d285182a12457cfacd068be2dd22c877f88ebc966ac6e0e83f51c8586412b16499a27e3670ff4b + checksum: 10/c93786fcc9a70718ba1e3819bab56064ead5817004d1b8186f8ca66165f3a2d0100fee91fa64c840dcd45f994ca5d615d8e1f566d39a7470fc1e014dbb4cf15d languageName: node linkType: hard @@ -3418,17 +3455,17 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.2.3": - version: 1.2.3 - resolution: "update-browserslist-db@npm:1.2.3" +"update-browserslist-db@npm:^1.0.13": + version: 1.0.16 + resolution: "update-browserslist-db@npm:1.0.16" dependencies: - escalade: "npm:^3.2.0" - picocolors: "npm:^1.1.1" + escalade: "npm:^3.1.2" + picocolors: "npm:^1.0.1" peerDependencies: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 10/059f774300efb4b084a49293143c511f3ae946d40397b5c30914e900cd5691a12b8e61b41dd54ed73d3b56c8204165a0333107dd784ccf8f8c81790bcc423175 + checksum: 10/071bf0b2fb8568db6cd42ee2598ac9b87c794a7229fcbf1b035ae7f883e770c07143f16a5371525d5bcb94b99f9a1b279036142b0195ffd4cf5a0008fc4a500e languageName: node linkType: hard @@ -3448,15 +3485,6 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^3.3.3": - version: 3.4.0 - resolution: "uuid@npm:3.4.0" - bin: - uuid: ./bin/uuid - checksum: 10/4f2b86432b04cc7c73a0dd1bcf11f1fc18349d65d2e4e32dd0fc658909329a1e0cc9244aa93f34c0cccfdd5ae1af60a149251a5f420ec3ac4223a3dab198fb2e - languageName: node - linkType: hard - "uuid@npm:^8.3.2": version: 8.3.2 resolution: "uuid@npm:8.3.2" @@ -3495,17 +3523,6 @@ __metadata: languageName: node linkType: hard -"winston-transport@npm:^4.3.0": - version: 4.9.0 - resolution: "winston-transport@npm:4.9.0" - dependencies: - logform: "npm:^2.7.0" - readable-stream: "npm:^3.6.2" - triple-beam: "npm:^1.3.0" - checksum: 10/5946918720baadd7447823929e94cf0935f92c4cff6d9451c6fcb009bd9d20a3b3df9ad606109e79d1e9f4d2ff678477bf09f81cfefce2025baaf27a617129bb - languageName: node - linkType: hard - "winston-transport@npm:^4.7.0": version: 4.7.0 resolution: "winston-transport@npm:4.7.0" @@ -3517,24 +3534,7 @@ __metadata: languageName: node linkType: hard -"winston@npm:3.2.1": - version: 3.2.1 - resolution: "winston@npm:3.2.1" - dependencies: - async: "npm:^2.6.1" - diagnostics: "npm:^1.1.1" - is-stream: "npm:^1.1.0" - logform: "npm:^2.1.1" - one-time: "npm:0.0.4" - readable-stream: "npm:^3.1.1" - stack-trace: "npm:0.0.x" - triple-beam: "npm:^1.3.0" - winston-transport: "npm:^4.3.0" - checksum: 10/6d888566c719a2688f7f001f8caa8d9acb53a381d84dfcb1255052a6c4dd85fe004b220ea4c617b76a9863f1c025d5bb9182eaf2d081b58d2650758920e26fd1 - languageName: node - linkType: hard - -"winston@npm:^3.3.3": +"winston@npm:^3.2.1, winston@npm:^3.3.3, winston@npm:^3.7.2": version: 3.13.0 resolution: "winston@npm:3.13.0" dependencies: diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/monitoring-infrastructure.ts b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/monitoring-infrastructure.ts new file mode 100644 index 0000000..1c62427 --- /dev/null +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/infrastructure/monitoring-infrastructure.ts @@ -0,0 +1,143 @@ +import Docker, { Container, ContainerInfo } from "dockerode"; +import { Containers } from "@hyperledger-cacti/cactus-test-tooling"; +import { EventEmitter } from "events"; + +export interface MonitorSystemConfig { + network?: string; + networkAlias?: string; + grafanaPort?: number; + httpPort?: number; + grpcPort?: number; + exportInterval?: number; +} + +export async function createMonitorSystem( + config: MonitorSystemConfig, +): Promise { + const { + network = "CDBC_Network", + networkAlias = "otel-lgtm", + grafanaPort = 3000, + httpPort = 4318, + grpcPort = 4317, + exportInterval = 1000, + } = config; + + const fnTag = "createMonitorSystem()"; + const docker = new Docker(); + + const imageFqn = "grafana/otel-lgtm:latest"; + + console.debug(`Pulling container image ${imageFqn} ...`); + await Containers.pullImage(imageFqn, {}, "DEBUG"); + console.debug(`Pulled ${imageFqn} OK. Starting container...`); + + console.debug(`Starting container with image: ${imageFqn}...`); + + if (network) { + const networks = await docker.listNetworks(); + const networkExists = networks.some((n) => n.Name === network); + if (!networkExists) { + await docker.createNetwork({ + Name: network, + Driver: "bridge", + }); + } + } + + const hostConfig: Docker.HostConfig = { + PublishAllPorts: false, + Binds: [], + NetworkMode: network, + PortBindings: { + "3000/tcp": [{ HostPort: String(grafanaPort) }], + "4317/tcp": [{ HostPort: String(grpcPort) }], + "4318/tcp": [{ HostPort: String(httpPort) }], + }, + }; + + const healthCheck = { + test: [ + "CMD-SHELL", + `curl -sf http://localhost:3000/api/health | grep -q '"database": "ok"' || exit 1`, + ], + interval: 1000000, + timeout: 60000000, + retries: 30, + startPeriod: 1000000, + }; + + const networkingConfig = network + ? { + EndpointsConfig: { + [network]: { + Aliases: [networkAlias], + }, + }, + } + : undefined; + + const container = new Promise((resolve, reject) => { + const eventEmitter: EventEmitter = docker.run( + imageFqn, + [], + [], + { + ExposedPorts: { + "3000/tcp": {}, + "4317/tcp": {}, + "4318/tcp": {}, + }, + HostConfig: hostConfig, + NetworkingConfig: networkingConfig, + Healthcheck: healthCheck as any, + Env: [ + `OTEL_METRIC_EXPORT_INTERVAL=${exportInterval}`, + "OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION=explicit_bucket_histogram", + ], + }, + {}, + (err: unknown) => { + if (err) { + reject(err); + } + }, + ); + + eventEmitter.once("start", async (container: Container) => { + console.debug(`Started container OK. Waiting for healthcheck...`); + + try { + const startedAt = Date.now(); + let isHealthy = false; + do { + if (Date.now() >= startedAt + 60000) { + throw new Error(`${fnTag} timed out (${60000}ms)`); + } + + const containerInfos = await docker.listContainers({}); + const containerInfo = containerInfos.find( + (ci) => ci.Id === container.id, + ); + let status; + try { + status = ((await containerInfo) as ContainerInfo).Status; + } catch { + continue; + } + + isHealthy = status.endsWith("(healthy)"); + if (!isHealthy) { + await new Promise((resolve2) => setTimeout(resolve2, 1000)); + } + } while (!isHealthy); + console.debug(`Healthcheck passing OK.`); + resolve(container); + } catch (ex) { + reject(ex); + } + }); + }); + + return await container; +} diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/types.ts b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/types.ts index b71932e..7e4c7af 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/types.ts +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/types.ts @@ -1,6 +1,8 @@ import { LogLevelDesc } from "@hyperledger-cacti/cactus-common"; import { CbdcBridgingAppDummyInfrastructure } from "./infrastructure/cbdc-bridging-app-dummy-infrastructure"; +export type LedgerId = "BESU_A" | "BESU_B"; + export interface IRequestOptions { logLevel?: LogLevelDesc; infrastructure: CbdcBridgingAppDummyInfrastructure; diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/approve-endpoint.ts b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/approve-endpoint.ts index 2c198e2..7cf1e42 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/approve-endpoint.ts +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/approve-endpoint.ts @@ -86,8 +86,7 @@ export class ApproveEndpointV1 implements IWebServiceEndpoint { try { let result; if ( - reqBody.ledger.assetType === - TransactRequestSourceChainAssetTypeEnum.Besu + reqBody.ledger.assetType === TransactRequestSourceChainAssetTypeEnum.A ) { result = await this.options.infrastructure .getBesuEnvironment() diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/get-amount-approved-endpoint.ts b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/get-amount-approved-endpoint.ts index 17fc0bf..43d9636 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/get-amount-approved-endpoint.ts +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/get-amount-approved-endpoint.ts @@ -80,7 +80,7 @@ export class GetAmountApprovedEndpointV1 implements IWebServiceEndpoint { this.log.debug(reqTag); try { let result; - if (req.query.chain === TransactRequestSourceChainAssetTypeEnum.Besu) { + if (req.query.chain === TransactRequestSourceChainAssetTypeEnum.A) { result = await this.options.infrastructure .getBesuEnvironment() .getAmountApprovedBesu(req.query.user as string); diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/get-balance-endpoint.ts b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/get-balance-endpoint.ts index 234ec0c..3890432 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/get-balance-endpoint.ts +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/get-balance-endpoint.ts @@ -81,8 +81,7 @@ export class GetBalanceEndpointV1 implements IWebServiceEndpoint { try { let result; if ( - (req.query.chain as string) == - TransactRequestSourceChainAssetTypeEnum.Besu + (req.query.chain as string) == TransactRequestSourceChainAssetTypeEnum.A ) { result = await this.options.infrastructure .getBesuEnvironment() diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/mint-endpoint.ts b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/mint-endpoint.ts index e0abcba..28b5335 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/mint-endpoint.ts +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/mint-endpoint.ts @@ -86,8 +86,7 @@ export class MintEndpointV1 implements IWebServiceEndpoint { try { let result; if ( - reqBody.ledger.assetType === - TransactRequestSourceChainAssetTypeEnum.Besu + reqBody.ledger.assetType === TransactRequestSourceChainAssetTypeEnum.A ) { result = await this.options.infrastructure .getBesuEnvironment() diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/transfer-endpoint.ts b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/transfer-endpoint.ts index 82953e6..6696e56 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/transfer-endpoint.ts +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/typescript/web-services/transfer-endpoint.ts @@ -87,9 +87,9 @@ export class TransferEndpointV1 implements IWebServiceEndpoint { let result; if ( reqBody.sourceChain.assetType === - TransactRequestSourceChainAssetTypeEnum.Besu && + TransactRequestSourceChainAssetTypeEnum.A && reqBody.receiverChain.assetType === - TransactRequestSourceChainAssetTypeEnum.Fabric + TransactRequestSourceChainAssetTypeEnum.B ) { result = await this.options.infrastructure .getBesuEnvironment() @@ -100,9 +100,9 @@ export class TransferEndpointV1 implements IWebServiceEndpoint { ); } else if ( reqBody.sourceChain.assetType === - TransactRequestSourceChainAssetTypeEnum.Fabric && + TransactRequestSourceChainAssetTypeEnum.B && reqBody.receiverChain.assetType === - TransactRequestSourceChainAssetTypeEnum.Besu + TransactRequestSourceChainAssetTypeEnum.A ) { result = await this.options.infrastructure .getFabricEnvironment() diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/yml/openapi-bundled.yml b/examples/cactus-example-cbdc-bridging-backend/src/main/yml/openapi-bundled.yml index cdfb9bc..4e7f522 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/yml/openapi-bundled.yml +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/yml/openapi-bundled.yml @@ -8,8 +8,8 @@ info: name: Hyperledger Cacti x-logo: altText: Cacti logo - backgroundColor: '#fafafa' - url: 'https://github.com/hyperledger/cacti/blob/main/images/HL_Cacti_Logo_Color.png' + backgroundColor: "#fafafa" + url: "https://github.com/hyperledger/cacti/blob/main/images/HL_Cacti_Logo_Color.png" tags: - name: transaction description: API endpoints for interacting with blockchains via gateways @@ -32,7 +32,7 @@ paths: content: application/json: schema: - description: 'Request schema for initiating a transaction. Includes details such as the transaction context, mode (data or transfer), payload, and information about the source and receiver DLT networks.' + description: "Request schema for initiating a transaction. Includes details such as the transaction context, mode (data or transfer), payload, and information about the source and receiver DLT networks." type: object required: - sender @@ -54,8 +54,8 @@ paths: assetType: type: string enum: - - FABRIC - - BESU + - BESU_A + - BESU_B receiverChain: description: Enum for the type of asset being transferred. type: object @@ -63,13 +63,13 @@ paths: assetType: type: string enum: - - FABRIC - - BESU + - BESU_A + - BESU_B amount: type: string - example: '100' + example: "100" responses: - '200': + "200": description: Transaction successfully queued content: application/json: @@ -132,7 +132,7 @@ paths: timestamp: type: string description: Timestamp of the error - example: '2021-07-21T17:32:28Z' + example: "2021-07-21T17:32:28Z" /api/v1/@hyperledger-cacti/cactus-example-cbdc/get-sessions-references: get: tags: @@ -150,11 +150,11 @@ paths: schema: type: string enum: - - FABRIC - - BESU + - BESU_A + - BESU_B description: Unique identifier for the session. responses: - '200': + "200": description: OK content: application/json: @@ -178,11 +178,11 @@ paths: - id - sourceLedger - receiverLedger - '400': + "400": description: Bad request - '404': + "404": description: Transaction not found - '500': + "500": description: Internal server error /api/v1/@hyperledger-cacti/cactus-example-cbdc/get-balance: get: @@ -203,10 +203,10 @@ paths: schema: type: string enum: - - FABRIC - - BESU + - BESU_A + - BESU_B responses: - '200': + "200": description: OK content: application/json: @@ -216,14 +216,14 @@ paths: properties: amount: type: string - example: '100' + example: "100" required: - amount - '400': + "400": description: Bad request - '404': + "404": description: Transaction not found - '500': + "500": description: Internal server error /api/v1/@hyperledger-cacti/cactus-example-cbdc/mint-tokens: post: @@ -249,7 +249,7 @@ paths: example: user1 amount: type: string - example: '100' + example: "100" ledger: description: Enum for the type of asset being transferred. type: object @@ -257,20 +257,20 @@ paths: assetType: type: string enum: - - FABRIC - - BESU + - BESU_A + - BESU_B required: - user - amount - ledger responses: - '200': + "200": description: Transaction successfully queued - '400': + "400": description: Bad request - '404': + "404": description: Transaction not found - '500': + "500": description: Internal server error default: description: An error occurred @@ -308,7 +308,7 @@ paths: timestamp: type: string description: Timestamp of the error - example: '2021-07-21T17:32:28Z' + example: "2021-07-21T17:32:28Z" /api/v1/@hyperledger-cacti/cactus-example-cbdc/approve-tokens: post: tags: @@ -333,7 +333,7 @@ paths: example: user1 amount: type: string - example: '100' + example: "100" ledger: description: Enum for the type of asset being transferred. type: object @@ -341,20 +341,20 @@ paths: assetType: type: string enum: - - FABRIC - - BESU + - BESU_A + - BESU_B required: - user - amount - ledger responses: - '200': + "200": description: Transaction successfully queued - '400': + "400": description: Bad request - '404': + "404": description: Transaction not found - '500': + "500": description: Internal server error default: description: An error occurred @@ -392,7 +392,7 @@ paths: timestamp: type: string description: Timestamp of the error - example: '2021-07-21T17:32:28Z' + example: "2021-07-21T17:32:28Z" /api/v1/@hyperledger-cacti/cactus-example-cbdc/get-amount-approved: get: tags: @@ -414,21 +414,21 @@ paths: schema: type: string enum: - - FABRIC - - BESU + - BESU_A + - BESU_B responses: - '200': + "200": description: OK content: application/json: schema: type: string - example: '100' - '400': + example: "100" + "400": description: Bad request - '404': + "404": description: Transaction not found - '500': + "500": description: Internal server error /api/v1/@hyperledger-cacti/cactus-example-cbdc/transfer-tokens: post: @@ -462,8 +462,8 @@ paths: assetType: type: string enum: - - FABRIC - - BESU + - BESU_A + - BESU_B receiverChain: description: Enum for the type of asset being transferred. type: object @@ -471,11 +471,11 @@ paths: assetType: type: string enum: - - FABRIC - - BESU + - BESU_A + - BESU_B amount: type: string - example: '100' + example: "100" required: - from - to @@ -483,13 +483,13 @@ paths: - sourceChain - receiverChain responses: - '200': + "200": description: Transaction successfully queued - '400': + "400": description: Bad request - '404': + "404": description: Transaction not found - '500': + "500": description: Internal server error default: description: An error occurred @@ -527,4 +527,4 @@ paths: timestamp: type: string description: Timestamp of the error - example: '2021-07-21T17:32:28Z' + example: "2021-07-21T17:32:28Z" diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/yml/openapi.yml b/examples/cactus-example-cbdc-bridging-backend/src/main/yml/openapi.yml index ac6d083..d188686 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/yml/openapi.yml +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/yml/openapi.yml @@ -8,7 +8,7 @@ info: name: Hyperledger Cacti x-logo: altText: Cacti logo - backgroundColor: '#fafafa' + backgroundColor: "#fafafa" url: https://github.com/hyperledger/cacti/blob/main/images/HL_Cacti_Logo_Color.png tags: - name: transaction @@ -34,7 +34,7 @@ paths: schema: $ref: ./schemas.yml#/TransactRequest responses: - '200': + "200": description: Transaction successfully queued content: application/json: @@ -49,7 +49,7 @@ paths: /api/v1/@hyperledger-cacti/cactus-example-cbdc/get-sessions-references: get: tags: - - get-sessions-references + - get-sessions-references summary: Get SATP current sessions data description: Retrieve the status of a SATP sessions of a gateway operationId: GetSessionsReferences @@ -63,56 +63,56 @@ paths: schema: type: string enum: - - FABRIC - - BESU + - BESU_A + - BESU_B description: Unique identifier for the session. responses: - '200': + "200": description: OK content: application/json: schema: $ref: ./schemas.yml#/SessionsReferencesResponse - '400': + "400": description: Bad request - '404': + "404": description: Transaction not found - '500': + "500": description: Internal server error /api/v1/@hyperledger-cacti/cactus-example-cbdc/get-balance: - get: - tags: - - get-balance - x-hyperledger-cacti: - http: - verbLowerCase: get - path: /api/v1/@hyperledger-cacti/cactus-example-cbdc/get-balance - operationId: GetBalance - parameters: - - name: user - in: query - schema: - type: string - - name: chain - in: query + get: + tags: + - get-balance + x-hyperledger-cacti: + http: + verbLowerCase: get + path: /api/v1/@hyperledger-cacti/cactus-example-cbdc/get-balance + operationId: GetBalance + parameters: + - name: user + in: query + schema: + type: string + - name: chain + in: query + schema: + type: string + enum: + - BESU_A + - BESU_B + responses: + "200": + description: OK + content: + application/json: schema: - type: string - enum: - - FABRIC - - BESU - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: ./schemas.yml#/BalanceResponse - '400': - description: Bad request - '404': - description: Transaction not found - '500': - description: Internal server error + $ref: ./schemas.yml#/BalanceResponse + "400": + description: Bad request + "404": + description: Transaction not found + "500": + description: Internal server error /api/v1/@hyperledger-cacti/cactus-example-cbdc/mint-tokens: post: tags: @@ -131,13 +131,13 @@ paths: schema: $ref: ./schemas.yml#/MintRequest responses: - '200': + "200": description: Transaction successfully queued - '400': + "400": description: Bad request - '404': + "404": description: Transaction not found - '500': + "500": description: Internal server error default: description: An error occurred @@ -163,13 +163,13 @@ paths: schema: $ref: ./schemas.yml#/ApproveRequest responses: - '200': + "200": description: Transaction successfully queued - '400': + "400": description: Bad request - '404': + "404": description: Transaction not found - '500': + "500": description: Internal server error default: description: An error occurred @@ -180,7 +180,7 @@ paths: /api/v1/@hyperledger-cacti/cactus-example-cbdc/get-amount-approved: get: tags: - - get-amount-approved + - get-amount-approved x-hyperledger-cacti: http: verbLowerCase: get @@ -198,21 +198,21 @@ paths: schema: type: string enum: - - FABRIC - - BESU + - BESU_A + - BESU_B responses: - '200': + "200": description: OK content: application/json: schema: type: string example: "100" - '400': + "400": description: Bad request - '404': + "404": description: Transaction not found - '500': + "500": description: Internal server error /api/v1/@hyperledger-cacti/cactus-example-cbdc/transfer-tokens: post: @@ -232,17 +232,17 @@ paths: schema: $ref: ./schemas.yml#/TransferRequest responses: - '200': + "200": description: Transaction successfully queued - '400': + "400": description: Bad request - '404': + "404": description: Transaction not found - '500': + "500": description: Internal server error default: description: An error occurred content: application/json: schema: - $ref: ./schemas.yml#/APIError \ No newline at end of file + $ref: ./schemas.yml#/APIError diff --git a/examples/cactus-example-cbdc-bridging-backend/src/main/yml/schemas.yml b/examples/cactus-example-cbdc-bridging-backend/src/main/yml/schemas.yml index 636f289..de1df93 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/main/yml/schemas.yml +++ b/examples/cactus-example-cbdc-bridging-backend/src/main/yml/schemas.yml @@ -5,8 +5,8 @@ AssetType: assetType: type: string enum: - - FABRIC - - BESU + - BESU_A + - BESU_B TransactRequest: description: "Request schema for initiating a transaction. Includes details such as the transaction context, mode (data or transfer), payload, and information about the source and receiver DLT networks." type: object @@ -24,9 +24,9 @@ TransactRequest: type: string example: "user2" sourceChain: - $ref: '#/AssetType' + $ref: "#/AssetType" receiverChain: - $ref: '#/AssetType' + $ref: "#/AssetType" amount: type: string example: "100" @@ -35,7 +35,7 @@ TransactResponse: type: object properties: statusResponse: - $ref: '#/StatusResponse' + $ref: "#/StatusResponse" required: - statusResponse StatusResponse: @@ -92,19 +92,19 @@ SessionsReferencesResponse: description: "Response schema for a transaction status request." type: array items: - $ref: '#/SessionReference' + $ref: "#/SessionReference" SessionReference: type: object properties: - id: - type: string - example: "123e4567-e89b-12d3-a456-426614174000" - status: - type: string - sourceLedger: - type: string - receiverLedger: - type: string + id: + type: string + example: "123e4567-e89b-12d3-a456-426614174000" + status: + type: string + sourceLedger: + type: string + receiverLedger: + type: string required: - status - id @@ -122,7 +122,7 @@ MintRequest: type: string example: "100" ledger: - $ref: '#/AssetType' + $ref: "#/AssetType" required: - user - amount @@ -135,7 +135,7 @@ BalanceResponse: type: string example: "100" required: - - amount + - amount TransferRequest: description: "Request schema for transferring an asset." type: object @@ -147,9 +147,9 @@ TransferRequest: type: string example: "user2" sourceChain: - $ref: '#/AssetType' + $ref: "#/AssetType" receiverChain: - $ref: '#/AssetType' + $ref: "#/AssetType" amount: type: string example: "100" @@ -170,10 +170,8 @@ ApproveRequest: type: string example: "100" ledger: - $ref: '#/AssetType' + $ref: "#/AssetType" required: - user - amount - ledger - - \ No newline at end of file diff --git a/examples/cactus-example-cbdc-bridging-backend/src/test/typescript/integration/cbdc-examples.test.ts b/examples/cactus-example-cbdc-bridging-backend/src/test/typescript/integration/cbdc-examples.test.ts index d4088af..91bf22e 100644 --- a/examples/cactus-example-cbdc-bridging-backend/src/test/typescript/integration/cbdc-examples.test.ts +++ b/examples/cactus-example-cbdc-bridging-backend/src/test/typescript/integration/cbdc-examples.test.ts @@ -104,17 +104,17 @@ describe.skip("CBDC E2E API Scenarios", () => { try { const aliceFabricBalance = await getBalanceApi.getBalance( ALICE_USER, - "FABRIC", + "BESU_A", ); const aliceBesuBalance = await getBalanceApi.getBalance( ALICE_USER, - "BESU", + "BESU_B", ); const bobFabricBalance = await getBalanceApi.getBalance( BOB_USER, - "FABRIC", + "BESU_A", ); - const bobBesuBalance = await getBalanceApi.getBalance(BOB_USER, "BESU"); + const bobBesuBalance = await getBalanceApi.getBalance(BOB_USER, "BESU_B"); log.info( `After reset - Alice: Fabric=${aliceFabricBalance.data.amount}, Besu=${aliceBesuBalance.data.amount}`, @@ -136,11 +136,11 @@ describe.skip("CBDC E2E API Scenarios", () => { try { const aliceFabricResponse = await getBalanceApi.getBalance( ALICE_USER, - "FABRIC", + "BESU_A", ); const aliceBesuResponse = await getBalanceApi.getBalance( ALICE_USER, - "BESU", + "BESU_B", ); const aliceFabricBalance = parseInt(aliceFabricResponse.data.amount); @@ -158,8 +158,8 @@ describe.skip("CBDC E2E API Scenarios", () => { const transferResponse = await transferApi.transfer({ from: ALICE_USER, to: BOB_USER, - sourceChain: { assetType: "FABRIC" }, - receiverChain: { assetType: "FABRIC" }, + sourceChain: { assetType: "BESU_A" }, + receiverChain: { assetType: "BESU_A" }, amount: aliceFabricBalance.toString(), }); log.info(`Transfer API response status: ${transferResponse.status}`); @@ -188,8 +188,8 @@ describe.skip("CBDC E2E API Scenarios", () => { const transferResponse = await transferApi.transfer({ from: ALICE_USER, to: BOB_USER, - sourceChain: { assetType: "BESU" }, - receiverChain: { assetType: "BESU" }, + sourceChain: { assetType: "BESU_B" }, + receiverChain: { assetType: "BESU_B" }, amount: aliceBesuBalance.toString(), }); log.info(`Transfer API response status: ${transferResponse.status}`); @@ -214,11 +214,11 @@ describe.skip("CBDC E2E API Scenarios", () => { const finalFabricResponse = await getBalanceApi.getBalance( ALICE_USER, - "FABRIC", + "BESU_A", ); const finalBesuResponse = await getBalanceApi.getBalance( ALICE_USER, - "BESU", + "BESU_B", ); const finalFabricBalance = parseInt(finalFabricResponse.data.amount); @@ -248,11 +248,11 @@ describe.skip("CBDC E2E API Scenarios", () => { await new Promise((resolve) => setTimeout(resolve, 3000)); const fallbackFabricResponse = await getBalanceApi.getBalance( ALICE_USER, - "FABRIC", + "BESU_A", ); const fallbackBesuResponse = await getBalanceApi.getBalance( ALICE_USER, - "BESU", + "BESU_B", ); log.info( @@ -280,7 +280,7 @@ describe.skip("CBDC E2E API Scenarios", () => { */ async function setupAliceWithCBDC( amount: number = ESCROW_AMOUNT, - ledger: "FABRIC" | "BESU" = "FABRIC", + ledger: "BESU_A" | "BESU_B" = "BESU_A", ) { await mintApi.mint({ user: ALICE_USER, @@ -302,7 +302,7 @@ describe.skip("CBDC E2E API Scenarios", () => { async function createAssetReference( user: string, amount: number, - ledger: "FABRIC" | "BESU" = "BESU", + ledger: "BESU_A" | "BESU_B" = "BESU_B", ) { await approveApi.approve({ user: user, @@ -331,8 +331,8 @@ describe.skip("CBDC E2E API Scenarios", () => { locker: string, recipient: string, amount: number, - sourceChain: "FABRIC" | "BESU", - receiverChain: "FABRIC" | "BESU", + sourceChain: "BESU_A" | "BESU_B", + receiverChain: "BESU_A" | "BESU_B", ) { try { const response = await transactApi.transact({ @@ -359,7 +359,7 @@ describe.skip("CBDC E2E API Scenarios", () => { const mintRequest: MintRequest = { user: ALICE_USER, amount: ESCROW_AMOUNT.toString(), - ledger: { assetType: "FABRIC" }, + ledger: { assetType: "BESU_A" }, }; const mintResponse = await mintApi.mint(mintRequest); @@ -367,7 +367,7 @@ describe.skip("CBDC E2E API Scenarios", () => { const aliceInitialBalanceResponse = await getBalanceApi.getBalance( ALICE_USER, - "FABRIC", + "BESU_A", ); expect(aliceInitialBalanceResponse.status).toBe(200); @@ -378,7 +378,7 @@ describe.skip("CBDC E2E API Scenarios", () => { const bobInitialBalanceResponse = await getBalanceApi.getBalance( BOB_USER, - "BESU", + "BESU_B", ); expect(bobInitialBalanceResponse.status).toBe(200); @@ -387,14 +387,14 @@ describe.skip("CBDC E2E API Scenarios", () => { const approveRequest: ApproveRequest = { user: ALICE_USER, amount: ESCROW_AMOUNT.toString(), - ledger: { assetType: "FABRIC" }, + ledger: { assetType: "BESU_A" }, }; const approveResponse = await approveApi.approve(approveRequest); expect(approveResponse.status).toBe(200); const approvedAmountResponse = - await getAmountApprovedApi.getAmountApproved(ALICE_USER, "FABRIC"); + await getAmountApprovedApi.getAmountApproved(ALICE_USER, "BESU_A"); expect(approvedAmountResponse.status).toBe(200); const approvedAmount = parseInt(approvedAmountResponse.data); @@ -403,8 +403,8 @@ describe.skip("CBDC E2E API Scenarios", () => { const transactRequest: TransactRequest = { sender: ALICE_USER, receiver: BOB_USER, - sourceChain: { assetType: "FABRIC" }, - receiverChain: { assetType: "BESU" }, + sourceChain: { assetType: "BESU_A" }, + receiverChain: { assetType: "BESU_B" }, amount: ESCROW_AMOUNT.toString(), }; @@ -441,9 +441,9 @@ describe.skip("CBDC E2E API Scenarios", () => { try { const fabricSessionsResponse = - await getSessionsReferencesApi.getSessionsReferences("FABRIC"); + await getSessionsReferencesApi.getSessionsReferences("BESU_A"); const besuSessionsResponse = - await getSessionsReferencesApi.getSessionsReferences("BESU"); + await getSessionsReferencesApi.getSessionsReferences("BESU_B"); const allSessions = [ ...fabricSessionsResponse.data, ...besuSessionsResponse.data, @@ -463,7 +463,7 @@ describe.skip("CBDC E2E API Scenarios", () => { try { const currentAliceBalance = await getBalanceApi.getBalance( ALICE_USER, - "FABRIC", + "BESU_A", ); const currentAliceBalanceValue = parseInt( currentAliceBalance.data.amount, @@ -489,14 +489,14 @@ describe.skip("CBDC E2E API Scenarios", () => { const aliceFinalBalanceResponse = await getBalanceApi.getBalance( ALICE_USER, - "FABRIC", + "BESU_A", ); expect(aliceFinalBalanceResponse.status).toBe(200); const aliceFinalBalance = parseInt(aliceFinalBalanceResponse.data.amount); const bobFinalBalanceResponse = await getBalanceApi.getBalance( BOB_USER, - "BESU", + "BESU_B", ); expect(bobFinalBalanceResponse.status).toBe(200); const bobFinalBalance = parseInt(bobFinalBalanceResponse.data.amount); @@ -511,9 +511,9 @@ describe.skip("CBDC E2E API Scenarios", () => { log.info("Full transaction verification successful!"); const finalFabricSessions = - await getSessionsReferencesApi.getSessionsReferences("FABRIC"); + await getSessionsReferencesApi.getSessionsReferences("BESU_A"); const finalBesuSessions = - await getSessionsReferencesApi.getSessionsReferences("BESU"); + await getSessionsReferencesApi.getSessionsReferences("BESU_B"); log.info( `Final Fabric sessions: ${JSON.stringify(finalFabricSessions.data)}`, @@ -532,7 +532,7 @@ describe.skip("CBDC E2E API Scenarios", () => { const invalidMintRequest: MintRequest = { user: ALICE_USER, amount: "-100", - ledger: { assetType: "FABRIC" }, + ledger: { assetType: "BESU_A" }, }; const response = await mintApi.mint(invalidMintRequest); if (response.status === 200) { @@ -542,7 +542,7 @@ describe.skip("CBDC E2E API Scenarios", () => { const balanceResponse = await getBalanceApi.getBalance( ALICE_USER, - "FABRIC", + "BESU_A", ); const balance = parseInt(balanceResponse.data.amount); expect(balance).toBeGreaterThanOrEqual(0); @@ -561,17 +561,17 @@ describe.skip("CBDC E2E API Scenarios", () => { test( "Alice successfully creates an asset reference in the Besu network", async () => { - await setupAliceWithCBDC(ESCROW_AMOUNT, "BESU"); + await setupAliceWithCBDC(ESCROW_AMOUNT, "BESU_B"); const approvedAmount = await createAssetReference( ALICE_USER, ESCROW_AMOUNT, - "BESU", + "BESU_B", ); expect(approvedAmount).toBe(ESCROW_AMOUNT); const finalApprovedResponse = - await getAmountApprovedApi.getAmountApproved(ALICE_USER, "BESU"); + await getAmountApprovedApi.getAmountApproved(ALICE_USER, "BESU_B"); const finalApprovedAmount = parseInt(finalApprovedResponse.data); expect(finalApprovedAmount).toBe(ESCROW_AMOUNT); @@ -588,15 +588,15 @@ describe.skip("CBDC E2E API Scenarios", () => { test.skip( "Bob successfully locks an asset reference in the Besu network", async () => { - await setupAliceWithCBDC(ESCROW_AMOUNT, "BESU"); - await createAssetReference(ALICE_USER, ESCROW_AMOUNT, "BESU"); + await setupAliceWithCBDC(ESCROW_AMOUNT, "BESU_B"); + await createAssetReference(ALICE_USER, ESCROW_AMOUNT, "BESU_B"); const lockResult = await lockAssetReference( ALICE_USER, BOB_USER, ESCROW_AMOUNT, - "BESU", - "FABRIC", + "BESU_B", + "BESU_A", ); expect(lockResult.success).toBe(true); expect(lockResult.response?.status).toBe(200); @@ -612,25 +612,25 @@ describe.skip("CBDC E2E API Scenarios", () => { test.skip( "Bob fails to lock an already locked asset reference", async () => { - await setupAliceWithCBDC(ESCROW_AMOUNT, "BESU"); - await createAssetReference(ALICE_USER, ESCROW_AMOUNT, "BESU"); + await setupAliceWithCBDC(ESCROW_AMOUNT, "BESU_B"); + await createAssetReference(ALICE_USER, ESCROW_AMOUNT, "BESU_B"); const bobLockResult = await lockAssetReference( ALICE_USER, BOB_USER, ESCROW_AMOUNT, - "BESU", - "FABRIC", + "BESU_B", + "BESU_A", ); expect(bobLockResult.success).toBe(true); await new Promise((resolve) => setTimeout(resolve, 2000)); - const aliceBalance = await getBalanceApi.getBalance(ALICE_USER, "BESU"); + const aliceBalance = await getBalanceApi.getBalance(ALICE_USER, "BESU_B"); const currentBalance = parseInt(aliceBalance.data.amount); const approvedAmount = await getAmountApprovedApi.getAmountApproved( ALICE_USER, - "BESU", + "BESU_B", ); const currentApproved = parseInt(approvedAmount.data); @@ -646,14 +646,14 @@ describe.skip("CBDC E2E API Scenarios", () => { test.skip( "Bob successfully deletes an asset reference", async () => { - await setupAliceWithCBDC(ESCROW_AMOUNT, "BESU"); - await createAssetReference(ALICE_USER, ESCROW_AMOUNT, "BESU"); + await setupAliceWithCBDC(ESCROW_AMOUNT, "BESU_B"); + await createAssetReference(ALICE_USER, ESCROW_AMOUNT, "BESU_B"); const lockResult = await lockAssetReference( ALICE_USER, BOB_USER, ESCROW_AMOUNT, - "BESU", - "FABRIC", + "BESU_B", + "BESU_A", ); expect(lockResult.success).toBe(true); @@ -664,11 +664,11 @@ describe.skip("CBDC E2E API Scenarios", () => { try { const aliceBalance = await getBalanceApi.getBalance( ALICE_USER, - "BESU", + "BESU_B", ); const currentBalance = parseInt(aliceBalance.data.amount); - const bobBalance = await getBalanceApi.getBalance(BOB_USER, "FABRIC"); + const bobBalance = await getBalanceApi.getBalance(BOB_USER, "BESU_A"); const bobCurrentBalance = parseInt(bobBalance.data.amount); if (currentBalance === 0 && bobCurrentBalance >= ESCROW_AMOUNT) { @@ -683,11 +683,11 @@ describe.skip("CBDC E2E API Scenarios", () => { } const finalAliceBalance = await getBalanceApi.getBalance( ALICE_USER, - "BESU", + "BESU_B", ); const finalApproved = await getAmountApprovedApi.getAmountApproved( ALICE_USER, - "BESU", + "BESU_B", ); expect(parseInt(finalAliceBalance.data.amount)).toBe(0); expect(parseInt(finalApproved.data)).toBe(0); @@ -702,20 +702,20 @@ describe.skip("CBDC E2E API Scenarios", () => { test.skip( "Bridge entity deletes asset reference and burns tokens", async () => { - await setupAliceWithCBDC(ESCROW_AMOUNT, "BESU"); - await createAssetReference(ALICE_USER, ESCROW_AMOUNT, "BESU"); + await setupAliceWithCBDC(ESCROW_AMOUNT, "BESU_B"); + await createAssetReference(ALICE_USER, ESCROW_AMOUNT, "BESU_B"); const lockResult = await lockAssetReference( ALICE_USER, BOB_USER, ESCROW_AMOUNT, - "BESU", - "FABRIC", + "BESU_B", + "BESU_A", ); expect(lockResult.success).toBe(true); const initialBobBesuBalance = await getBalanceApi.getBalance( BOB_USER, - "BESU", + "BESU_B", ); let transactionCompleted = false; let attempts = 0; @@ -725,15 +725,15 @@ describe.skip("CBDC E2E API Scenarios", () => { try { const aliceBalance = await getBalanceApi.getBalance( ALICE_USER, - "BESU", + "BESU_B", ); const bobBesuBalance = await getBalanceApi.getBalance( BOB_USER, - "BESU", + "BESU_B", ); const bobFabricBalance = await getBalanceApi.getBalance( BOB_USER, - "FABRIC", + "BESU_A", ); const aliceCurrentBalance = parseInt(aliceBalance.data.amount); @@ -762,15 +762,15 @@ describe.skip("CBDC E2E API Scenarios", () => { const finalAliceBalance = await getBalanceApi.getBalance( ALICE_USER, - "BESU", + "BESU_B", ); const finalBobBesuBalance = await getBalanceApi.getBalance( BOB_USER, - "BESU", + "BESU_B", ); const finalBobFabricBalance = await getBalanceApi.getBalance( BOB_USER, - "FABRIC", + "BESU_A", ); const aliceFinalBalance = parseInt(finalAliceBalance.data.amount); @@ -796,9 +796,9 @@ describe.skip("CBDC E2E API Scenarios", () => { test( "Error scenario: Cannot create asset reference without sufficient balance", async () => { - await setupAliceWithCBDC(100, "BESU"); + await setupAliceWithCBDC(100, "BESU_B"); try { - await createAssetReference(ALICE_USER, 500, "BESU"); + await createAssetReference(ALICE_USER, 500, "BESU_B"); fail("Expected approval to fail with insufficient balance"); } catch (error) { log.info( diff --git a/examples/cactus-example-cbdc-bridging-frontend/src/api-calls/gateway-api.tsx b/examples/cactus-example-cbdc-bridging-frontend/src/api-calls/gateway-api.tsx index 43557e2..6141478 100644 --- a/examples/cactus-example-cbdc-bridging-frontend/src/api-calls/gateway-api.tsx +++ b/examples/cactus-example-cbdc-bridging-frontend/src/api-calls/gateway-api.tsx @@ -9,7 +9,7 @@ import { Configuration } from "@hyperledger/cactus-example-cbdc-bridging-backend export async function getSessionReferencesBridge( path: string, - type: "BESU" | "FABRIC", + type: "BESU_A" | "BESU_B", ): Promise { const getSessionReferencesApi = new GetSessionsReferencesApi( new Configuration({ basePath: path }), @@ -40,8 +40,8 @@ export async function transactTokens( path: string, sender: string, receiver: string, - sourceChain: "FABRIC" | "BESU", - receiverChain: "FABRIC" | "BESU", + sourceChain: "BESU_A" | "BESU_B", + receiverChain: "BESU_A" | "BESU_B", amount: string, ) { const transactApi = new TransactApi(new Configuration({ basePath: path })); diff --git a/examples/cactus-example-cbdc-bridging-frontend/src/api-calls/ledgers-api.tsx b/examples/cactus-example-cbdc-bridging-frontend/src/api-calls/ledgers-api.tsx index 113290c..0048495 100644 --- a/examples/cactus-example-cbdc-bridging-frontend/src/api-calls/ledgers-api.tsx +++ b/examples/cactus-example-cbdc-bridging-frontend/src/api-calls/ledgers-api.tsx @@ -10,7 +10,7 @@ import { Configuration } from "@hyperledger/cactus-example-cbdc-bridging-backend export async function approveNTokens( path: string, - ledger: "FABRIC" | "BESU", + ledger: "BESU_A" | "BESU_B", frontendUserFrom: string, amount: string, ) { @@ -37,7 +37,7 @@ export async function approveNTokens( export async function fetchAmountApprovedToBridge( path: string, - ledger: "FABRIC" | "BESU", + ledger: "BESU_A" | "BESU_B", frontendUser: string, ) { const getAmountApprovedApi = new GetAmountApprovedApi( @@ -61,16 +61,16 @@ export async function fetchAmountApprovedToBridge( export async function transferTokens( path: string, - ledger: "FABRIC" | "BESU", + ledger: "BESU_A" | "BESU_B", frontendUserFrom: string, frontendUserTo: string, amount: string, ) { - let receiverLedger: "FABRIC" | "BESU"; - if (ledger === "FABRIC") { - receiverLedger = "BESU"; + let receiverLedger: "BESU_A" | "BESU_B"; + if (ledger === "BESU_A") { + receiverLedger = "BESU_B"; } else { - receiverLedger = "FABRIC"; + receiverLedger = "BESU_A"; } const transferApi = new TransferApi(new Configuration({ basePath: path })); try { @@ -98,7 +98,7 @@ export async function transferTokens( export async function getBalance( path: string, - ledger: "FABRIC" | "BESU", + ledger: "BESU_A" | "BESU_B", frontendUser: string, ) { const getBalanceApi = new GetBalanceApi( @@ -121,7 +121,7 @@ export async function getBalance( } export async function mintTokens( path: string, - ledger: "FABRIC" | "BESU", + ledger: "BESU_A" | "BESU_B", user: string, amount: string, ) { diff --git a/examples/cactus-example-cbdc-bridging-frontend/src/components/ActionsContainer.tsx b/examples/cactus-example-cbdc-bridging-frontend/src/components/ActionsContainer.tsx index 193ea31..2ed1d79 100644 --- a/examples/cactus-example-cbdc-bridging-frontend/src/components/ActionsContainer.tsx +++ b/examples/cactus-example-cbdc-bridging-frontend/src/components/ActionsContainer.tsx @@ -30,8 +30,8 @@ export default function ActionsContainer(props: IActionsContainerOptions) { const [loading, setLoading] = useState(false); useEffect(() => { - async function fetchData() { - if (props.ledger !== "FABRIC" && props.ledger !== "BESU") { + async function fetchData() { + if (props.ledger !== "BESU_A" && props.ledger !== "BESU_B") { setErrorMessage("Invalid ledger"); return; } @@ -98,7 +98,7 @@ export default function ActionsContainer(props: IActionsContainerOptions) { )} {props.user === "Bridge" ? ( - ) : props.ledger === "Besu" ? ( + ) : props.ledger === "Besu A" ? ( )} - {props.ledger === "Fabric" && props.user !== "Bridge" && ( + {props.ledger === "Besu A" && props.user !== "Bridge" && ( )} - {props.ledger === "Besu" && props.user !== "Bridge" && ( + {props.ledger === "Besu B" && props.user !== "Bridge" && ( )} diff --git a/examples/cactus-example-cbdc-bridging-frontend/src/components/Ledger.tsx b/examples/cactus-example-cbdc-bridging-frontend/src/components/Ledger.tsx index 4283654..4f3733c 100644 --- a/examples/cactus-example-cbdc-bridging-frontend/src/components/Ledger.tsx +++ b/examples/cactus-example-cbdc-bridging-frontend/src/components/Ledger.tsx @@ -24,7 +24,7 @@ export default function Ledger(props: ILedgerOptions) { useEffect(() => { async function fetchData() { - if (props.ledger !== "FABRIC" && props.ledger !== "BESU") { + if (props.ledger !== "BESU_A" && props.ledger !== "BESU_B") { console.log("Invalid ledger"); return; } @@ -60,7 +60,7 @@ export default function Ledger(props: ILedgerOptions) { padding: "0 1rem 1rem 1rem", }} > -

Hyperledger {props.ledger}

+

{props.ledger === "BESU_A" ? "Hyperledger Besu A" : "Hyperledger Besu B"}

This application is a demonstration of a Central Bank Digital Currency - (CBDC) bridging solution between two blockchains (Hyperledger Fabric and - Hyperledger Besu) using the Secure Asset Transfer Protocol (SATP). The - application allows users to transfer tokens between the two blockchains. + (CBDC) bridging solution between two Hyperledger Besu ledgers (Besu A + and Besu B) using the Secure Asset Transfer Protocol (SATP). The + application allows users to transfer tokens between both ledgers. How to Use - Each user starts with a balance of 0 CBDC tokens on both Fabric and - Besu. Each user has a box that displays the user's name, the balance of - CBDC tokens, and the actions that the user can perform. The actions have - different colors based on being related to local actions (i.e., in the - same blockchain) (in blue) or related to cross-chain functionality - (red). + Each user starts with a balance of 0 CBDC tokens on both Besu A and + Besu B. Each user has a box that displays the user's name, the balance + of CBDC tokens, and the actions that the user can perform. The actions + have different colors based on being related to local actions (same + ledger) (in blue) or cross-ledger functionality (red). @@ -96,8 +95,7 @@ export default function Helper() {
  • - CBDC Bridging between Hyperledger Fabric and Permissioned - EVM-based Blockchains + CBDC Bridging between Permissioned EVM-based Blockchains
  • diff --git a/examples/cactus-example-cbdc-bridging-frontend/src/pages/HomePage.tsx b/examples/cactus-example-cbdc-bridging-frontend/src/pages/HomePage.tsx index 95f5a26..2ec73c7 100644 --- a/examples/cactus-example-cbdc-bridging-frontend/src/pages/HomePage.tsx +++ b/examples/cactus-example-cbdc-bridging-frontend/src/pages/HomePage.tsx @@ -22,13 +22,13 @@ export default function HomePage(props: IHomePageOptions) { }} > - + - +
    { let initialFundsAccount1: string; let initialFundsAccount2: string; - let keyPair1: GenerateKeyPairResult; - let keyPair2: GenerateKeyPairResult; + let keyPair1: GenerateKeyPairResult; + let keyPair2: GenerateKeyPairResult; let addressInfo1: AddressInfo; let addressInfo2: AddressInfo; let httpServer1: Server; @@ -71,7 +69,7 @@ describe(testCase, () => { let apiServer1: ApiServer; let apiServer2: ApiServer; - let testEthAccount1: Account; + let testEthAccount1: Web3Account; let node1: CactusNode; let node2: CactusNode; @@ -310,7 +308,7 @@ describe(testCase, () => { }); test(testCase2, async () => { const apiClient1 = await mainApiClient.ofLedger(ledger1.id, BesuApi, {}); - const testAccount1 = new Web3().eth.accounts.create(uuidV4()); + const testAccount1 = new Web3().eth.accounts.create(); const res = await apiClient1.runTransactionV1({ transactionConfig: { from: initialFundsAccount1, @@ -336,7 +334,7 @@ describe(testCase, () => { test(testCase3, async () => { const apiClient2 = await mainApiClient.ofLedger(ledger2.id, BesuApi, {}); - const testAccount2 = new Web3().eth.accounts.create(uuidV4()); + const testAccount2 = new Web3().eth.accounts.create(); const res = await apiClient2.runTransactionV1({ transactionConfig: { from: initialFundsAccount2, diff --git a/packages/cactus-test-api-client/src/test/typescript/integration/consortium-static/api-routing-node-to-node.test.ts b/packages/cactus-test-api-client/src/test/typescript/integration/consortium-static/api-routing-node-to-node.test.ts index dc2ec67..b3aad88 100644 --- a/packages/cactus-test-api-client/src/test/typescript/integration/consortium-static/api-routing-node-to-node.test.ts +++ b/packages/cactus-test-api-client/src/test/typescript/integration/consortium-static/api-routing-node-to-node.test.ts @@ -3,7 +3,7 @@ import { AddressInfo } from "net"; import "jest-extended"; import { v4 as uuidV4 } from "uuid"; import { generateKeyPair, exportSPKI, exportPKCS8 } from "jose"; -import Web3 from "web3"; +import Web3, { Web3Account } from "web3"; import { ApiClient } from "@hyperledger-cacti/cactus-api-client"; import { @@ -41,8 +41,6 @@ import { } from "@hyperledger-cacti/cactus-test-tooling"; import { LogLevelDesc, Servers } from "@hyperledger-cacti/cactus-common"; -import { Account } from "web3-core"; - const logLevel: LogLevelDesc = "TRACE"; const testCase = "Routes to correct node based on ledger ID"; const testCase1 = "Set Up Test ledgers, Consortium, Cactus Nodes"; @@ -72,7 +70,7 @@ describe(testCase, () => { let apiServer1: ApiServer; let apiServer2: ApiServer; - let testEthAccount1: Account; + let testEthAccount1: Web3Account; let entitiesJWK: any; let entity1JWK: any; @@ -336,7 +334,7 @@ describe(testCase, () => { apiClient: mainApiClient.extendWith(ConsortiumStaticApi), }), ); - const testAccount1 = new Web3().eth.accounts.create(uuidV4()); + const testAccount1 = new Web3().eth.accounts.create(); const res = await apiClient1.runTransactionV1({ transactionConfig: { from: initialFundsAccount1, @@ -369,7 +367,7 @@ describe(testCase, () => { apiClient: mainApiClient.extendWith(ConsortiumStaticApi), }), ); - const testAccount2 = new Web3().eth.accounts.create(uuidV4()); + const testAccount2 = new Web3().eth.accounts.create(); const res = await apiClient2.runTransactionV1({ transactionConfig: { from: initialFundsAccount2, diff --git a/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-single-status-endpoint-invalid.test.ts b/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-single-status-endpoint-invalid.test.ts index bf7c016..242a683 100644 --- a/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-single-status-endpoint-invalid.test.ts +++ b/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-single-status-endpoint-invalid.test.ts @@ -193,8 +193,7 @@ describe(testCase, () => { expect(resp.status).toEqual(200); const balance2 = await web3.eth.getBalance(firstHighNetWorthAccount); - - expect(parseInt(balance)).toEqual(parseInt(balance2) - 10); + expect(balance).toEqual(balance2 - 10n); try { const fakeId = "0x66616b654964"; const res = await api.getSingleStatusV1({ diff --git a/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-single-status-endpoint.test.ts b/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-single-status-endpoint.test.ts index 13775ed..103e2f9 100644 --- a/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-single-status-endpoint.test.ts +++ b/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-single-status-endpoint.test.ts @@ -214,11 +214,7 @@ test(testCase, async (t: Test) => { const balance2 = await web3.eth.getBalance(firstHighNetWorthAccount); - t.equal( - parseInt(balance), - parseInt(balance2) - 10, - "Balance of account is OK", - ); + expect(balance).toEqual(balance2 - 10n); const res = await api.getSingleStatusV1({ id: callOutput as string, diff --git a/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-status-endpoint-invalid.test.ts b/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-status-endpoint-invalid.test.ts index 50b148c..8cf5572 100644 --- a/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-status-endpoint-invalid.test.ts +++ b/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-status-endpoint-invalid.test.ts @@ -195,7 +195,7 @@ describe(testCase, () => { }); const balance2 = await web3.eth.getBalance(firstHighNetWorthAccount); - expect(parseInt(balance)).toEqual(parseInt(balance2) - 10); + expect(balance).toEqual(balance2 - 10n); try { const ids = [responseTxId.callOutput as string]; diff --git a/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-status-endpoint.test.ts b/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-status-endpoint.test.ts index aea5be6..b23b186 100644 --- a/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-status-endpoint.test.ts +++ b/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/get-status-endpoint.test.ts @@ -204,7 +204,7 @@ describe(testCase, () => { }); const balance2 = await web3.eth.getBalance(firstHighNetWorthAccount); - expect(parseInt(balance)).toEqual(parseInt(balance2) - 10); + expect(balance).toEqual(balance2 - 10n); const ids = [responseTxId.callOutput as string]; const res = await api.getStatusV1({ diff --git a/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/refund-endpoint.test.ts b/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/refund-endpoint.test.ts index 4ca1752..308c258 100644 --- a/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/refund-endpoint.test.ts +++ b/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/refund-endpoint.test.ts @@ -233,7 +233,7 @@ describe(testCase, () => { expect(refundResponse.status).toEqual(200); const balance = await web3.eth.getBalance(firstHighNetWorthAccount); - expect(parseInt(balance)).toEqual(parseInt(balance1) - 10); + expect(balance).toEqual(balance1 - 10n); const balance2 = await web3.eth.getBalance(firstHighNetWorthAccount); expect(balance1).toEqual(balance2); const res = await api.getSingleStatusV1({ diff --git a/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/withdraw-endpoint.test.ts b/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/withdraw-endpoint.test.ts index e874e09..6851926 100644 --- a/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/withdraw-endpoint.test.ts +++ b/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/withdraw-endpoint.test.ts @@ -219,7 +219,7 @@ describe(testCase, () => { const balance2 = await web3.eth.getBalance( "0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0", ); - expect(parseInt(balance1, 10) + 10).toEqual(parseInt(balance2, 10)); + expect(balance1 + 10n).toEqual(balance2); const resStatus = await api.getSingleStatusV1({ id: callOutput as string, web3SigningCredential, diff --git a/packages/cactus-test-plugin-ledger-connector-besu/package.json b/packages/cactus-test-plugin-ledger-connector-besu/package.json index 030f948..ab500b8 100644 --- a/packages/cactus-test-plugin-ledger-connector-besu/package.json +++ b/packages/cactus-test-plugin-ledger-connector-besu/package.json @@ -46,7 +46,7 @@ "webpack:dev:web": "webpack --env=dev --target=web --config ../../webpack.config.js" }, "dependencies": { - "@grpc/grpc-js": "1.14.4", + "@grpc/grpc-js": "1.13.3", "@hyperledger-cacti/cactus-api-client": "3.0.0-beta.1", "@hyperledger-cacti/cactus-cmd-api-server": "3.0.0-beta.1", "@hyperledger-cacti/cactus-common": "3.0.0-beta.1", diff --git a/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/grpc-services/connector-besu-grpc-services.test.ts b/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/grpc-services/connector-besu-grpc-services.test.ts index 657af12..6e7c67f 100644 --- a/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/grpc-services/connector-besu-grpc-services.test.ts +++ b/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/grpc-services/connector-besu-grpc-services.test.ts @@ -4,8 +4,7 @@ import { AddressInfo } from "node:net"; import "jest-extended"; import * as grpc from "@grpc/grpc-js"; import { v4 as uuidv4 } from "uuid"; -import Web3 from "web3"; -import { Account } from "web3-core"; +import Web3, { Web3Account } from "web3"; import { LogLevelDesc, @@ -56,7 +55,7 @@ describe("BesuGrpcSvcOpenApi", () => { let connector: PluginLedgerConnectorBesu; let grpcClientDefaultSvc: default_service.org.hyperledger.cacti.plugin.ledger.connector.besu.services.defaultservice.DefaultServiceClient; let grpcClientBesuSvc: besu_grpc_svc_streams.org.hyperledger.cacti.plugin.ledger.connector.besu.services.besuservice.BesuGrpcSvcStreamsClient; - let targetEthAccount: Account; + let targetEthAccount: Web3Account; let apiServer: ApiServer; let addressInfo: AddressInfo; @@ -82,7 +81,7 @@ describe("BesuGrpcSvcOpenApi", () => { // Target account - create new const web3 = new Web3(rpcApiHttpHost); - targetEthAccount = web3.eth.accounts.create(uuidv4()); + targetEthAccount = web3.eth.accounts.create(); const keychainEntryKey = uuidv4(); const keychainEntryValue = targetEthAccount.privateKey; diff --git a/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/get-balance-endpoint.test.ts b/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/get-balance-endpoint.test.ts index 5761f19..65ebd81 100644 --- a/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/get-balance-endpoint.test.ts +++ b/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/get-balance-endpoint.test.ts @@ -8,7 +8,7 @@ import "jest-extended"; import { StatusCodes } from "http-status-codes"; import { v4 as uuidv4 } from "uuid"; import KeyEncoder from "key-encoder"; -import { Account } from "web3-core"; +import type { Web3Account } from "web3"; import { ApiServer, @@ -62,7 +62,7 @@ describe("PluginLedgerConnectorBesu", () => { let ledger: BesuTestLedger; let apiServer: ApiServer; - let testAccount: Account; + let testAccount: Web3Account; let node1Host: string; beforeAll(async () => { diff --git a/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/get-transaction-endpoint.test.ts b/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/get-transaction-endpoint.test.ts index 6eadf76..b9136fb 100644 --- a/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/get-transaction-endpoint.test.ts +++ b/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/get-transaction-endpoint.test.ts @@ -158,7 +158,10 @@ describe(testCase, () => { const transactionHash = receipt.transactionHash; const request: GetTransactionV1Request = { - transactionHash: transactionHash, + transactionHash: + typeof transactionHash === "string" + ? transactionHash + : Web3.utils.bytesToHex(transactionHash), }; const configuration = new BesuApiClientOptions({ basePath: node1Host }); diff --git a/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/sign-transaction-endpoint.test.ts b/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/sign-transaction-endpoint.test.ts index 0c1d0e6..0f5e2c2 100644 --- a/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/sign-transaction-endpoint.test.ts +++ b/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/sign-transaction-endpoint.test.ts @@ -173,7 +173,10 @@ describe(testCase, () => { const request: SignTransactionRequest = { keychainId, keychainRef, - transactionHash: transactionHash, + transactionHash: + typeof transactionHash === "string" + ? transactionHash + : Web3.utils.bytesToHex(transactionHash), }; const configuration = new BesuApiClientOptions({ basePath: node1Host }); diff --git a/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/v21-get-balance-endpoint.test.ts b/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/v21-get-balance-endpoint.test.ts index 9f0fa74..caf9209 100644 --- a/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/v21-get-balance-endpoint.test.ts +++ b/packages/cactus-test-plugin-ledger-connector-besu/src/test/typescript/integration/plugin-validator-besu/v21-get-balance-endpoint.test.ts @@ -8,7 +8,7 @@ import "jest-extended"; import { StatusCodes } from "http-status-codes"; import { v4 as uuidv4 } from "uuid"; import KeyEncoder from "key-encoder"; -import { Account } from "web3-core"; +import type { Web3Account } from "web3"; import { ApiServer, @@ -64,7 +64,7 @@ describe("PluginLedgerConnectorBesu", () => { let ledger: BesuTestLedger; let apiServer: ApiServer; - let testAccount: Account; + let testAccount: Web3Account; let node1Host: string; beforeAll(async () => { diff --git a/packages/cactus-test-tooling/src/main/typescript/besu/besu-test-ledger.ts b/packages/cactus-test-tooling/src/main/typescript/besu/besu-test-ledger.ts index 3b927d6..ad9bd8b 100644 --- a/packages/cactus-test-tooling/src/main/typescript/besu/besu-test-ledger.ts +++ b/packages/cactus-test-tooling/src/main/typescript/besu/besu-test-ledger.ts @@ -1,10 +1,8 @@ -import { v4 as uuidv4 } from "uuid"; import Docker, { Container, ContainerInfo } from "dockerode"; import Joi from "joi"; import tar from "tar-stream"; import { EventEmitter } from "events"; -import Web3 from "web3"; -import { Account, TransactionReceipt } from "web3-core"; +import Web3, { TransactionReceipt, Web3Account } from "web3"; import { LogLevelDesc, Logger, @@ -185,10 +183,10 @@ export class BesuTestLedger implements ITestLedger { * * @param [seedMoney=10e8] The amount of money to seed the new test account with. */ - public async createEthTestAccount(seedMoney = 10e8): Promise { + public async createEthTestAccount(seedMoney = 10e8): Promise { const rpcApiHttpHost = await this.getRpcApiHttpHost(); const web3 = new Web3(rpcApiHttpHost); - const ethTestAccount = web3.eth.accounts.create(uuidv4()); + const ethTestAccount = web3.eth.accounts.create(); await this.sendEthToAccount(ethTestAccount.address, seedMoney); diff --git a/packages/cactus-test-tooling/src/main/typescript/common/containers.ts b/packages/cactus-test-tooling/src/main/typescript/common/containers.ts index 5eccdca..41f3f28 100644 --- a/packages/cactus-test-tooling/src/main/typescript/common/containers.ts +++ b/packages/cactus-test-tooling/src/main/typescript/common/containers.ts @@ -4,10 +4,10 @@ import { IncomingMessage } from "http"; import throttle from "lodash/throttle"; import { Container, ContainerInfo } from "dockerode"; import Dockerode from "dockerode"; -import execa from "execa"; +import { execa } from "execa"; import tar from "tar-stream"; import fs from "fs-extra"; -import pRetry from "p-retry"; +import pRetry, { type Options as PRetryOptions } from "p-retry"; import { RuntimeError } from "run-time-error-cjs"; import { Streams } from "../common/streams"; import { @@ -437,7 +437,7 @@ export class Containers { }; const log = LoggerProvider.getOrCreate(defaultLoggerOptions); const task = () => Containers.tryPullImage(imageFqn, options, logLevel); - const retryOptions: pRetry.Options & { retries: number } = { + const retryOptions: PRetryOptions = { retries: 6, onFailedAttempt: async (ex) => { log.debug(`Failed attempt at pulling container image ${imageFqn}`, ex); diff --git a/packages/cactus-test-tooling/src/main/typescript/fabric/fabric-test-ledger-v1.ts b/packages/cactus-test-tooling/src/main/typescript/fabric/fabric-test-ledger-v1.ts index 2681a00..73e0ea3 100644 --- a/packages/cactus-test-tooling/src/main/typescript/fabric/fabric-test-ledger-v1.ts +++ b/packages/cactus-test-tooling/src/main/typescript/fabric/fabric-test-ledger-v1.ts @@ -893,11 +893,7 @@ export class FabricTestLedgerV1 implements ITestLedger { const dumpCouch = yaml.dump(dataCouch, { flowLevel: -1, - quotingType: '"', - styles: { - "!!int": "decimal", - "!!null": "camelcase", - }, + quoteStyle: "double", }); createdFile.filename = `docker-compose-couch-${orgName}.yaml`; @@ -1007,11 +1003,7 @@ export class FabricTestLedgerV1 implements ITestLedger { log.debug(dataCompose); const dumpCompose = yaml.dump(dataCompose, { flowLevel: -1, - quotingType: '"', - styles: { - "!!int": "decimal", - "!!null": "camelcase", - }, + quoteStyle: "double", }); const nullRegex = new RegExp(/Null/g); @@ -1065,11 +1057,7 @@ export class FabricTestLedgerV1 implements ITestLedger { log.debug(dataCa); const dumpCa = yaml.dump(dataCa, { flowLevel: -1, - quotingType: '"', - styles: { - "!!int": "decimal", - "!!null": "camelcase", - }, + quoteStyle: "double", }); createdFile.filename = `docker-compose-ca-${orgName}.yaml`; @@ -1098,11 +1086,7 @@ export class FabricTestLedgerV1 implements ITestLedger { log.debug(dataCrypto); const dumpCrypto = yaml.dump(dataCrypto, { flowLevel: -1, - quotingType: '"', - styles: { - "!!int": "decimal", - "!!null": "camelcase", - }, + quoteStyle: "double", }); createdFile.filename = `${orgName}-crypto.yaml`; @@ -1154,11 +1138,7 @@ export class FabricTestLedgerV1 implements ITestLedger { const dumpConfigTxGen = yaml.dump(dataConfigTxGen, { flowLevel: -1, - quotingType: '"', - styles: { - "!!int": "decimal", - "!!null": "camelcase", - }, + quoteStyle: "double", }); // TODO diff --git a/packages/cactus-test-tooling/src/main/typescript/http-echo/http-echo-container.ts b/packages/cactus-test-tooling/src/main/typescript/http-echo/http-echo-container.ts index 8503f13..148dd6d 100644 --- a/packages/cactus-test-tooling/src/main/typescript/http-echo/http-echo-container.ts +++ b/packages/cactus-test-tooling/src/main/typescript/http-echo/http-echo-container.ts @@ -1,5 +1,4 @@ import Docker, { Container, ContainerInfo } from "dockerode"; -// @ts-expect-error - no type declarations available for is-port-reachable import isPortReachable from "is-port-reachable"; import Joi from "joi"; import { ITestLedger } from "../i-test-ledger"; diff --git a/packages/cactus-test-tooling/src/main/typescript/indy/indy-test-ledger.ts b/packages/cactus-test-tooling/src/main/typescript/indy/indy-test-ledger.ts index 45b78ad..3a7538f 100644 --- a/packages/cactus-test-tooling/src/main/typescript/indy/indy-test-ledger.ts +++ b/packages/cactus-test-tooling/src/main/typescript/indy/indy-test-ledger.ts @@ -1,6 +1,6 @@ import { EventEmitter } from "events"; import Docker, { Container } from "dockerode"; -import { v4 as internalIpV4 } from "internal-ip"; +import { internalIpV4 } from "internal-ip"; import type { IndyVdrPoolConfig } from "@aries-framework/indy-vdr"; import { diff --git a/packages/cactus-test-tooling/src/main/typescript/keycloak/keycloak-container.ts b/packages/cactus-test-tooling/src/main/typescript/keycloak/keycloak-container.ts index a91c85e..c03ae69 100644 --- a/packages/cactus-test-tooling/src/main/typescript/keycloak/keycloak-container.ts +++ b/packages/cactus-test-tooling/src/main/typescript/keycloak/keycloak-container.ts @@ -1,6 +1,6 @@ import { EventEmitter } from "events"; import Docker, { Container } from "dockerode"; -import { v4 as internalIpV4 } from "internal-ip"; +import { internalIpV4 } from "internal-ip"; import { v4 as uuidv4 } from "uuid"; import KcAdminClient from "keycloak-admin"; import UserRepresentation from "keycloak-admin/lib/defs/userRepresentation"; diff --git a/packages/cactus-test-tooling/src/main/typescript/openethereum/openethereum-test-ledger.ts b/packages/cactus-test-tooling/src/main/typescript/openethereum/openethereum-test-ledger.ts index b75fab8..fc8641a 100644 --- a/packages/cactus-test-tooling/src/main/typescript/openethereum/openethereum-test-ledger.ts +++ b/packages/cactus-test-tooling/src/main/typescript/openethereum/openethereum-test-ledger.ts @@ -1,10 +1,8 @@ import { EventEmitter } from "events"; import Docker, { Container } from "dockerode"; -import { v4 as internalIpV4 } from "internal-ip"; -import Web3 from "web3"; +import { internalIpV4 } from "internal-ip"; import { AbiItem } from "web3-utils"; -import { Account, TransactionReceipt } from "web3-core"; -import { v4 as uuidv4 } from "uuid"; +import Web3, { TransactionReceipt, Web3Account, ContractAbi } from "web3"; import { Logger, @@ -207,8 +205,8 @@ export class OpenEthereumTestLedger { * * @param [seedMoney=10e8] The amount of money to seed the new test account with. */ - public async createEthTestAccount(seedMoney = 10e8): Promise { - const ethTestAccount = this.web3.eth.accounts.create(uuidv4()); + public async createEthTestAccount(seedMoney = 10e8): Promise { + const ethTestAccount = this.web3.eth.accounts.create(); const receipt = await this.transferAssetFromCoinbase( ethTestAccount.address, @@ -290,7 +288,7 @@ export class OpenEthereumTestLedger { args?: any[], ): Promise { // Encode ABI - const contractProxy = new this.web3.eth.Contract(abi); + const contractProxy = new this.web3.eth.Contract(abi as ContractAbi); const contractTx = contractProxy.deploy({ data: bytecode, arguments: args, diff --git a/yarn.lock b/yarn.lock index c2e9b90..db531ea 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2113,6 +2113,13 @@ __metadata: languageName: node linkType: hard +"@borewit/text-codec@npm:^0.2.1": + version: 0.2.2 + resolution: "@borewit/text-codec@npm:0.2.2" + checksum: 10/c971790a72d9e766286db71f68613d1bac3b8bd9eaba52fbf18a8b17903c095968ed5369efdba378751926440aab93f3dd17c89242ef20525808ddced22d49b8 + languageName: node + linkType: hard + "@braintree/sanitize-url@npm:^7.1.1": version: 7.1.2 resolution: "@braintree/sanitize-url@npm:7.1.2" @@ -2586,15 +2593,6 @@ __metadata: languageName: node linkType: hard -"@connectrpc/connect@npm:2.1.2": - version: 2.1.2 - resolution: "@connectrpc/connect@npm:2.1.2" - peerDependencies: - "@bufbuild/protobuf": ^2.7.0 - checksum: 10/54cb8f434a6566fc0b22e6d8a20a4037b84d67b444043ad845b92cfe576beade80b980c17f8096b1fb091f1caeac7747752ace0e940af5287b11221093fb8f45 - languageName: node - linkType: hard - "@connectrpc/protoc-gen-connect-es@npm:1.6.1": version: 1.6.1 resolution: "@connectrpc/protoc-gen-connect-es@npm:1.6.1" @@ -4860,7 +4858,7 @@ __metadata: languageName: node linkType: hard -"@grpc/grpc-js@npm:1.14.4, @grpc/grpc-js@npm:^1.11.1, @grpc/grpc-js@npm:^1.7.1": +"@grpc/grpc-js@npm:^1.11.1, @grpc/grpc-js@npm:^1.7.1": version: 1.14.4 resolution: "@grpc/grpc-js@npm:1.14.4" dependencies: @@ -5077,7 +5075,7 @@ __metadata: version: 0.0.0-use.local resolution: "@hyperledger-cacti/cacti-copm-test@workspace:packages/cacti-copm-test" dependencies: - "@connectrpc/connect": "npm:2.1.2" + "@connectrpc/connect": "npm:1.4.0" "@connectrpc/connect-node": "npm:2.1.2" "@hyperledger-cacti/cacti-copm-core": "npm:3.0.0-beta.1" "@hyperledger-cacti/cacti-plugin-copm-corda": "npm:3.0.0-beta.1" @@ -5096,7 +5094,7 @@ __metadata: dotenv: "npm:17.4.2" fabric-ca-client: "npm:2.5.0-snapshot.23" fabric-common: "npm:2.2.20" - fabric-network: "npm:2.5.0-snapshot.23" + fabric-network: "npm:2.2.20" fs-extra: "npm:11.4.0" jest-extended: "npm:7.0.0" uuid: "npm:14.0.1" @@ -5427,6 +5425,7 @@ __metadata: "@hyperledger-cacti/cactus-plugin-object-store-ipfs": "npm:3.0.0-beta.1" "@hyperledger-cacti/cactus-plugin-satp-hermes": "npm:3.0.0-beta.1" "@hyperledger-cacti/cactus-test-tooling": "workspace:*" + "@openapitools/openapi-generator-cli": "npm:^2.40.1" "@openzeppelin/contracts": "npm:4.9.6" "@openzeppelin/contracts-upgradeable": "npm:5.6.1" "@types/body-parser": "npm:1.19.6" @@ -5445,7 +5444,7 @@ __metadata: "@typescript-eslint/eslint-plugin": "npm:8.67.0" "@typescript-eslint/parser": "npm:8.67.0" async-exit-hook: "npm:2.0.1" - axios: "npm:1.19.0" + axios: "npm:1.18.1" body-parser: "npm:2.3.0" cors: "npm:2.8.6" crypto-js: "npm:4.2.0" @@ -5486,6 +5485,7 @@ __metadata: ts-jest: "npm:29.4.12" ts-node: "npm:10.9.1" ts-results: "npm:3.3.0" + tslib: "npm:^2.8.1" typescript: "npm:5.8.3" typescript-optional: "npm:2.0.1" uuid: "npm:14.0.1" @@ -5924,7 +5924,7 @@ __metadata: version: 0.0.0-use.local resolution: "@hyperledger-cacti/cactus-test-plugin-ledger-connector-besu@workspace:packages/cactus-test-plugin-ledger-connector-besu" dependencies: - "@grpc/grpc-js": "npm:1.14.4" + "@grpc/grpc-js": "npm:1.13.3" "@hyperledger-cacti/cactus-api-client": "npm:3.0.0-beta.1" "@hyperledger-cacti/cactus-cmd-api-server": "npm:3.0.0-beta.1" "@hyperledger-cacti/cactus-common": "npm:3.0.0-beta.1" @@ -6168,6 +6168,28 @@ __metadata: languageName: node linkType: hard +"@inquirer/core@npm:^6.0.0": + version: 6.0.0 + resolution: "@inquirer/core@npm:6.0.0" + dependencies: + "@inquirer/type": "npm:^1.1.6" + "@types/mute-stream": "npm:^0.0.4" + "@types/node": "npm:^20.10.7" + "@types/wrap-ansi": "npm:^3.0.0" + ansi-escapes: "npm:^4.3.2" + chalk: "npm:^4.1.2" + cli-spinners: "npm:^2.9.2" + cli-width: "npm:^4.1.0" + figures: "npm:^3.2.0" + mute-stream: "npm:^1.0.0" + run-async: "npm:^3.0.0" + signal-exit: "npm:^4.1.0" + strip-ansi: "npm:^6.0.1" + wrap-ansi: "npm:^6.2.0" + checksum: 10/a9f79fe538deab439afc845e16fa8832872b4562be6e39a5de8b50eca3e2b27be0e470fc4ee014f202a750213adc8a06068402d51d6d7b34b118b12b08200f85 + languageName: node + linkType: hard + "@inquirer/editor@npm:^4.2.23": version: 4.2.23 resolution: "@inquirer/editor@npm:4.2.23" @@ -6324,6 +6346,19 @@ __metadata: languageName: node linkType: hard +"@inquirer/select@npm:1.3.3": + version: 1.3.3 + resolution: "@inquirer/select@npm:1.3.3" + dependencies: + "@inquirer/core": "npm:^6.0.0" + "@inquirer/type": "npm:^1.1.6" + ansi-escapes: "npm:^4.3.2" + chalk: "npm:^4.1.2" + figures: "npm:^3.2.0" + checksum: 10/0f33c51ab69c156b96092bfb107d08dd0f4227274917b9406aa23877e3ba94fd6738800fb973c44c051aaebdba72d07dc328df4b76e6e1285f68aa01a7ed0ed8 + languageName: node + linkType: hard + "@inquirer/select@npm:^4.4.2": version: 4.4.2 resolution: "@inquirer/select@npm:4.4.2" @@ -6342,6 +6377,15 @@ __metadata: languageName: node linkType: hard +"@inquirer/type@npm:^1.1.6": + version: 1.5.5 + resolution: "@inquirer/type@npm:1.5.5" + dependencies: + mute-stream: "npm:^1.0.0" + checksum: 10/bd3f3d7510785af4ad599e042e99e4be6380f52f79f3db140fe6fed0a605acf27b1a0a20fb5cc688eaf7b8aa0c36dacb1d89c7bba4586f38cbf58ba9f159e7b5 + languageName: node + linkType: hard + "@inquirer/type@npm:^3.0.10, @inquirer/type@npm:^3.0.8": version: 3.0.10 resolution: "@inquirer/type@npm:3.0.10" @@ -7503,6 +7547,13 @@ __metadata: languageName: node linkType: hard +"@lukeed/csprng@npm:^1.0.0": + version: 1.1.0 + resolution: "@lukeed/csprng@npm:1.1.0" + checksum: 10/926f5f7fc629470ca9a8af355bfcd0271d34535f7be3890f69902432bddc3262029bb5dbe9025542cf6c9883d878692eef2815fc2f3ba5b92e9da1f9eba2e51b + languageName: node + linkType: hard + "@mapbox/node-pre-gyp@npm:^1.0.0, @mapbox/node-pre-gyp@npm:^1.0.11, @mapbox/node-pre-gyp@npm:^1.0.5": version: 1.0.11 resolution: "@mapbox/node-pre-gyp@npm:1.0.11" @@ -7808,6 +7859,67 @@ __metadata: languageName: node linkType: hard +"@nestjs/axios@npm:4.0.1": + version: 4.0.1 + resolution: "@nestjs/axios@npm:4.0.1" + peerDependencies: + "@nestjs/common": ^10.0.0 || ^11.0.0 + axios: ^1.3.1 + rxjs: ^7.0.0 + checksum: 10/0cc741e4fbfc39920afbb6c58050e0dbfecc8e2f7b249d879802a5b03b65df3714e828970e2bf12283d3d27e1f1ab7ca5ec62b5698dc50f105680e100a0a33f6 + languageName: node + linkType: hard + +"@nestjs/common@npm:11.1.28": + version: 11.1.28 + resolution: "@nestjs/common@npm:11.1.28" + dependencies: + file-type: "npm:21.3.4" + iterare: "npm:1.2.1" + load-esm: "npm:1.0.3" + tslib: "npm:2.8.1" + uid: "npm:2.0.2" + peerDependencies: + class-transformer: ">=0.4.1" + class-validator: ">=0.13.2" + reflect-metadata: ^0.1.12 || ^0.2.0 + rxjs: ^7.1.0 + peerDependenciesMeta: + class-transformer: + optional: true + class-validator: + optional: true + checksum: 10/57a3e0c2bc06ccb3c365bbeb6864001b29fdd0e80abe9157028264927db9188cf6b0c848e39065db141bb3152d9892a2d7bbe1c2f526ec2fd2f3dc906eced1b7 + languageName: node + linkType: hard + +"@nestjs/core@npm:11.1.28": + version: 11.1.28 + resolution: "@nestjs/core@npm:11.1.28" + dependencies: + fast-safe-stringify: "npm:2.1.1" + iterare: "npm:1.2.1" + path-to-regexp: "npm:8.4.2" + tslib: "npm:2.8.1" + uid: "npm:2.0.2" + peerDependencies: + "@nestjs/common": ^11.0.0 + "@nestjs/microservices": ^11.0.0 + "@nestjs/platform-express": ^11.0.0 + "@nestjs/websockets": ^11.0.0 + reflect-metadata: ^0.1.12 || ^0.2.0 + rxjs: ^7.1.0 + peerDependenciesMeta: + "@nestjs/microservices": + optional: true + "@nestjs/platform-express": + optional: true + "@nestjs/websockets": + optional: true + checksum: 10/881e9b702aa57ced2a198e8ba1576ac39c5ceeef39c28804614e8aac874ba92c3136b269461213e5207422159e54a3f640884b99e0b9b94d45919354ba9db24c + languageName: node + linkType: hard + "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1": version: 5.1.1-v1 resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1" @@ -8738,6 +8850,19 @@ __metadata: languageName: node linkType: hard +"@nuxtjs/opencollective@npm:0.3.2": + version: 0.3.2 + resolution: "@nuxtjs/opencollective@npm:0.3.2" + dependencies: + chalk: "npm:^4.1.0" + consola: "npm:^2.15.0" + node-fetch: "npm:^2.6.1" + bin: + opencollective: bin/opencollective.js + checksum: 10/0512871f424a2eae41e9385671ac840f28e8508a209df68c363cc97e009b95a6fd4bdfa2a34c9df78a74fa36d7e171e28792cd11da0b2be28c20ee1806b3ea5e + languageName: node + linkType: hard + "@nx/devkit@npm:>=23.1.0 < 24.0.0": version: 23.1.1 resolution: "@nx/devkit@npm:23.1.1" @@ -8956,6 +9081,33 @@ __metadata: languageName: node linkType: hard +"@openapitools/openapi-generator-cli@npm:^2.40.1": + version: 2.40.1 + resolution: "@openapitools/openapi-generator-cli@npm:2.40.1" + dependencies: + "@inquirer/select": "npm:1.3.3" + "@nestjs/axios": "npm:4.0.1" + "@nestjs/common": "npm:11.1.28" + "@nestjs/core": "npm:11.1.28" + "@nuxtjs/opencollective": "npm:0.3.2" + axios: "npm:^1.18.1" + chalk: "npm:4.1.2" + commander: "npm:8.3.0" + compare-versions: "npm:6.1.1" + concurrently: "npm:^10.0.3" + console.table: "npm:0.10.0" + fs-extra: "npm:11.4.0" + glob: "npm:13.0.6" + proxy-agent: "npm:8.0.2" + reflect-metadata: "npm:0.2.2" + rxjs: "npm:7.8.2" + tslib: "npm:2.8.1" + bin: + openapi-generator-cli: main.js + checksum: 10/aed4252139a6ad74ce38d27b6dd593601fc1604a2fe6642357af3554591c49e454c9dfadaceb3794503609e33a4c3c2f1d67061d8987a1a6a351b5b62829be11 + languageName: node + linkType: hard + "@opentelemetry/api-logs@npm:0.57.2, @opentelemetry/api-logs@npm:^0.57.1": version: 0.57.2 resolution: "@opentelemetry/api-logs@npm:0.57.2" @@ -11315,6 +11467,23 @@ __metadata: languageName: node linkType: hard +"@tokenizer/inflate@npm:^0.4.1": + version: 0.4.1 + resolution: "@tokenizer/inflate@npm:0.4.1" + dependencies: + debug: "npm:^4.4.3" + token-types: "npm:^6.1.1" + checksum: 10/27d58757e1a6c004e86f8a5f1a40fe47cb48aa6891864d03de6eab27d42fafc1456f396bc8bc300e16913b0a85f42034d011db0213d17e544ed201a7fc24244e + languageName: node + linkType: hard + +"@tokenizer/token@npm:^0.3.0": + version: 0.3.0 + resolution: "@tokenizer/token@npm:0.3.0" + checksum: 10/889c1f1e63ac7c92c0ea22d4a2861142f1b43c3d92eb70ec42aa9e9851fab2e9952211d50f541b287781280df2f979bf5600a9c1f91fbc61b7fcf9994e9376a5 + languageName: node + linkType: hard + "@tootallnate/once@npm:1": version: 1.1.2 resolution: "@tootallnate/once@npm:1.1.2" @@ -12320,6 +12489,15 @@ __metadata: languageName: node linkType: hard +"@types/mute-stream@npm:^0.0.4": + version: 0.0.4 + resolution: "@types/mute-stream@npm:0.0.4" + dependencies: + "@types/node": "npm:*" + checksum: 10/af8d83ad7b68ea05d9357985daf81b6c9b73af4feacb2f5c2693c7fd3e13e5135ef1bd083ce8d5bdc8e97acd28563b61bb32dec4e4508a8067fcd31b8a098632 + languageName: node + linkType: hard + "@types/mysql@npm:2.15.26": version: 2.15.26 resolution: "@types/mysql@npm:2.15.26" @@ -12402,6 +12580,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^20.10.7": + version: 20.19.43 + resolution: "@types/node@npm:20.19.43" + dependencies: + undici-types: "npm:~6.21.0" + checksum: 10/cb060ea17ef9f1fc9d47cfb00098175b25fc6f6bae3c08a89ec7ba1be3353445ccf8af62d88c591e6413c09713f7705a71684a27ef01d2bccac4be96b00cacac + languageName: node + linkType: hard + "@types/node@npm:^8.0.0": version: 8.10.66 resolution: "@types/node@npm:8.10.66" @@ -12912,6 +13099,13 @@ __metadata: languageName: node linkType: hard +"@types/wrap-ansi@npm:^3.0.0": + version: 3.0.0 + resolution: "@types/wrap-ansi@npm:3.0.0" + checksum: 10/8aa644946ca4e859668c36b8e2bcf2ac4bdee59dac760414730ea57be8a93ae9166ebd40a088f2ab714843aaea2a2a67f0e6e6ec11cfc9c8701b2466ca1c4089 + languageName: node + linkType: hard + "@types/ws@npm:8.5.3": version: 8.5.3 resolution: "@types/ws@npm:8.5.3" @@ -13877,6 +14071,13 @@ __metadata: languageName: node linkType: hard +"agent-base@npm:9.0.0": + version: 9.0.0 + resolution: "agent-base@npm:9.0.0" + checksum: 10/3a61414cd10dbb17fa8dae35124ffaa55fbb00f495004b2e7a8f4eca3a2b6ed9879474d4e2ebc27ee2f4207265652341525b4154e85c4d479be4854acd786bfb + languageName: node + linkType: hard + "agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": version: 7.1.4 resolution: "agent-base@npm:7.1.4" @@ -14616,6 +14817,15 @@ __metadata: languageName: node linkType: hard +"ast-types@npm:^0.13.4": + version: 0.13.4 + resolution: "ast-types@npm:0.13.4" + dependencies: + tslib: "npm:^2.0.1" + checksum: 10/c55b375b9aaf44713d8c0f77a08215ab6d44f368b13e44f2141c421022af3c62b615a30c8ea629457f0cbaec409c713401c0188a124552c8fe4a5ad6b17ff3c3 + languageName: node + linkType: hard + "astral-regex@npm:^2.0.0": version: 2.0.0 resolution: "astral-regex@npm:2.0.0" @@ -14807,7 +15017,7 @@ __metadata: languageName: node linkType: hard -"axios@npm:1.19.0": +"axios@npm:1.19.0, axios@npm:^1.18.1": version: 1.19.0 resolution: "axios@npm:1.19.0" dependencies: @@ -15291,6 +15501,13 @@ __metadata: languageName: node linkType: hard +"basic-ftp@npm:^5.3.1": + version: 5.3.1 + resolution: "basic-ftp@npm:5.3.1" + checksum: 10/9232ee155114efafadf5adee86a6750208653a9071e53e9803dceac61a66b3ba3974771ff2490ff28f1a118fdfb806ffcc488f64609e61a9cedb52480b312843 + languageName: node + linkType: hard + "batch@npm:0.6.1": version: 0.6.1 resolution: "batch@npm:0.6.1" @@ -16442,6 +16659,13 @@ __metadata: languageName: node linkType: hard +"chalk@npm:5.6.2, chalk@npm:^5.2.0, chalk@npm:^5.6.2": + version: 5.6.2 + resolution: "chalk@npm:5.6.2" + checksum: 10/1b2f48f6fba1370670d5610f9cd54c391d6ede28f4b7062dd38244ea5768777af72e5be6b74fb6c6d54cb84c4a2dff3f3afa9b7cb5948f7f022cfd3d087989e0 + languageName: node + linkType: hard + "chalk@npm:^1.0.0, chalk@npm:^1.1.1, chalk@npm:^1.1.3": version: 1.1.3 resolution: "chalk@npm:1.1.3" @@ -16466,13 +16690,6 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^5.2.0, chalk@npm:^5.6.2": - version: 5.6.2 - resolution: "chalk@npm:5.6.2" - checksum: 10/1b2f48f6fba1370670d5610f9cd54c391d6ede28f4b7062dd38244ea5768777af72e5be6b74fb6c6d54cb84c4a2dff3f3afa9b7cb5948f7f022cfd3d087989e0 - languageName: node - linkType: hard - "change-case@npm:^3.0.1": version: 3.1.0 resolution: "change-case@npm:3.1.0" @@ -16799,7 +17016,7 @@ __metadata: languageName: node linkType: hard -"cli-spinners@npm:^2.5.0": +"cli-spinners@npm:^2.5.0, cli-spinners@npm:^2.9.2": version: 2.9.2 resolution: "cli-spinners@npm:2.9.2" checksum: 10/a0a863f442df35ed7294424f5491fa1756bd8d2e4ff0c8736531d886cec0ece4d85e8663b77a5afaf1d296e3cbbebff92e2e99f52bbea89b667cbe789b994794 @@ -17162,6 +17379,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:8.3.0, commander@npm:^8.1.0, commander@npm:^8.3.0": + version: 8.3.0 + resolution: "commander@npm:8.3.0" + checksum: 10/6b7b5d334483ce24bd73c5dac2eab901a7dbb25fd983ea24a1eeac6e7166bb1967f641546e8abf1920afbde86a45fbfe5812fbc69d0dc451bb45ca416a12a3a3 + languageName: node + linkType: hard + "commander@npm:^10.0.0": version: 10.0.1 resolution: "commander@npm:10.0.1" @@ -17190,13 +17414,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:^8.1.0, commander@npm:^8.3.0": - version: 8.3.0 - resolution: "commander@npm:8.3.0" - checksum: 10/6b7b5d334483ce24bd73c5dac2eab901a7dbb25fd983ea24a1eeac6e7166bb1967f641546e8abf1920afbde86a45fbfe5812fbc69d0dc451bb45ca416a12a3a3 - languageName: node - linkType: hard - "commander@npm:^9.1.0": version: 9.5.0 resolution: "commander@npm:9.5.0" @@ -17319,6 +17536,23 @@ __metadata: languageName: node linkType: hard +"concurrently@npm:^10.0.3": + version: 10.0.5 + resolution: "concurrently@npm:10.0.5" + dependencies: + chalk: "npm:5.6.2" + rxjs: "npm:7.8.2" + shell-quote: "npm:1.9.0" + supports-color: "npm:10.2.2" + tree-kill: "npm:1.2.2" + yargs: "npm:18.0.0" + bin: + conc: dist/bin/index.js + concurrently: dist/bin/index.js + checksum: 10/1bfd879dbd1f6f9d6a1df717c73546a6f03cf3d3e838e5ac7b5eb14da78ed0d2eeade6ff7ec803f6fc74f8d0ffc7157650328550e2e29fbbfb272037e68027b5 + languageName: node + linkType: hard + "config-chain@npm:^1.1.11": version: 1.1.13 resolution: "config-chain@npm:1.1.13" @@ -17361,6 +17595,13 @@ __metadata: languageName: node linkType: hard +"consola@npm:^2.15.0": + version: 2.15.3 + resolution: "consola@npm:2.15.3" + checksum: 10/ba5b3c6960b2eafb9d2ff2325444dd1d4eb53115df46eba823a4e7bfe6afbba0eb34747c0de82c7cd8a939db59b0cb5a8b8a54a94bb2e44feeddc26cefde3622 + languageName: node + linkType: hard + "console-control-strings@npm:^1.0.0, console-control-strings@npm:^1.1.0": version: 1.1.0 resolution: "console-control-strings@npm:1.1.0" @@ -17368,6 +17609,15 @@ __metadata: languageName: node linkType: hard +"console.table@npm:0.10.0": + version: 0.10.0 + resolution: "console.table@npm:0.10.0" + dependencies: + easy-table: "npm:1.1.0" + checksum: 10/bd7d1d1507c60e4d0fdfe5d94d18a6dac2d7929a216f9e3cece26fef7ee38bdc40ad96844547b0a16d978e7c410bb9f6acda249a71038e33be16160ce948121b + languageName: node + linkType: hard + "constant-case@npm:^2.0.0": version: 2.0.0 resolution: "constant-case@npm:2.0.0" @@ -18958,6 +19208,13 @@ __metadata: languageName: node linkType: hard +"data-uri-to-buffer@npm:8.0.0": + version: 8.0.0 + resolution: "data-uri-to-buffer@npm:8.0.0" + checksum: 10/629a57906faab66bd56d299c3944f5314c2fe876d3c2a3553019635c0984464df00ec1938f23cd4e00fe34c32157eeaa73f49f8c994a56dd19f932ee628c99d8 + languageName: node + linkType: hard + "data-uri-to-buffer@npm:^3.0.1": version: 3.0.1 resolution: "data-uri-to-buffer@npm:3.0.1" @@ -19440,6 +19697,19 @@ __metadata: languageName: node linkType: hard +"degenerator@npm:7.0.1": + version: 7.0.1 + resolution: "degenerator@npm:7.0.1" + dependencies: + ast-types: "npm:^0.13.4" + escodegen: "npm:^2.1.0" + esprima: "npm:^4.0.1" + peerDependencies: + quickjs-wasi: ^2.2.0 + checksum: 10/dd6abd1a168b84093dd9d636f90222020c6025715bbd40400b9cab558901d62e3dab2c540926538678c2f00f82b910b7ebdb6293ab47a0d3ecaecfd62b0766ca + languageName: node + linkType: hard + "deglob@npm:^2.1.0": version: 2.1.1 resolution: "deglob@npm:2.1.1" @@ -20036,6 +20306,18 @@ __metadata: languageName: node linkType: hard +"easy-table@npm:1.1.0": + version: 1.1.0 + resolution: "easy-table@npm:1.1.0" + dependencies: + wcwidth: "npm:>=1.0.1" + dependenciesMeta: + wcwidth: + optional: true + checksum: 10/f01fde1162c41ad770e0067c6a732d9bad9edf542d79306ed08509e4f829dd9b18e98b7e25b065ea7e5e5de67f4ff3a4331e3f8c384b17b82c4869b58bb81307 + languageName: node + linkType: hard + "ecc-jsbn@npm:~0.1.1": version: 0.1.2 resolution: "ecc-jsbn@npm:0.1.2" @@ -22981,7 +23263,7 @@ __metadata: languageName: node linkType: hard -"figures@npm:3.2.0, figures@npm:^3.0.0": +"figures@npm:3.2.0, figures@npm:^3.0.0, figures@npm:^3.2.0": version: 3.2.0 resolution: "figures@npm:3.2.0" dependencies: @@ -23058,6 +23340,18 @@ __metadata: languageName: node linkType: hard +"file-type@npm:21.3.4": + version: 21.3.4 + resolution: "file-type@npm:21.3.4" + dependencies: + "@tokenizer/inflate": "npm:^0.4.1" + strtok3: "npm:^10.3.4" + token-types: "npm:^6.1.1" + uint8array-extras: "npm:^1.4.0" + checksum: 10/42d5cf6aafb998fb2f0357e96ea7c48bcce5249f899523a3a5a4c297f4fe2346cc0aff9cf04243ada5c54b6457183550b2a04902b6533cd5e64aaa344d78e0eb + languageName: node + linkType: hard + "file-type@npm:^3.8.0": version: 3.9.0 resolution: "file-type@npm:3.9.0" @@ -24053,6 +24347,17 @@ __metadata: languageName: node linkType: hard +"get-uri@npm:8.0.1": + version: 8.0.1 + resolution: "get-uri@npm:8.0.1" + dependencies: + basic-ftp: "npm:^5.3.1" + data-uri-to-buffer: "npm:8.0.0" + debug: "npm:^4.3.4" + checksum: 10/d2bc9e9b48d5d3fdbd5eab5cec90a9e30d4b903ed255ccc035969aa1ce6d23498931b410d7e87a2f736a312b0c6e0a8057de09f3ff5218f4f78482c6c827f1b6 + languageName: node + linkType: hard + "get-uv-event-loop-napi-h@npm:^1.0.5": version: 1.0.6 resolution: "get-uv-event-loop-napi-h@npm:1.0.6" @@ -24152,6 +24457,17 @@ __metadata: languageName: node linkType: hard +"glob@npm:13.0.6, glob@npm:^13.0.0, glob@npm:^13.0.3, glob@npm:^13.0.6": + version: 13.0.6 + resolution: "glob@npm:13.0.6" + dependencies: + minimatch: "npm:^10.2.2" + minipass: "npm:^7.1.3" + path-scurry: "npm:^2.0.2" + checksum: 10/201ad69e5f0aa74e1d8c00a481581f8b8c804b6a4fbfabeeb8541f5d756932800331daeba99b58fb9e4cd67e12ba5a7eba5b82fb476691588418060b84353214 + languageName: node + linkType: hard + "glob@npm:7.1.7": version: 7.1.7 resolution: "glob@npm:7.1.7" @@ -24212,17 +24528,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:^13.0.0, glob@npm:^13.0.3, glob@npm:^13.0.6": - version: 13.0.6 - resolution: "glob@npm:13.0.6" - dependencies: - minimatch: "npm:^10.2.2" - minipass: "npm:^7.1.3" - path-scurry: "npm:^2.0.2" - checksum: 10/201ad69e5f0aa74e1d8c00a481581f8b8c804b6a4fbfabeeb8541f5d756932800331daeba99b58fb9e4cd67e12ba5a7eba5b82fb476691588418060b84353214 - languageName: node - linkType: hard - "glob@npm:^5.0.15": version: 5.0.15 resolution: "glob@npm:5.0.15" @@ -25232,6 +25537,17 @@ __metadata: languageName: node linkType: hard +"http-proxy-agent@npm:9.1.0": + version: 9.1.0 + resolution: "http-proxy-agent@npm:9.1.0" + dependencies: + agent-base: "npm:9.0.0" + debug: "npm:^4.3.4" + proxy-agent-negotiate: "npm:1.1.0" + checksum: 10/d76441afe6849c3ea6f8143371062908fe4cb1037c5f6ad709f068e8086afd544e1980cc33b06513770878f423529db6f33ac0b5db4877214ec5a157e1e950c9 + languageName: node + linkType: hard + "http-proxy-agent@npm:^4.0.1": version: 4.0.1 resolution: "http-proxy-agent@npm:4.0.1" @@ -25385,6 +25701,17 @@ __metadata: languageName: node linkType: hard +"https-proxy-agent@npm:9.1.0": + version: 9.1.0 + resolution: "https-proxy-agent@npm:9.1.0" + dependencies: + agent-base: "npm:9.0.0" + debug: "npm:^4.3.4" + proxy-agent-negotiate: "npm:1.1.0" + checksum: 10/45021d326c032bf8cd480acee488d5f701842cbef4756a33b81244a872304c918498ef6cf667d8348c11e9b065dd520ec1fd9138196147f608c5837500e7395b + languageName: node + linkType: hard + "https-proxy-agent@npm:^7.0.1": version: 7.0.6 resolution: "https-proxy-agent@npm:7.0.6" @@ -27084,6 +27411,13 @@ __metadata: languageName: node linkType: hard +"iterare@npm:1.2.1": + version: 1.2.1 + resolution: "iterare@npm:1.2.1" + checksum: 10/ee8322dd9d92e86d8653c899df501c58c5b8e90d6767cf2af0b6d6dc5a4b9b7ed8bce936976f4f4c3a55be110a300c8a7d71967d03f72e104e8db66befcfd874 + languageName: node + linkType: hard + "iterator.prototype@npm:^1.1.5": version: 1.1.5 resolution: "iterator.prototype@npm:1.1.5" @@ -29545,6 +29879,13 @@ __metadata: languageName: node linkType: hard +"load-esm@npm:1.0.3": + version: 1.0.3 + resolution: "load-esm@npm:1.0.3" + checksum: 10/6949e8c253dddccca2a0ded1e9e0bbbc81924439d99e3a7d0f946ba6cdcd16de22c3cef28d997fd950befda0826ca65c3f913d9ba893d50e9cfc0bbd9a2a1e90 + languageName: node + linkType: hard + "load-json-file@npm:6.2.0": version: 6.2.0 resolution: "load-json-file@npm:6.2.0" @@ -29977,6 +30318,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^7.14.1": + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: 10/6029ca5aba3aacb554e919d7ef804fffd4adfc4c83db00fac8248c7c78811fb6d4b6f70f7fd9d55032b3823446546a007edaa66ad1f2377ae833bd983fac5d98 + languageName: node + linkType: hard + "lru_map@npm:^0.3.3": version: 0.3.3 resolution: "lru_map@npm:0.3.3" @@ -31109,6 +31457,13 @@ __metadata: languageName: node linkType: hard +"mute-stream@npm:^1.0.0": + version: 1.0.0 + resolution: "mute-stream@npm:1.0.0" + checksum: 10/36fc968b0e9c9c63029d4f9dc63911950a3bdf55c9a87f58d3a266289b67180201cade911e7699f8b2fa596b34c9db43dad37649e3f7fdd13c3bb9edb0017ee7 + languageName: node + linkType: hard + "mute-stream@npm:^2.0.0": version: 2.0.0 resolution: "mute-stream@npm:2.0.0" @@ -31297,6 +31652,13 @@ __metadata: languageName: node linkType: hard +"netmask@npm:^2.0.2": + version: 2.1.1 + resolution: "netmask@npm:2.1.1" + checksum: 10/473430b03b09787ad80041d5df4f43d93e7d9484c2646156eee0b31b95d627983aa5ccaf2bb9fc3fb3926bcf2dab82aa41005ad90d0095eb802f9a2354b2de27 + languageName: node + linkType: hard + "next-tick@npm:^1.1.0": version: 1.1.0 resolution: "next-tick@npm:1.1.0" @@ -32834,6 +33196,34 @@ __metadata: languageName: node linkType: hard +"pac-proxy-agent@npm:9.1.0": + version: 9.1.0 + resolution: "pac-proxy-agent@npm:9.1.0" + dependencies: + agent-base: "npm:9.0.0" + debug: "npm:^4.3.4" + get-uri: "npm:8.0.1" + http-proxy-agent: "npm:9.1.0" + https-proxy-agent: "npm:9.1.0" + pac-resolver: "npm:9.0.1" + quickjs-wasi: "npm:^2.2.0" + socks-proxy-agent: "npm:10.1.0" + checksum: 10/02a06c697796eb35a01a1e9949651a5151b1e6a0d06146e0ab54adf0aec3fd446e58c539cd391d50f205c3db58a16ef3c1d3818d3a17940259a21cd0b9d82003 + languageName: node + linkType: hard + +"pac-resolver@npm:9.0.1": + version: 9.0.1 + resolution: "pac-resolver@npm:9.0.1" + dependencies: + degenerator: "npm:7.0.1" + netmask: "npm:^2.0.2" + peerDependencies: + quickjs-wasi: ^2.2.0 + checksum: 10/d3f3cea34df195adf02c7155f8f1501d5830c10360d5a26371af237b122dc1cae32dad34dcf8d5c2a473293ef7b37f3e551f45edc651db148de013fc421ff8b4 + languageName: node + linkType: hard + "package-hash@npm:^4.0.0": version: 4.0.0 resolution: "package-hash@npm:4.0.0" @@ -33229,6 +33619,13 @@ __metadata: languageName: node linkType: hard +"path-to-regexp@npm:8.4.2, path-to-regexp@npm:^8.0.0": + version: 8.4.2 + resolution: "path-to-regexp@npm:8.4.2" + checksum: 10/70fd2cbce0b962cbcf4d312af07818bfce2bae11c09cf3bd86be99c0e30168238a1a7b02b18b452e73f075897df04597d30d63e56da7be41eecfc37998693389 + languageName: node + linkType: hard + "path-to-regexp@npm:^6.2.2": version: 6.3.0 resolution: "path-to-regexp@npm:6.3.0" @@ -33236,13 +33633,6 @@ __metadata: languageName: node linkType: hard -"path-to-regexp@npm:^8.0.0": - version: 8.4.2 - resolution: "path-to-regexp@npm:8.4.2" - checksum: 10/70fd2cbce0b962cbcf4d312af07818bfce2bae11c09cf3bd86be99c0e30168238a1a7b02b18b452e73f075897df04597d30d63e56da7be41eecfc37998693389 - languageName: node - linkType: hard - "path-to-regexp@npm:~0.1.12": version: 0.1.13 resolution: "path-to-regexp@npm:0.1.13" @@ -34967,7 +35357,35 @@ __metadata: languageName: node linkType: hard -"proxy-from-env@npm:2.1.0, proxy-from-env@npm:^2.1.0": +"proxy-agent-negotiate@npm:1.1.0": + version: 1.1.0 + resolution: "proxy-agent-negotiate@npm:1.1.0" + peerDependencies: + kerberos: ^2.0.0 + peerDependenciesMeta: + kerberos: + optional: true + checksum: 10/4554c42b8b872f37cf76c9044b7a5827bccf41ad77a1992b09bb89b84c779f5536bdd0d3312f247565e09fba8700e48a25f233e339705978242e3ca1d0dab149 + languageName: node + linkType: hard + +"proxy-agent@npm:8.0.2": + version: 8.0.2 + resolution: "proxy-agent@npm:8.0.2" + dependencies: + agent-base: "npm:9.0.0" + debug: "npm:^4.3.4" + http-proxy-agent: "npm:9.1.0" + https-proxy-agent: "npm:9.1.0" + lru-cache: "npm:^7.14.1" + pac-proxy-agent: "npm:9.1.0" + proxy-from-env: "npm:^2.0.0" + socks-proxy-agent: "npm:10.1.0" + checksum: 10/3d0368780b243fbe56c95d1ce491d053e689eb2722a42f211b62e6897e4cf16d20bee2408e0bb01ee85199e73ee717fc1e220ce3f77ad55e4673f0587f1f9786 + languageName: node + linkType: hard + +"proxy-from-env@npm:2.1.0, proxy-from-env@npm:^2.0.0, proxy-from-env@npm:^2.1.0": version: 2.1.0 resolution: "proxy-from-env@npm:2.1.0" checksum: 10/fbbaf4dab2a6231dc9e394903a5f66f20475e36b734335790b46feb9da07c37d6b32e2c02e3e2ea4d4b23774c53d8562e5b7cc73282cb43f4a597b7eacaee2ee @@ -35163,6 +35581,13 @@ __metadata: languageName: node linkType: hard +"quickjs-wasi@npm:^2.2.0": + version: 2.2.0 + resolution: "quickjs-wasi@npm:2.2.0" + checksum: 10/3b54d97cb1182dbda44e3c5483bb867bd2261c3644ff658aa55f23fe8590b29a59360fd7425a534578c222b4398b69867978baf8265bf8489ed0d51b32fc66b3 + languageName: node + linkType: hard + "raf@npm:^3.4.1": version: 3.4.1 resolution: "raf@npm:3.4.1" @@ -36634,6 +37059,13 @@ __metadata: languageName: node linkType: hard +"run-async@npm:^3.0.0": + version: 3.0.0 + resolution: "run-async@npm:3.0.0" + checksum: 10/97fb8747f7765b77ebcd311d3a33548099336f04c6434e0763039b98c1de0f1b4421000695aff8751f309c0b995d8dfd620c1f1e4c35572da38c101488165305 + languageName: node + linkType: hard + "run-async@npm:^4.0.5": version: 4.0.6 resolution: "run-async@npm:4.0.6" @@ -36687,7 +37119,7 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^7.2.0, rxjs@npm:^7.8.2": +"rxjs@npm:7.8.2, rxjs@npm:^7.2.0, rxjs@npm:^7.8.2": version: 7.8.2 resolution: "rxjs@npm:7.8.2" dependencies: @@ -37453,7 +37885,7 @@ __metadata: languageName: node linkType: hard -"shell-quote@npm:^1.6.1": +"shell-quote@npm:1.9.0, shell-quote@npm:^1.6.1": version: 1.9.0 resolution: "shell-quote@npm:1.9.0" checksum: 10/c3bc91e74a469c4f96b6fd13b0c777fff16bcbda202692a4e5402d3d6b78fc6e02fe92fdf8dc0bddf992a9c6758e43207bfc5bdbefbf8a58190b1c885cbcc171 @@ -37774,6 +38206,17 @@ __metadata: languageName: node linkType: hard +"socks-proxy-agent@npm:10.1.0": + version: 10.1.0 + resolution: "socks-proxy-agent@npm:10.1.0" + dependencies: + agent-base: "npm:9.0.0" + debug: "npm:^4.3.4" + socks: "npm:^2.8.3" + checksum: 10/b7ca31a62e1164bdf8ade52a4c0d9b2701a7095fa52e7be047d61abf9ddf3e0820c3080373a59268b67d43901f16c51c780bb7ac925f17eb77171ed00071724a + languageName: node + linkType: hard + "socks-proxy-agent@npm:^6.0.0": version: 6.2.1 resolution: "socks-proxy-agent@npm:6.2.1" @@ -38871,6 +39314,15 @@ __metadata: languageName: node linkType: hard +"strtok3@npm:^10.3.4": + version: 10.3.5 + resolution: "strtok3@npm:10.3.5" + dependencies: + "@tokenizer/token": "npm:^0.3.0" + checksum: 10/7279dc97a7207a5664ea07cf5304b94968db4f02d64d2732be8e7a3a31a876375126749cd36a00d0bd54c891875f3e47175f8194d40c64118f3265dbc241aaca + languageName: node + linkType: hard + "style-loader@npm:4.0.0": version: 4.0.0 resolution: "style-loader@npm:4.0.0" @@ -38944,6 +39396,13 @@ __metadata: languageName: node linkType: hard +"supports-color@npm:10.2.2, supports-color@npm:^10.0.0": + version: 10.2.2 + resolution: "supports-color@npm:10.2.2" + checksum: 10/bd132705fc07213a4024131fb061f0a46a48b49ecaf434bb029c0a5aa0339b969236d496d63969e3c248a90fdcac16d4f9c5bf187e7be0bfb5e804ed13bef6b0 + languageName: node + linkType: hard + "supports-color@npm:7.2.0, supports-color@npm:^7.0.0, supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" @@ -38953,13 +39412,6 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^10.0.0": - version: 10.2.2 - resolution: "supports-color@npm:10.2.2" - checksum: 10/bd132705fc07213a4024131fb061f0a46a48b49ecaf434bb029c0a5aa0339b969236d496d63969e3c248a90fdcac16d4f9c5bf187e7be0bfb5e804ed13bef6b0 - languageName: node - linkType: hard - "supports-color@npm:^11.0.0": version: 11.0.0 resolution: "supports-color@npm:11.0.0" @@ -39876,6 +40328,17 @@ __metadata: languageName: node linkType: hard +"token-types@npm:^6.1.1": + version: 6.1.2 + resolution: "token-types@npm:6.1.2" + dependencies: + "@borewit/text-codec": "npm:^0.2.1" + "@tokenizer/token": "npm:^0.3.0" + ieee754: "npm:^1.2.1" + checksum: 10/0c7811a2da5a0ca474c795d883d871a184d1d54f67058d66084110f0b246fff66151885dbcb91d66533e776478bf57f3b4fac69ce03b805a0e1060def87947de + languageName: node + linkType: hard + "toposort@npm:^2.0.2": version: 2.0.2 resolution: "toposort@npm:2.0.2" @@ -39949,6 +40412,15 @@ __metadata: languageName: node linkType: hard +"tree-kill@npm:1.2.2": + version: 1.2.2 + resolution: "tree-kill@npm:1.2.2" + bin: + tree-kill: cli.js + checksum: 10/49117f5f410d19c84b0464d29afb9642c863bc5ba40fcb9a245d474c6d5cc64d1b177a6e6713129eb346b40aebb9d4631d967517f9fbe8251c35b21b13cd96c7 + languageName: node + linkType: hard + "treeify@npm:^1.1.0": version: 1.1.0 resolution: "treeify@npm:1.1.0" @@ -40217,7 +40689,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.8.1, tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.6.2, tslib@npm:^2.8.1": +"tslib@npm:2.8.1, tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.6.2, tslib@npm:^2.8.1": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7 @@ -40646,6 +41118,15 @@ __metadata: languageName: node linkType: hard +"uid@npm:2.0.2": + version: 2.0.2 + resolution: "uid@npm:2.0.2" + dependencies: + "@lukeed/csprng": "npm:^1.0.0" + checksum: 10/18f6da43d8e1b8643077e8123f877b4506759d9accc15337140a1bf7c99f299a66e88b27ab4c640e66e6a10f19e3a85afa45fdf830dd4bab7570d07a3d51e073 + languageName: node + linkType: hard + "uint8-varint@npm:^2.0.1, uint8-varint@npm:^2.0.2": version: 2.0.5 resolution: "uint8-varint@npm:2.0.5" @@ -40666,6 +41147,13 @@ __metadata: languageName: node linkType: hard +"uint8array-extras@npm:^1.4.0": + version: 1.5.0 + resolution: "uint8array-extras@npm:1.5.0" + checksum: 10/94fd56a2dda6a7445f5176f301f491814c87757d38e4b3c932299ab54d69ec504830e5d5c18ffa20cf694a69a210315be8b4a2c9952c6334da817ea2d2e1dce0 + languageName: node + linkType: hard + "uint8arraylist@npm:^2.0.0, uint8arraylist@npm:^2.1.2, uint8arraylist@npm:^2.4.3": version: 2.4.9 resolution: "uint8arraylist@npm:2.4.9" @@ -40761,6 +41249,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~6.21.0": + version: 6.21.0 + resolution: "undici-types@npm:6.21.0" + checksum: 10/ec8f41aa4359d50f9b59fa61fe3efce3477cc681908c8f84354d8567bb3701fafdddf36ef6bff307024d3feb42c837cf6f670314ba37fc8145e219560e473d14 + languageName: node + linkType: hard + "undici-types@npm:~8.3.0": version: 8.3.0 resolution: "undici-types@npm:8.3.0" @@ -41494,7 +41989,7 @@ __metadata: languageName: node linkType: hard -"wcwidth@npm:1.0.1, wcwidth@npm:^1.0.0, wcwidth@npm:^1.0.1": +"wcwidth@npm:1.0.1, wcwidth@npm:>=1.0.1, wcwidth@npm:^1.0.0, wcwidth@npm:^1.0.1": version: 1.0.1 resolution: "wcwidth@npm:1.0.1" dependencies: @@ -43777,6 +44272,20 @@ __metadata: languageName: node linkType: hard +"yargs@npm:18.0.0, yargs@npm:^18.0.0": + version: 18.0.0 + resolution: "yargs@npm:18.0.0" + dependencies: + cliui: "npm:^9.0.1" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + string-width: "npm:^7.2.0" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^22.0.0" + checksum: 10/5af36234871390386b31cac99f00e79fcbc2ead858a61b30a8ca381c5fde5df8af0b407c36b000d3f774bcbe4aec5833f2f1c915f6ddc49ce97b78176b651801 + languageName: node + linkType: hard + "yargs@npm:^15.0.2, yargs@npm:^15.3.1, yargs@npm:^15.4.1": version: 15.4.1 resolution: "yargs@npm:15.4.1" @@ -43826,20 +44335,6 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^18.0.0": - version: 18.0.0 - resolution: "yargs@npm:18.0.0" - dependencies: - cliui: "npm:^9.0.1" - escalade: "npm:^3.1.1" - get-caller-file: "npm:^2.0.5" - string-width: "npm:^7.2.0" - y18n: "npm:^5.0.5" - yargs-parser: "npm:^22.0.0" - checksum: 10/5af36234871390386b31cac99f00e79fcbc2ead858a61b30a8ca381c5fde5df8af0b407c36b000d3f774bcbe4aec5833f2f1c915f6ddc49ce97b78176b651801 - languageName: node - linkType: hard - "yauzl@npm:^2.4.2": version: 2.10.0 resolution: "yauzl@npm:2.10.0"