From 71734b053379ff089ad5a2f03598aab14afdfecc Mon Sep 17 00:00:00 2001 From: Peter Somogyvari Date: Fri, 21 Jul 2023 13:58:20 -0700 Subject: [PATCH] build(deps): fix npm (grpc) build on NodeJS v20.4.0 1. Eliminates all uses of the old `grpc` dependency from the codebase. 1.1. Upgraded all outdated fabirc-network, fabric-client and fabric-ca-client dependencies to the latest stable 2.2.x version which is 2.2.19 at the time. 1.2. Also outright swapped `grpc` declarations with `@grpc/grpc-js`. The rest of the diff is due to the incompatibility of the two mentioned. Fixes https://github.com/hyperledger/cacti/issues/2562 Fixes https://github.com/hyperledger/cacti/issues/1507 Signed-off-by: Sandeep Nishad Signed-off-by: Peter Somogyvari --- .../package.json | 2 +- .../package.json | 2 +- .../business-logic-asset-trade.ts | 38 +- .../fabric-asset.ts | 8 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 2 +- .../cactus-example-tcs-huawei/package.json | 4 +- examples/test-run-transaction/package.json | 4 +- packages/cactus-cmd-api-server/package.json | 2 +- .../cactus-cmd-socketio-server/package.json | 1 + packages/cactus-core-api/package.json | 2 +- .../package.json | 2 +- .../typescript/iroha-transaction-wrapper.ts | 2 +- .../cactus-plugin-odap-hermes/package.json | 2 +- .../package.json | 4 +- .../integration/fabric-setup-helpers.ts | 181 ---- .../persistence-fabric-functional.test.ts | 826 ------------------ .../asset-transfer-basic-utils/package.json | 4 +- weaver/common/protos-js/package.json | 3 +- .../drivers/fabric-driver/package-local.json | 6 +- .../core/drivers/fabric-driver/package.json | 6 +- .../iin-agent/package-local.json | 8 +- .../iin-agent/package.json | 8 +- .../fabric/fabric-cli/package-local.json | 6 +- weaver/samples/fabric/fabric-cli/package.json | 6 +- .../package-local.json | 8 +- .../interoperation-node-sdk/package.json | 8 +- webpack.prod.node.js | 1 - yarn.lock | 530 +++-------- 30 files changed, 181 insertions(+), 1503 deletions(-) delete mode 100644 packages/cactus-plugin-persistence-fabric/src/test/typescript/integration/fabric-setup-helpers.ts delete mode 100644 packages/cactus-plugin-persistence-fabric/src/test/typescript/integration/persistence-fabric-functional.test.ts diff --git a/examples/cactus-example-carbon-accounting-backend/package.json b/examples/cactus-example-carbon-accounting-backend/package.json index f5ecc3b0d7..023654a75f 100644 --- a/examples/cactus-example-carbon-accounting-backend/package.json +++ b/examples/cactus-example-carbon-accounting-backend/package.json @@ -65,7 +65,7 @@ "@openzeppelin/contracts": "4.9.3", "@openzeppelin/contracts-upgradeable": "4.9.3", "async-exit-hook": "2.0.1", - "fabric-network": "2.2.18", + "fabric-network": "2.2.19", "fs-extra": "10.1.0", "openapi-types": "9.1.0", "typescript-optional": "2.0.1", diff --git a/examples/cactus-example-cbdc-bridging-backend/package.json b/examples/cactus-example-cbdc-bridging-backend/package.json index 10617a652d..6620c84b8f 100644 --- a/examples/cactus-example-cbdc-bridging-backend/package.json +++ b/examples/cactus-example-cbdc-bridging-backend/package.json @@ -73,7 +73,7 @@ "axios": "^0.27.2", "crypto-js": "4.1.1", "dotenv": "^16.0.1", - "fabric-network": "2.2.10", + "fabric-network": "2.2.19", "fs-extra": "10.1.0", "ipfs-http-client": "51.0.1", "knex": "2.5.1", diff --git a/examples/cactus-example-discounted-asset-trade/business-logic-asset-trade.ts b/examples/cactus-example-discounted-asset-trade/business-logic-asset-trade.ts index 0867547f17..fa3a610550 100644 --- a/examples/cactus-example-discounted-asset-trade/business-logic-asset-trade.ts +++ b/examples/cactus-example-discounted-asset-trade/business-logic-asset-trade.ts @@ -37,6 +37,8 @@ import { getSignerIdentity, } from "./fabric-connector"; import { sendEthereumTransaction } from "./transaction-ethereum"; +import { hasKey } from "@hyperledger/cactus-common"; +import { RuntimeError } from "run-time-error"; const moduleName = "BusinessLogicAssetTrade"; const logger = getLogger(`${moduleName}`); @@ -346,11 +348,11 @@ export class BusinessLogicAssetTrade extends BusinessLogicBase { }); } - secondTransaction( + async secondTransaction( assetID: string, fabricAccountTo: string, tradeInfo: TradeInfo, - ): void { + ): Promise { logger.debug("called secondTransaction"); // Start monitoring @@ -395,20 +397,28 @@ export class BusinessLogicAssetTrade extends BusinessLogicBase { }, }); - transferOwnership(assetID, fabricAccountTo).then((result) => { - logger.info("secondTransaction txId : " + result.transactionId); - - // Register transaction data in DB - const transactionData: TransactionData = new TransactionData( - "transfer", - "ledger002", + const result = await transferOwnership(assetID, fabricAccountTo); + if ( + !hasKey(result, "transactionId") || + typeof result.transactionId !== "string" + ) { + throw new RuntimeError( + "secondTransaction() Invalid transactionId returned from transferOwnership: %s", result.transactionId, ); - this.transactionInfoManagement.setTransactionData( - tradeInfo, - transactionData, - ); - }); + } + logger.info("secondTransaction txId : " + result.transactionId); + + // Register transaction data in DB + const transactionData: TransactionData = new TransactionData( + "transfer", + "ledger002", + result.transactionId, + ); + this.transactionInfoManagement.setTransactionData( + tradeInfo, + transactionData, + ); } thirdTransaction( diff --git a/examples/cactus-example-discounted-asset-trade/fabric-asset.ts b/examples/cactus-example-discounted-asset-trade/fabric-asset.ts index 97360d4f70..1c2695fb3d 100644 --- a/examples/cactus-example-discounted-asset-trade/fabric-asset.ts +++ b/examples/cactus-example-discounted-asset-trade/fabric-asset.ts @@ -24,11 +24,11 @@ router.get("/:assetID", (req: Request, res: Response, next: NextFunction) => { logger.debug(`start queryAsset`); queryAsset(req.params.assetID) - .then((result) => { + .then((result: unknown) => { logger.debug("result(queryAsset) = " + JSON.stringify(result)); res.status(200).json(result); }) - .catch((err) => { + .catch((err: unknown) => { logger.error(err); }); } catch (err) { @@ -54,11 +54,11 @@ router.get("/", (req: Request, res: Response, next: NextFunction) => { logger.debug(`start queryAllAssets`); queryAllAssets() - .then((result) => { + .then((result: unknown) => { logger.debug("result(queryAllAssets) = " + JSON.stringify(result)); res.status(200).json(result); }) - .catch((err) => { + .catch((err: unknown) => { logger.error(err); }); } catch (err) { diff --git a/examples/cactus-example-discounted-asset-trade/package.json b/examples/cactus-example-discounted-asset-trade/package.json index 4f0337a403..bb23554c5e 100644 --- a/examples/cactus-example-discounted-asset-trade/package.json +++ b/examples/cactus-example-discounted-asset-trade/package.json @@ -33,8 +33,8 @@ "ethereumjs-common": "1.5.2", "ethereumjs-tx": "2.1.2", "express": "4.16.4", - "fabric-ca-client": "2.2.18", - "fabric-network": "2.2.18", + "fabric-ca-client": "2.2.19", + "fabric-network": "2.2.19", "http-errors": "1.6.3", "jsonwebtoken": "9.0.0", "jsrsasign": "10.5.25", diff --git a/examples/cactus-example-electricity-trade/package.json b/examples/cactus-example-electricity-trade/package.json index c103b70cb9..c1c7bc60e2 100644 --- a/examples/cactus-example-electricity-trade/package.json +++ b/examples/cactus-example-electricity-trade/package.json @@ -29,8 +29,8 @@ "ethereumjs-common": "1.5.2", "ethereumjs-tx": "2.1.2", "express": "4.16.4", - "fabric-ca-client": "2.2.18", - "fabric-network": "2.2.18", + "fabric-ca-client": "2.2.19", + "fabric-network": "2.2.19", "http-errors": "1.6.3", "js-yaml": "3.14.1", "jsonwebtoken": "9.0.0", diff --git a/examples/cactus-example-supply-chain-backend/package.json b/examples/cactus-example-supply-chain-backend/package.json index 2d0b212460..a1a9ef2134 100644 --- a/examples/cactus-example-supply-chain-backend/package.json +++ b/examples/cactus-example-supply-chain-backend/package.json @@ -68,7 +68,7 @@ "dotenv": "16.0.0", "express": "4.17.3", "express-jwt": "8.4.1", - "fabric-network": "2.2.18", + "fabric-network": "2.2.19", "jose": "4.9.2", "openapi-types": "9.1.0", "solc": "0.8.6", diff --git a/examples/cactus-example-tcs-huawei/package.json b/examples/cactus-example-tcs-huawei/package.json index d806dee8a4..dd54ffc1bf 100644 --- a/examples/cactus-example-tcs-huawei/package.json +++ b/examples/cactus-example-tcs-huawei/package.json @@ -23,8 +23,8 @@ "ethereumjs-common": "1.5.2", "ethereumjs-tx": "2.1.2", "express": "4.16.4", - "fabric-ca-client": "2.2.18", - "fabric-network": "2.2.18", + "fabric-ca-client": "2.2.19", + "fabric-network": "2.2.19", "http-errors": "1.6.3", "js-yaml": "3.14.1", "jsonwebtoken": "8.5.1", diff --git a/examples/test-run-transaction/package.json b/examples/test-run-transaction/package.json index 3d9c47298c..7d55af1442 100644 --- a/examples/test-run-transaction/package.json +++ b/examples/test-run-transaction/package.json @@ -22,8 +22,8 @@ "ethereumjs-common": "1.5.2", "ethereumjs-tx": "2.1.2", "express": "4.16.4", - "fabric-ca-client": "2.2.18", - "fabric-network": "2.2.18", + "fabric-ca-client": "2.2.19", + "fabric-network": "2.2.19", "http-errors": "1.6.3", "jsonwebtoken": "8.5.1", "log4js": "6.4.0", diff --git a/packages/cactus-cmd-api-server/package.json b/packages/cactus-cmd-api-server/package.json index 4f7c28041c..2d99f13854 100644 --- a/packages/cactus-cmd-api-server/package.json +++ b/packages/cactus-cmd-api-server/package.json @@ -58,7 +58,7 @@ "webpack:dev:web": "webpack --env=dev --target=web --config ../../webpack.config.js" }, "dependencies": { - "@grpc/grpc-js": "1.9.0", + "@grpc/grpc-js": "1.9.5", "@grpc/proto-loader": "0.7.8", "@hyperledger/cactus-common": "2.0.0-alpha.2", "@hyperledger/cactus-core": "2.0.0-alpha.2", diff --git a/packages/cactus-cmd-socketio-server/package.json b/packages/cactus-cmd-socketio-server/package.json index 68bb11752f..de174277df 100644 --- a/packages/cactus-cmd-socketio-server/package.json +++ b/packages/cactus-cmd-socketio-server/package.json @@ -53,6 +53,7 @@ "ethereumjs-common": "1.5.2", "ethereumjs-tx": "2.1.2", "express": "4.16.4", + "fabric-network": "2.2.19", "http-errors": "1.6.3", "js-yaml": "3.14.1", "jsonwebtoken": "9.0.0", diff --git a/packages/cactus-core-api/package.json b/packages/cactus-core-api/package.json index d165d14adf..0dd7be8009 100644 --- a/packages/cactus-core-api/package.json +++ b/packages/cactus-core-api/package.json @@ -63,7 +63,7 @@ "axios": "0.21.4" }, "devDependencies": { - "@grpc/grpc-js": "1.9.0", + "@grpc/grpc-js": "1.9.5", "@grpc/proto-loader": "0.7.8", "@types/express": "4.17.13", "@types/google-protobuf": "3.15.5", diff --git a/packages/cactus-plugin-ledger-connector-iroha/package.json b/packages/cactus-plugin-ledger-connector-iroha/package.json index d7efc7a686..e3704e186c 100644 --- a/packages/cactus-plugin-ledger-connector-iroha/package.json +++ b/packages/cactus-plugin-ledger-connector-iroha/package.json @@ -55,6 +55,7 @@ "webpack:dev:web": "webpack --env=dev --target=web --config ../../webpack.config.js" }, "dependencies": { + "@grpc/grpc-js": "1.9.5", "@hyperledger/cactus-common": "2.0.0-alpha.2", "@hyperledger/cactus-core": "2.0.0-alpha.2", "@hyperledger/cactus-core-api": "2.0.0-alpha.2", @@ -62,7 +63,6 @@ "axios": "0.21.4", "express": "4.17.1", "fast-safe-stringify": "2.1.1", - "grpc": "1.24.11", "iroha-helpers": "1.5.0", "key-encoder": "2.0.3", "openapi-types": "7.0.1", diff --git a/packages/cactus-plugin-ledger-connector-iroha/src/main/typescript/iroha-transaction-wrapper.ts b/packages/cactus-plugin-ledger-connector-iroha/src/main/typescript/iroha-transaction-wrapper.ts index f390b5b1c4..05d5ec6c6f 100644 --- a/packages/cactus-plugin-ledger-connector-iroha/src/main/typescript/iroha-transaction-wrapper.ts +++ b/packages/cactus-plugin-ledger-connector-iroha/src/main/typescript/iroha-transaction-wrapper.ts @@ -13,7 +13,7 @@ import { } from "./generated/openapi/typescript-axios"; import { RuntimeError } from "run-time-error"; -import * as grpc from "grpc"; +import * as grpc from "@grpc/grpc-js"; import { GrantablePermission, diff --git a/packages/cactus-plugin-odap-hermes/package.json b/packages/cactus-plugin-odap-hermes/package.json index c52ed1d53b..83745ae144 100644 --- a/packages/cactus-plugin-odap-hermes/package.json +++ b/packages/cactus-plugin-odap-hermes/package.json @@ -72,7 +72,7 @@ "@types/express": "4.17.8", "@types/tape": "4.13.4", "crypto-js": "4.0.0", - "fabric-network": "2.2.18", + "fabric-network": "2.2.19", "ipfs-http-client": "51.0.1", "typescript": "4.9.5" }, diff --git a/packages/cactus-plugin-persistence-fabric/package.json b/packages/cactus-plugin-persistence-fabric/package.json index 64b5ca513b..893e217d4a 100644 --- a/packages/cactus-plugin-persistence-fabric/package.json +++ b/packages/cactus-plugin-persistence-fabric/package.json @@ -73,7 +73,7 @@ "@hyperledger/cactus-plugin-keychain-memory": "2.0.0-alpha.2", "@hyperledger/cactus-plugin-ledger-connector-fabric": "2.0.0-alpha.2", "axios": "0.21.4", - "fabric-protos": "2.2.18", + "fabric-protos": "2.2.19", "js-sha256": "0.9.0", "pg": "8.8.0", "safe-stable-stringify": "2.4.3", @@ -86,7 +86,7 @@ "@types/uuid": "8.3.4", "body-parser": "1.19.0", "express": "4.17.1", - "fabric-network": "1.4.19", + "fabric-network": "2.2.19", "uuid": "8.3.2" }, "engines": { diff --git a/packages/cactus-plugin-persistence-fabric/src/test/typescript/integration/fabric-setup-helpers.ts b/packages/cactus-plugin-persistence-fabric/src/test/typescript/integration/fabric-setup-helpers.ts deleted file mode 100644 index 55a6c132ed..0000000000 --- a/packages/cactus-plugin-persistence-fabric/src/test/typescript/integration/fabric-setup-helpers.ts +++ /dev/null @@ -1,181 +0,0 @@ -/** - * Fabric helpers to be used by functional tests. - * Works with Fabric SDK 1.4 - that's why it's not included in fabric ledger test class. - * Most functions are based on fabric-samples and utils scripts from tools/docker/fabric-all-in-one/asset-transfer-basic-utils - */ - -import { LoggerProvider, Logger } from "@hyperledger/cactus-common"; -import { FileSystemWallet, Gateway, X509WalletMixin } from "fabric-network"; -import FabricCAServices from "fabric-ca-client"; - -// Unit Test logger setup -const log: Logger = LoggerProvider.getOrCreate({ - label: "fabric-setup-helpers", - level: "info", -}); - -/** - * Enroll admin user on fabric and store it's credential in local filesystem wallet. - * - * @param connectionProfile - Fabric connection profile JSON. - * @param walletPath - Local filesystem wallet path. - * @param enrollmentID - admin username. - * @param enrollmentSecret - admin secret. - */ -export async function enrollAdmin( - connectionProfile: any, - walletPath: string, - enrollmentID: string, - enrollmentSecret: string, -) { - log.info( - `Enroll admin user with enrollmentID='${enrollmentID}' and enrollmentSecret='${enrollmentSecret}'`, - ); - - // Create a new CA client for interacting with the CA. - const caName = connectionProfile.organizations.Org1.certificateAuthorities[0]; - const caInfo = connectionProfile.certificateAuthorities[caName]; - const caTLSCACerts = caInfo.tlsCACerts.pem; - const ca = new FabricCAServices( - caInfo.url, - { trustedRoots: caTLSCACerts, verify: false }, - caInfo.caName, - ); - - // Create a new file system based wallet for managing identities. - const wallet = new FileSystemWallet(walletPath); - - // Enroll admin user if not exist yet - const adminExists = await wallet.exists(enrollmentID); - if (!adminExists) { - const enrollment = await ca.enroll({ - enrollmentID, - enrollmentSecret, - }); - const identity = X509WalletMixin.createIdentity( - connectionProfile.organizations.Org1.mspid, - enrollment.certificate, - enrollment.key.toBytes(), - ); - await wallet.import(enrollmentID, identity); - log.info( - `Successfully enrolled admin user ${enrollmentID} and imported it into the wallet. Current state:`, - await wallet.list(), - ); - } -} - -/** - * Enroll a user on fabric and store it's credential in local filesystem wallet. - * Must be called after `enrollAdmin()` - * - * @param connectionProfile - Fabric connection profile JSON. - * @param walletPath - Local filesystem wallet path. - * @param userName - regular username to enroll. - * @param adminUserName - admin username (must be already enrolled) - */ -export async function enrollUser( - connectionProfile: any, - walletPath: string, - userName: string, - adminUserName: string, -) { - log.info(`Enroll user with userName='${userName}'`); - - // Create a new file system based wallet for managing identities. - const wallet = new FileSystemWallet(walletPath); - - // Check to see if we've already enrolled the user. - const userExists = await wallet.exists(userName); - if (userExists) { - console.log( - "An identity for the user userName already exists in the wallet", - ); - return; - } - - // Check to see if we've already enrolled the admin user. - const adminExists = await wallet.exists(adminUserName); - if (!adminExists) { - throw new Error( - "An identity for the admin user adminUserName does not exist in the wallet", - ); - } - - // Create a new gateway for connecting to our peer node. - const gateway = new Gateway(); - await gateway.connect(connectionProfile, { - wallet, - identity: adminUserName, - discovery: { enabled: true, asLocalhost: true }, - }); - - // Get the CA client object from the gateway for interacting with the CA. - const ca = gateway.getClient().getCertificateAuthority(); - const adminIdentity = gateway.getCurrentIdentity(); - - // Register the user, enroll the user, and import the new identity into the wallet. - const secret = await ca.register( - { - affiliation: "org1.department1", - enrollmentID: userName, - role: "client", - }, - adminIdentity, - ); - const enrollment = await ca.enroll({ - enrollmentID: userName, - enrollmentSecret: secret, - }); - const userIdentity: any = X509WalletMixin.createIdentity( - connectionProfile.organizations.Org1.mspid, - enrollment.certificate, - enrollment.key.toBytes(), - ); - await wallet.import(userName, userIdentity); - log.info( - `Successfully enrolled user ${userName} and imported it into the wallet. Current state:`, - await wallet.list(), - ); - - const identity = { - credentials: { - certificate: userIdentity.certificate, - privateKey: userIdentity.privateKey, - }, - mspId: userIdentity.mspId, - type: userIdentity.type, - }; - return identity; -} - -/** - * Get cryptographic data for specified user from local filesystem wallet. - * Can be used to sign transactions as specified user. - * - * @param name - Username enrolled in wallet. - * @param walletPath - Local filesystem wallet path. - * @returns A tuple [certificatePem, privateKeyPem] - */ -export async function getUserCryptoFromWallet( - name: string, - walletPath: string, -): Promise<[string, string, string, string]> { - const wallet = new FileSystemWallet(walletPath); - - const submitterExists = await wallet.exists(name); - if (!submitterExists) { - throw new Error(`User ${name} does not exist in wallet ${walletPath}`); - } - - const submitterIdentity: any = await wallet.export(name); - const certPem = (submitterIdentity as any).certificate; - const privateKeyPem = (submitterIdentity as any).privateKey; - const mspId = (submitterIdentity as any).mspId; - let certType = ""; - if ((submitterIdentity as any).type == "X509") { - certType = "X.509"; - } - (submitterIdentity as any).type; - return [certPem, privateKeyPem, mspId, certType]; -} diff --git a/packages/cactus-plugin-persistence-fabric/src/test/typescript/integration/persistence-fabric-functional.test.ts b/packages/cactus-plugin-persistence-fabric/src/test/typescript/integration/persistence-fabric-functional.test.ts deleted file mode 100644 index 74c2355276..0000000000 --- a/packages/cactus-plugin-persistence-fabric/src/test/typescript/integration/persistence-fabric-functional.test.ts +++ /dev/null @@ -1,826 +0,0 @@ -/** - * Functional test of basic operations on connector-fabric-socketio (packages/cactus-plugin-ledger-connector-fabric-socketio) - * Assumes sample CC was is deployed on the test ledger. - * Tests include sending and evaluation transactions, and monitoring for events. - * - * You can speed up development or troubleshooting by using same ledger repeat. - * 1. Remove fabric wallets from previous runs - `rm -rf /tmp/fabric-test-wallet*`. Repeat this everytime you restart ledger. - * 2. Change variable `leaveLedgerRunning` to true. - * 3. Run this functional test. It will leave the ledger running, and will enroll the users to common wallet location. - * 4. Change `useRunningLedger` to true. The following test runs will not setup the ledger again. - * Note: - * You may get a warning about open SIGNREQUEST handles after the test finishes. - * These are false-positives, and should be fixed in jest v28.1.0 - * More details: https://github.com/facebook/jest/pull/12789 - */ - -import fs from "fs"; -import path from "path"; -import os from "os"; -import "jest-extended"; - -import http from "http"; -import { AddressInfo } from "net"; -import { v4 as uuidv4 } from "uuid"; -import bodyParser from "body-parser"; -import express from "express"; -import { Server as SocketIoServer } from "socket.io"; -import { DiscoveryOptions } from "fabric-network"; -import { PluginPersistenceFabric } from "../../../main/typescript"; -import { - DEFAULT_FABRIC_2_AIO_FABRIC_VERSION, - DEFAULT_FABRIC_2_AIO_IMAGE_NAME, - DEFAULT_FABRIC_2_AIO_IMAGE_VERSION, - FabricTestLedgerV1, - pruneDockerAllIfGithubAction, - SelfSignedPkiGenerator, - // PostgresTestContainer, -} from "@hyperledger/cactus-test-tooling"; - -import { - LogLevelDesc, - LoggerProvider, - Logger, - IListenOptions, - Servers, -} from "@hyperledger/cactus-common"; - -import { Constants, Configuration } from "@hyperledger/cactus-core-api"; - -import { PluginRegistry } from "@hyperledger/cactus-core"; - -import { PluginKeychainMemory } from "@hyperledger/cactus-plugin-keychain-memory"; -import { - PluginLedgerConnectorFabric, - FabricContractInvocationType, - DefaultEventHandlerStrategy, - FabricSigningCredential, - FabricApiClient, - GatewayOptions, -} from "@hyperledger/cactus-plugin-ledger-connector-fabric"; -// Mocked DB setup - -import DatabaseClient from "../../../main/typescript/db-client/db-client"; -jest.mock("../../../main/typescript/db-client/db-client"); -const DatabaseClientMock = DatabaseClient as unknown as jest.Mock; - -import { - enrollAdmin, - enrollUser, - getUserCryptoFromWallet, -} from "./fabric-setup-helpers"; - -////////////////////////////////// -// Constants -////////////////////////////////// - -// const postgresImageName = "postgres"; -// const postgresImageVersion = "14.6-alpine"; -const testLogLevel: LogLevelDesc = "info"; -const sutLogLevel: LogLevelDesc = "info"; -const setupTimeout = 1000 * 60; // 1 minute timeout for setup -// const testTimeout = 1000 * 60 * 3; // 3 minutes timeout for some async tests - -const imageName = DEFAULT_FABRIC_2_AIO_IMAGE_NAME; -const imageVersion = DEFAULT_FABRIC_2_AIO_IMAGE_VERSION; -const fabricEnvVersion = DEFAULT_FABRIC_2_AIO_FABRIC_VERSION; -const fabricEnvCAVersion = "1.4.9"; -const ledgerUserName = "appUser"; -const ledgerChannelName = "mychannel"; -const ledgerContractName = "basic"; -const leaveLedgerRunning = false; // default: false -const useRunningLedger = false; // default: false - -///////////////////////////////// - -// Logger setup -const log: Logger = LoggerProvider.getOrCreate({ - label: "persistence-fabric-functional.test", - level: testLogLevel, -}); - -/** - * Main test suite - */ -describe("Persistence Fabric", () => { - let ledger: FabricTestLedgerV1; - let signingCredential: FabricSigningCredential; - let fabricConnectorPlugin: PluginLedgerConnectorFabric; - let connectorServer: http.Server; - let socketioServer: SocketIoServer; - let apiClient: FabricApiClient; - let persistence: PluginPersistenceFabric; - let gatewayOptions: GatewayOptions; - let dbClientInstance: any; - let dbClient: DatabaseClient; - let tmpWalletDir: string; - let connectorCertValue: string; - let connectorPrivKeyValue: string; - - let instanceId: string; - - function insertResponseMock(testData: { - fabric_block_id: string; - fabric_block_num: number; - fabric_block_data: string; - }) { - (dbClientInstance.insertBlockDataEntry as jest.Mock).mockReturnValue( - testData, - ); - } - - function getMaxBlockNumberMock(blockNumber: number) { - (dbClientInstance.getMaxBlockNumber as jest.Mock).mockReturnValue( - blockNumber, - ); - } - - function missBlock10(blockNumber: number) { - if (blockNumber === 10) { - (dbClientInstance.isThisBlockInDB as jest.Mock).mockReturnValue({ - command: "SELECT", - rowCount: 0, - rows: [], - }); - } else { - (dbClientInstance.isThisBlockInDB as jest.Mock).mockReturnValue( - blockNumber, - ); - } - } - - function clearMockTokenMetadata() { - for (const mockMethodName in dbClientInstance) { - const mockMethod = dbClientInstance[mockMethodName]; - if ("mockClear" in mockMethod) { - mockMethod.mockClear; - } - } - } - - function createFabricConnectorConfig( - connectionProfile: Record, - connectorCert: string, - connectorPrivKey: string, - jwtAlgo: string, - walletDir: string, - adminName: string, - adminSecret: string, - ) { - // Get Org CA - const caId = connectionProfile.organizations.Org1.certificateAuthorities[0]; - log.debug("Use CA:", caId); - - // Get Orderer ID - const ordererId = connectionProfile.channels[ledgerChannelName].orderers[0]; - log.debug("Use Orderer:", ordererId); - - const connectorConfig: any = { - sslParam: { - port: 0, // random port - keyValue: connectorPrivKey, - certValue: connectorCert, - jwtAlgo: jwtAlgo, - }, - logLevel: sutLogLevel, - fabric: { - mspid: connectionProfile.organizations.Org1.mspid, - keystore: walletDir, - connUserName: ledgerUserName, - contractName: ledgerContractName, - peers: [], // will be filled below - orderer: { - name: connectionProfile.orderers[ordererId].grpcOptions[ - "ssl-target-name-override" - ], - url: connectionProfile.orderers[ordererId].url, - tlscaValue: connectionProfile.orderers[ordererId].tlsCACerts.pem, - }, - ca: { - name: connectionProfile.certificateAuthorities[caId].caName, - url: connectionProfile.certificateAuthorities[caId].url, - }, - submitter: { - name: adminName, - secret: adminSecret, - }, - channelName: ledgerChannelName, - chaincodeId: ledgerContractName, - }, - }; - - // Add peers - connectionProfile.organizations.Org1.peers.forEach((peerName: string) => { - log.debug("Add Peer:", peerName); - const peer = connectionProfile.peers[peerName]; - connectorConfig.fabric.peers.push({ - name: peer.grpcOptions["ssl-target-name-override"], - requests: peer.url, - tlscaValue: peer.tlsCACerts.pem, - }); - }); - - const configJson = JSON.stringify(connectorConfig); - log.debug("Connector Config:", configJson); - return configJson; - } - - ////////////////////////////////// - // Environment Setup - ////////////////////////////////// - - beforeAll(async () => { - log.info("Prune Docker..."); - await pruneDockerAllIfGithubAction({ logLevel: testLogLevel }); - // this is to use only if you want to start integration with real container and database - // postgresContainer = new PostgresTestContainer({ - // imageName: postgresImageName, - // imageVersion: postgresImageVersion, - // logLevel: testLogLevel, - // envVars: ["POSTGRES_USER=postgres", "POSTGRES_PASSWORD=postgres"], - // }); - // await postgresContainer.start(); - - // const postgresPort = await postgresContainer.getPostgresPort(); - // expect(postgresPort).toBeTruthy(); - // log.info(`Postgres running at localhost:${postgresPort}`); - - //log.info("Create PostgresDatabaseClient"); - // dbClient = new DatabaseClient({ - // connectionString: `postgresql://postgres:postgres@localhost:${postgresPort}/postgres`, - // logLevel: sutLogLevel, - // }); - - //log.info("Connect the PostgreSQL PostgresDatabaseClient"); - // await dbClient.connect(); - // await dbClient.client.query( - // `CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; - // CREATE ROLE anon NOLOGIN; - // CREATE ROLE authenticated NOLOGIN; - // CREATE ROLE service_role NOLOGIN; - // CREATE ROLE supabase_admin NOLOGIN;`, - // ); - - //log.info("Initialize the test DB Schema"); - // await dbClient.initializePlugin(testPluginName, testPluginInstanceId); - - // Prepare local filesystem wallet path - if (leaveLedgerRunning || useRunningLedger) { - tmpWalletDir = path.join(os.tmpdir(), "fabric-test-wallet-common"); - log.warn("Using common wallet path when re-using the same ledger."); - try { - fs.mkdirSync(tmpWalletDir); - } catch (err: any) { - if (!err.message.includes("EEXIST")) { - log.error( - "Unexpected exception when creating common wallet dir:", - err, - ); - throw err; - } - } - } else { - log.info("Create temp dir for wallet - will be removed later..."); - tmpWalletDir = fs.mkdtempSync( - path.join(os.tmpdir(), "fabric-test-wallet"), - ); - } - log.info("Wallet path:", tmpWalletDir); - expect(tmpWalletDir).toBeTruthy(); - - // Start Ledger - - log.info("Start FabricTestLedgerV1..."); - log.debug("Version:", fabricEnvVersion, "CA Version:", fabricEnvCAVersion); - ledger = new FabricTestLedgerV1({ - emitContainerLogs: false, - publishAllPorts: true, - logLevel: testLogLevel, - imageName, - imageVersion, - envVars: new Map([ - ["FABRIC_VERSION", fabricEnvVersion], - ["CA_VERSION", fabricEnvCAVersion], - ]), - useRunningLedger, - }); - log.debug("Fabric image:", ledger.getContainerImageName()); - await ledger.start({ omitPull: false }); - - // Get connection profile - log.info("Get fabric connection profile for Org1..."); - const connectionProfile = await ledger.getConnectionProfileOrg1(); - expect(connectionProfile).toBeTruthy(); - // Get admin credentials - const [adminName, adminSecret] = ledger.adminCredentials; - - await enrollAdmin(connectionProfile, tmpWalletDir, adminName, adminSecret); - // #useridentity test - await enrollUser( - connectionProfile, - tmpWalletDir, - ledgerUserName, - adminName, - ); - const userIdent = await getUserCryptoFromWallet("appUser", tmpWalletDir); - const identityTest = { - credentials: { - certificate: userIdent[0], - privateKey: userIdent[1], - }, - mspId: userIdent[2], - type: userIdent[3], - }; - const pkiGenerator = new SelfSignedPkiGenerator(); - const pki = pkiGenerator.create("localhost"); - connectorCertValue = pki.certificatePem; - connectorPrivKeyValue = pki.privateKeyPem; - const jwtAlgo = "RS512"; - - log.info("Export connector config before loading the module..."); - process.env["NODE_CONFIG"] = createFabricConnectorConfig( - connectionProfile, - connectorCertValue, - connectorPrivKeyValue, - jwtAlgo, - tmpWalletDir, - adminName, - adminSecret, - ); - - // Create Keychain Plugin - const keychainId = uuidv4(); - const keychainEntryKey = "user2"; - const keychainPlugin = new PluginKeychainMemory({ - instanceId: uuidv4(), - keychainId, - logLevel: sutLogLevel, - backend: new Map([[keychainEntryKey, JSON.stringify(identityTest)]]), - }); - - gatewayOptions = { - identity: keychainEntryKey, - wallet: { - keychain: { - keychainId, - keychainRef: keychainEntryKey, - }, - }, - }; - - signingCredential = { - keychainId, - keychainRef: keychainEntryKey, - }; - log.debug("signingCredential", signingCredential); - - // Create Connector Plugin - const discoveryOptions: DiscoveryOptions = { - enabled: true, - asLocalhost: true, - }; - - fabricConnectorPlugin = new PluginLedgerConnectorFabric({ - instanceId: uuidv4(), - pluginRegistry: new PluginRegistry({ plugins: [keychainPlugin] }), - sshConfig: await ledger.getSshConfig(), - cliContainerEnv: {}, - peerBinary: "/fabric-samples/bin/peer", - logLevel: sutLogLevel, - connectionProfile, - discoveryOptions, - eventHandlerOptions: { - strategy: DefaultEventHandlerStrategy.NetworkScopeAnyfortx, - commitTimeout: 300, - }, - }); - - // Run http server - const expressApp = express(); - expressApp.use(bodyParser.json({ limit: "250mb" })); - connectorServer = http.createServer(expressApp); - const listenOptions: IListenOptions = { - hostname: "127.0.0.1", - port: 0, - server: connectorServer, - }; - - const addressInfo = (await Servers.listen(listenOptions)) as AddressInfo; - - const apiHost = `http://${addressInfo.address}:${addressInfo.port}`; - - socketioServer = new SocketIoServer(connectorServer, { - path: Constants.SocketIoConnectionPathV1, - }); - - // Register services - await fabricConnectorPlugin.getOrCreateWebServices(); - await fabricConnectorPlugin.registerWebServices(expressApp, socketioServer); - - // Create ApiClient - const apiConfig = new Configuration({ basePath: apiHost }); - apiClient = new FabricApiClient(apiConfig); - log.debug("apiClient", apiClient); - DatabaseClientMock.mockClear(); - persistence = new PluginPersistenceFabric({ - gatewayOptions, - apiClient, - logLevel: testLogLevel, - instanceId, - connectionString: `db-is-mocked`, - }); - expect(DatabaseClientMock).toHaveBeenCalledTimes(1); - dbClientInstance = DatabaseClientMock.mock.instances[0]; - expect(dbClientInstance).toBeTruthy(); - }); - - afterAll(async () => { - log.info("FINISHING THE TESTS"); - - if (ledger && !leaveLedgerRunning && !useRunningLedger) { - log.info("Stop the fabric ledger..."); - await ledger.stop(); - await ledger.destroy(); - } - - if (fabricConnectorPlugin) { - log.info("Close Fabric connector..."); - fabricConnectorPlugin.shutdown(); - } - - if (socketioServer) { - log.info("Stop the SocketIO server connector..."); - await new Promise((resolve) => - socketioServer.close(() => resolve()), - ); - } - - if (apiClient) { - log.info("Close ApiClient connections..."); - apiClient.close(); - } - if (connectorServer) { - log.info("Stop the HTTP server connector..."); - await new Promise((resolve) => - connectorServer.close(() => resolve()), - ); - } - - if (persistence) { - await persistence.shutdown(); - } - - if (tmpWalletDir && !leaveLedgerRunning && !useRunningLedger) { - log.info("Remove tmp wallet dir", tmpWalletDir); - fs.rmSync(tmpWalletDir, { recursive: true }); - } - - if (dbClient) { - log.info("Disconnect the PostgresDatabaseClient"); - await dbClient.shutdown(); - } - - // Wait for monitor to be terminated - await new Promise((resolve) => setTimeout(resolve, 8000)); - - log.info("Prune Docker..."); - await pruneDockerAllIfGithubAction({ logLevel: testLogLevel }); - }); - - beforeEach(() => { - clearMockTokenMetadata(); - }, setupTimeout); - - test("onPluginInit creates DB schema and fetches the monitored tokens", async () => { - await persistence.onPluginInit(); - const initDBCalls = dbClientInstance.initializePlugin.mock.calls; - expect(initDBCalls.length).toBe(1); - expect(persistence).toBeTruthy(); - }); - - test("getblock", async () => { - const blockNumber = "1"; - const block = await persistence.getBlockFromLedger(blockNumber); - log.warn("getBlockFromLedger", JSON.stringify(block)); - expect(block).toBeTruthy(); - expect(block).toMatchObject({ - decodedBlock: { - header: expect.toBeObject(), - data: expect.toBeObject(), - metadata: expect.toBeObject(), - }, - }); - }); - - //creating test transaction on ledger. - test("create test transaction 1", async () => { - const createAssetResponse = await apiClient.runTransactionV1({ - signingCredential, - channelName: ledgerChannelName, - invocationType: FabricContractInvocationType.Send, - contractName: ledgerContractName, - methodName: "CreateAsset", - params: ["CactusTransactionsTest1", "green", "111", "someOwner", "299"], - }); - - expect(createAssetResponse).toBeTruthy(); - expect(createAssetResponse.status).toEqual(200); - expect(createAssetResponse.data).toBeTruthy(); - expect(createAssetResponse.data.transactionId).toBeTruthy(); - }); - - //creating test transaction on ledger. - test("create test transaction 2", async () => { - const createAssetResponse = await apiClient.runTransactionV1({ - signingCredential, - channelName: ledgerChannelName, - invocationType: FabricContractInvocationType.Send, - contractName: ledgerContractName, - methodName: "CreateAsset", - params: ["CactusTransactionsTest2", "blue", "111", "someOwner1", "299"], - }); - - expect(createAssetResponse).toBeTruthy(); - expect(createAssetResponse.status).toEqual(200); - expect(createAssetResponse.data).toBeTruthy(); - expect(createAssetResponse.data.transactionId).toBeTruthy(); - }); - - //creating test transaction on ledger. - test("create test transaction 3", async () => { - const createAssetResponse = await apiClient.runTransactionV1({ - signingCredential, - channelName: ledgerChannelName, - invocationType: FabricContractInvocationType.Send, - contractName: ledgerContractName, - methodName: "CreateAsset", - params: ["CactusTransactionsTest3", "blue", "13331", "someOwner3", "299"], - }); - - expect(createAssetResponse).toBeTruthy(); - expect(createAssetResponse.status).toEqual(200); - expect(createAssetResponse.data).toBeTruthy(); - expect(createAssetResponse.data.transactionId).toBeTruthy(); - }); - - //creating test transaction on ledger. - test("create test transaction 4", async () => { - const createAssetResponse = await apiClient.runTransactionV1({ - signingCredential, - channelName: ledgerChannelName, - invocationType: FabricContractInvocationType.Send, - contractName: ledgerContractName, - methodName: "CreateAsset", - params: ["CactusTransactionsTest4", "yellow", "111", "someOwner1", "299"], - }); - - expect(createAssetResponse).toBeTruthy(); - expect(createAssetResponse.status).toEqual(200); - expect(createAssetResponse.data).toBeTruthy(); - expect(createAssetResponse.data.transactionId).toBeTruthy(); - }); - - //creating test transaction on ledger. - test("create test transaction 5", async () => { - const createAssetResponse = await apiClient.runTransactionV1({ - signingCredential, - channelName: ledgerChannelName, - invocationType: FabricContractInvocationType.Send, - contractName: ledgerContractName, - methodName: "CreateAsset", - params: ["CactusTransactionsTest5", "black", "121", "someOwner3", "199"], - }); - - expect(createAssetResponse).toBeTruthy(); - expect(createAssetResponse.status).toEqual(200); - expect(createAssetResponse.data).toBeTruthy(); - expect(createAssetResponse.data.transactionId).toBeTruthy(); - }); - - //creating test transaction on ledger. - test("create test transaction 6", async () => { - const createAssetResponse = await apiClient.runTransactionV1({ - signingCredential, - channelName: ledgerChannelName, - invocationType: FabricContractInvocationType.Send, - contractName: ledgerContractName, - methodName: "CreateAsset", - params: ["CactusTransactionsTest6", "blue", "112", "someOwner1", "219"], - }); - - expect(createAssetResponse).toBeTruthy(); - expect(createAssetResponse.status).toEqual(200); - expect(createAssetResponse.data).toBeTruthy(); - expect(createAssetResponse.data.transactionId).toBeTruthy(); - }); - - //creating test transaction on ledger. - test("create test transaction 7", async () => { - const createAssetResponse = await apiClient.runTransactionV1({ - signingCredential, - channelName: ledgerChannelName, - invocationType: FabricContractInvocationType.Send, - contractName: ledgerContractName, - methodName: "CreateAsset", - params: ["CactusTransactionsTest7", "yellow", "111", "someOwner3", "229"], - }); - - expect(createAssetResponse).toBeTruthy(); - expect(createAssetResponse.status).toEqual(200); - expect(createAssetResponse.data).toBeTruthy(); - expect(createAssetResponse.data.transactionId).toBeTruthy(); - }); - - //creating test transaction on ledger. - test("create test transaction 8", async () => { - const createAssetResponse = await apiClient.runTransactionV1({ - signingCredential, - channelName: ledgerChannelName, - invocationType: FabricContractInvocationType.Send, - contractName: ledgerContractName, - methodName: "CreateAsset", - params: ["CactusTransactionsTest8", "blue", "2111", "someOwner3", "2119"], - }); - - expect(createAssetResponse).toBeTruthy(); - expect(createAssetResponse.status).toEqual(200); - expect(createAssetResponse.data).toBeTruthy(); - expect(createAssetResponse.data.transactionId).toBeTruthy(); - }); - // end of helpers - - // getblock method test should return block data from ledger - test("insertBlockDataEntry", async () => { - const dataForInsert = { - fabric_block_id: - "69d35348e3904a2cc5b85134da1e394ae5e4e64282ac577aa7872e12870a8be0", - fabric_block_num: 1, - fabric_block_data: "testData", - }; - insertResponseMock(dataForInsert); - const insertBlockDataEntry = - await persistence.insertBlockDataEntry(dataForInsert); - - expect(insertBlockDataEntry).toBeTruthy(); - log.warn("insertBlockDataEntry", insertBlockDataEntry); - }); - // getblock method test should return block data from ledger - test("getblock", async () => { - const blockNumber = "1"; - const block = await persistence.getBlockFromLedger(blockNumber); - - expect(block).toBeTruthy(); - expect(block).toMatchObject({ - decodedBlock: { - header: expect.toBeObject(), - data: expect.toBeObject(), - metadata: expect.toBeObject(), - }, - }); - }); - - // checks if all blocks from ledger are inserted into DB. If not, returns array with numbers of missing blocks. - test("log all not synchronized blocks", async () => { - getMaxBlockNumberMock(11); - const getMaxBlockNumber = await dbClientInstance.getMaxBlockNumber(11); - const missedBlocks: number[] = []; - let howManyBlocksMissing = 0; - log.warn("getMaxBlockNumber", getMaxBlockNumber); - - for (let i = getMaxBlockNumber; i >= 0; i--) { - try { - missBlock10(i); - - persistence.getBlockFromLedger(`${i}`); - - const isThisBlockInDB = await dbClientInstance.isThisBlockInDB(i); - expect(isThisBlockInDB).toBeTruthy(); - log.info("isThisBlockInDB", isThisBlockInDB); - if (isThisBlockInDB.rowCount === 0) { - howManyBlocksMissing += 1; - missedBlocks.push(i); - } - } catch (err: unknown) { - const isThisBlockInDB = await dbClientInstance.isThisBlockInDB(i); - if (isThisBlockInDB.rowCount === 0) { - howManyBlocksMissing += 1; - missedBlocks.push(i); - } - } - } - log.info(`missedBlocks: ${howManyBlocksMissing}`, missedBlocks); - expect(getMaxBlockNumber).toBeTruthy(); - expect(getMaxBlockNumber).toEqual(11); - expect(missedBlocks).toEqual([10]); - }); - - test("initialBlocksSynchronization", async () => { - const initialBlocksSynchronization = - await persistence.initialBlocksSynchronization(10); - expect(initialBlocksSynchronization).toBeTruthy(); - expect(initialBlocksSynchronization).toEqual("done"); - }); - - test("get latest block in ledger from within persistence plugin", async () => { - const lastBlockInPlugin = - await persistence.lastBlockInLedger(signingCredential); - log.info( - "latest block in ledger collected from within plugin: ", - lastBlockInPlugin, - ); - - expect(lastBlockInPlugin).toBeTruthy(); - }); - // Those are other test scenarios when we check not missing block but normal synchro - // test("continueBlocksSynchronization", async () => { - // const continuousBlocksSynchronization = await persistence.continueBlocksSynchronization(signingCredential); - // expect(continuousBlocksSynchronization).toEqual("done"); - //}); - - // this test will finish with timout only - //test("continuousBlocksSynchronization", async () => { - // const continuousBlocksSynchronization = await persistence.continuousBlocksSynchronization(signingCredential); - // expect(continuousBlocksSynchronization).toEqual("stopped"); - //}); - - // test("changeSynchronization", async () => { - // const changeSynchronization = await persistence.changeSynchronization(); - // expect(changeSynchronization).toBeTruthy(); - // expect(changeSynchronization).toEqual(true || false); - // }); - - test("LastBlockChanged", async () => { - const LastBlockChanged = persistence.currentLastSeenBlock(); - log.info("Getting Lastblock from plugin for analyze"); - - expect(LastBlockChanged).toBeTruthy(); - }); - - test(" last block setting to 14", async () => { - const LastBlockChanged = persistence.setLastBlockConsidered(14); - log.info("setting Lastblock from plugin for analyze"); - expect(LastBlockChanged).toBeTruthy(); - expect(LastBlockChanged).toEqual(14); - }); - test("currentLastBlock", async () => { - const currentLastBlock = persistence.currentLastBlock(); - log.info("Getting Lastblock from plugin for analyze"); - - expect(currentLastBlock).toBeTruthy(); - expect(currentLastBlock).toBeGreaterThanOrEqual(1); - }); - - test("Migration of 12 block Test", async () => { - const blockTotest = await persistence.migrateBlockNrWithTransactions("12"); - log.info("Getting block from ledger for analyze"); - expect(blockTotest).toBeTruthy(); - expect(blockTotest).toEqual(true); - }); - - test("Check Last block set", async () => { - const LastBlockChanged = persistence.currentLastBlock(); - log.info("Getting Lastblock from plugin for analyze"); - expect(LastBlockChanged).toBeTruthy(); - }); - - test("check missing blocks", async () => { - missBlock10(10); - const missingBlocksCheck = - await persistence.whichBlocksAreMissingInDdSimple(); - log.info( - "Getting missing blocks from plugin for analyze", - missingBlocksCheck, - ); - expect(missingBlocksCheck).not.toBe(undefined); - expect(missingBlocksCheck).toBeGreaterThanOrEqual(1); - }); - - test("check missing blocks count", async () => { - const missingBlocksCount = persistence.showHowManyBlocksMissing(); - log.info( - "Getting missingBlocksCount from plugin for analyze", - missingBlocksCount, - ); - - expect(missingBlocksCount).not.toBe(undefined); - expect(missingBlocksCount).toBeGreaterThanOrEqual(1); - }); - - test("fill missing blocks from ledger into database", async () => { - const missingBlocksCheck = await persistence.synchronizeOnlyMissedBlocks(); - log.info( - "Getting missing blocks from plugin for analyze", - missingBlocksCheck, - ); - expect(missingBlocksCheck).toBe(0); - }); - - test("check missing blocks count after fill inside database", async () => { - const missingBlocksCount = persistence.showHowManyBlocksMissing(); - log.info( - "After migration missing blocks getting missingBlocksCount from plugin for analyze", - missingBlocksCount, - ); - expect(missingBlocksCount).toBe(0); - }); -}); diff --git a/tools/docker/fabric-all-in-one/asset-transfer-basic-utils/package.json b/tools/docker/fabric-all-in-one/asset-transfer-basic-utils/package.json index 4194587372..6a0e7d8442 100644 --- a/tools/docker/fabric-all-in-one/asset-transfer-basic-utils/package.json +++ b/tools/docker/fabric-all-in-one/asset-transfer-basic-utils/package.json @@ -10,7 +10,7 @@ "author": "Hyperledger", "license": "Apache-2.0", "dependencies": { - "fabric-ca-client": "2.2.18", - "fabric-network": "2.2.18" + "fabric-ca-client": "2.2.19", + "fabric-network": "2.2.19" } } diff --git a/weaver/common/protos-js/package.json b/weaver/common/protos-js/package.json index 175730b8e9..9211433cc7 100644 --- a/weaver/common/protos-js/package.json +++ b/weaver/common/protos-js/package.json @@ -38,10 +38,9 @@ "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { - "@grpc/grpc-js": "1.9.0", + "@grpc/grpc-js": "1.9.5", "@grpc/proto-loader": "0.7.8", "google-protobuf": "3.21.2", - "grpc": "1.24.11", "grpc-tools": "1.12.4" }, "devDependencies": { diff --git a/weaver/core/drivers/fabric-driver/package-local.json b/weaver/core/drivers/fabric-driver/package-local.json index adfc7ee368..4b5c5a42e9 100644 --- a/weaver/core/drivers/fabric-driver/package-local.json +++ b/weaver/core/drivers/fabric-driver/package-local.json @@ -20,7 +20,7 @@ "license": "Apache-2.0", "dependencies": { "@fidm/x509": "1.2.1", - "@grpc/grpc-js": "1.9.0", + "@grpc/grpc-js": "1.9.5", "@hyperledger/cacti-weaver-protos-js": "file:./protos-js", "@hyperledger/cacti-weaver-sdk-fabric": "file:./cacti-weaver-sdk-fabric", "@typescript-eslint/eslint-plugin": "5.62.0", @@ -28,8 +28,8 @@ "dotenv": "8.6.0", "eslint-config-prettier": "8.10.0", "eslint-plugin-prettier": "3.4.1", - "fabric-ca-client": "2.2.18", - "fabric-network": "2.2.18", + "fabric-ca-client": "2.2.19", + "fabric-network": "2.2.19", "level": "8.0.0", "winston": "3.10.0" }, diff --git a/weaver/core/drivers/fabric-driver/package.json b/weaver/core/drivers/fabric-driver/package.json index c1566c2223..2d3df2f120 100644 --- a/weaver/core/drivers/fabric-driver/package.json +++ b/weaver/core/drivers/fabric-driver/package.json @@ -20,7 +20,7 @@ }, "dependencies": { "@fidm/x509": "1.2.1", - "@grpc/grpc-js": "1.9.0", + "@grpc/grpc-js": "1.9.5", "@hyperledger/cacti-weaver-protos-js": "2.0.0-alpha.2", "@hyperledger/cacti-weaver-sdk-fabric": "2.0.0-alpha.2", "@typescript-eslint/eslint-plugin": "5.62.0", @@ -28,8 +28,8 @@ "dotenv": "8.6.0", "eslint-config-prettier": "8.9.0", "eslint-plugin-prettier": "5.0.0", - "fabric-ca-client": "2.2.18", - "fabric-network": "2.2.18", + "fabric-ca-client": "2.2.19", + "fabric-network": "2.2.19", "level": "8.0.0", "winston": "3.10.0" }, diff --git a/weaver/core/identity-management/iin-agent/package-local.json b/weaver/core/identity-management/iin-agent/package-local.json index ce60b518a6..82c48d6de9 100644 --- a/weaver/core/identity-management/iin-agent/package-local.json +++ b/weaver/core/identity-management/iin-agent/package-local.json @@ -20,7 +20,7 @@ "license": "Apache-2.0", "dependencies": { "@fidm/x509": "1.2.1", - "@grpc/grpc-js": "1.9.0", + "@grpc/grpc-js": "1.9.5", "@hyperledger/cacti-weaver-protos-js": "file:./protos-js", "@hyperledger/cacti-weaver-sdk-fabric": "file:./cacti-weaver-sdk-fabric", "@typescript-eslint/eslint-plugin": "3.10.1", @@ -28,9 +28,9 @@ "dotenv": "8.6.0", "eslint-config-prettier": "6.15.0", "eslint-plugin-prettier": "3.4.1", - "fabric-ca-client": "2.2.18", - "fabric-common": "2.2.18", - "fabric-network": "2.2.18" + "fabric-ca-client": "2.2.19", + "fabric-common": "2.2.19", + "fabric-network": "2.2.19" }, "devDependencies": { "@types/node": "16.18.41", diff --git a/weaver/core/identity-management/iin-agent/package.json b/weaver/core/identity-management/iin-agent/package.json index fb6e32f034..0f0e940fb8 100644 --- a/weaver/core/identity-management/iin-agent/package.json +++ b/weaver/core/identity-management/iin-agent/package.json @@ -20,7 +20,7 @@ }, "dependencies": { "@fidm/x509": "1.2.1", - "@grpc/grpc-js": "1.9.0", + "@grpc/grpc-js": "1.9.5", "@hyperledger/cacti-weaver-protos-js": "2.0.0-alpha.2", "@hyperledger/cacti-weaver-sdk-fabric": "2.0.0-alpha.2", "@typescript-eslint/eslint-plugin": "3.10.1", @@ -28,9 +28,9 @@ "dotenv": "8.6.0", "eslint-config-prettier": "6.15.0", "eslint-plugin-prettier": "5.0.0", - "fabric-ca-client": "2.2.18", - "fabric-common": "2.2.18", - "fabric-network": "2.2.18" + "fabric-ca-client": "2.2.19", + "fabric-common": "2.2.19", + "fabric-network": "2.2.19" }, "devDependencies": { "@types/node": "16.18.41", diff --git a/weaver/samples/fabric/fabric-cli/package-local.json b/weaver/samples/fabric/fabric-cli/package-local.json index d6301896f0..e19971dcc2 100644 --- a/weaver/samples/fabric/fabric-cli/package-local.json +++ b/weaver/samples/fabric/fabric-cli/package-local.json @@ -40,8 +40,8 @@ "dotenv": "8.6.0", "elliptic": "6.5.4", "express": "4.18.2", - "fabric-ca-client": "2.2.18", - "fabric-network": "2.2.18", + "fabric-ca-client": "2.2.19", + "fabric-network": "2.2.19", "gluegun": "5.1.3", "grpc-tools": "1.12.4", "ini": "1.3.8", @@ -51,7 +51,7 @@ "y18n": "4.0.3" }, "devDependencies": { - "@grpc/grpc-js": "1.9.0", + "@grpc/grpc-js": "1.9.5", "@grpc/proto-loader": "0.7.8", "@types/express": "4.17.17", "@types/jest": "29.5.3", diff --git a/weaver/samples/fabric/fabric-cli/package.json b/weaver/samples/fabric/fabric-cli/package.json index f0edca8fcb..432b4b107f 100644 --- a/weaver/samples/fabric/fabric-cli/package.json +++ b/weaver/samples/fabric/fabric-cli/package.json @@ -48,8 +48,8 @@ "dotenv": "8.6.0", "elliptic": "6.5.4", "express": "4.18.2", - "fabric-ca-client": "2.2.18", - "fabric-network": "2.2.18", + "fabric-ca-client": "2.2.19", + "fabric-network": "2.2.19", "gluegun": "5.1.3", "grpc-tools": "1.12.4", "ini": "1.3.8", @@ -59,7 +59,7 @@ "y18n": "4.0.3" }, "devDependencies": { - "@grpc/grpc-js": "1.9.0", + "@grpc/grpc-js": "1.9.5", "@grpc/proto-loader": "0.7.8", "@types/express": "4.17.17", "@types/jest": "29.5.3", diff --git a/weaver/sdks/fabric/interoperation-node-sdk/package-local.json b/weaver/sdks/fabric/interoperation-node-sdk/package-local.json index 8908e9b293..9f1b50aa9d 100644 --- a/weaver/sdks/fabric/interoperation-node-sdk/package-local.json +++ b/weaver/sdks/fabric/interoperation-node-sdk/package-local.json @@ -27,13 +27,13 @@ "npm": ">=6.0.0 <=8.15.0" }, "dependencies": { - "@grpc/grpc-js": "1.9.0", + "@grpc/grpc-js": "1.9.5", "@grpc/proto-loader": "0.7.8", "@hyperledger/cacti-weaver-protos-js": "file:./protos-js", "elliptic": "6.5.4", - "fabric-common": "2.2.18", - "fabric-network": "2.2.18", - "fabric-protos": "2.2.18", + "fabric-common": "2.2.19", + "fabric-network": "2.2.19", + "fabric-protos": "2.2.19", "js-sha3": "0.8.0", "jsrsasign": "10.8.6", "log4js": "6.9.1", diff --git a/weaver/sdks/fabric/interoperation-node-sdk/package.json b/weaver/sdks/fabric/interoperation-node-sdk/package.json index f0f5b773ae..7582a4d4b5 100644 --- a/weaver/sdks/fabric/interoperation-node-sdk/package.json +++ b/weaver/sdks/fabric/interoperation-node-sdk/package.json @@ -38,13 +38,13 @@ ] }, "dependencies": { - "@grpc/grpc-js": "1.9.0", + "@grpc/grpc-js": "1.9.5", "@grpc/proto-loader": "0.7.8", "@hyperledger/cacti-weaver-protos-js": "2.0.0-alpha.2", "elliptic": "6.5.4", - "fabric-common": "2.2.18", - "fabric-network": "2.2.18", - "fabric-protos": "2.2.18", + "fabric-common": "2.2.19", + "fabric-network": "2.2.19", + "fabric-protos": "2.2.19", "js-sha3": "0.8.0", "jsrsasign": "10.8.6", "log4js": "6.9.1", diff --git a/webpack.prod.node.js b/webpack.prod.node.js index 884f7f9e89..a1e8b89690 100644 --- a/webpack.prod.node.js +++ b/webpack.prod.node.js @@ -69,7 +69,6 @@ module.exports = { externals: { "swarm-js": "swarm-js", "node-ssh": "node-ssh", - "grpc": "grpc", npm: "npm", "fabric-client": "fabric-client", "fabric-ca-client": "fabric-ca-client", diff --git a/yarn.lock b/yarn.lock index 69ba841277..c26b5dbf36 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6356,23 +6356,13 @@ __metadata: languageName: node linkType: hard -"@grpc/grpc-js@npm:1.9.0": - version: 1.9.0 - resolution: "@grpc/grpc-js@npm:1.9.0" +"@grpc/grpc-js@npm:1.9.5": + version: 1.9.5 + resolution: "@grpc/grpc-js@npm:1.9.5" dependencies: - "@grpc/proto-loader": ^0.7.0 + "@grpc/proto-loader": ^0.7.8 "@types/node": ">=12.12.47" - checksum: 32817c84e4b0eedc523b123cbfce935cafedbf33f94f7609931a878dd6945c4d83b4a781a9d7dedbd4fd273a95e8bd3b0de5f6ca920112331e1c3279fa104b3e - languageName: node - linkType: hard - -"@grpc/grpc-js@npm:^1.3.4": - version: 1.8.14 - resolution: "@grpc/grpc-js@npm:1.8.14" - dependencies: - "@grpc/proto-loader": ^0.7.0 - "@types/node": ">=12.12.47" - checksum: 7b889ae67cde5eb9b4feb92d54e73945d881309b9b879a2dde478fa7850b99835efa7592a8154a0f923851d7a18a177c106f5f52b45061180bb04aef7783c1c9 + checksum: 06834554a0935906652b4b9c5c71f08dd9bdcd4a00d65465c569eae770a9856ecabf7711290bf6d935a8127779c1f35d9cc8cf029693493da02864a330c78e25 languageName: node linkType: hard @@ -6396,6 +6386,16 @@ __metadata: languageName: node linkType: hard +"@grpc/grpc-js@npm:~1.9.0": + version: 1.9.6 + resolution: "@grpc/grpc-js@npm:1.9.6" + dependencies: + "@grpc/proto-loader": ^0.7.8 + "@types/node": ">=12.12.47" + checksum: c02981af11e9749bb8f9a71f5f7e125740da9e6addb13b65d006d41d4d7a80d94b6daa45426c6832a2accfd6f9a925d45a4660a88bd908684446ffaf4fe76c68 + languageName: node + linkType: hard + "@grpc/proto-loader@npm:0.7.8": version: 0.7.8 resolution: "@grpc/proto-loader@npm:0.7.8" @@ -6411,7 +6411,7 @@ __metadata: languageName: node linkType: hard -"@grpc/proto-loader@npm:^0.6.1, @grpc/proto-loader@npm:^0.6.2, @grpc/proto-loader@npm:^0.6.4": +"@grpc/proto-loader@npm:^0.6.1, @grpc/proto-loader@npm:^0.6.4": version: 0.6.13 resolution: "@grpc/proto-loader@npm:0.6.13" dependencies: @@ -6441,6 +6441,20 @@ __metadata: languageName: node linkType: hard +"@grpc/proto-loader@npm:^0.7.8": + version: 0.7.10 + resolution: "@grpc/proto-loader@npm:0.7.10" + dependencies: + lodash.camelcase: ^4.3.0 + long: ^5.0.0 + protobufjs: ^7.2.4 + yargs: ^17.7.2 + bin: + proto-loader-gen-types: build/bin/proto-loader-gen-types.js + checksum: 4987e23b57942c2363b6a6a106e63efae636666cefa348778dfafef2ff72da7343c8587667521cb1d52482827bcd001dd535bdc27065110af56d9c7c176334c9 + languageName: node + linkType: hard + "@hapi/hoek@npm:^9.0.0": version: 9.2.1 resolution: "@hapi/hoek@npm:9.2.1" @@ -6599,7 +6613,7 @@ __metadata: resolution: "@hyperledger/cacti-weaver-driver-fabric@workspace:weaver/core/drivers/fabric-driver" dependencies: "@fidm/x509": 1.2.1 - "@grpc/grpc-js": 1.9.0 + "@grpc/grpc-js": 1.9.5 "@hyperledger/cacti-weaver-protos-js": 2.0.0-alpha.2 "@hyperledger/cacti-weaver-sdk-fabric": 2.0.0-alpha.2 "@types/node": 16.18.41 @@ -6608,8 +6622,8 @@ __metadata: dotenv: 8.6.0 eslint-config-prettier: 8.9.0 eslint-plugin-prettier: 5.0.0 - fabric-ca-client: 2.2.18 - fabric-network: 2.2.18 + fabric-ca-client: 2.2.19 + fabric-network: 2.2.19 level: 8.0.0 nodemon: 2.0.22 patch-package: 6.5.1 @@ -6624,7 +6638,7 @@ __metadata: resolution: "@hyperledger/cacti-weaver-fabric-cli@workspace:weaver/samples/fabric/fabric-cli" dependencies: "@fidm/x509": 1.2.1 - "@grpc/grpc-js": 1.9.0 + "@grpc/grpc-js": 1.9.5 "@grpc/proto-loader": 0.7.8 "@hyperledger/cacti-weaver-protos-js": 2.0.0-alpha.2 "@hyperledger/cacti-weaver-sdk-fabric": 2.0.0-alpha.2 @@ -6641,8 +6655,8 @@ __metadata: eslint-config-prettier: 8.10.0 eslint-plugin-prettier: 5.0.0 express: 4.18.2 - fabric-ca-client: 2.2.18 - fabric-network: 2.2.18 + fabric-ca-client: 2.2.19 + fabric-network: 2.2.19 gluegun: 5.1.3 google-protobuf: 3.21.2 grpc-tools: 1.12.4 @@ -6668,7 +6682,7 @@ __metadata: resolution: "@hyperledger/cacti-weaver-iin-agent@workspace:weaver/core/identity-management/iin-agent" dependencies: "@fidm/x509": 1.2.1 - "@grpc/grpc-js": 1.9.0 + "@grpc/grpc-js": 1.9.5 "@hyperledger/cacti-weaver-protos-js": 2.0.0-alpha.2 "@hyperledger/cacti-weaver-sdk-fabric": 2.0.0-alpha.2 "@types/node": 16.18.41 @@ -6679,9 +6693,9 @@ __metadata: dotenv: 8.6.0 eslint-config-prettier: 6.15.0 eslint-plugin-prettier: 5.0.0 - fabric-ca-client: 2.2.18 - fabric-common: 2.2.18 - fabric-network: 2.2.18 + fabric-ca-client: 2.2.19 + fabric-common: 2.2.19 + fabric-network: 2.2.19 mocha: 5.2.0 nodemon: 2.0.22 nyc: 12.0.2 @@ -6700,10 +6714,9 @@ __metadata: version: 0.0.0-use.local resolution: "@hyperledger/cacti-weaver-protos-js@workspace:weaver/common/protos-js" dependencies: - "@grpc/grpc-js": 1.9.0 + "@grpc/grpc-js": 1.9.5 "@grpc/proto-loader": 0.7.8 google-protobuf: 3.21.2 - grpc: 1.24.11 grpc-tools: 1.12.4 grpc_tools_node_protoc_ts: 5.3.3 languageName: unknown @@ -6743,7 +6756,7 @@ __metadata: version: 0.0.0-use.local resolution: "@hyperledger/cacti-weaver-sdk-fabric@workspace:weaver/sdks/fabric/interoperation-node-sdk" dependencies: - "@grpc/grpc-js": 1.9.0 + "@grpc/grpc-js": 1.9.5 "@grpc/proto-loader": 0.7.8 "@hyperledger/cacti-weaver-protos-js": 2.0.0-alpha.2 "@types/node": 16.18.41 @@ -6757,9 +6770,9 @@ __metadata: eslint-config-prettier: 8.10.0 eslint-plugin-import: 2.28.1 eslint-plugin-prettier: 5.0.0 - fabric-common: 2.2.18 - fabric-network: 2.2.18 - fabric-protos: 2.2.18 + fabric-common: 2.2.19 + fabric-network: 2.2.19 + fabric-protos: 2.2.19 js-sha3: 0.8.0 jsrsasign: 10.8.6 log4js: 6.9.1 @@ -6802,7 +6815,7 @@ __metadata: version: 0.0.0-use.local resolution: "@hyperledger/cactus-cmd-api-server@workspace:packages/cactus-cmd-api-server" dependencies: - "@grpc/grpc-js": 1.9.0 + "@grpc/grpc-js": 1.9.5 "@grpc/proto-loader": 0.7.8 "@hyperledger/cactus-common": 2.0.0-alpha.2 "@hyperledger/cactus-core": 2.0.0-alpha.2 @@ -6889,6 +6902,7 @@ __metadata: ethereumjs-common: 1.5.2 ethereumjs-tx: 2.1.2 express: 4.16.4 + fabric-network: 2.2.19 http-errors: 1.6.3 http-terminator: 3.2.0 js-yaml: 3.14.1 @@ -6943,7 +6957,7 @@ __metadata: version: 0.0.0-use.local resolution: "@hyperledger/cactus-core-api@workspace:packages/cactus-core-api" dependencies: - "@grpc/grpc-js": 1.9.0 + "@grpc/grpc-js": 1.9.5 "@grpc/proto-loader": 0.7.8 "@hyperledger/cactus-common": 2.0.0-alpha.2 "@types/express": 4.17.13 @@ -6997,7 +7011,7 @@ __metadata: "@types/uuid": 8.3.4 async-exit-hook: 2.0.1 express-jwt: 8.4.1 - fabric-network: 2.2.18 + fabric-network: 2.2.19 fs-extra: 10.1.0 hardhat: 2.17.2 http-status-codes: 2.1.4 @@ -7107,7 +7121,7 @@ __metadata: crypto-js: 4.1.1 cucumber: ^5.0.3 dotenv: ^16.0.1 - fabric-network: 2.2.10 + fabric-network: 2.2.19 fs-extra: 10.1.0 hardhat: 2.17.2 http-status-codes: 2.1.4 @@ -7153,8 +7167,8 @@ __metadata: ethereumjs-common: 1.5.2 ethereumjs-tx: 2.1.2 express: 4.16.4 - fabric-ca-client: 2.2.18 - fabric-network: 2.2.18 + fabric-ca-client: 2.2.19 + fabric-network: 2.2.19 http-errors: 1.6.3 jsonwebtoken: 9.0.0 jsrsasign: 10.5.25 @@ -7193,8 +7207,8 @@ __metadata: ethereumjs-common: 1.5.2 ethereumjs-tx: 2.1.2 express: 4.16.4 - fabric-ca-client: 2.2.18 - fabric-network: 2.2.18 + fabric-ca-client: 2.2.19 + fabric-network: 2.2.19 http-errors: 1.6.3 js-yaml: 3.14.1 jsonwebtoken: 9.0.0 @@ -7233,7 +7247,7 @@ __metadata: dotenv: 16.0.0 express: 4.17.3 express-jwt: 8.4.1 - fabric-network: 2.2.18 + fabric-network: 2.2.19 jose: 4.9.2 openapi-types: 9.1.0 solc: 0.8.6 @@ -7333,8 +7347,8 @@ __metadata: ethereumjs-common: 1.5.2 ethereumjs-tx: 2.1.2 express: 4.16.4 - fabric-ca-client: 2.2.18 - fabric-network: 2.2.18 + fabric-ca-client: 2.2.19 + fabric-network: 2.2.19 http-errors: 1.6.3 js-yaml: 3.14.1 jsonwebtoken: 8.5.1 @@ -7812,6 +7826,7 @@ __metadata: version: 0.0.0-use.local resolution: "@hyperledger/cactus-plugin-ledger-connector-iroha@workspace:packages/cactus-plugin-ledger-connector-iroha" dependencies: + "@grpc/grpc-js": 1.9.5 "@hyperledger/cactus-common": 2.0.0-alpha.2 "@hyperledger/cactus-core": 2.0.0-alpha.2 "@hyperledger/cactus-core-api": 2.0.0-alpha.2 @@ -7823,7 +7838,6 @@ __metadata: axios: 0.21.4 express: 4.17.1 fast-safe-stringify: 2.1.1 - grpc: 1.24.11 internal-ip: 6.2.0 iroha-helpers: 1.5.0 key-encoder: 2.0.3 @@ -8004,7 +8018,7 @@ __metadata: "@types/tape": 4.13.4 axios: 0.21.4 crypto-js: 4.0.0 - fabric-network: 2.2.18 + fabric-network: 2.2.19 ipfs-http-client: 51.0.1 knex: 2.4.0 secp256k1: 4.0.3 @@ -8065,8 +8079,8 @@ __metadata: axios: 0.21.4 body-parser: 1.19.0 express: 4.17.1 - fabric-network: 1.4.19 - fabric-protos: 2.2.18 + fabric-network: 2.2.19 + fabric-protos: 2.2.19 js-sha256: 0.9.0 pg: 8.8.0 safe-stable-stringify: 2.4.3 @@ -9617,7 +9631,7 @@ __metadata: languageName: node linkType: hard -"@mapbox/node-pre-gyp@npm:^1.0.0, @mapbox/node-pre-gyp@npm:^1.0.4, @mapbox/node-pre-gyp@npm:^1.0.5": +"@mapbox/node-pre-gyp@npm:^1.0.0, @mapbox/node-pre-gyp@npm:^1.0.5": version: 1.0.9 resolution: "@mapbox/node-pre-gyp@npm:1.0.9" dependencies: @@ -12295,26 +12309,6 @@ __metadata: languageName: node linkType: hard -"@types/bytebuffer@npm:^5.0.34": - version: 5.0.44 - resolution: "@types/bytebuffer@npm:5.0.44" - dependencies: - "@types/long": ^3.0.0 - "@types/node": "*" - checksum: 86a58be037037b039a645da89b4319f5923b7d506fa770312e8f5f37d251a70cc4f34e59d7d392651a9223d85ca1d072e9ae8126eb874ab0302b91dc40cf352c - languageName: node - linkType: hard - -"@types/bytebuffer@npm:^5.0.40": - version: 5.0.43 - resolution: "@types/bytebuffer@npm:5.0.43" - dependencies: - "@types/long": "*" - "@types/node": "*" - checksum: d04ffcec5a25084577362c278e30cf6ee87da2160117a3bae60ff2a5e437e57f730d802806b6e7ba96ebcaf268711a0b1681b09c002ac585d5db5103d0f78a7f - languageName: node - linkType: hard - "@types/cacheable-request@npm:^6.0.2": version: 6.0.3 resolution: "@types/cacheable-request@npm:6.0.3" @@ -12943,20 +12937,13 @@ __metadata: languageName: node linkType: hard -"@types/long@npm:*, @types/long@npm:^4.0.0, @types/long@npm:^4.0.1": +"@types/long@npm:^4.0.0, @types/long@npm:^4.0.1": version: 4.0.1 resolution: "@types/long@npm:4.0.1" checksum: ff9653c33f5000d0f131fd98a950a0343e2e33107dd067a97ac4a3b9678e1a2e39ea44772ad920f54ef6e8f107f76bc92c2584ba905a0dc4253282a4101166d0 languageName: node linkType: hard -"@types/long@npm:^3.0.0": - version: 3.0.32 - resolution: "@types/long@npm:3.0.32" - checksum: 7c64c64b4a8bf38d9a6690f725ed5e92383905b22c1320493749729c4f476a74fa2507cc9364268ecdfdba1cf11573a46648157f3e34cb0c39f51b05d13c37eb - languageName: node - linkType: hard - "@types/lru-cache@npm:5.1.1, @types/lru-cache@npm:^5.1.0": version: 5.1.1 resolution: "@types/lru-cache@npm:5.1.1" @@ -15608,16 +15595,6 @@ __metadata: languageName: node linkType: hard -"ascli@npm:~1": - version: 1.0.1 - resolution: "ascli@npm:1.0.1" - dependencies: - colour: ~0.7.1 - optjs: ~3.2.2 - checksum: 367dcc9a4f7b39d0460d987d5da774a630fddf54d5cb11bacdb5b8627e23d86ed3a8a27e300ecf7b138d1252a35477d5fe9991116bc9feda63659492464d8a25 - languageName: node - linkType: hard - "asn1.js@npm:^5.0.1, asn1.js@npm:^5.2.0": version: 5.4.1 resolution: "asn1.js@npm:5.4.1" @@ -15752,7 +15729,7 @@ __metadata: languageName: node linkType: hard -"async@npm:^1.4.0, async@npm:^1.4.2": +"async@npm:^1.4.2": version: 1.5.2 resolution: "async@npm:1.5.2" checksum: fe5d6214d8f15bd51eee5ae8ec5079b228b86d2d595f47b16369dec2e11b3ff75a567bb5f70d12d79006665fbbb7ee0a7ec0e388524eefd454ecbe651c124ebd @@ -16882,7 +16859,7 @@ __metadata: languageName: node linkType: hard -"bn.js@npm:4.12.0, bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.0, bn.js@npm:^4.11.3, bn.js@npm:^4.11.6, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9": +"bn.js@npm:4.12.0, bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.0, bn.js@npm:^4.11.6, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9": version: 4.12.0 resolution: "bn.js@npm:4.12.0" checksum: 39afb4f15f4ea537b55eaf1446c896af28ac948fdcf47171961475724d1bb65118cca49fa6e3d67706e4790955ec0e74de584e45c8f1ef89f46c812bee5b5a12 @@ -17190,13 +17167,6 @@ __metadata: languageName: node linkType: hard -"browser-request@npm:~0.3.0": - version: 0.3.3 - resolution: "browser-request@npm:0.3.3" - checksum: 8f8db4f95aa33341ffa8d83dd069033310144f439d90bf5aafd4ec0a9495f4cc3fc1515a7d3e15d6968552169f72b7dd90b62efa3647adc4ce9e8be91f907240 - languageName: node - linkType: hard - "browser-stdout@npm:1.3.1": version: 1.3.1 resolution: "browser-stdout@npm:1.3.1" @@ -17609,15 +17579,6 @@ __metadata: languageName: node linkType: hard -"bytebuffer@npm:^5.0.1, bytebuffer@npm:~5": - version: 5.0.1 - resolution: "bytebuffer@npm:5.0.1" - dependencies: - long: ~3 - checksum: d95db66499df77394d6f769b216054b596e492783905f53a06e7c0b7091b24d7b0477de133d08300672e0cd5e140eab81728cdd31ccd9367f7dc4944cdaf913b - languageName: node - linkType: hard - "bytes@npm:2.4.0": version: 2.4.0 resolution: "bytes@npm:2.4.0" @@ -17965,13 +17926,6 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^2.0.1": - version: 2.1.1 - resolution: "camelcase@npm:2.1.1" - checksum: 20a3ef08f348de832631d605362ffe447d883ada89617144a82649363ed5860923b021f8e09681624ef774afb93ff3597cfbcf8aaf0574f65af7648f1aea5e50 - languageName: node - linkType: hard - "camelcase@npm:^3.0.0": version: 3.0.0 resolution: "camelcase@npm:3.0.0" @@ -18626,7 +18580,7 @@ __metadata: languageName: node linkType: hard -"cliui@npm:^3.0.3, cliui@npm:^3.2.0": +"cliui@npm:^3.2.0": version: 3.2.0 resolution: "cliui@npm:3.2.0" dependencies: @@ -18733,19 +18687,6 @@ __metadata: languageName: node linkType: hard -"cloudant-follow@npm:~0.17.0": - version: 0.17.0 - resolution: "cloudant-follow@npm:0.17.0" - dependencies: - browser-request: ~0.3.0 - debug: ^3.0.0 - request: ^2.83.0 - bin: - follow: ./cli.js - checksum: 606f2a238f6aa59b7ae14e9659d6d7dac4634cba8b46e9ffde0c024ac9dd2e6e003de398410aa49c7f37c9f11332474ffa93c8eae4235b2155f1ebeb8667cb18 - languageName: node - linkType: hard - "clsx@npm:^2.0.0": version: 2.0.0 resolution: "clsx@npm:2.0.0" @@ -18931,13 +18872,6 @@ __metadata: languageName: node linkType: hard -"colour@npm:~0.7.1": - version: 0.7.1 - resolution: "colour@npm:0.7.1" - checksum: 1669948efdd0cebca0261476737ccda3ff26f4de789793de604d9f07bf147e2aca21d4ae038cd359d438f39183cf3c50f1b986126509ad30b9d1ad79f75d7199 - languageName: node - linkType: hard - "columnify@npm:^1.6.0": version: 1.6.0 resolution: "columnify@npm:1.6.0" @@ -20684,7 +20618,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^3.0.0, debug@npm:^3.0.1, debug@npm:^3.1.0, debug@npm:^3.2.6, debug@npm:^3.2.7": +"debug@npm:^3.0.1, debug@npm:^3.1.0, debug@npm:^3.2.6, debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" dependencies: @@ -22198,13 +22132,6 @@ __metadata: languageName: node linkType: hard -"errs@npm:^0.3.2": - version: 0.3.2 - resolution: "errs@npm:0.3.2" - checksum: 61f68b59632b1a0123035357cc6168202c54695f8b5644fea0be3b4408053faae692d9a833d23e3bc8a74aa62c1017340ba58c10cad48da7d66f8c09328cce8f - languageName: node - linkType: hard - "es-abstract@npm:^1.17.2, es-abstract@npm:^1.22.1": version: 1.22.1 resolution: "es-abstract@npm:1.22.1" @@ -24820,28 +24747,15 @@ __metadata: languageName: node linkType: hard -"fabric-ca-client@npm:1.4.19": - version: 1.4.19 - resolution: "fabric-ca-client@npm:1.4.19" - dependencies: - grpc: 1.24.11 - jsrsasign: ^10.4.1 - lodash.clone: 4.5.0 - url: ^0.11.0 - winston: ^2.4.0 - checksum: 6f288f528cc5387d388008629a715aaf1d027e4155d9baa7f10a8f32eafe8689d8085b4bb3c7aa7b43f71658dc890be68dbcbce38282c8662589878433ca8049 - languageName: node - linkType: hard - -"fabric-ca-client@npm:2.2.18": - version: 2.2.18 - resolution: "fabric-ca-client@npm:2.2.18" +"fabric-ca-client@npm:2.2.19": + version: 2.2.19 + resolution: "fabric-ca-client@npm:2.2.19" dependencies: - fabric-common: 2.2.18 + fabric-common: 2.2.19 jsrsasign: ^10.5.25 url: ^0.11.0 winston: ^2.4.5 - checksum: c98e8e01200c2c4bf6da6128cb75c58747920e57c5e1cdd9085f19294255bc4b9de861aae57c193239752c06a068f54d7edbb09401cf86cd181428b19b30d51d + checksum: fa957d2c0ad0e7642aff94a7f04d04fc28cc95bb6cf0e18c785362e0a48e34fdce6d5d94c61427887a89a9db9f3616c02f144f7197a49e2ff3fd1927521226b9 languageName: node linkType: hard @@ -24857,73 +24771,16 @@ __metadata: languageName: node linkType: hard -"fabric-client@npm:1.4.19": - version: 1.4.19 - resolution: "fabric-client@npm:1.4.19" +"fabric-common@npm:2.2.19": + version: 2.2.19 + resolution: "fabric-common@npm:2.2.19" dependencies: - "@types/bytebuffer": ^5.0.34 - bn.js: ^4.11.3 - bytebuffer: ^5.0.1 callsite: ^1.0.0 elliptic: ^6.5.4 - fabric-ca-client: 1.4.19 - fs-extra: ^8.1.0 - grpc: 1.24.11 - ignore-walk: ^3.0.0 - js-sha3: ^0.7.0 - js-yaml: ^3.9.0 - jsrsasign: ^10.4.1 - klaw: ^4.0.1 - lodash.clone: 4.5.0 - long: ^4.0.0 - nano: ^6.4.4 - nconf: ^0.10.0 - pkcs11js: ^1.0.6 - promise-settle: ^0.3.0 - protobufjs: 5.0.3 - sjcl: 1.0.7 - tar-stream: ^2.2.0 - url: ^0.11.0 - winston: ^2.4.0 - dependenciesMeta: - pkcs11js: - optional: true - checksum: d5010e699c9898bdf009d7a0d442b6095732d0743484a404b0625672dc9fbb74a199ff0c624ac44a3673b94d0a72f04b88f8be5ca53c1146eb788d7f784d3e96 - languageName: node - linkType: hard - -"fabric-common@npm:2.2.10": - version: 2.2.10 - resolution: "fabric-common@npm:2.2.10" - dependencies: - callsite: ^1.0.0 - elliptic: ^6.5.4 - fabric-protos: 2.2.10 - js-sha3: ^0.8.0 - jsrsasign: ^10.4.1 - long: ^4.0.0 - nconf: ^0.11.2 - pkcs11js: ^1.0.6 - promise-settle: ^0.3.0 - sjcl: ^1.0.8 - winston: ^2.4.5 - yn: ^4.0.0 - dependenciesMeta: - pkcs11js: - optional: true - checksum: aa9a79f749e272a6090fa09511ec1d5e1284dc7451cbd15c671f78b979c40596596eefa374a12a131678c372604c6a7ef7cf0e61adfbd91b7416f017407a408f - languageName: node - linkType: hard - -"fabric-common@npm:2.2.18": - version: 2.2.18 - resolution: "fabric-common@npm:2.2.18" - dependencies: - callsite: ^1.0.0 - elliptic: ^6.5.4 - fabric-protos: 2.2.18 + fabric-protos: 2.2.19 js-sha3: ^0.8.0 jsrsasign: ^10.5.25 + long: ^5.2.3 nconf: ^0.12.0 pkcs11js: ^1.3.0 promise-settle: ^0.3.0 @@ -24933,7 +24790,7 @@ __metadata: dependenciesMeta: pkcs11js: optional: true - checksum: 3704b50daabac6e3951a1a82fd9a02d10433cf1a78b694c92e8490a4991b5fda3b8804f7f70336d68b06fbf5b5a85d04497344e1df10719b1ed71390be53bb67 + checksum: 91c6dd404d9ea451d0825395902c4e8fa71a8de4ee0f34327cffe8c11ff0b3de6a79be0bc923572c465fa7a8b9918d785e808f927f8f7acfab6e6ac34b480383 languageName: node linkType: hard @@ -24959,39 +24816,15 @@ __metadata: languageName: node linkType: hard -"fabric-network@npm:1.4.19": - version: 1.4.19 - resolution: "fabric-network@npm:1.4.19" - dependencies: - fabric-ca-client: 1.4.19 - fabric-client: 1.4.19 - nano: ^6.4.4 - rimraf: ^2.6.2 - winston: ^2.4.0 - checksum: a6a8ed1781cefe18e7377369c653d3290ba0ed3680903a8a5f028d544f7f2bcc1eaa5e7a6469bbf3f400c60481601a1d65693164a815e4eabee2f802f2506065 - languageName: node - linkType: hard - -"fabric-network@npm:2.2.10": - version: 2.2.10 - resolution: "fabric-network@npm:2.2.10" - dependencies: - fabric-common: 2.2.10 - fabric-protos: 2.2.10 - long: ^4.0.0 - nano: ^9.0.3 - checksum: 782435be36fc19daabba079dc71d65d2f8ee03d82b1be99791195ea219bcf68f1f64e9c25864b77e26ed77b5966d106fdeaa27741574a056858d499d0686a4b6 - languageName: node - linkType: hard - -"fabric-network@npm:2.2.18": - version: 2.2.18 - resolution: "fabric-network@npm:2.2.18" +"fabric-network@npm:2.2.19": + version: 2.2.19 + resolution: "fabric-network@npm:2.2.19" dependencies: - fabric-common: 2.2.18 - fabric-protos: 2.2.18 + fabric-common: 2.2.19 + fabric-protos: 2.2.19 + long: ^5.2.3 nano: ^9.0.5 - checksum: 192e606f75386b1ffc381bf1b55c3a01aeed4c7f64dd6a48629b11d81d3b83203d657ccec75e709a1ce9502688ff048906d0bdd09de57cdfc51524b1d192f59c + checksum: 0bbd9414587c72291b1f0d491e45030dacf38ff52132c0721a08e89aaf76c4d8dfe51e1abfe0150663e5595daae55bc289a8f7b6de5e30387db73bb0d7e2392f languageName: node linkType: hard @@ -25006,25 +24839,15 @@ __metadata: languageName: node linkType: hard -"fabric-protos@npm:2.2.10": - version: 2.2.10 - resolution: "fabric-protos@npm:2.2.10" +"fabric-protos@npm:2.2.19": + version: 2.2.19 + resolution: "fabric-protos@npm:2.2.19" dependencies: - "@grpc/grpc-js": ^1.3.4 - "@grpc/proto-loader": ^0.6.2 - protobufjs: ^6.11.2 - checksum: bdb682a72b366018c1dc32791e28ddefc5ac721170bb74c5d0bdcbe69d47470df853a78145d382d9c9cc71ba5eb237af59a81eeeb70affb6abf1405e837b64b1 - languageName: node - linkType: hard - -"fabric-protos@npm:2.2.18": - version: 2.2.18 - resolution: "fabric-protos@npm:2.2.18" - dependencies: - "@grpc/grpc-js": ~1.7.3 + "@grpc/grpc-js": ~1.9.0 "@grpc/proto-loader": ^0.7.0 - protobufjs: ^7.0.0 - checksum: 36f02cbe7b2bbe975308b5e924fadd79840918074d2f03bb37dfd4a80102f412992daa9a6f947f337e35af57b0281951185481697b93af14e2fb461a917df902 + long: ^5.2.3 + protobufjs: ^7.2.0 + checksum: 80e295d8041063eb8c5a723c88732923cfd18c6cd7520e189985f33a2c308bf2afc2dee76cf82a3bedf046958ae2f642462a20fe8c6505729f8cdecc04b37faf languageName: node linkType: hard @@ -27256,20 +27079,6 @@ __metadata: languageName: node linkType: hard -"grpc@npm:1.24.11": - version: 1.24.11 - resolution: "grpc@npm:1.24.11" - dependencies: - "@mapbox/node-pre-gyp": ^1.0.4 - "@types/bytebuffer": ^5.0.40 - lodash.camelcase: ^4.3.0 - lodash.clone: ^4.5.0 - nan: ^2.13.2 - protobufjs: ^5.0.3 - checksum: a437525786329ff541d7bbb54e472f52001a4d9b1c2fd896468241e2f070bf558b380b3d19d2b87f401602bd5a319b171e119598f4035958a9519851e91110db - languageName: node - linkType: hard - "grpc_tools_node_protoc_ts@npm:5.3.3": version: 5.3.3 resolution: "grpc_tools_node_protoc_ts@npm:5.3.3" @@ -28303,15 +28112,6 @@ __metadata: languageName: node linkType: hard -"ignore-walk@npm:^3.0.0": - version: 3.0.4 - resolution: "ignore-walk@npm:3.0.4" - dependencies: - minimatch: ^3.0.4 - checksum: 9e9c5ef6c3e0ed7ef5d797991abb554dbb7e60d5fedf6cf05c7129819689eba2b462f625c6e3561e0fc79841904eb829565513eeeab1b44f4fbec4d3146b1a8d - languageName: node - linkType: hard - "ignore-walk@npm:^6.0.0": version: 6.0.2 resolution: "ignore-walk@npm:6.0.2" @@ -28488,7 +28288,7 @@ __metadata: languageName: node linkType: hard -"ini@npm:1.3.8, ini@npm:^1.3.0, ini@npm:^1.3.2, ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0": +"ini@npm:1.3.8, ini@npm:^1.3.2, ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0": version: 1.3.8 resolution: "ini@npm:1.3.8" checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 @@ -31628,13 +31428,6 @@ __metadata: languageName: node linkType: hard -"js-sha3@npm:^0.7.0": - version: 0.7.0 - resolution: "js-sha3@npm:0.7.0" - checksum: 7a4bdd2ae0b42437cffb8416b3426d85bd8926cf4724b0e91bc04d2f1a57a9f64e35608ae7f127d6a7a4cf73825598932227501c2642b75f9f4c273ae5f95b28 - languageName: node - linkType: hard - "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -31649,7 +31442,7 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:3.14.1, js-yaml@npm:^3.13.1, js-yaml@npm:^3.5.1, js-yaml@npm:^3.9.0, js-yaml@npm:^3.9.1": +"js-yaml@npm:3.14.1, js-yaml@npm:^3.13.1, js-yaml@npm:^3.5.1, js-yaml@npm:^3.9.1": version: 3.14.1 resolution: "js-yaml@npm:3.14.1" dependencies: @@ -32023,7 +31816,7 @@ __metadata: languageName: node linkType: hard -"jsrsasign@npm:10.5.25, jsrsasign@npm:^10.4.0, jsrsasign@npm:^10.4.1": +"jsrsasign@npm:10.5.25, jsrsasign@npm:^10.4.0": version: 10.5.25 resolution: "jsrsasign@npm:10.5.25" checksum: e789cd6d5e6e236edebe91936279cdef886aafaab8d4ebc7d40b8ba0c7b7cd0d6d3c53fba26ea96eb33cc77a05368b369ef31fc9182662bce2344143ad50ea0f @@ -32387,13 +32180,6 @@ __metadata: languageName: node linkType: hard -"klaw@npm:^4.0.1": - version: 4.1.0 - resolution: "klaw@npm:4.1.0" - checksum: 23fcdd8b837f7d51f0a62bebc4e5f83ee8338083597f33f97ae6aed3305c53220c8bf9f1a81024c11658b2e71022868f3b2ba4c39298af4eaacd38ef1e3a878e - languageName: node - linkType: hard - "kleur@npm:^3.0.3": version: 3.0.3 resolution: "kleur@npm:3.0.3" @@ -33305,13 +33091,6 @@ __metadata: languageName: node linkType: hard -"lodash.clone@npm:4.5.0, lodash.clone@npm:^4.5.0": - version: 4.5.0 - resolution: "lodash.clone@npm:4.5.0" - checksum: 5839f22acf3a43c026ac4325f7bcd378f34967415cd0b9fd7efa9bbbf38dc665900d36e040944c5afab94a51ff8a24f6cfc3781fe439705cbad5c722e9506b16 - languageName: node - linkType: hard - "lodash.clonedeep@npm:^4.5.0": version: 4.5.0 resolution: "lodash.clonedeep@npm:4.5.0" @@ -33368,13 +33147,6 @@ __metadata: languageName: node linkType: hard -"lodash.isempty@npm:^4.4.0": - version: 4.4.0 - resolution: "lodash.isempty@npm:4.4.0" - checksum: a8118f23f7ed72a1dbd176bf27f297d1e71aa1926288449cb8f7cef99ba1bc7527eab52fe7899ab080fa1dc150aba6e4a6367bf49fa4e0b78da1ecc095f8d8c5 - languageName: node - linkType: hard - "lodash.isequal@npm:^4.5.0": version: 4.5.0 resolution: "lodash.isequal@npm:4.5.0" @@ -33722,20 +33494,13 @@ __metadata: languageName: node linkType: hard -"long@npm:^5.0.0": +"long@npm:^5.0.0, long@npm:^5.2.3": version: 5.2.3 resolution: "long@npm:5.2.3" checksum: 885ede7c3de4facccbd2cacc6168bae3a02c3e836159ea4252c87b6e34d40af819824b2d4edce330bfb5c4d6e8ce3ec5864bdcf9473fa1f53a4f8225860e5897 languageName: node linkType: hard -"long@npm:~3": - version: 3.2.0 - resolution: "long@npm:3.2.0" - checksum: bc27bdeab42cb2f25d0a0faf5fbf77b657bd59236ae0ed649c44f91f35e632230ebd0c62d208bb4e9c69ca558a45e9c9c0810e6b5c0380a1754b8f3b5b7b62d7 - languageName: node - linkType: hard - "loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" @@ -35286,7 +35051,7 @@ __metadata: languageName: node linkType: hard -"nan@npm:^2.13.2, nan@npm:^2.14.1, nan@npm:^2.15.0": +"nan@npm:^2.14.1, nan@npm:^2.15.0": version: 2.15.0 resolution: "nan@npm:2.15.0" dependencies: @@ -35338,20 +35103,7 @@ __metadata: languageName: node linkType: hard -"nano@npm:^6.4.4": - version: 6.4.4 - resolution: "nano@npm:6.4.4" - dependencies: - cloudant-follow: ~0.17.0 - debug: ^2.2.0 - errs: ^0.3.2 - lodash.isempty: ^4.4.0 - request: ^2.85.0 - checksum: 4391a47bbade34dbb25391162bff86b6e48008223634d9a745ed449733268dd703a50fb64698433d68d9125f84e576e0ef9fb3c5e413652d66cb62e44a072070 - languageName: node - linkType: hard - -"nano@npm:^9.0.3, nano@npm:^9.0.5": +"nano@npm:^9.0.5": version: 9.0.5 resolution: "nano@npm:9.0.5" dependencies: @@ -35472,30 +35224,6 @@ __metadata: languageName: node linkType: hard -"nconf@npm:^0.10.0": - version: 0.10.0 - resolution: "nconf@npm:0.10.0" - dependencies: - async: ^1.4.0 - ini: ^1.3.0 - secure-keys: ^1.0.0 - yargs: ^3.19.0 - checksum: 14052553bcde03dbdf11bc3ee95b8cdb7fe776ada550763df75c9683335a937545f62e96972ad2fd4bcc85f928d9880fc74b8c5f93eaddef58d6e0f46c0c836f - languageName: node - linkType: hard - -"nconf@npm:^0.11.2": - version: 0.11.3 - resolution: "nconf@npm:0.11.3" - dependencies: - async: ^1.4.0 - ini: ^2.0.0 - secure-keys: ^1.0.0 - yargs: ^16.1.1 - checksum: 708369c9526618936872fc7db4d257dda59cb55fb9e07949afcfac7cf60cdc840027a6bdf5bf3c5703129bea23090de1aa6f6f41aec004086963706c04bf81f5 - languageName: node - linkType: hard - "nconf@npm:^0.12.0": version: 0.12.0 resolution: "nconf@npm:0.12.0" @@ -37063,13 +36791,6 @@ __metadata: languageName: node linkType: hard -"optjs@npm:~3.2.2": - version: 3.2.2 - resolution: "optjs@npm:3.2.2" - checksum: 0909e160e3ea218982e506750567bc7b6344d223bfb1a850c755ffb54f90f77cf746d94a8956eae614315034ae84ee03322ea00d95a8ac2ec426f4b875e27d86 - languageName: node - linkType: hard - "ora@npm:4.0.2": version: 4.0.2 resolution: "ora@npm:4.0.2" @@ -40062,20 +39783,6 @@ __metadata: languageName: node linkType: hard -"protobufjs@npm:5.0.3, protobufjs@npm:^5.0.3": - version: 5.0.3 - resolution: "protobufjs@npm:5.0.3" - dependencies: - ascli: ~1 - bytebuffer: ~5 - glob: ^7.0.5 - yargs: ^3.10.0 - bin: - pbjs: ./bin/pbjs - checksum: 3ffb785028696efc642555c8fb7c56b5ecbbe2db42da71997a7d637b15bd555bca0a93b7bc8dd542e1369da214d0a5e669f2ad34ac191c80c1e7e8edc25406c0 - languageName: node - linkType: hard - "protobufjs@npm:6.11.2, protobufjs@npm:^6.10.2, protobufjs@npm:^6.11.2": version: 6.11.2 resolution: "protobufjs@npm:6.11.2" @@ -40100,7 +39807,7 @@ __metadata: languageName: node linkType: hard -"protobufjs@npm:7.2.5": +"protobufjs@npm:7.2.5, protobufjs@npm:^7.2.0": version: 7.2.5 resolution: "protobufjs@npm:7.2.5" dependencies: @@ -41624,7 +41331,7 @@ __metadata: languageName: node linkType: hard -"request@npm:^2.79.0, request@npm:^2.83.0, request@npm:^2.85.0, request@npm:^2.88.0": +"request@npm:^2.79.0, request@npm:^2.88.0": version: 2.88.2 resolution: "request@npm:2.88.2" dependencies: @@ -43487,13 +43194,6 @@ __metadata: languageName: node linkType: hard -"sjcl@npm:1.0.7": - version: 1.0.7 - resolution: "sjcl@npm:1.0.7" - checksum: 4eec2df27cf9f9a813c14896d6859ba28fc0234c5a1a3688b7145da309b841b58e8b782b2dbe6bf4f0e01ea2d5ea23c9bb0b9f1300b47d9d54bb135c12e1cccf - languageName: node - linkType: hard - "sjcl@npm:1.0.8, sjcl@npm:^1.0.8": version: 1.0.8 resolution: "sjcl@npm:1.0.8" @@ -45655,7 +45355,7 @@ __metadata: languageName: node linkType: hard -"tar-stream@npm:2.2.0, tar-stream@npm:^2.0.0, tar-stream@npm:^2.1.4, tar-stream@npm:^2.2.0": +"tar-stream@npm:2.2.0, tar-stream@npm:^2.0.0, tar-stream@npm:^2.1.4": version: 2.2.0 resolution: "tar-stream@npm:2.2.0" dependencies: @@ -51290,15 +50990,6 @@ __metadata: languageName: node linkType: hard -"window-size@npm:^0.1.4": - version: 0.1.4 - resolution: "window-size@npm:0.1.4" - bin: - window-size: cli.js - checksum: 409accca0b1373c69897400e3cc6a56a2acc8a6ba9009f0cd8e4adda4ebf308e50425d3bd375c0c08efb803c8f0b09d84d7266faa05422b3fadfe6ee422d0aef - languageName: node - linkType: hard - "window-size@npm:^0.2.0": version: 0.2.0 resolution: "window-size@npm:0.2.0" @@ -51338,7 +51029,7 @@ __metadata: languageName: node linkType: hard -"winston@npm:^2.4.0, winston@npm:^2.4.5": +"winston@npm:^2.4.5": version: 2.4.5 resolution: "winston@npm:2.4.5" dependencies: @@ -52146,7 +51837,7 @@ __metadata: languageName: node linkType: hard -"y18n@npm:^3.2.0, y18n@npm:^3.2.1": +"y18n@npm:^3.2.1": version: 3.2.2 resolution: "y18n@npm:3.2.2" checksum: 6154fd7544f8bbf5b18cdf77692ed88d389be49c87238ecb4e0d6a5276446cd2a5c29cc4bdbdddfc7e4e498b08df9d7e38df4a1453cf75eecfead392246ea74a @@ -52453,21 +52144,6 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^3.10.0, yargs@npm:^3.19.0": - version: 3.32.0 - resolution: "yargs@npm:3.32.0" - dependencies: - camelcase: ^2.0.1 - cliui: ^3.0.3 - decamelize: ^1.1.1 - os-locale: ^1.4.0 - string-width: ^1.0.1 - window-size: ^0.1.4 - y18n: ^3.2.0 - checksum: 3e0f7fc1bc2052bcaaa7354cbd33d05a86fc0f236432d107ecd088989fbd175174c562d17e762727acbf25d04e8520d43625f7581b2a6ce55ce10034e80675fc - languageName: node - linkType: hard - "yargs@npm:^4.7.1": version: 4.8.1 resolution: "yargs@npm:4.8.1"