From 6f66124b032ae86e8ea60af81de5fee579d4f8e5 Mon Sep 17 00:00:00 2001 From: Dave Enyeart Date: Fri, 31 Mar 2023 13:40:02 -0400 Subject: [PATCH 1/6] Update COMPATIBILITY.md for Node 18. (#396) Update COMPATIBILITY.md to indicate v2.5 uses Node.js 18. Other cleanup is also included. Signed-off-by: David Enyeart --- COMPATIBILITY.md | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/COMPATIBILITY.md b/COMPATIBILITY.md index 816a1c0c2..dbc4a272f 100644 --- a/COMPATIBILITY.md +++ b/COMPATIBILITY.md @@ -1,40 +1,45 @@ # Support and Compatibility for fabric-chaincode-node -Github is used for code base management, issues should reported in the [FABCN](https://jira.hyperledger.org/projects/FABCN/issues/) component in JIRA. +Github is used for code base management, issues should reported in the repository's [GitHub Issues](https://github.com/hyperledger/fabric-chaincode-node/issues). ## Summary of Compatibility -This table shows the summary of the compatibility of the Node modules at versions 1.4 and 2.x, together with the Nodejs runtime they require and the Fabric Peer versions they can communicate with. +This table shows the summary of the compatibility of the Node modules at versions 1.4 and 2.x, together with the Node.js runtime they require and the Fabric Peer versions they can communicate with. | | Peer Connectivity v1.4 | Supported NodeJS | Peer Connectivity v2.x | | ------------------------------ | ---------------------- | ---------------- | ---------------------- | | Node modules **v1.4.5** | Yes | 8 | Yes | | Node modules **v2.2.x/v2.3.x** | Yes | 12 | Yes | | Node modules **v2.4.x** | Yes | 16 | Yes | -| Node modules **v2.5.x** | Yes | 16 | Yes | +| Node modules **v2.5.x** | Yes | 18 | Yes | -By default a Fabric Peer v1.4 will create a Nodejs v8 runtime, and a Fabric Peer v2.2/2.3 will create a Nodejs 12 runtime. The Fabric v2.5 will create a Nodejs 16 runtime. Whilst these are defaults, the docker image used to host the chaincode and contracts can be altered. Set the environment variable `CORE_CHAINCODE_NODE_RUNTIME` on the peer to the name of the docker image. +* Fabric peer v1.4 will create a Node.js v8 runtime +* Fabric peer v2.2/2.3 will create a Node.js 12 runtime +* Fabric peer v2.4 will create a Node.js 16 runtime +* Fabric peer v2.5 will create a Node.js 18 runtime -For example `CORE_CHAINCODE_NODE_RUNTIME=hyperledger/fabric-nodeenv:2.1` will allow the use of the latest Node 12 runtime to be used within a Peer v1.4. +Whilst these are defaults based on the corresponding `fabric-nodeenv` docker image version, the docker image used to host the chaincode and contracts can be altered. Set the environment variable `CORE_CHAINCODE_NODE_RUNTIME` on the peer to the name of the desired docker image and version. -The Node modules will connect to the peer whilst running; this is referred to as 'Fabric Peer Connectivity' in the table. For example, whilst the Fabric Peer v1.4 will create a Nodejs 8 runtime, if a Nodejs 12 runtime was configured, the node modules at v2.x still function when connecting to the Fabric Peer v1.4. +For example `CORE_CHAINCODE_NODE_RUNTIME=hyperledger/fabric-nodeenv:2.2` will allow the use of the latest Node 12 runtime to be used within a Peer v1.4. -### Version 1.4 compatibility with later Nodejs runtimes +The Node chaincode modules will connect to the peer whilst running; this is referred to as 'Fabric Peer Connectivity' in the table. For example, whilst the Fabric Peer v1.4 will create a Node.js 8 runtime, if a Node.js 12 runtime was configured, the node chaincode modules at v2.x still function when connecting to the Fabric Peer v1.4. -Note that the `fabric-contract-api` & `fabric-shim` node modules must be at v1.4.5 or greater to work with Node version 12. If you therefore use a contract originally written to work with Fabric 1.4, check the node modules before deploying on Fabric v2. +### Version 1.4 compatibility with later Node.js runtimes -Also please note that that the v1.4 libraries WILL NOT work with Node16. Unless you configure a different node environment, any chaincode using the v1.4 libraries will need to move to v2.5 before being able to run with a Fabric v2.4 Peer. +Note that the `fabric-contract-api` & `fabric-shim` node modules must be at v1.4.5 or greater to work with Node.js version 12. If you therefore use a contract originally written to work with Fabric 1.4, check the node modules before deploying on Fabric v2. + +Also please note that that the v1.4 libraries WILL NOT work with Node.js 16 or Node.js 18. Unless you configure a different node environment, any chaincode using the v1.4 node chaincode libraries will need to update to the v2.5 node chaincode libraries before being able to run with a Fabric v2.5 Peer. ## Compatibility The key elements are : - the version of the Fabric Contract Node modules used -- the version of the Nodejs runtime used to run the code +- the version of the Node.js runtime used to run the code - When starting a chaincode container to run a Smart Contract, the version of the runtime that is used is determined by these factors: -Fabric v1.4.2, and Fabric v2.x will, by default, start up docker image to host the chaincode and contracts. The version of the docker image used is defined by the version of Fabric in use. +Fabric v1.4.x, and Fabric v2.x will, by default, start up a docker container based on `fabric-nodeenv` to host the chaincode and contracts. The version of the docker image used is driven by the version of Fabric in use, but can be overridden by setting the peer's `CORE_CHAINCODE_NODE_RUNTIME` environment variable. With Fabric v2.x, the chaincode container can be configured to be started by other means, and not the Peer. In this case, the environment used is not in the control of Fabric. @@ -42,22 +47,23 @@ Node modules that are produced are `fabric-contract-api`, `fabric-shim` & `fabri ### Supported Runtimes -v2.4 Node modules are supported running in Nodejs 16.4.0, with the x86_64 architecture. - -v2.2/2.3 Node modules are supported running in Nodejs 12.16.1, with the x86_64 architecture. - -v1.4.x Node modules are supported running Nodejs 8.16.1 with the x86_64 architecture. +* Fabric v1.4 Node.js chaincode modules are supported running Nodejs 8.16.1 with the x86_64 architecture. +* Fabric v2.2/v2.3 Node.js chaincode modules are supported running in Node.js 12.22.6, with the x86_64 architecture. +* Fabric v2.4 Node.js chaincode modules are supported running in Node.js 16.x, with the x86_64 architecture. +* Fabric v2.5 Node.js chaincode modules are supported running in Node.js 18.x, with the x86_64 and arm64 architectures. Architecture Support: all docker images, runtimes, tools are tested under x86_64 ONLY ### Default Peer Runtime selection -When using Fabric 2.2/2.3x the default docker image that is used to run the Node chaincode is node:12.16.1-alpine. With Fabric 2.4 the default docker image is node:16.4.0-alpine +* Fabric 2.2/2.3 `fabric-nodeenv` docker image is based on node:12.22.6-alpine. +* Fabric 2.4 `fabric-nodeenv` docker image is based on node:16-alpine. +* Fabric 2.5 `fabric-nodeenv` docker image is based on node:18-alpine. *Note:* With the default docker image used by Fabric 2.x, the packaged code will be installed with npm. If a `package-lock.json` or a `npm-shrinkwrap.json` file is present, `npm ci --only=production` will be used. Otherwise `npm install --production` will be used.  -When using Fabric 1.4.4, the docker image that is used to run the Node chaincode is node v8.16.1. It is installed with npm install --production +When using Fabric 1.4.x, the docker image that is used to run the Node.js chaincode is node v8.16.1. It is installed with npm install --production ### Supported Runtime communication with the Peer -Subject to a suitable runtime environment, the 1.4.4 Node modules and 2.x Node modules can be used to communicate with a Fabric 2.x or 1.4.4 Peer - with the level of functionality that is implied by the Fabric version in use.  \ No newline at end of file +Subject to a suitable runtime environment, the 1.4.x Node.js chaincode modules and 2.x Node.js chaincode modules can be used to communicate with a Fabric 2.x or 1.4.x Peer - with the level of functionality that is implied by the Fabric version in use.  From cf179e7b3a00ecff7e89cf687825ec65292fb9ce Mon Sep 17 00:00:00 2001 From: Dave Enyeart Date: Tue, 16 May 2023 07:42:29 -0400 Subject: [PATCH 2/6] Update SetEvent documentation (#399) Update SetEvent documentation to indicate that only a single chaincode event can be included in a transaction. Signed-off-by: David Enyeart --- libraries/fabric-shim/lib/stub.js | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/libraries/fabric-shim/lib/stub.js b/libraries/fabric-shim/lib/stub.js index 65275cb78..6e92773c9 100644 --- a/libraries/fabric-shim/lib/stub.js +++ b/libraries/fabric-shim/lib/stub.js @@ -752,13 +752,15 @@ class ChaincodeStub { } /** - * Allows the chaincode to propose an event on the transaction proposal. When the transaction - * is included in a block and the block is successfully committed to the ledger, the block event - * will be delivered to the current event listeners that have been registered with the peer's - * event producer. Note that the block event gets delivered to the listeners regardless of the - * status of the included transactions (can be either valid or invalid), so client applications - * are responsible for checking the validity code on each transaction. Consult each SDK's documentation - * for details. + * Allows the chaincode to propose an event on the transaction proposal response. + * When the transaction is included in a block and the block is successfully committed to the ledger, + * the block event (including transaction level chaincode events) + * will be delivered to the current client application event listeners that have been registered with the peer's event producer. + * Consult each SDK's documentation for details. + * Only a single chaincode event can be included in a transaction. + * If setEvent() is called multiple times only the last event will be included in the transaction. + * The event must originate from the outer-most invoked chaincode in chaincode-to-chaincode scenarios. + * The marshaled ChaincodeEvent will be available in the transaction's ChaincodeAction.events field. * @param {string} name Name of the event * @param {byte[]} payload A payload can be used to include data about the event */ From 690c91a9347a15aa6d2ba4b6903d91909a5ed21f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Jo=C3=A3o=20Pedro=20de=20Oliveira?= Date: Mon, 12 Jun 2023 14:08:51 -0300 Subject: [PATCH 3/6] Using the CLI provided gRPC configurations when starting the chaincode (#401) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When utilizing the chaincode as a service, it is possible to pass some gRPC options as an argument, such as grpc.max_send_message_length. However, these server options were not utilized when declaring the server. Signed-off-by: André João Pedro de Oliveira --- libraries/fabric-shim/lib/chaincode.js | 6 ++++++ libraries/fabric-shim/lib/server.js | 6 +++++- libraries/fabric-shim/types/index.d.ts | 10 +++++++--- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/libraries/fabric-shim/lib/chaincode.js b/libraries/fabric-shim/lib/chaincode.js index 39552cddb..65c1fc78f 100644 --- a/libraries/fabric-shim/lib/chaincode.js +++ b/libraries/fabric-shim/lib/chaincode.js @@ -199,6 +199,11 @@ class Shim { return Logger.getLogger(name); } + /** + * @interface GRPCOptions + * @description ChannelOptions on "@grpc/grpc-js". For a complete list, refer to @grpc/grpc-js Documentation + * @property {unknown[]} ['grpc.${string}'] Connection options defined on "@grpc/grpc-js" + */ /** * @interface ChaincodeServerTLSProperties * @property {Buffer} key Private key for TLS @@ -207,6 +212,7 @@ class Shim { */ /** * @interface ChaincodeServerOpts + * @extends GRPCOptions * @property {string} ccid Chaincode ID * @property {string} address Listen address for the server * @property {ChaincodeServerTLSProperties} [tlsProps] TLS properties if TLS is required. diff --git a/libraries/fabric-shim/lib/server.js b/libraries/fabric-shim/lib/server.js index f075086a9..9d6336b6d 100644 --- a/libraries/fabric-shim/lib/server.js +++ b/libraries/fabric-shim/lib/server.js @@ -58,8 +58,12 @@ class ChaincodeServer { this._credentials = grpc.ServerCredentials.createInsecure(); } + const grpcOptions = Object.fromEntries( + Object.entries(serverOpts).filter(([key]) => key.startsWith('grpc.')) + ); + // Create GRPC Server and register RPC handler - this._server = new grpc.Server(); + this._server = new grpc.Server(grpcOptions); this._server.addService(peer.ChaincodeService, this); this._serverOpts = serverOpts; diff --git a/libraries/fabric-shim/types/index.d.ts b/libraries/fabric-shim/types/index.d.ts index 2ebf37c70..2e948ceff 100644 --- a/libraries/fabric-shim/types/index.d.ts +++ b/libraries/fabric-shim/types/index.d.ts @@ -6,8 +6,8 @@ */ declare module 'fabric-shim' { - import { EventEmitter } from 'events'; import { Logger } from 'winston'; + import { ChannelOptions } from '@grpc/grpc-js' import { ChaincodeInterface, @@ -53,7 +53,11 @@ declare module 'fabric-shim' { start(): Promise; } - export interface ChaincodeServerOpts { + type GRPCOptions = { + [K in keyof ChannelOptions as string extends K ? never : K]?: ChannelOptions[K]; + } + + export interface ChaincodeServerOpts extends GRPCOptions { ccid: string; address: string; tlsProps: ChaincodeServerTLSProperties; @@ -140,7 +144,7 @@ declare module 'fabric-shim' { constructor(policy?: Uint8Array); getPolicy(): Uint8Array; addOrgs(role: string, ...newOrgs: string[]): void; - delOrgs(...delOrgs: string[]):void; + delOrgs(...delOrgs: string[]): void; listOrgs(): string[]; } From 9eae59e7a17ce7e64a73ae6ec595ce651e077457 Mon Sep 17 00:00:00 2001 From: "Mark S. Lewis" Date: Fri, 16 Jun 2023 12:35:16 +0100 Subject: [PATCH 4/6] Avoid calling non-existent grpc-js duplex stream cancel() function (#403) Also update grpc-js version to stay current. Signed-off-by: Mark S. Lewis --- common/config/rush/pnpm-lock.yaml | 30 +- libraries/fabric-shim/lib/handler.js | 2 +- libraries/fabric-shim/package-lock.json | 2549 -------------------- libraries/fabric-shim/package.json | 2 +- libraries/fabric-shim/test/unit/handler.js | 6 +- 5 files changed, 20 insertions(+), 2569 deletions(-) delete mode 100644 libraries/fabric-shim/package-lock.json diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 694010515..937c7a5d4 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -2,7 +2,7 @@ lockfileVersion: 5.3 specifiers: '@fidm/x509': ^1.2.1 - '@grpc/grpc-js': 1.8.1 + '@grpc/grpc-js': 1.8.15 '@grpc/proto-loader': ^0.6.6 '@hyperledger/fabric-protos': 0.1.0-dev.2300102001.1 '@rush-temp/fabric-contract-api': file:./projects/fabric-contract-api.tgz @@ -68,7 +68,7 @@ specifiers: dependencies: '@fidm/x509': 1.2.1 - '@grpc/grpc-js': 1.8.1 + '@grpc/grpc-js': 1.8.15 '@grpc/proto-loader': 0.6.11 '@hyperledger/fabric-protos': 0.1.0-dev.2300102001.1 '@rush-temp/fabric-contract-api': file:projects/fabric-contract-api.tgz @@ -390,8 +390,8 @@ packages: tweetnacl: 1.0.3 dev: false - /@grpc/grpc-js/1.8.1: - resolution: {integrity: sha512-mdqYADWl/9Kb75XLstt6pvBnS1DpxSDFRKrbadkY1ymUd29hq49nP6tLcL7a7qLydgqFCpjNwa2RsyrqB3MsXA==} + /@grpc/grpc-js/1.8.15: + resolution: {integrity: sha512-H2Bu/w6+oQ58DsRbQol66ERBk3V5ZIak/z/MDx0T4EgDnJWps807I6BvTjq0v6UvZtOcLO+ur+Q9wvniqu3OJA==} engines: {node: ^8.13.0 || >=10.10.0} dependencies: '@grpc/proto-loader': 0.7.4 @@ -440,7 +440,7 @@ packages: /@hyperledger/fabric-protos/0.1.0-dev.2300102001.1: resolution: {integrity: sha512-MtVXncAQz09PYOcFZUB2QbS9eVwbSGnULPuZKqFr9iScbasG194QyN6Tq8cl+kthQGSoBQORyjCIbrGIaN8EFQ==} dependencies: - '@grpc/grpc-js': 1.8.1 + '@grpc/grpc-js': 1.8.15 '@types/google-protobuf': 3.15.6 google-protobuf: 3.20.1 dev: false @@ -516,7 +516,7 @@ packages: dev: false /@protobufjs/eventemitter/1.1.0: - resolution: {integrity: sha1-NVy8mLr61ZePntCV85diHx0Ga3A=} + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} dev: false /@protobufjs/fetch/1.1.0: @@ -2899,7 +2899,7 @@ packages: resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} engines: {node: '>= 4.0'} os: [darwin] - deprecated: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2. + deprecated: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2 requiresBuild: true dependencies: bindings: 1.5.0 @@ -7246,7 +7246,7 @@ packages: dev: false file:projects/fabric-contract-api.tgz: - resolution: {integrity: sha512-6N4vt16pE+MKIc1rOHP8iZVDvHjCikxz3NBuHaW1W4Vwk/sIYyNYKILOGD1icoZGXpefyXFKNs5mliHZViT1tg==, tarball: file:projects/fabric-contract-api.tgz} + resolution: {integrity: sha512-rlPw2PAtZzYl83GbgoYwEi4kBWE/d9MlpFjo1Z/yWpY1c1kWf/OHh7gohKO9VgKntcNnIGVJgNSLw0I1rfJofA==, tarball: file:projects/fabric-contract-api.tgz} name: '@rush-temp/fabric-contract-api' version: 0.0.0 dependencies: @@ -7275,7 +7275,7 @@ packages: dev: false file:projects/fabric-e2e-tests.tgz: - resolution: {integrity: sha512-IOxsP+PTyxPqpIL6wW4XuZDS3LbdtKM76tXcGCeDf4Nx5iEFgOSVdV6J3wDh48XiGKP7e76SSyBkM7dxpCM2qQ==, tarball: file:projects/fabric-e2e-tests.tgz} + resolution: {integrity: sha512-vUvht0GYr/DVISA8EcU3JBhHFcFnuUxBXdAwB8vrU8JFr/PB/G88L+ioHHR0MfdZlGVs+1qr0BPgk5YlDft8sA==, tarball: file:projects/fabric-e2e-tests.tgz} name: '@rush-temp/fabric-e2e-tests' version: 0.0.0 dependencies: @@ -7290,7 +7290,7 @@ packages: dev: false file:projects/fabric-ledger.tgz_@types+node@16.11.33: - resolution: {integrity: sha512-twySBZN6+d/lq8ouHMxGcn9ZJhpfnrg+N3ldoUbQucjLWhcu1Fv1VkeInaoWpYGGJEK6wFWyDxsHMbYRxdLauw==, tarball: file:projects/fabric-ledger.tgz} + resolution: {integrity: sha512-6BzOOo79EKfRnA0khBiAyO/mraaf8/3xoyNa7ZjuhB84MoZlWWloLL/+j2gJVXwKFjy0qq6nJv+cXg+PuFqkyg==, tarball: file:projects/fabric-ledger.tgz} id: file:projects/fabric-ledger.tgz name: '@rush-temp/fabric-ledger' version: 0.0.0 @@ -7322,7 +7322,7 @@ packages: dev: false file:projects/fabric-nodeenv.tgz: - resolution: {integrity: sha512-Ty0VE2Gb2D7VIN2Yxny/b2elNPp5LWHj5oLKEk6Wt06W5+ZSRVXi1LWHkar7hZZR8OGDWV6MVdXpGdclEcGLGA==, tarball: file:projects/fabric-nodeenv.tgz} + resolution: {integrity: sha512-8U28jfFkMz6oidzqN/hP71NVmvZZqRlHCADhd/+8/JVVpiOiT05jr4R9FbLwEe9GcWGLHiG2z/nToo3z4ffU3w==, tarball: file:projects/fabric-nodeenv.tgz} name: '@rush-temp/fabric-nodeenv' version: 0.0.0 dependencies: @@ -7338,7 +7338,7 @@ packages: dev: false file:projects/fabric-shim-docs.tgz: - resolution: {integrity: sha512-xOaIpQ7VL2pdgEtx1gU9KH8QKWPO4j+1r2ZW7c5V/w+VVnJSeomaEytfWGdF0ElgX/JDKqJAkrj5wjPQ2bEhYw==, tarball: file:projects/fabric-shim-docs.tgz} + resolution: {integrity: sha512-n95gUmVyLXSGTbjCYqziNEWc6HA78VkZnNF+YL5tm/x5/wkuwmtlk5RsOtflglppUAjGPNhIv5B4whvAn6yRVA==, tarball: file:projects/fabric-shim-docs.tgz} name: '@rush-temp/fabric-shim-docs' version: 0.0.0 dependencies: @@ -7348,12 +7348,12 @@ packages: dev: false file:projects/fabric-shim.tgz: - resolution: {integrity: sha512-9Y3cWiySCfIFqPuBmfIBWbFRl/akZs9g9QbbhXvddkNgHSZOQFXwmTXdKy8iAWo5thkHzIYxS6RHpuOSq0Ipbw==, tarball: file:projects/fabric-shim.tgz} + resolution: {integrity: sha512-K1Pj+qTUOLtW7ciRo2Q/o2xqtgj2CTl+nK/PxorYvLv7uyEfPTQmv1JSFZq8V1yHaCoNDBY4Ccy55vCi6Wc0jg==, tarball: file:projects/fabric-shim.tgz} name: '@rush-temp/fabric-shim' version: 0.0.0 dependencies: '@fidm/x509': 1.2.1 - '@grpc/grpc-js': 1.8.1 + '@grpc/grpc-js': 1.8.15 '@grpc/proto-loader': 0.6.11 '@hyperledger/fabric-protos': 0.1.0-dev.2300102001.1 '@types/node': 16.11.33 @@ -7382,7 +7382,7 @@ packages: dev: false file:projects/fvtests.tgz: - resolution: {integrity: sha512-uXHV42jlghLJPtZj3USi+7k1+JjFSwukS2e5Z+Z1pDplgAr8U/6aqgMmvNKcgGOJHRq1sEYBPTJ5LafCyO5J/g==, tarball: file:projects/fvtests.tgz} + resolution: {integrity: sha512-6KGzZ4qn14ElFZ0PmQT8irEb80BEB2eFeGKLOLvCLDG2K22tJ1RaRFedOMEOX7qhM1di7NzGO95ssXSTgoviSA==, tarball: file:projects/fvtests.tgz} name: '@rush-temp/fvtests' version: 0.0.0 dependencies: diff --git a/libraries/fabric-shim/lib/handler.js b/libraries/fabric-shim/lib/handler.js index c17db3870..628ff68a4 100644 --- a/libraries/fabric-shim/lib/handler.js +++ b/libraries/fabric-shim/lib/handler.js @@ -353,7 +353,7 @@ class ChaincodeMessageHandler { stream.on('end', () => { logger.debug('Chat stream ending'); - stream.cancel(); + stream.end(); }); stream.on('error', (err) => { diff --git a/libraries/fabric-shim/package-lock.json b/libraries/fabric-shim/package-lock.json deleted file mode 100644 index 4d6f6feeb..000000000 --- a/libraries/fabric-shim/package-lock.json +++ /dev/null @@ -1,2549 +0,0 @@ -{ - "name": "fabric-shim", - "version": "2.4.1", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "fabric-shim", - "version": "2.4.1", - "license": "Apache-2.0", - "dependencies": { - "@fidm/x509": "^1.2.1", - "@grpc/grpc-js": "^1.4.1", - "@grpc/proto-loader": "^0.6.6", - "@hyperledger/fabric-protos": "file:hyperledger-fabric-protos-1.0.0.tgz", - "@types/node": "^16.11.1", - "ajv": "^6.12.2", - "fabric-contract-api": "2.4.1", - "fabric-shim-api": "2.4.1", - "fs-extra": "^10.0.0", - "reflect-metadata": "^0.1.13", - "winston": "^3.3.3", - "yargs": "^17.2.1", - "yargs-parser": "^20.2.9" - }, - "bin": { - "fabric-chaincode-node": "cli.js" - }, - "devDependencies": { - "chai": "^4.3.4", - "chai-as-promised": "^7.1.1", - "chai-things": "^0.2.0", - "cpx": "^1.5.0", - "eslint": "^6.6.0", - "mocha": "9.1.3", - "mockery": "^2.1.0", - "nyc": "15.1.0", - "rewire": "5.0.0", - "rimraf": "^3.0.2", - "sinon": "11.1.2", - "spec-junit-splitter-mocha-reporter": "1.0.1" - }, - "engines": { - "node": "^16.4.0", - "npm": "^8.0.0" - } - }, - "../../apis/fabric-contract-api": { - "version": "2.4.1", - "license": "Apache-2.0", - "dependencies": { - "class-transformer": "^0.4.0", - "fabric-shim-api": "2.4.1", - "fast-safe-stringify": "^2.1.1", - "get-params": "^0.1.2", - "reflect-metadata": "^0.1.13", - "winston": "^3.3.3" - }, - "devDependencies": { - "ajv": "^6.12.2", - "ajv-cli": "^3.2.1", - "ajv-formats": "2.1.1", - "chai": "^4.3.4", - "chai-as-promised": "^7.1.1", - "chai-things": "^0.2.0", - "eslint": "^6.6.0", - "gulp": "^4.0.2", - "gulp-debug": "~4.0.0", - "gulp-eslint": "~6.0.0", - "mocha": "9.1.3", - "nyc": "15.1.0", - "rewire": "5.0.0", - "sinon": "11.1.2", - "typescript": "4.4.4" - }, - "engines": { - "node": "^16.4.0", - "npm": "^8.0.0" - } - }, - "../../apis/fabric-contract-api/node_modules/ajv": { - "resolved": "../../common/temp/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/ajv-cli": { - "resolved": "../../common/temp/node_modules/.pnpm/ajv-cli@3.2.1/node_modules/ajv-cli", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/ajv-formats": { - "resolved": "../../common/temp/node_modules/.pnpm/ajv-formats@2.1.1/node_modules/ajv-formats", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/chai": { - "resolved": "../../common/temp/node_modules/.pnpm/chai@4.3.4/node_modules/chai", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/chai-as-promised": { - "resolved": "../../common/temp/node_modules/.pnpm/chai-as-promised@7.1.1_chai@4.3.4/node_modules/chai-as-promised", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/chai-things": { - "resolved": "../../common/temp/node_modules/.pnpm/chai-things@0.2.0/node_modules/chai-things", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/class-transformer": { - "resolved": "../../common/temp/node_modules/.pnpm/class-transformer@0.4.0/node_modules/class-transformer", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/eslint": { - "resolved": "../../common/temp/node_modules/.pnpm/eslint@6.8.0/node_modules/eslint", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/fabric-shim-api": { - "resolved": "../../apis/fabric-shim-api", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/fast-safe-stringify": { - "resolved": "../../common/temp/node_modules/.pnpm/fast-safe-stringify@2.1.1/node_modules/fast-safe-stringify", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/get-params": { - "resolved": "../../common/temp/node_modules/.pnpm/get-params@0.1.2/node_modules/get-params", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/gulp": { - "resolved": "../../common/temp/node_modules/.pnpm/gulp@4.0.2/node_modules/gulp", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/gulp-debug": { - "resolved": "../../common/temp/node_modules/.pnpm/gulp-debug@4.0.0_gulp@4.0.2/node_modules/gulp-debug", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/gulp-eslint": { - "resolved": "../../common/temp/node_modules/.pnpm/gulp-eslint@6.0.0/node_modules/gulp-eslint", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/mocha": { - "resolved": "../../common/temp/node_modules/.pnpm/mocha@9.1.3/node_modules/mocha", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/nyc": { - "resolved": "../../common/temp/node_modules/.pnpm/nyc@15.1.0/node_modules/nyc", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/reflect-metadata": { - "resolved": "../../common/temp/node_modules/.pnpm/reflect-metadata@0.1.13/node_modules/reflect-metadata", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/rewire": { - "resolved": "../../common/temp/node_modules/.pnpm/rewire@5.0.0/node_modules/rewire", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/sinon": { - "resolved": "../../common/temp/node_modules/.pnpm/sinon@11.1.2/node_modules/sinon", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/typescript": { - "resolved": "../../common/temp/node_modules/.pnpm/typescript@4.4.4/node_modules/typescript", - "link": true - }, - "../../apis/fabric-contract-api/node_modules/winston": { - "resolved": "../../common/temp/node_modules/.pnpm/winston@3.3.3/node_modules/winston", - "link": true - }, - "../../apis/fabric-shim-api": { - "version": "2.4.1", - "license": "Apache-2.0", - "devDependencies": { - "@types/long": "^4.0.1" - }, - "engines": { - "eslint": "^6.6.0", - "node": "^16.4.0", - "npm": "^8.0.0" - } - }, - "../../apis/fabric-shim-api/node_modules/@types/long": { - "resolved": "../../common/temp/node_modules/.pnpm/@types+long@4.0.1/node_modules/@types/long", - "link": true - }, - "../../common/temp/node_modules/.pnpm/@fidm+x509@1.2.1/node_modules/@fidm/x509": { - "version": "1.2.1", - "license": "MIT", - "dependencies": { - "@fidm/asn1": "^1.0.4", - "tweetnacl": "^1.0.1" - }, - "devDependencies": { - "@types/node": "^11.10.4", - "istanbul": "^1.1.0-alpha.1", - "tman": "^1.9.0", - "ts-node": "^8.0.2", - "tslint": "^5.13.1", - "tslint-eslint-rules": "^5.4.0", - "typedoc": "^0.14.2", - "typescript": "^3.3.3333" - }, - "engines": { - "node": ">= 8" - } - }, - "../../common/temp/node_modules/.pnpm/@grpc+grpc-js@1.4.1/node_modules/@grpc/grpc-js": { - "version": "1.4.1", - "extraneous": true, - "license": "Apache-2.0", - "dependencies": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - }, - "devDependencies": { - "@types/gulp": "^4.0.6", - "@types/gulp-mocha": "0.0.32", - "@types/lodash": "^4.14.108", - "@types/mocha": "^5.2.6", - "@types/ncp": "^2.0.1", - "@types/pify": "^3.0.2", - "@types/yargs": "^15.0.5", - "clang-format": "^1.0.55", - "execa": "^2.0.3", - "gts": "^2.0.0", - "gulp": "^4.0.2", - "gulp-mocha": "^6.0.0", - "lodash": "^4.17.4", - "madge": "^5.0.1", - "mocha-jenkins-reporter": "^0.4.1", - "ncp": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^3.0.2", - "ts-node": "^8.3.0", - "typescript": "^3.7.2", - "yargs": "^15.4.1" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "../../common/temp/node_modules/.pnpm/@grpc+proto-loader@0.6.6/node_modules/@grpc/proto-loader": { - "version": "0.6.6", - "license": "Apache-2.0", - "dependencies": { - "@types/long": "^4.0.1", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "yargs": "^16.1.1" - }, - "bin": { - "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" - }, - "devDependencies": { - "@types/lodash.camelcase": "^4.3.4", - "@types/mkdirp": "^1.0.1", - "@types/mocha": "^5.2.7", - "@types/node": "^10.17.26", - "@types/yargs": "^15.0.5", - "clang-format": "^1.2.2", - "gts": "^1.1.0", - "rimraf": "^3.0.2", - "typescript": "~3.8.3" - }, - "engines": { - "node": ">=6" - } - }, - "../../common/temp/node_modules/.pnpm/@types+long@4.0.1/node_modules/@types/long": { - "version": "4.0.1", - "dev": true, - "license": "MIT" - }, - "../../common/temp/node_modules/.pnpm/@types+node@16.11.1/node_modules/@types/node": { - "version": "16.11.1", - "license": "MIT" - }, - "../../common/temp/node_modules/.pnpm/ajv-cli@3.2.1/node_modules/ajv-cli": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.7.0", - "ajv-pack": "^0.3.0", - "fast-json-patch": "^2.0.0", - "glob": "^7.1.0", - "js-yaml": "^3.13.1", - "json-schema-migrate": "^0.2.0", - "json5": "^2.1.3", - "minimist": "^1.2.0" - }, - "bin": { - "ajv": "index.js" - }, - "devDependencies": { - "ajv-keywords": "^3.2.0", - "coveralls": "^3.0.0", - "eslint": "^7.1.0", - "mocha": "^7.2.0", - "nyc": "^15.0.1", - "pre-commit": "^1.2.0" - } - }, - "../../common/temp/node_modules/.pnpm/ajv-formats@2.1.1/node_modules/ajv-formats": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "devDependencies": { - "@ajv-validator/config": "^0.3.0", - "@types/jest": "^26.0.5", - "@types/node": "^14.10.1", - "@typescript-eslint/eslint-plugin": "^3.7.0", - "@typescript-eslint/parser": "^3.7.0", - "ajv": "^8.0.0", - "eslint": "^7.5.0", - "eslint-config-prettier": "^6.11.0", - "husky": "^4.2.5", - "jest": "^26.1.0", - "json-schema-test": "^2.0.0", - "lint-staged": "^10.2.11", - "prettier": "^2.3.2", - "ts-jest": "^26.1.3", - "typescript": "^4.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "../../common/temp/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv": { - "version": "6.12.6", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "devDependencies": { - "ajv-async": "^1.0.0", - "bluebird": "^3.5.3", - "brfs": "^2.0.0", - "browserify": "^16.2.0", - "chai": "^4.0.1", - "coveralls": "^3.0.1", - "del-cli": "^3.0.0", - "dot": "^1.0.3", - "eslint": "^7.3.1", - "gh-pages-generator": "^0.2.3", - "glob": "^7.0.0", - "if-node-version": "^1.0.0", - "js-beautify": "^1.7.3", - "jshint": "^2.10.2", - "json-schema-test": "^2.0.0", - "karma": "^5.0.0", - "karma-chrome-launcher": "^3.0.0", - "karma-mocha": "^2.0.0", - "karma-sauce-launcher": "^4.1.3", - "mocha": "^8.0.1", - "nyc": "^15.0.0", - "pre-commit": "^1.1.1", - "require-globify": "^1.3.0", - "typescript": "^3.9.5", - "uglify-js": "^3.6.9", - "watch": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "../../common/temp/node_modules/.pnpm/chai-as-promised@7.1.1_chai@4.3.4/node_modules/chai-as-promised": { - "version": "7.1.1", - "dev": true, - "license": "WTFPL", - "dependencies": { - "check-error": "^1.0.2" - }, - "devDependencies": { - "chai": "^4.0.2", - "eslint": "^3.19.0", - "istanbul": "0.4.5", - "mocha": "^3.4.2" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 5" - } - }, - "../../common/temp/node_modules/.pnpm/chai-things@0.2.0/node_modules/chai-things": { - "version": "0.2.0", - "dev": true, - "license": "MIT", - "devDependencies": { - "chai": "1.4.x", - "coffee-script": "1.4.x", - "jshint": "0.9.x", - "mocha": "1.7.x" - } - }, - "../../common/temp/node_modules/.pnpm/chai@4.3.4/node_modules/chai": { - "version": "4.3.4", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "devDependencies": { - "browserify": "^16.2.3", - "bump-cli": "^1.1.3", - "codecov": "^3.0.0", - "istanbul": "^0.4.3", - "karma": "^6.1.1", - "karma-chrome-launcher": "^2.2.0", - "karma-firefox-launcher": "^1.0.0", - "karma-mocha": "^2.0.1", - "karma-sauce-launcher": "^1.2.0", - "mocha": "^7.1.2" - }, - "engines": { - "node": ">=4" - } - }, - "../../common/temp/node_modules/.pnpm/class-transformer@0.4.0/node_modules/class-transformer": { - "version": "0.4.0", - "license": "MIT" - }, - "../../common/temp/node_modules/.pnpm/cpx@1.5.0/node_modules/cpx": { - "version": "1.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-runtime": "^6.9.2", - "chokidar": "^1.6.0", - "duplexer": "^0.1.1", - "glob": "^7.0.5", - "glob2base": "^0.0.12", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "resolve": "^1.1.7", - "safe-buffer": "^5.0.1", - "shell-quote": "^1.6.1", - "subarg": "^1.0.0" - }, - "bin": { - "cpx": "bin/index.js" - }, - "devDependencies": { - "babel-cli": "^6.11.4", - "babel-plugin-transform-runtime": "^6.9.0", - "babel-plugin-unassert": "^2.1.1", - "babel-preset-es2015": "^6.9.0", - "babel-preset-power-assert": "^1.0.0", - "babel-register": "^6.9.0", - "codecov": "^1.0.1", - "cross-env": "^2.0.0", - "eslint": "^3.4.0", - "eslint-config-mysticatea": "^6.0.0", - "if-node-version": "^1.0.0", - "mocha": "^3.0.2", - "npm-run-all": "^3.1.0", - "nyc": "^8.1.0", - "opener": "^1.4.1", - "power-assert": "^1.4.1", - "rimraf": "^2.5.3", - "shelljs": "^0.7.0", - "through": "^2.3.8" - } - }, - "../../common/temp/node_modules/.pnpm/eslint@6.8.0/node_modules/eslint": { - "version": "6.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.10.0", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "espree": "^6.1.2", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.14", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "devDependencies": { - "@babel/core": "^7.4.3", - "@babel/preset-env": "^7.4.3", - "acorn": "^7.1.0", - "babel-loader": "^8.0.5", - "chai": "^4.0.1", - "cheerio": "^0.22.0", - "common-tags": "^1.8.0", - "core-js": "^3.1.3", - "dateformat": "^3.0.3", - "ejs": "^2.6.1", - "eslint": "file:.", - "eslint-config-eslint": "file:packages/eslint-config-eslint", - "eslint-plugin-eslint-plugin": "^2.0.1", - "eslint-plugin-internal-rules": "file:tools/internal-rules", - "eslint-plugin-jsdoc": "^15.9.5", - "eslint-plugin-node": "^9.0.0", - "eslint-release": "^1.2.0", - "eslump": "^2.0.0", - "esprima": "^4.0.1", - "glob": "^7.1.3", - "jsdoc": "^3.5.5", - "karma": "^4.0.1", - "karma-chrome-launcher": "^2.2.0", - "karma-mocha": "^1.3.0", - "karma-mocha-reporter": "^2.2.3", - "karma-webpack": "^4.0.0-rc.6", - "leche": "^2.2.3", - "lint-staged": "^8.1.5", - "load-perf": "^0.2.0", - "markdownlint": "^0.15.0", - "markdownlint-cli": "^0.17.0", - "metro-memory-fs": "^0.54.1", - "mocha": "^6.1.2", - "mocha-junit-reporter": "^1.23.0", - "npm-license": "^0.3.3", - "nyc": "^14.1.1", - "proxyquire": "^2.0.1", - "puppeteer": "^1.18.0", - "recast": "^0.18.1", - "regenerator-runtime": "^0.13.2", - "shelljs": "^0.8.2", - "sinon": "^7.3.2", - "temp": "^0.9.0", - "webpack": "^4.35.0", - "webpack-cli": "^3.3.5", - "yorkie": "^2.0.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "../../common/temp/node_modules/.pnpm/fast-safe-stringify@2.1.1/node_modules/fast-safe-stringify": { - "version": "2.1.1", - "license": "MIT", - "devDependencies": { - "benchmark": "^2.1.4", - "clone": "^2.1.0", - "json-stringify-safe": "^5.0.1", - "standard": "^11.0.0", - "tap": "^12.0.0" - } - }, - "../../common/temp/node_modules/.pnpm/fs-extra@10.0.0/node_modules/fs-extra": { - "version": "10.0.0", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "devDependencies": { - "at-least-node": "^1.0.0", - "coveralls": "^3.0.0", - "klaw": "^2.1.1", - "klaw-sync": "^3.0.2", - "minimist": "^1.1.1", - "mocha": "^5.0.5", - "nyc": "^15.0.0", - "proxyquire": "^2.0.1", - "read-dir-files": "^0.1.1", - "standard": "^14.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "../../common/temp/node_modules/.pnpm/get-params@0.1.2/node_modules/get-params": { - "version": "0.1.2", - "license": "MIT", - "devDependencies": { - "jshint": "^2.7.0", - "mocha": "^2.2.4" - } - }, - "../../common/temp/node_modules/.pnpm/gulp-debug@4.0.0_gulp@4.0.2/node_modules/gulp-debug": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^2.3.0", - "fancy-log": "^1.3.2", - "plur": "^3.0.0", - "stringify-object": "^3.0.0", - "through2": "^2.0.0", - "tildify": "^1.1.2" - }, - "devDependencies": { - "ava": "*", - "gulp": "^4.0.0", - "p-event": "^1.0.0", - "sinon": "^4.1.3", - "strip-ansi": "^4.0.0", - "vinyl": "^2.1.0", - "xo": "*" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "gulp": ">=4" - } - }, - "../../common/temp/node_modules/.pnpm/gulp-eslint@6.0.0/node_modules/gulp-eslint": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint": "^6.0.0", - "fancy-log": "^1.3.2", - "plugin-error": "^1.0.1" - }, - "devDependencies": { - "@shinnn/eslint-config-node": "^5.0.0", - "babel-eslint": "^8.2.5", - "from2-string": "^1.1.0", - "gulp": "^4.0.0", - "istanbul": "^0.4.5", - "mocha": "^5.2.0", - "should": "^13.2.1", - "vinyl": "^2.2.0" - } - }, - "../../common/temp/node_modules/.pnpm/gulp@4.0.2/node_modules/gulp": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "devDependencies": { - "coveralls": "github:phated/node-coveralls#2.x", - "eslint": "^2.13.1", - "eslint-config-gulp": "^3.0.1", - "expect": "^1.20.2", - "mkdirp": "^0.5.1", - "mocha": "^3.0.0", - "nyc": "^10.3.2", - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "../../common/temp/node_modules/.pnpm/mocha@9.1.3/node_modules/mocha": { - "version": "9.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.2", - "debug": "4.3.2", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.1.7", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.25", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.1.5", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "devDependencies": { - "@11ty/eleventy": "^0.11.0", - "@11ty/eleventy-plugin-inclusive-language": "^1.0.0", - "@babel/eslint-parser": "^7.15.4", - "@babel/preset-env": "^7.14.8", - "@mocha/docdash": "^3.0.1", - "@rollup/plugin-babel": "^5.1.0", - "@rollup/plugin-commonjs": "^14.0.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-multi-entry": "^3.0.1", - "@rollup/plugin-node-resolve": "^8.4.0", - "assetgraph-builder": "^8.2.0", - "autoprefixer": "^9.8.6", - "canvas": "^2.8.0", - "chai": "^4.2.0", - "coffee-script": "^1.12.7", - "configstore": "^5.0.1", - "core-js": "^3.16.3", - "coveralls": "^3.1.1", - "cross-env": "^7.0.2", - "cross-spawn": "^7.0.3", - "eslint": "^7.32.0", - "eslint-config-prettier": "^8.3.0", - "eslint-config-semistandard": "^16.0.0", - "eslint-config-standard": "^16.0.3", - "eslint-plugin-import": "^2.24.2", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^4.0.0", - "eslint-plugin-promise": "^5.1.0", - "fail-on-errors-webpack-plugin": "^3.0.0", - "fs-extra": "^9.0.1", - "husky": "^4.2.5", - "hyperlink": "^4.7.0", - "jsdoc": "^3.6.5", - "jsdoc-ts-utils": "^1.1.2", - "karma": "^6.3.4", - "karma-chrome-launcher": "^3.1.0", - "karma-mocha": "^2.0.1", - "karma-mocha-reporter": "^2.2.5", - "karma-requirejs": "^1.1.0", - "karma-sauce-launcher": "^4.3.6", - "lint-staged": "^10.2.11", - "markdown-it": "^11.0.0", - "markdown-it-anchor": "^5.3.0", - "markdown-it-attrs": "^3.0.3", - "markdown-it-emoji": "^1.4.0", - "markdown-it-prism": "^2.1.1", - "markdown-toc": "^1.2.0", - "markdownlint-cli": "^0.23.2", - "needle": "^2.5.0", - "nps": "^5.10.0", - "nyc": "^15.1.0", - "pidtree": "^0.5.0", - "prettier": "^1.19.1", - "regenerator-runtime": "0.13.7", - "remark": "^12.0.1", - "remark-github": "^9.0.1", - "remark-inline-links": "^4.0.0", - "requirejs": "^2.3.6", - "rewiremock": "^3.14.3", - "rimraf": "^3.0.2", - "rollup": "^2.23.1", - "rollup-plugin-node-globals": "^1.4.0", - "rollup-plugin-node-polyfills": "^0.2.1", - "rollup-plugin-visualizer": "^4.1.0", - "sinon": "^9.0.3", - "strip-ansi": "^6.0.0", - "svgo": "^1.3.2", - "through2": "^4.0.2", - "to-vfile": "^6.1.0", - "touch": "^3.1.0", - "unexpected": "^11.14.0", - "unexpected-eventemitter": "^2.2.0", - "unexpected-map": "^2.0.0", - "unexpected-set": "^3.0.0", - "unexpected-sinon": "^10.11.2", - "update-notifier": "^4.1.0", - "uslug": "^1.0.4", - "uuid": "^8.3.0", - "watchify": "^4.0.0", - "webpack": "^4.44.1", - "webpack-cli": "^3.3.12" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "../../common/temp/node_modules/.pnpm/mockery@2.1.0/node_modules/mockery": { - "version": "2.1.0", - "dev": true, - "devDependencies": { - "istanbul": "~0.3.5", - "jshint": "~2.6.0", - "sinon": "1.2.x", - "unix-dgram": "^0.2.3", - "vows": "~0.8.1" - } - }, - "../../common/temp/node_modules/.pnpm/nyc@15.1.0/node_modules/nyc": { - "version": "15.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "spawn-wrap": "^2.0.0", - "test-exclude": "^6.0.0", - "yargs": "^15.0.2" - }, - "bin": { - "nyc": "bin/nyc.js" - }, - "devDependencies": { - "any-path": "^1.3.0", - "coveralls": "^3.0.9", - "is-windows": "^1.0.2", - "requirejs": "^2.3.6", - "source-map-support": "^0.5.16", - "standard": "^14.3.1", - "standard-version": "^8.0.0", - "tap": "^14.10.5", - "which": "^2.0.2" - }, - "engines": { - "node": ">=8.9" - } - }, - "../../common/temp/node_modules/.pnpm/reflect-metadata@0.1.13/node_modules/reflect-metadata": { - "version": "0.1.13", - "license": "Apache-2.0", - "devDependencies": { - "@types/chai": "^3.4.34", - "@types/mocha": "^2.2.34", - "@types/node": "^6.0.52", - "chai": "^3.5.0", - "del": "^2.2.2", - "ecmarkup": "^3.9.3", - "gulp": "^3.9.1", - "gulp-emu": "^1.1.0", - "gulp-live-server": "0.0.30", - "gulp-mocha": "^3.0.1", - "gulp-rename": "^1.2.2", - "gulp-sequence": "^0.4.6", - "gulp-tsb": "^2.0.3", - "mocha": "^3.2.0", - "typescript": "^2.1.4" - } - }, - "../../common/temp/node_modules/.pnpm/rewire@5.0.0/node_modules/rewire": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint": "^6.8.0" - }, - "devDependencies": { - "coffeescript": "^2.1.1", - "expect.js": "^0.3.1", - "mocha": "^7.1.0", - "rewire": "file://." - } - }, - "../../common/temp/node_modules/.pnpm/rimraf@3.0.2/node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "devDependencies": { - "mkdirp": "^0.5.1", - "tap": "^12.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../../common/temp/node_modules/.pnpm/sinon@11.1.2/node_modules/sinon": { - "version": "11.1.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.8.3", - "@sinonjs/fake-timers": "^7.1.2", - "@sinonjs/samsam": "^6.0.2", - "diff": "^5.0.0", - "nise": "^5.1.0", - "supports-color": "^7.2.0" - }, - "devDependencies": { - "@babel/core": "^7.14.3", - "@sinonjs/eslint-config": "^4.0.2", - "@sinonjs/eslint-plugin-no-prototype-methods": "^0.1.1", - "@sinonjs/referee": "^8.0.2", - "babel-plugin-istanbul": "^6.0.0", - "babelify": "^10.0.0", - "browserify": "^16.5.2", - "debug": "^4.3.1", - "dependency-check": "^4.1.0", - "esm": "^3.2.25", - "husky": "^6.0.0", - "lint-staged": "^11.0.0", - "mocha": "^8.4.0", - "mochify": "^7.1.1", - "nyc": "^15.1.0", - "prettier": "^2.3.0", - "proxyquire": "^2.1.3", - "proxyquire-universal": "^3.0.1", - "proxyquireify": "^3.2.1", - "puppeteer": "^9.1.1", - "rimraf": "^3.0.2", - "shelljs": "^0.8.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/sinon" - } - }, - "../../common/temp/node_modules/.pnpm/spec-junit-splitter-mocha-reporter@1.0.1/node_modules/spec-junit-splitter-mocha-reporter": { - "version": "1.0.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "mocha": "6.2.2", - "mocha-junit-reporter": "1.23.1" - } - }, - "../../common/temp/node_modules/.pnpm/typescript@4.4.4/node_modules/typescript": { - "version": "4.4.4", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "devDependencies": { - "@octokit/rest": "latest", - "@types/browserify": "latest", - "@types/chai": "latest", - "@types/convert-source-map": "latest", - "@types/glob": "latest", - "@types/gulp": "^4.0.5", - "@types/gulp-concat": "latest", - "@types/gulp-newer": "latest", - "@types/gulp-rename": "0.0.33", - "@types/gulp-sourcemaps": "0.0.32", - "@types/jake": "latest", - "@types/merge2": "latest", - "@types/microsoft__typescript-etw": "latest", - "@types/minimatch": "latest", - "@types/minimist": "latest", - "@types/mkdirp": "latest", - "@types/mocha": "latest", - "@types/ms": "latest", - "@types/node": "latest", - "@types/node-fetch": "^2.3.4", - "@types/q": "latest", - "@types/source-map-support": "latest", - "@types/through2": "latest", - "@types/xml2js": "^0.4.0", - "@typescript-eslint/eslint-plugin": "^4.28.0", - "@typescript-eslint/experimental-utils": "^4.28.0", - "@typescript-eslint/parser": "^4.28.0", - "async": "latest", - "azure-devops-node-api": "^10.1.0", - "browser-resolve": "^1.11.2", - "browserify": "latest", - "chai": "latest", - "chalk": "latest", - "convert-source-map": "latest", - "del": "5.1.0", - "diff": "^4.0.2", - "eslint": "7.12.1", - "eslint-formatter-autolinkable-stylish": "1.1.4", - "eslint-plugin-import": "2.22.1", - "eslint-plugin-jsdoc": "30.7.6", - "eslint-plugin-no-null": "1.0.2", - "fancy-log": "latest", - "fs-extra": "^9.0.0", - "glob": "latest", - "gulp": "^4.0.0", - "gulp-concat": "latest", - "gulp-insert": "latest", - "gulp-newer": "latest", - "gulp-rename": "latest", - "gulp-sourcemaps": "latest", - "istanbul": "latest", - "merge2": "latest", - "minimist": "latest", - "mkdirp": "latest", - "mocha": "latest", - "mocha-fivemat-progress-reporter": "latest", - "ms": "latest", - "node-fetch": "^2.6.0", - "plugin-error": "latest", - "pretty-hrtime": "^1.0.3", - "prex": "^0.4.3", - "q": "latest", - "remove-internal": "^2.9.2", - "source-map-support": "latest", - "through2": "latest", - "typescript": "^4.2.3", - "vinyl": "latest", - "vinyl-sourcemaps-apply": "latest", - "xml2js": "^0.4.19" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "../../common/temp/node_modules/.pnpm/winston@3.3.3/node_modules/winston": { - "version": "3.3.3", - "license": "MIT", - "dependencies": { - "@dabh/diagnostics": "^2.0.2", - "async": "^3.1.0", - "is-stream": "^2.0.0", - "logform": "^2.2.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.4.0" - }, - "devDependencies": { - "@babel/cli": "^7.10.3", - "@babel/core": "^7.10.3", - "@babel/preset-env": "^7.10.3", - "@types/node": "^14.0.13", - "abstract-winston-transport": "^0.5.1", - "assume": "^2.2.0", - "colors": "^1.4.0", - "cross-spawn-async": "^2.2.5", - "eslint-config-populist": "^4.2.0", - "hock": "^1.4.1", - "mocha": "^8.0.1", - "nyc": "^15.1.0", - "rimraf": "^3.0.2", - "split2": "^3.1.1", - "std-mocks": "^1.0.1", - "through2": "^3.0.1", - "winston-compat": "^0.1.5" - }, - "engines": { - "node": ">= 6.4.0" - } - }, - "../../common/temp/node_modules/.pnpm/yargs-parser@20.2.9/node_modules/yargs-parser": { - "version": "20.2.9", - "license": "ISC", - "devDependencies": { - "@types/chai": "^4.2.11", - "@types/mocha": "^8.0.0", - "@types/node": "^14.0.0", - "@typescript-eslint/eslint-plugin": "^3.10.1", - "@typescript-eslint/parser": "^3.10.1", - "@wessberg/rollup-plugin-ts": "^1.2.28", - "c8": "^7.3.0", - "chai": "^4.2.0", - "cross-env": "^7.0.2", - "eslint": "^7.0.0", - "eslint-plugin-import": "^2.20.1", - "eslint-plugin-node": "^11.0.0", - "gts": "^3.0.0", - "mocha": "^9.0.0", - "puppeteer": "^10.0.0", - "rimraf": "^3.0.2", - "rollup": "^2.22.1", - "rollup-plugin-cleanup": "^3.1.1", - "serve": "^12.0.0", - "standardx": "^7.0.0", - "start-server-and-test": "^1.11.2", - "ts-transform-default-export": "^1.0.2", - "typescript": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "../../common/temp/node_modules/.pnpm/yargs@17.2.1/node_modules/yargs": { - "version": "17.2.1", - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "devDependencies": { - "@types/chai": "^4.2.11", - "@types/mocha": "^9.0.0", - "@types/node": "^14.11.2", - "@wessberg/rollup-plugin-ts": "^1.3.2", - "c8": "^7.7.0", - "chai": "^4.2.0", - "chalk": "^4.0.0", - "coveralls": "^3.0.9", - "cpr": "^3.0.1", - "cross-env": "^7.0.2", - "cross-spawn": "^7.0.0", - "eslint": "^7.23.0", - "gts": "^3.0.0", - "hashish": "0.0.4", - "mocha": "^9.0.0", - "rimraf": "^3.0.2", - "rollup": "^2.23.0", - "rollup-plugin-cleanup": "^3.1.1", - "rollup-plugin-terser": "^7.0.2", - "typescript": "^4.0.2", - "which": "^2.0.0", - "yargs-test-extends": "^1.0.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@fidm/x509": { - "resolved": "../../common/temp/node_modules/.pnpm/@fidm+x509@1.2.1/node_modules/@fidm/x509", - "link": true - }, - "node_modules/@grpc/grpc-js": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.0.tgz", - "integrity": "sha512-KwNibKGx1qmAwsrYu75FhUo3+m6GMJoBfdnYZte9YQ2EM3hZ5Ez+8+Q+FAMONtfU0XJGUkGK5S+q4CXSjx5Ahw==", - "dependencies": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "resolved": "../../common/temp/node_modules/.pnpm/@grpc+proto-loader@0.6.6/node_modules/@grpc/proto-loader", - "link": true - }, - "node_modules/@hyperledger/fabric-protos": { - "version": "1.0.0", - "resolved": "file:hyperledger-fabric-protos-1.0.0.tgz", - "integrity": "sha512-72dxUy7+cxfk+eJg6h7k95OWXrkQdOtUV8r9R4NEb1ZsU/5bbOYIiITr9NliFMWX8KjVIXUYFyaSiPuy9D/wKw==", - "license": "Apache-2.0", - "dependencies": { - "@grpc/grpc-js": "^1.5.9", - "google-protobuf": "^3.19.4" - } - }, - "node_modules/@types/node": { - "resolved": "../../common/temp/node_modules/.pnpm/@types+node@16.11.1/node_modules/@types/node", - "link": true - }, - "node_modules/ajv": { - "resolved": "../../common/temp/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv", - "link": true - }, - "node_modules/chai": { - "resolved": "../../common/temp/node_modules/.pnpm/chai@4.3.4/node_modules/chai", - "link": true - }, - "node_modules/chai-as-promised": { - "resolved": "../../common/temp/node_modules/.pnpm/chai-as-promised@7.1.1_chai@4.3.4/node_modules/chai-as-promised", - "link": true - }, - "node_modules/chai-things": { - "resolved": "../../common/temp/node_modules/.pnpm/chai-things@0.2.0/node_modules/chai-things", - "link": true - }, - "node_modules/cpx": { - "resolved": "../../common/temp/node_modules/.pnpm/cpx@1.5.0/node_modules/cpx", - "link": true - }, - "node_modules/eslint": { - "resolved": "../../common/temp/node_modules/.pnpm/eslint@6.8.0/node_modules/eslint", - "link": true - }, - "node_modules/fabric-contract-api": { - "resolved": "../../apis/fabric-contract-api", - "link": true - }, - "node_modules/fabric-shim-api": { - "resolved": "../../apis/fabric-shim-api", - "link": true - }, - "node_modules/fs-extra": { - "resolved": "../../common/temp/node_modules/.pnpm/fs-extra@10.0.0/node_modules/fs-extra", - "link": true - }, - "node_modules/google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "node_modules/mocha": { - "resolved": "../../common/temp/node_modules/.pnpm/mocha@9.1.3/node_modules/mocha", - "link": true - }, - "node_modules/mockery": { - "resolved": "../../common/temp/node_modules/.pnpm/mockery@2.1.0/node_modules/mockery", - "link": true - }, - "node_modules/nyc": { - "resolved": "../../common/temp/node_modules/.pnpm/nyc@15.1.0/node_modules/nyc", - "link": true - }, - "node_modules/reflect-metadata": { - "resolved": "../../common/temp/node_modules/.pnpm/reflect-metadata@0.1.13/node_modules/reflect-metadata", - "link": true - }, - "node_modules/rewire": { - "resolved": "../../common/temp/node_modules/.pnpm/rewire@5.0.0/node_modules/rewire", - "link": true - }, - "node_modules/rimraf": { - "resolved": "../../common/temp/node_modules/.pnpm/rimraf@3.0.2/node_modules/rimraf", - "link": true - }, - "node_modules/sinon": { - "resolved": "../../common/temp/node_modules/.pnpm/sinon@11.1.2/node_modules/sinon", - "link": true - }, - "node_modules/spec-junit-splitter-mocha-reporter": { - "resolved": "../../common/temp/node_modules/.pnpm/spec-junit-splitter-mocha-reporter@1.0.1/node_modules/spec-junit-splitter-mocha-reporter", - "link": true - }, - "node_modules/winston": { - "resolved": "../../common/temp/node_modules/.pnpm/winston@3.3.3/node_modules/winston", - "link": true - }, - "node_modules/yargs": { - "resolved": "../../common/temp/node_modules/.pnpm/yargs@17.2.1/node_modules/yargs", - "link": true - }, - "node_modules/yargs-parser": { - "resolved": "../../common/temp/node_modules/.pnpm/yargs-parser@20.2.9/node_modules/yargs-parser", - "link": true - } - }, - "dependencies": { - "@fidm/x509": { - "version": "file:../../common/temp/node_modules/.pnpm/@fidm+x509@1.2.1/node_modules/@fidm/x509", - "requires": { - "@fidm/asn1": "^1.0.4", - "@types/node": "^11.10.4", - "istanbul": "^1.1.0-alpha.1", - "tman": "^1.9.0", - "ts-node": "^8.0.2", - "tslint": "^5.13.1", - "tslint-eslint-rules": "^5.4.0", - "tweetnacl": "^1.0.1", - "typedoc": "^0.14.2", - "typescript": "^3.3.3333" - } - }, - "@grpc/grpc-js": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.0.tgz", - "integrity": "sha512-KwNibKGx1qmAwsrYu75FhUo3+m6GMJoBfdnYZte9YQ2EM3hZ5Ez+8+Q+FAMONtfU0XJGUkGK5S+q4CXSjx5Ahw==", - "requires": { - "@grpc/proto-loader": "^0.6.4", - "@types/node": ">=12.12.47" - } - }, - "@grpc/proto-loader": { - "version": "file:../../common/temp/node_modules/.pnpm/@grpc+proto-loader@0.6.6/node_modules/@grpc/proto-loader", - "requires": { - "@types/lodash.camelcase": "^4.3.4", - "@types/long": "^4.0.1", - "@types/mkdirp": "^1.0.1", - "@types/mocha": "^5.2.7", - "@types/node": "^10.17.26", - "@types/yargs": "^15.0.5", - "clang-format": "^1.2.2", - "gts": "^1.1.0", - "lodash.camelcase": "^4.3.0", - "long": "^4.0.0", - "protobufjs": "^6.10.0", - "rimraf": "^3.0.2", - "typescript": "~3.8.3", - "yargs": "^16.1.1" - } - }, - "@hyperledger/fabric-protos": { - "version": "file:hyperledger-fabric-protos-1.0.0.tgz", - "integrity": "sha512-72dxUy7+cxfk+eJg6h7k95OWXrkQdOtUV8r9R4NEb1ZsU/5bbOYIiITr9NliFMWX8KjVIXUYFyaSiPuy9D/wKw==", - "requires": { - "@grpc/grpc-js": "^1.5.9", - "google-protobuf": "^3.19.4" - } - }, - "@types/node": { - "version": "file:../../common/temp/node_modules/.pnpm/@types+node@16.11.1/node_modules/@types/node" - }, - "ajv": { - "version": "file:../../common/temp/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv", - "requires": { - "ajv-async": "^1.0.0", - "bluebird": "^3.5.3", - "brfs": "^2.0.0", - "browserify": "^16.2.0", - "chai": "^4.0.1", - "coveralls": "^3.0.1", - "del-cli": "^3.0.0", - "dot": "^1.0.3", - "eslint": "^7.3.1", - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "gh-pages-generator": "^0.2.3", - "glob": "^7.0.0", - "if-node-version": "^1.0.0", - "js-beautify": "^1.7.3", - "jshint": "^2.10.2", - "json-schema-test": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "karma": "^5.0.0", - "karma-chrome-launcher": "^3.0.0", - "karma-mocha": "^2.0.0", - "karma-sauce-launcher": "^4.1.3", - "mocha": "^8.0.1", - "nyc": "^15.0.0", - "pre-commit": "^1.1.1", - "require-globify": "^1.3.0", - "typescript": "^3.9.5", - "uglify-js": "^3.6.9", - "uri-js": "^4.2.2", - "watch": "^1.0.0" - } - }, - "chai": { - "version": "file:../../common/temp/node_modules/.pnpm/chai@4.3.4/node_modules/chai", - "requires": { - "assertion-error": "^1.1.0", - "browserify": "^16.2.3", - "bump-cli": "^1.1.3", - "check-error": "^1.0.2", - "codecov": "^3.0.0", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "istanbul": "^0.4.3", - "karma": "^6.1.1", - "karma-chrome-launcher": "^2.2.0", - "karma-firefox-launcher": "^1.0.0", - "karma-mocha": "^2.0.1", - "karma-sauce-launcher": "^1.2.0", - "mocha": "^7.1.2", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, - "chai-as-promised": { - "version": "file:../../common/temp/node_modules/.pnpm/chai-as-promised@7.1.1_chai@4.3.4/node_modules/chai-as-promised", - "requires": { - "chai": "^4.0.2", - "check-error": "^1.0.2", - "eslint": "^3.19.0", - "istanbul": "0.4.5", - "mocha": "^3.4.2" - } - }, - "chai-things": { - "version": "file:../../common/temp/node_modules/.pnpm/chai-things@0.2.0/node_modules/chai-things", - "requires": { - "chai": "1.4.x", - "coffee-script": "1.4.x", - "jshint": "0.9.x", - "mocha": "1.7.x" - } - }, - "cpx": { - "version": "file:../../common/temp/node_modules/.pnpm/cpx@1.5.0/node_modules/cpx", - "requires": { - "babel-cli": "^6.11.4", - "babel-plugin-transform-runtime": "^6.9.0", - "babel-plugin-unassert": "^2.1.1", - "babel-preset-es2015": "^6.9.0", - "babel-preset-power-assert": "^1.0.0", - "babel-register": "^6.9.0", - "babel-runtime": "^6.9.2", - "chokidar": "^1.6.0", - "codecov": "^1.0.1", - "cross-env": "^2.0.0", - "duplexer": "^0.1.1", - "eslint": "^3.4.0", - "eslint-config-mysticatea": "^6.0.0", - "glob": "^7.0.5", - "glob2base": "^0.0.12", - "if-node-version": "^1.0.0", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "mocha": "^3.0.2", - "npm-run-all": "^3.1.0", - "nyc": "^8.1.0", - "opener": "^1.4.1", - "power-assert": "^1.4.1", - "resolve": "^1.1.7", - "rimraf": "^2.5.3", - "safe-buffer": "^5.0.1", - "shell-quote": "^1.6.1", - "shelljs": "^0.7.0", - "subarg": "^1.0.0", - "through": "^2.3.8" - } - }, - "eslint": { - "version": "file:../../common/temp/node_modules/.pnpm/eslint@6.8.0/node_modules/eslint", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/core": "^7.4.3", - "@babel/preset-env": "^7.4.3", - "acorn": "^7.1.0", - "ajv": "^6.10.0", - "babel-loader": "^8.0.5", - "chai": "^4.0.1", - "chalk": "^2.1.0", - "cheerio": "^0.22.0", - "common-tags": "^1.8.0", - "core-js": "^3.1.3", - "cross-spawn": "^6.0.5", - "dateformat": "^3.0.3", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "ejs": "^2.6.1", - "eslint": "file:", - "eslint-config-eslint": "file:packages/eslint-config-eslint", - "eslint-plugin-eslint-plugin": "^2.0.1", - "eslint-plugin-internal-rules": "file:tools/internal-rules", - "eslint-plugin-jsdoc": "^15.9.5", - "eslint-plugin-node": "^9.0.0", - "eslint-release": "^1.2.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "eslump": "^2.0.0", - "espree": "^6.1.2", - "esprima": "^4.0.1", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.3", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "jsdoc": "^3.5.5", - "json-stable-stringify-without-jsonify": "^1.0.1", - "karma": "^4.0.1", - "karma-chrome-launcher": "^2.2.0", - "karma-mocha": "^1.3.0", - "karma-mocha-reporter": "^2.2.3", - "karma-webpack": "^4.0.0-rc.6", - "leche": "^2.2.3", - "levn": "^0.3.0", - "lint-staged": "^8.1.5", - "load-perf": "^0.2.0", - "lodash": "^4.17.14", - "markdownlint": "^0.15.0", - "markdownlint-cli": "^0.17.0", - "metro-memory-fs": "^0.54.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "mocha": "^6.1.2", - "mocha-junit-reporter": "^1.23.0", - "natural-compare": "^1.4.0", - "npm-license": "^0.3.3", - "nyc": "^14.1.1", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "proxyquire": "^2.0.1", - "puppeteer": "^1.18.0", - "recast": "^0.18.1", - "regenerator-runtime": "^0.13.2", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "shelljs": "^0.8.2", - "sinon": "^7.3.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "temp": "^0.9.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3", - "webpack": "^4.35.0", - "webpack-cli": "^3.3.5", - "yorkie": "^2.0.0" - } - }, - "fabric-contract-api": { - "version": "file:../../apis/fabric-contract-api", - "requires": { - "ajv": "^6.12.2", - "ajv-cli": "^3.2.1", - "ajv-formats": "2.1.1", - "chai": "^4.3.4", - "chai-as-promised": "^7.1.1", - "chai-things": "^0.2.0", - "class-transformer": "^0.4.0", - "eslint": "^6.6.0", - "fabric-shim-api": "2.4.1", - "fast-safe-stringify": "^2.1.1", - "get-params": "^0.1.2", - "gulp": "^4.0.2", - "gulp-debug": "~4.0.0", - "gulp-eslint": "~6.0.0", - "mocha": "9.1.3", - "nyc": "15.1.0", - "reflect-metadata": "^0.1.13", - "rewire": "5.0.0", - "sinon": "11.1.2", - "typescript": "4.4.4", - "winston": "^3.3.3" - }, - "dependencies": { - "ajv": { - "version": "file:../../common/temp/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv", - "requires": { - "ajv-async": "^1.0.0", - "bluebird": "^3.5.3", - "brfs": "^2.0.0", - "browserify": "^16.2.0", - "chai": "^4.0.1", - "coveralls": "^3.0.1", - "del-cli": "^3.0.0", - "dot": "^1.0.3", - "eslint": "^7.3.1", - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "gh-pages-generator": "^0.2.3", - "glob": "^7.0.0", - "if-node-version": "^1.0.0", - "js-beautify": "^1.7.3", - "jshint": "^2.10.2", - "json-schema-test": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "karma": "^5.0.0", - "karma-chrome-launcher": "^3.0.0", - "karma-mocha": "^2.0.0", - "karma-sauce-launcher": "^4.1.3", - "mocha": "^8.0.1", - "nyc": "^15.0.0", - "pre-commit": "^1.1.1", - "require-globify": "^1.3.0", - "typescript": "^3.9.5", - "uglify-js": "^3.6.9", - "uri-js": "^4.2.2", - "watch": "^1.0.0" - } - }, - "ajv-cli": { - "version": "file:../../common/temp/node_modules/.pnpm/ajv-cli@3.2.1/node_modules/ajv-cli", - "requires": { - "ajv": "^6.7.0", - "ajv-keywords": "^3.2.0", - "ajv-pack": "^0.3.0", - "coveralls": "^3.0.0", - "eslint": "^7.1.0", - "fast-json-patch": "^2.0.0", - "glob": "^7.1.0", - "js-yaml": "^3.13.1", - "json-schema-migrate": "^0.2.0", - "json5": "^2.1.3", - "minimist": "^1.2.0", - "mocha": "^7.2.0", - "nyc": "^15.0.1", - "pre-commit": "^1.2.0" - } - }, - "ajv-formats": { - "version": "file:../../common/temp/node_modules/.pnpm/ajv-formats@2.1.1/node_modules/ajv-formats", - "requires": { - "@ajv-validator/config": "^0.3.0", - "@types/jest": "^26.0.5", - "@types/node": "^14.10.1", - "@typescript-eslint/eslint-plugin": "^3.7.0", - "@typescript-eslint/parser": "^3.7.0", - "ajv": "^8.0.0", - "eslint": "^7.5.0", - "eslint-config-prettier": "^6.11.0", - "husky": "^4.2.5", - "jest": "^26.1.0", - "json-schema-test": "^2.0.0", - "lint-staged": "^10.2.11", - "prettier": "^2.3.2", - "ts-jest": "^26.1.3", - "typescript": "^4.0.0" - } - }, - "chai": { - "version": "file:../../common/temp/node_modules/.pnpm/chai@4.3.4/node_modules/chai", - "requires": { - "assertion-error": "^1.1.0", - "browserify": "^16.2.3", - "bump-cli": "^1.1.3", - "check-error": "^1.0.2", - "codecov": "^3.0.0", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "istanbul": "^0.4.3", - "karma": "^6.1.1", - "karma-chrome-launcher": "^2.2.0", - "karma-firefox-launcher": "^1.0.0", - "karma-mocha": "^2.0.1", - "karma-sauce-launcher": "^1.2.0", - "mocha": "^7.1.2", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, - "chai-as-promised": { - "version": "file:../../common/temp/node_modules/.pnpm/chai-as-promised@7.1.1_chai@4.3.4/node_modules/chai-as-promised", - "requires": { - "chai": "^4.0.2", - "check-error": "^1.0.2", - "eslint": "^3.19.0", - "istanbul": "0.4.5", - "mocha": "^3.4.2" - } - }, - "chai-things": { - "version": "file:../../common/temp/node_modules/.pnpm/chai-things@0.2.0/node_modules/chai-things", - "requires": { - "chai": "1.4.x", - "coffee-script": "1.4.x", - "jshint": "0.9.x", - "mocha": "1.7.x" - } - }, - "class-transformer": { - "version": "file:../../common/temp/node_modules/.pnpm/class-transformer@0.4.0/node_modules/class-transformer" - }, - "eslint": { - "version": "file:../../common/temp/node_modules/.pnpm/eslint@6.8.0/node_modules/eslint", - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/core": "^7.4.3", - "@babel/preset-env": "^7.4.3", - "acorn": "^7.1.0", - "ajv": "^6.10.0", - "babel-loader": "^8.0.5", - "chai": "^4.0.1", - "chalk": "^2.1.0", - "cheerio": "^0.22.0", - "common-tags": "^1.8.0", - "core-js": "^3.1.3", - "cross-spawn": "^6.0.5", - "dateformat": "^3.0.3", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "ejs": "^2.6.1", - "eslint": "file:", - "eslint-config-eslint": "file:packages/eslint-config-eslint", - "eslint-plugin-eslint-plugin": "^2.0.1", - "eslint-plugin-internal-rules": "file:tools/internal-rules", - "eslint-plugin-jsdoc": "^15.9.5", - "eslint-plugin-node": "^9.0.0", - "eslint-release": "^1.2.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^1.4.3", - "eslint-visitor-keys": "^1.1.0", - "eslump": "^2.0.0", - "espree": "^6.1.2", - "esprima": "^4.0.1", - "esquery": "^1.0.1", - "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.3", - "glob-parent": "^5.0.0", - "globals": "^12.1.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "inquirer": "^7.0.0", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "jsdoc": "^3.5.5", - "json-stable-stringify-without-jsonify": "^1.0.1", - "karma": "^4.0.1", - "karma-chrome-launcher": "^2.2.0", - "karma-mocha": "^1.3.0", - "karma-mocha-reporter": "^2.2.3", - "karma-webpack": "^4.0.0-rc.6", - "leche": "^2.2.3", - "levn": "^0.3.0", - "lint-staged": "^8.1.5", - "load-perf": "^0.2.0", - "lodash": "^4.17.14", - "markdownlint": "^0.15.0", - "markdownlint-cli": "^0.17.0", - "metro-memory-fs": "^0.54.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "mocha": "^6.1.2", - "mocha-junit-reporter": "^1.23.0", - "natural-compare": "^1.4.0", - "npm-license": "^0.3.3", - "nyc": "^14.1.1", - "optionator": "^0.8.3", - "progress": "^2.0.0", - "proxyquire": "^2.0.1", - "puppeteer": "^1.18.0", - "recast": "^0.18.1", - "regenerator-runtime": "^0.13.2", - "regexpp": "^2.0.1", - "semver": "^6.1.2", - "shelljs": "^0.8.2", - "sinon": "^7.3.2", - "strip-ansi": "^5.2.0", - "strip-json-comments": "^3.0.1", - "table": "^5.2.3", - "temp": "^0.9.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3", - "webpack": "^4.35.0", - "webpack-cli": "^3.3.5", - "yorkie": "^2.0.0" - } - }, - "fabric-shim-api": { - "version": "file:../../apis/fabric-shim-api", - "requires": { - "@types/long": "^4.0.1" - }, - "dependencies": { - "@types/long": { - "version": "file:../../common/temp/node_modules/.pnpm/@types+long@4.0.1/node_modules/@types/long" - } - } - }, - "fast-safe-stringify": { - "version": "file:../../common/temp/node_modules/.pnpm/fast-safe-stringify@2.1.1/node_modules/fast-safe-stringify", - "requires": { - "benchmark": "^2.1.4", - "clone": "^2.1.0", - "json-stringify-safe": "^5.0.1", - "standard": "^11.0.0", - "tap": "^12.0.0" - } - }, - "get-params": { - "version": "file:../../common/temp/node_modules/.pnpm/get-params@0.1.2/node_modules/get-params", - "requires": { - "jshint": "^2.7.0", - "mocha": "^2.2.4" - } - }, - "gulp": { - "version": "file:../../common/temp/node_modules/.pnpm/gulp@4.0.2/node_modules/gulp", - "requires": { - "coveralls": "github:phated/node-coveralls#2.x", - "eslint": "^2.13.1", - "eslint-config-gulp": "^3.0.1", - "expect": "^1.20.2", - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "mkdirp": "^0.5.1", - "mocha": "^3.0.0", - "nyc": "^10.3.2", - "rimraf": "^2.6.3", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - } - }, - "gulp-debug": { - "version": "file:../../common/temp/node_modules/.pnpm/gulp-debug@4.0.0_gulp@4.0.2/node_modules/gulp-debug", - "requires": { - "ava": "*", - "chalk": "^2.3.0", - "fancy-log": "^1.3.2", - "gulp": "^4.0.0", - "p-event": "^1.0.0", - "plur": "^3.0.0", - "sinon": "^4.1.3", - "stringify-object": "^3.0.0", - "strip-ansi": "^4.0.0", - "through2": "^2.0.0", - "tildify": "^1.1.2", - "vinyl": "^2.1.0", - "xo": "*" - } - }, - "gulp-eslint": { - "version": "file:../../common/temp/node_modules/.pnpm/gulp-eslint@6.0.0/node_modules/gulp-eslint", - "requires": { - "@shinnn/eslint-config-node": "^5.0.0", - "babel-eslint": "^8.2.5", - "eslint": "^6.0.0", - "fancy-log": "^1.3.2", - "from2-string": "^1.1.0", - "gulp": "^4.0.0", - "istanbul": "^0.4.5", - "mocha": "^5.2.0", - "plugin-error": "^1.0.1", - "should": "^13.2.1", - "vinyl": "^2.2.0" - } - }, - "mocha": { - "version": "file:../../common/temp/node_modules/.pnpm/mocha@9.1.3/node_modules/mocha", - "requires": { - "@11ty/eleventy": "^0.11.0", - "@11ty/eleventy-plugin-inclusive-language": "^1.0.0", - "@babel/eslint-parser": "^7.15.4", - "@babel/preset-env": "^7.14.8", - "@mocha/docdash": "^3.0.1", - "@rollup/plugin-babel": "^5.1.0", - "@rollup/plugin-commonjs": "^14.0.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-multi-entry": "^3.0.1", - "@rollup/plugin-node-resolve": "^8.4.0", - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "assetgraph-builder": "^8.2.0", - "autoprefixer": "^9.8.6", - "browser-stdout": "1.3.1", - "canvas": "^2.8.0", - "chai": "^4.2.0", - "chokidar": "3.5.2", - "coffee-script": "^1.12.7", - "configstore": "^5.0.1", - "core-js": "^3.16.3", - "coveralls": "^3.1.1", - "cross-env": "^7.0.2", - "cross-spawn": "^7.0.3", - "debug": "4.3.2", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "eslint": "^7.32.0", - "eslint-config-prettier": "^8.3.0", - "eslint-config-semistandard": "^16.0.0", - "eslint-config-standard": "^16.0.3", - "eslint-plugin-import": "^2.24.2", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^4.0.0", - "eslint-plugin-promise": "^5.1.0", - "fail-on-errors-webpack-plugin": "^3.0.0", - "find-up": "5.0.0", - "fs-extra": "^9.0.1", - "glob": "7.1.7", - "growl": "1.10.5", - "he": "1.2.0", - "husky": "^4.2.5", - "hyperlink": "^4.7.0", - "js-yaml": "4.1.0", - "jsdoc": "^3.6.5", - "jsdoc-ts-utils": "^1.1.2", - "karma": "^6.3.4", - "karma-chrome-launcher": "^3.1.0", - "karma-mocha": "^2.0.1", - "karma-mocha-reporter": "^2.2.5", - "karma-requirejs": "^1.1.0", - "karma-sauce-launcher": "^4.3.6", - "lint-staged": "^10.2.11", - "log-symbols": "4.1.0", - "markdown-it": "^11.0.0", - "markdown-it-anchor": "^5.3.0", - "markdown-it-attrs": "^3.0.3", - "markdown-it-emoji": "^1.4.0", - "markdown-it-prism": "^2.1.1", - "markdown-toc": "^1.2.0", - "markdownlint-cli": "^0.23.2", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.25", - "needle": "^2.5.0", - "nps": "^5.10.0", - "nyc": "^15.1.0", - "pidtree": "^0.5.0", - "prettier": "^1.19.1", - "regenerator-runtime": "0.13.7", - "remark": "^12.0.1", - "remark-github": "^9.0.1", - "remark-inline-links": "^4.0.0", - "requirejs": "^2.3.6", - "rewiremock": "^3.14.3", - "rimraf": "^3.0.2", - "rollup": "^2.23.1", - "rollup-plugin-node-globals": "^1.4.0", - "rollup-plugin-node-polyfills": "^0.2.1", - "rollup-plugin-visualizer": "^4.1.0", - "serialize-javascript": "6.0.0", - "sinon": "^9.0.3", - "strip-ansi": "^6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "svgo": "^1.3.2", - "through2": "^4.0.2", - "to-vfile": "^6.1.0", - "touch": "^3.1.0", - "unexpected": "^11.14.0", - "unexpected-eventemitter": "^2.2.0", - "unexpected-map": "^2.0.0", - "unexpected-set": "^3.0.0", - "unexpected-sinon": "^10.11.2", - "update-notifier": "^4.1.0", - "uslug": "^1.0.4", - "uuid": "^8.3.0", - "watchify": "^4.0.0", - "webpack": "^4.44.1", - "webpack-cli": "^3.3.12", - "which": "2.0.2", - "workerpool": "6.1.5", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - } - }, - "nyc": { - "version": "file:../../common/temp/node_modules/.pnpm/nyc@15.1.0/node_modules/nyc", - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "any-path": "^1.3.0", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "coveralls": "^3.0.9", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "is-windows": "^1.0.2", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "requirejs": "^2.3.6", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "source-map-support": "^0.5.16", - "spawn-wrap": "^2.0.0", - "standard": "^14.3.1", - "standard-version": "^8.0.0", - "tap": "^14.10.5", - "test-exclude": "^6.0.0", - "which": "^2.0.2", - "yargs": "^15.0.2" - } - }, - "reflect-metadata": { - "version": "file:../../common/temp/node_modules/.pnpm/reflect-metadata@0.1.13/node_modules/reflect-metadata", - "requires": { - "@types/chai": "^3.4.34", - "@types/mocha": "^2.2.34", - "@types/node": "^6.0.52", - "chai": "^3.5.0", - "del": "^2.2.2", - "ecmarkup": "^3.9.3", - "gulp": "^3.9.1", - "gulp-emu": "^1.1.0", - "gulp-live-server": "0.0.30", - "gulp-mocha": "^3.0.1", - "gulp-rename": "^1.2.2", - "gulp-sequence": "^0.4.6", - "gulp-tsb": "^2.0.3", - "mocha": "^3.2.0", - "typescript": "^2.1.4" - } - }, - "rewire": { - "version": "file:../../common/temp/node_modules/.pnpm/rewire@5.0.0/node_modules/rewire", - "requires": { - "coffeescript": "^2.1.1", - "eslint": "^6.8.0", - "expect.js": "^0.3.1", - "mocha": "^7.1.0", - "rewire": "file:../../../../../../../../../../../.." - } - }, - "sinon": { - "version": "file:../../common/temp/node_modules/.pnpm/sinon@11.1.2/node_modules/sinon", - "requires": { - "@babel/core": "^7.14.3", - "@sinonjs/commons": "^1.8.3", - "@sinonjs/eslint-config": "^4.0.2", - "@sinonjs/eslint-plugin-no-prototype-methods": "^0.1.1", - "@sinonjs/fake-timers": "^7.1.2", - "@sinonjs/referee": "^8.0.2", - "@sinonjs/samsam": "^6.0.2", - "babel-plugin-istanbul": "^6.0.0", - "babelify": "^10.0.0", - "browserify": "^16.5.2", - "debug": "^4.3.1", - "dependency-check": "^4.1.0", - "diff": "^5.0.0", - "esm": "^3.2.25", - "husky": "^6.0.0", - "lint-staged": "^11.0.0", - "mocha": "^8.4.0", - "mochify": "^7.1.1", - "nise": "^5.1.0", - "nyc": "^15.1.0", - "prettier": "^2.3.0", - "proxyquire": "^2.1.3", - "proxyquire-universal": "^3.0.1", - "proxyquireify": "^3.2.1", - "puppeteer": "^9.1.1", - "rimraf": "^3.0.2", - "shelljs": "^0.8.4", - "supports-color": "^7.2.0" - } - }, - "typescript": { - "version": "file:../../common/temp/node_modules/.pnpm/typescript@4.4.4/node_modules/typescript", - "requires": { - "@octokit/rest": "latest", - "@types/browserify": "latest", - "@types/chai": "latest", - "@types/convert-source-map": "latest", - "@types/glob": "latest", - "@types/gulp": "^4.0.5", - "@types/gulp-concat": "latest", - "@types/gulp-newer": "latest", - "@types/gulp-rename": "0.0.33", - "@types/gulp-sourcemaps": "0.0.32", - "@types/jake": "latest", - "@types/merge2": "latest", - "@types/microsoft__typescript-etw": "latest", - "@types/minimatch": "latest", - "@types/minimist": "latest", - "@types/mkdirp": "latest", - "@types/mocha": "latest", - "@types/ms": "latest", - "@types/node": "latest", - "@types/node-fetch": "^2.3.4", - "@types/q": "latest", - "@types/source-map-support": "latest", - "@types/through2": "latest", - "@types/xml2js": "^0.4.0", - "@typescript-eslint/eslint-plugin": "^4.28.0", - "@typescript-eslint/experimental-utils": "^4.28.0", - "@typescript-eslint/parser": "^4.28.0", - "async": "latest", - "azure-devops-node-api": "^10.1.0", - "browser-resolve": "^1.11.2", - "browserify": "latest", - "chai": "latest", - "chalk": "latest", - "convert-source-map": "latest", - "del": "5.1.0", - "diff": "^4.0.2", - "eslint": "7.12.1", - "eslint-formatter-autolinkable-stylish": "1.1.4", - "eslint-plugin-import": "2.22.1", - "eslint-plugin-jsdoc": "30.7.6", - "eslint-plugin-no-null": "1.0.2", - "fancy-log": "latest", - "fs-extra": "^9.0.0", - "glob": "latest", - "gulp": "^4.0.0", - "gulp-concat": "latest", - "gulp-insert": "latest", - "gulp-newer": "latest", - "gulp-rename": "latest", - "gulp-sourcemaps": "latest", - "istanbul": "latest", - "merge2": "latest", - "minimist": "latest", - "mkdirp": "latest", - "mocha": "latest", - "mocha-fivemat-progress-reporter": "latest", - "ms": "latest", - "node-fetch": "^2.6.0", - "plugin-error": "latest", - "pretty-hrtime": "^1.0.3", - "prex": "^0.4.3", - "q": "latest", - "remove-internal": "^2.9.2", - "source-map-support": "latest", - "through2": "latest", - "typescript": "^4.2.3", - "vinyl": "latest", - "vinyl-sourcemaps-apply": "latest", - "xml2js": "^0.4.19" - } - }, - "winston": { - "version": "file:../../common/temp/node_modules/.pnpm/winston@3.3.3/node_modules/winston", - "requires": { - "@babel/cli": "^7.10.3", - "@babel/core": "^7.10.3", - "@babel/preset-env": "^7.10.3", - "@dabh/diagnostics": "^2.0.2", - "@types/node": "^14.0.13", - "abstract-winston-transport": "^0.5.1", - "assume": "^2.2.0", - "async": "^3.1.0", - "colors": "^1.4.0", - "cross-spawn-async": "^2.2.5", - "eslint-config-populist": "^4.2.0", - "hock": "^1.4.1", - "is-stream": "^2.0.0", - "logform": "^2.2.0", - "mocha": "^8.0.1", - "nyc": "^15.1.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "rimraf": "^3.0.2", - "split2": "^3.1.1", - "stack-trace": "0.0.x", - "std-mocks": "^1.0.1", - "through2": "^3.0.1", - "triple-beam": "^1.3.0", - "winston-compat": "^0.1.5", - "winston-transport": "^4.4.0" - } - } - } - }, - "fabric-shim-api": { - "version": "file:../../apis/fabric-shim-api", - "requires": { - "@types/long": "^4.0.1" - }, - "dependencies": { - "@types/long": { - "version": "file:../../common/temp/node_modules/.pnpm/@types+long@4.0.1/node_modules/@types/long" - } - } - }, - "fs-extra": { - "version": "file:../../common/temp/node_modules/.pnpm/fs-extra@10.0.0/node_modules/fs-extra", - "requires": { - "at-least-node": "^1.0.0", - "coveralls": "^3.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "klaw": "^2.1.1", - "klaw-sync": "^3.0.2", - "minimist": "^1.1.1", - "mocha": "^5.0.5", - "nyc": "^15.0.0", - "proxyquire": "^2.0.1", - "read-dir-files": "^0.1.1", - "standard": "^14.1.0", - "universalify": "^2.0.0" - } - }, - "google-protobuf": { - "version": "3.19.4", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.19.4.tgz", - "integrity": "sha512-OIPNCxsG2lkIvf+P5FNfJ/Km95CsXOBecS9ZcAU6m2Rq3svc0Apl9nB3GMDNKfQ9asNv4KjyAqGwPQFrVle3Yg==" - }, - "mocha": { - "version": "file:../../common/temp/node_modules/.pnpm/mocha@9.1.3/node_modules/mocha", - "requires": { - "@11ty/eleventy": "^0.11.0", - "@11ty/eleventy-plugin-inclusive-language": "^1.0.0", - "@babel/eslint-parser": "^7.15.4", - "@babel/preset-env": "^7.14.8", - "@mocha/docdash": "^3.0.1", - "@rollup/plugin-babel": "^5.1.0", - "@rollup/plugin-commonjs": "^14.0.0", - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-multi-entry": "^3.0.1", - "@rollup/plugin-node-resolve": "^8.4.0", - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "assetgraph-builder": "^8.2.0", - "autoprefixer": "^9.8.6", - "browser-stdout": "1.3.1", - "canvas": "^2.8.0", - "chai": "^4.2.0", - "chokidar": "3.5.2", - "coffee-script": "^1.12.7", - "configstore": "^5.0.1", - "core-js": "^3.16.3", - "coveralls": "^3.1.1", - "cross-env": "^7.0.2", - "cross-spawn": "^7.0.3", - "debug": "4.3.2", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "eslint": "^7.32.0", - "eslint-config-prettier": "^8.3.0", - "eslint-config-semistandard": "^16.0.0", - "eslint-config-standard": "^16.0.3", - "eslint-plugin-import": "^2.24.2", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^4.0.0", - "eslint-plugin-promise": "^5.1.0", - "fail-on-errors-webpack-plugin": "^3.0.0", - "find-up": "5.0.0", - "fs-extra": "^9.0.1", - "glob": "7.1.7", - "growl": "1.10.5", - "he": "1.2.0", - "husky": "^4.2.5", - "hyperlink": "^4.7.0", - "js-yaml": "4.1.0", - "jsdoc": "^3.6.5", - "jsdoc-ts-utils": "^1.1.2", - "karma": "^6.3.4", - "karma-chrome-launcher": "^3.1.0", - "karma-mocha": "^2.0.1", - "karma-mocha-reporter": "^2.2.5", - "karma-requirejs": "^1.1.0", - "karma-sauce-launcher": "^4.3.6", - "lint-staged": "^10.2.11", - "log-symbols": "4.1.0", - "markdown-it": "^11.0.0", - "markdown-it-anchor": "^5.3.0", - "markdown-it-attrs": "^3.0.3", - "markdown-it-emoji": "^1.4.0", - "markdown-it-prism": "^2.1.1", - "markdown-toc": "^1.2.0", - "markdownlint-cli": "^0.23.2", - "minimatch": "3.0.4", - "ms": "2.1.3", - "nanoid": "3.1.25", - "needle": "^2.5.0", - "nps": "^5.10.0", - "nyc": "^15.1.0", - "pidtree": "^0.5.0", - "prettier": "^1.19.1", - "regenerator-runtime": "0.13.7", - "remark": "^12.0.1", - "remark-github": "^9.0.1", - "remark-inline-links": "^4.0.0", - "requirejs": "^2.3.6", - "rewiremock": "^3.14.3", - "rimraf": "^3.0.2", - "rollup": "^2.23.1", - "rollup-plugin-node-globals": "^1.4.0", - "rollup-plugin-node-polyfills": "^0.2.1", - "rollup-plugin-visualizer": "^4.1.0", - "serialize-javascript": "6.0.0", - "sinon": "^9.0.3", - "strip-ansi": "^6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "svgo": "^1.3.2", - "through2": "^4.0.2", - "to-vfile": "^6.1.0", - "touch": "^3.1.0", - "unexpected": "^11.14.0", - "unexpected-eventemitter": "^2.2.0", - "unexpected-map": "^2.0.0", - "unexpected-set": "^3.0.0", - "unexpected-sinon": "^10.11.2", - "update-notifier": "^4.1.0", - "uslug": "^1.0.4", - "uuid": "^8.3.0", - "watchify": "^4.0.0", - "webpack": "^4.44.1", - "webpack-cli": "^3.3.12", - "which": "2.0.2", - "workerpool": "6.1.5", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - } - }, - "mockery": { - "version": "file:../../common/temp/node_modules/.pnpm/mockery@2.1.0/node_modules/mockery", - "requires": { - "istanbul": "~0.3.5", - "jshint": "~2.6.0", - "sinon": "1.2.x", - "unix-dgram": "^0.2.3", - "vows": "~0.8.1" - } - }, - "nyc": { - "version": "file:../../common/temp/node_modules/.pnpm/nyc@15.1.0/node_modules/nyc", - "requires": { - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "any-path": "^1.3.0", - "caching-transform": "^4.0.0", - "convert-source-map": "^1.7.0", - "coveralls": "^3.0.9", - "decamelize": "^1.2.0", - "find-cache-dir": "^3.2.0", - "find-up": "^4.1.0", - "foreground-child": "^2.0.0", - "get-package-type": "^0.1.0", - "glob": "^7.1.6", - "is-windows": "^1.0.2", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-hook": "^3.0.0", - "istanbul-lib-instrument": "^4.0.0", - "istanbul-lib-processinfo": "^2.0.2", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "make-dir": "^3.0.0", - "node-preload": "^0.2.1", - "p-map": "^3.0.0", - "process-on-spawn": "^1.0.0", - "requirejs": "^2.3.6", - "resolve-from": "^5.0.0", - "rimraf": "^3.0.0", - "signal-exit": "^3.0.2", - "source-map-support": "^0.5.16", - "spawn-wrap": "^2.0.0", - "standard": "^14.3.1", - "standard-version": "^8.0.0", - "tap": "^14.10.5", - "test-exclude": "^6.0.0", - "which": "^2.0.2", - "yargs": "^15.0.2" - } - }, - "reflect-metadata": { - "version": "file:../../common/temp/node_modules/.pnpm/reflect-metadata@0.1.13/node_modules/reflect-metadata", - "requires": { - "@types/chai": "^3.4.34", - "@types/mocha": "^2.2.34", - "@types/node": "^6.0.52", - "chai": "^3.5.0", - "del": "^2.2.2", - "ecmarkup": "^3.9.3", - "gulp": "^3.9.1", - "gulp-emu": "^1.1.0", - "gulp-live-server": "0.0.30", - "gulp-mocha": "^3.0.1", - "gulp-rename": "^1.2.2", - "gulp-sequence": "^0.4.6", - "gulp-tsb": "^2.0.3", - "mocha": "^3.2.0", - "typescript": "^2.1.4" - } - }, - "rewire": { - "version": "file:../../common/temp/node_modules/.pnpm/rewire@5.0.0/node_modules/rewire", - "requires": { - "coffeescript": "^2.1.1", - "eslint": "^6.8.0", - "expect.js": "^0.3.1", - "mocha": "^7.1.0", - "rewire": "file:../../../../../../../../../../../.." - } - }, - "rimraf": { - "version": "file:../../common/temp/node_modules/.pnpm/rimraf@3.0.2/node_modules/rimraf", - "requires": { - "glob": "^7.1.3", - "mkdirp": "^0.5.1", - "tap": "^12.1.1" - } - }, - "sinon": { - "version": "file:../../common/temp/node_modules/.pnpm/sinon@11.1.2/node_modules/sinon", - "requires": { - "@babel/core": "^7.14.3", - "@sinonjs/commons": "^1.8.3", - "@sinonjs/eslint-config": "^4.0.2", - "@sinonjs/eslint-plugin-no-prototype-methods": "^0.1.1", - "@sinonjs/fake-timers": "^7.1.2", - "@sinonjs/referee": "^8.0.2", - "@sinonjs/samsam": "^6.0.2", - "babel-plugin-istanbul": "^6.0.0", - "babelify": "^10.0.0", - "browserify": "^16.5.2", - "debug": "^4.3.1", - "dependency-check": "^4.1.0", - "diff": "^5.0.0", - "esm": "^3.2.25", - "husky": "^6.0.0", - "lint-staged": "^11.0.0", - "mocha": "^8.4.0", - "mochify": "^7.1.1", - "nise": "^5.1.0", - "nyc": "^15.1.0", - "prettier": "^2.3.0", - "proxyquire": "^2.1.3", - "proxyquire-universal": "^3.0.1", - "proxyquireify": "^3.2.1", - "puppeteer": "^9.1.1", - "rimraf": "^3.0.2", - "shelljs": "^0.8.4", - "supports-color": "^7.2.0" - } - }, - "spec-junit-splitter-mocha-reporter": { - "version": "file:../../common/temp/node_modules/.pnpm/spec-junit-splitter-mocha-reporter@1.0.1/node_modules/spec-junit-splitter-mocha-reporter", - "requires": { - "mocha": "6.2.2", - "mocha-junit-reporter": "1.23.1" - } - }, - "winston": { - "version": "file:../../common/temp/node_modules/.pnpm/winston@3.3.3/node_modules/winston", - "requires": { - "@babel/cli": "^7.10.3", - "@babel/core": "^7.10.3", - "@babel/preset-env": "^7.10.3", - "@dabh/diagnostics": "^2.0.2", - "@types/node": "^14.0.13", - "abstract-winston-transport": "^0.5.1", - "assume": "^2.2.0", - "async": "^3.1.0", - "colors": "^1.4.0", - "cross-spawn-async": "^2.2.5", - "eslint-config-populist": "^4.2.0", - "hock": "^1.4.1", - "is-stream": "^2.0.0", - "logform": "^2.2.0", - "mocha": "^8.0.1", - "nyc": "^15.1.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "rimraf": "^3.0.2", - "split2": "^3.1.1", - "stack-trace": "0.0.x", - "std-mocks": "^1.0.1", - "through2": "^3.0.1", - "triple-beam": "^1.3.0", - "winston-compat": "^0.1.5", - "winston-transport": "^4.4.0" - } - }, - "yargs": { - "version": "file:../../common/temp/node_modules/.pnpm/yargs@17.2.1/node_modules/yargs", - "requires": { - "@types/chai": "^4.2.11", - "@types/mocha": "^9.0.0", - "@types/node": "^14.11.2", - "@wessberg/rollup-plugin-ts": "^1.3.2", - "c8": "^7.7.0", - "chai": "^4.2.0", - "chalk": "^4.0.0", - "cliui": "^7.0.2", - "coveralls": "^3.0.9", - "cpr": "^3.0.1", - "cross-env": "^7.0.2", - "cross-spawn": "^7.0.0", - "escalade": "^3.1.1", - "eslint": "^7.23.0", - "get-caller-file": "^2.0.5", - "gts": "^3.0.0", - "hashish": "0.0.4", - "mocha": "^9.0.0", - "require-directory": "^2.1.1", - "rimraf": "^3.0.2", - "rollup": "^2.23.0", - "rollup-plugin-cleanup": "^3.1.1", - "rollup-plugin-terser": "^7.0.2", - "string-width": "^4.2.0", - "typescript": "^4.0.2", - "which": "^2.0.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2", - "yargs-test-extends": "^1.0.1" - } - }, - "yargs-parser": { - "version": "file:../../common/temp/node_modules/.pnpm/yargs-parser@20.2.9/node_modules/yargs-parser", - "requires": { - "@types/chai": "^4.2.11", - "@types/mocha": "^8.0.0", - "@types/node": "^14.0.0", - "@typescript-eslint/eslint-plugin": "^3.10.1", - "@typescript-eslint/parser": "^3.10.1", - "@wessberg/rollup-plugin-ts": "^1.2.28", - "c8": "^7.3.0", - "chai": "^4.2.0", - "cross-env": "^7.0.2", - "eslint": "^7.0.0", - "eslint-plugin-import": "^2.20.1", - "eslint-plugin-node": "^11.0.0", - "gts": "^3.0.0", - "mocha": "^9.0.0", - "puppeteer": "^10.0.0", - "rimraf": "^3.0.2", - "rollup": "^2.22.1", - "rollup-plugin-cleanup": "^3.1.1", - "serve": "^12.0.0", - "standardx": "^7.0.0", - "start-server-and-test": "^1.11.2", - "ts-transform-default-export": "^1.0.2", - "typescript": "^4.0.0" - } - } - } -} diff --git a/libraries/fabric-shim/package.json b/libraries/fabric-shim/package.json index 668866eb7..99f2b9b98 100644 --- a/libraries/fabric-shim/package.json +++ b/libraries/fabric-shim/package.json @@ -54,7 +54,7 @@ }, "dependencies": { "@fidm/x509": "^1.2.1", - "@grpc/grpc-js": "1.8.1", + "@grpc/grpc-js": "1.8.15", "@grpc/proto-loader": "^0.6.6", "@hyperledger/fabric-protos": "0.1.0-dev.2300102001.1", "@types/node": "^16.11.1", diff --git a/libraries/fabric-shim/test/unit/handler.js b/libraries/fabric-shim/test/unit/handler.js index fb8b2389f..57d039461 100644 --- a/libraries/fabric-shim/test/unit/handler.js +++ b/libraries/fabric-shim/test/unit/handler.js @@ -642,7 +642,7 @@ describe('Handler', () => { Handler.__set__('MsgQueueHandler', mockMsgQueueHandler); Handler.__set__('newErrorMsg', mockNewErrorMsg); - mockStream = {write: (sinon.stub()), on: mockEventEmitter, cancel: sinon.stub(), end: sinon.stub()}; + mockStream = {write: (sinon.stub()), on: mockEventEmitter, end: sinon.stub()}; handler = new Handler.ChaincodeMessageHandler(mockStream, mockChaincodeImpl); handler.chat('some starter message'); @@ -815,7 +815,7 @@ describe('Handler', () => { eventReg[event] = cb; }; - const mockStream = {write: sinon.stub(), on: mockEventEmitter, cancel: sinon.stub(), end: sinon.stub()}; + const mockStream = {write: sinon.stub(), on: mockEventEmitter, end: sinon.stub()}; const handler = new Handler.ChaincodeMessageHandler(mockStream, mockChaincodeImpl); handler.chat('some starter message'); @@ -823,7 +823,7 @@ describe('Handler', () => { eventReg.end(); expect(mockStream.write.calledOnce).to.be.true; - expect(mockStream.cancel.calledOnce).to.be.true; + expect(mockStream.end.calledOnce).to.be.true; }); }); From 753bf8af0fdda5ee8d8aabcd80d5851f1063413b Mon Sep 17 00:00:00 2001 From: "Mark S. Lewis" Date: Fri, 16 Jun 2023 13:42:43 +0100 Subject: [PATCH 5/6] Fix Stub getTxTimestamp() and getDateTimestamp() functions (#404) These were not interpreted correctly from the protocol buffer transaction timestamp. Signed-off-by: Mark S. Lewis --- common/config/rush/pnpm-lock.yaml | 12 +++++++----- libraries/fabric-shim/lib/stub.js | 9 ++++++--- libraries/fabric-shim/package.json | 1 + libraries/fabric-shim/test/unit/stub.js | 26 +++++++++++++++++++------ 4 files changed, 34 insertions(+), 14 deletions(-) diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 937c7a5d4..bf85dd9b7 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -114,6 +114,7 @@ dependencies: istanbul-api: 1.3.7 jsdoc: 3.6.10 jsverify: 0.8.4 + long: 5.2.3 merge-stream: 2.0.0 mocha: 9.1.3 mockery: 2.1.0 @@ -405,7 +406,7 @@ packages: dependencies: '@types/long': 4.0.2 lodash.camelcase: 4.3.0 - long: 5.2.0 + long: 5.2.3 protobufjs: 6.11.2 yargs: 16.2.0 dev: false @@ -4449,8 +4450,8 @@ packages: resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} dev: false - /long/5.2.0: - resolution: {integrity: sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w==} + /long/5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} dev: false /loose-envify/1.4.0: @@ -5537,7 +5538,7 @@ packages: '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 '@types/node': 16.11.33 - long: 5.2.0 + long: 5.2.3 dev: false /pseudomap/1.0.2: @@ -7348,7 +7349,7 @@ packages: dev: false file:projects/fabric-shim.tgz: - resolution: {integrity: sha512-K1Pj+qTUOLtW7ciRo2Q/o2xqtgj2CTl+nK/PxorYvLv7uyEfPTQmv1JSFZq8V1yHaCoNDBY4Ccy55vCi6Wc0jg==, tarball: file:projects/fabric-shim.tgz} + resolution: {integrity: sha512-KT+4EdqGZZT4CSrD8nvbPtIza0k88vAfS6GuJiA6qvfekLIBiX3Yc46OsXugJ0+X+/MAOBaKnI4kRNL4Butvnw==, tarball: file:projects/fabric-shim.tgz} name: '@rush-temp/fabric-shim' version: 0.0.0 dependencies: @@ -7366,6 +7367,7 @@ packages: eslint: 6.8.0 fast-safe-stringify: 2.1.1 fs-extra: 10.1.0 + long: 5.2.3 mocha: 9.1.3 mockery: 2.1.0 nyc: 15.1.0 diff --git a/libraries/fabric-shim/lib/stub.js b/libraries/fabric-shim/lib/stub.js index 6e92773c9..1dae7847d 100644 --- a/libraries/fabric-shim/lib/stub.js +++ b/libraries/fabric-shim/lib/stub.js @@ -12,6 +12,7 @@ const {msp, peer, common} = require('@hyperledger/fabric-protos'); const util = require('util'); const crypto = require('crypto'); const {ChaincodeEvent} = require('@hyperledger/fabric-protos/lib/peer'); +const Long = require('long'); const logger = require('./logger').getLogger('lib/stub.js'); @@ -416,7 +417,10 @@ class ChaincodeStub { * Object returned: { seconds: [Long] { low: [int32], high: [int32], unsigned: [bool] }, nanos: [int32] } */ getTxTimestamp() { - return this.txTimestamp; + return { + nanos: this.txTimestamp.getNanos(), + seconds: Long.fromNumber(this.txTimestamp.getSeconds(), true), + }; } /** @@ -425,8 +429,7 @@ class ChaincodeStub { * client's date, and will have the same value across all endorsers. */ getDateTimestamp() { - const date = new Date(this.txTimestamp.seconds * 1e3 + this.txTimestamp.nanos / 1e6); - return date; + return this.txTimestamp.toDate(); } /** diff --git a/libraries/fabric-shim/package.json b/libraries/fabric-shim/package.json index 99f2b9b98..ec3da1340 100644 --- a/libraries/fabric-shim/package.json +++ b/libraries/fabric-shim/package.json @@ -63,6 +63,7 @@ "fabric-shim-api": "2.5.3", "fast-safe-stringify": "^2.1.1", "fs-extra": "^10.0.1", + "long": "^5.2.3", "reflect-metadata": "^0.1.13", "winston": "^3.7.2", "yargs": "^17.4.0", diff --git a/libraries/fabric-shim/test/unit/stub.js b/libraries/fabric-shim/test/unit/stub.js index add33f455..b907fc296 100644 --- a/libraries/fabric-shim/test/unit/stub.js +++ b/libraries/fabric-shim/test/unit/stub.js @@ -8,6 +8,8 @@ const sinon = require('sinon'); const chai = require('chai'); chai.use(require('chai-as-promised')); +const { Timestamp } = require('google-protobuf/google/protobuf/timestamp_pb'); +const Long = require('long'); // chai.config.truncateThreshold = 0; const expect = chai.expect; const rewire = require('rewire'); @@ -556,19 +558,31 @@ describe('Stub', () => { describe('getTxTimestamp', () => { it ('should return transaction timestamp', () => { const stub = new Stub('dummyClient', 'dummyChannelId', 'dummyTxid', chaincodeInput); - - stub.txTimestamp = 'some timestamp'; - - expect(stub.getTxTimestamp()).to.deep.equal('some timestamp'); + const millis = Date.now(); + const seconds = Math.trunc(millis / 1000); + const nanos = (millis - (seconds * 1000)) * 1e6; + const timestamp = new Timestamp(); + timestamp.setSeconds(seconds); + timestamp.setNanos(nanos); + stub.txTimestamp = timestamp; + + const actual = stub.getTxTimestamp(); + + expect(actual).to.deep.include({ + nanos, + seconds: Long.fromNumber(seconds, true), + }); }); }); describe('getDateTimestamp', () => { it ('should return transaction date as Node.js Date object', () => { const stub = new Stub('dummyClient', 'dummyChannelId', 'dummyTxid', chaincodeInput); - stub.txTimestamp = {seconds: 1606233385, nanos: 54000000}; + const now = new Date(); + const timestamp = Timestamp.fromDate(now); + stub.txTimestamp = timestamp; - expect(stub.getDateTimestamp()).to.deep.equal(new Date(1606233385054)); + expect(stub.getDateTimestamp().toISOString()).to.equal(now.toISOString()); }); }); From 57fd6947cb392cd121e2c7646796bb213ed3c855 Mon Sep 17 00:00:00 2001 From: "Mark S. Lewis" Date: Fri, 16 Jun 2023 14:54:37 +0100 Subject: [PATCH 6/6] Release v2.5.4 (#402) Modify `updateversions.sh` script so that it runs on default MacOS bash version. Signed-off-by: Mark S. Lewis --- CHANGELOG.md | 15 +++++++++-- apis/fabric-contract-api/package.json | 6 ++--- apis/fabric-shim-api/package.json | 4 +-- docker/fabric-nodeenv/package.json | 4 +-- docs/package.json | 4 +-- libraries/fabric-ledger/package.json | 6 ++--- libraries/fabric-shim/package.json | 8 +++--- test/chaincodes/annotations/package.json | 6 ++--- .../src/test_contract/expected-metadata.json | 2 +- test/chaincodes/clientidentity/package.json | 6 ++--- test/chaincodes/crosschaincode/package.json | 6 ++--- test/chaincodes/crosschaincode2/package.json | 6 ++--- test/chaincodes/crud/package.json | 6 ++--- test/chaincodes/events/package.json | 6 ++--- test/chaincodes/ledger/package.json | 8 +++--- test/chaincodes/privateData/package.json | 6 ++--- test/chaincodes/query/package.json | 6 ++--- test/chaincodes/scenario/package.json | 6 ++--- test/e2e/package.json | 4 +-- test/e2e/scenario.js | 2 +- test/fv/package.json | 8 +++--- tools/scripts/updateversions.sh | 27 +++++++++---------- tools/toolchain/package.json | 2 +- 23 files changed, 82 insertions(+), 72 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a1b305473..9d035b64f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,17 @@ -## 2.5.3 -Tue Mar 7 09:36:52 GMT 2023 +## v2.5.4 +Wed 14 Jun 2023 12:29:35 BST + +* [690c91a9](https://github.com/hyperledger/fabric-chaincode-node/commit/690c91a9) Using the CLI provided gRPC configurations when starting the chaincode (#401) +* [cf179e7b](https://github.com/hyperledger/fabric-chaincode-node/commit/cf179e7b) Update SetEvent documentation (#399) +* [6f66124b](https://github.com/hyperledger/fabric-chaincode-node/commit/6f66124b) Update COMPATIBILITY.md for Node 18. (#396) +## v2.5.3 +Tue Mar 7 09:36:52 GMT 2023 +* [7d865afd](https://github.com/hyperledger/fabric-chaincode-node/commit/7d865afd) Update to new version Update to the .github workflows to handle the branch rename. +* [220ac53b](https://github.com/hyperledger/fabric-chaincode-node/commit/220ac53b) Clean-up npm engine specs (#394) +* [5d72d902](https://github.com/hyperledger/fabric-chaincode-node/commit/5d72d902) Nominate Mark Lewis as maintainer, Remove James Taylor (#391) +* [385efa8b](https://github.com/hyperledger/fabric-chaincode-node/commit/385efa8b) Add scheduled builds (#392) +* [e9c9eb79](https://github.com/hyperledger/fabric-chaincode-node/commit/e9c9eb79) Update to Node18 ## v2.5.2 Wed Jan 25 14:21:32 GMT 2023 diff --git a/apis/fabric-contract-api/package.json b/apis/fabric-contract-api/package.json index 4526ed4b8..1b069a95c 100644 --- a/apis/fabric-contract-api/package.json +++ b/apis/fabric-contract-api/package.json @@ -1,7 +1,7 @@ { "name": "fabric-contract-api", - "version": "2.5.3", - "tag": "unstable", + "version": "2.5.4", + "tag": "latest", "description": "A node.js implementation of Hyperledger Fabric chaincode shim, to allow endorsing peers and user-provided chaincodes to communicate with each other", "main": "index.js", "repository": { @@ -45,7 +45,7 @@ "lines": 100 }, "dependencies": { - "fabric-shim-api": "2.5.3", + "fabric-shim-api": "2.5.4", "class-transformer": "^0.4.0", "fast-safe-stringify": "^2.1.1", "get-params": "^0.1.2", diff --git a/apis/fabric-shim-api/package.json b/apis/fabric-shim-api/package.json index 05480d8e8..a3040c578 100644 --- a/apis/fabric-shim-api/package.json +++ b/apis/fabric-shim-api/package.json @@ -1,7 +1,7 @@ { "name": "fabric-shim-api", - "version": "2.5.3", - "tag": "unstable", + "version": "2.5.4", + "tag": "latest", "description": "A node.js API of Hyperledger Fabric chaincode shim, to allow endorsing peers and user-provided chaincodes to communicate with each other", "main": "index.js", "repository": { diff --git a/docker/fabric-nodeenv/package.json b/docker/fabric-nodeenv/package.json index 034531722..caed941e5 100644 --- a/docker/fabric-nodeenv/package.json +++ b/docker/fabric-nodeenv/package.json @@ -1,6 +1,6 @@ { "name": "fabric-nodeenv", - "version": "2.5.3", + "version": "2.5.4", "description": "", "main": "docker.js", "scripts": { @@ -11,6 +11,6 @@ "license": "Apache-2.0", "dependencies": { "git-rev-sync": "3.0.1", - "toolchain": "2.5.3" + "toolchain": "2.5.4" } } diff --git a/docs/package.json b/docs/package.json index 63055b5ec..1bf1f6753 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "fabric-shim-docs", - "version": "2.5.3", + "version": "2.5.4", "description": "", "private": true, "scripts": { @@ -8,7 +8,7 @@ "docs": "rimraf ./gen && jsdoc -c ./_jsdoc.json" }, "dependencies": { - "fabric-ledger": "2.5.3" + "fabric-ledger": "2.5.4" }, "devDependencies": { "ink-docstrap": "^1.3.2", diff --git a/libraries/fabric-ledger/package.json b/libraries/fabric-ledger/package.json index 4f22914e3..dbba7a97b 100644 --- a/libraries/fabric-ledger/package.json +++ b/libraries/fabric-ledger/package.json @@ -1,7 +1,7 @@ { "name": "fabric-ledger", - "version": "2.5.3", - "tag": "unstable", + "version": "2.5.4", + "tag": "latest", "description": "A node.js implementation of Hyperledger Fabric ledger api, to allow access to ledger data from smart contracts", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -48,7 +48,7 @@ "lines": 100 }, "dependencies": { - "fabric-contract-api": "2.5.3", + "fabric-contract-api": "2.5.4", "winston": "^3.7.2" }, "devDependencies": { diff --git a/libraries/fabric-shim/package.json b/libraries/fabric-shim/package.json index ec3da1340..e16993a38 100644 --- a/libraries/fabric-shim/package.json +++ b/libraries/fabric-shim/package.json @@ -1,7 +1,7 @@ { "name": "fabric-shim", - "version": "2.5.3", - "tag": "unstable", + "version": "2.5.4", + "tag": "latest", "description": "A node.js implementation of Hyperledger Fabric chaincode shim, to allow endorsing peers and user-provided chaincodes to communicate with each other", "main": "index.js", "bin": { @@ -59,8 +59,8 @@ "@hyperledger/fabric-protos": "0.1.0-dev.2300102001.1", "@types/node": "^16.11.1", "ajv": "^6.12.2", - "fabric-contract-api": "2.5.3", - "fabric-shim-api": "2.5.3", + "fabric-contract-api": "2.5.4", + "fabric-shim-api": "2.5.4", "fast-safe-stringify": "^2.1.1", "fs-extra": "^10.0.1", "long": "^5.2.3", diff --git a/test/chaincodes/annotations/package.json b/test/chaincodes/annotations/package.json index 5c3894bf3..c6872435c 100644 --- a/test/chaincodes/annotations/package.json +++ b/test/chaincodes/annotations/package.json @@ -13,13 +13,13 @@ "typings": "dist/index.d.ts", "engine-strict": true, "engineStrict": true, - "version": "2.5.3", + "version": "2.5.4", "author": "", "license": "APACHE-2.0", "dependencies": { "@types/node": "^16.11.4", - "fabric-contract-api": "2.5.3", - "fabric-shim": "2.5.3", + "fabric-contract-api": "2.5.4", + "fabric-shim": "2.5.4", "ts-node": "^3.3.0", "tslint": "^5.6.0", "typescript": "^4.0.2" diff --git a/test/chaincodes/annotations/src/test_contract/expected-metadata.json b/test/chaincodes/annotations/src/test_contract/expected-metadata.json index 5c839b902..8d6c6ec50 100644 --- a/test/chaincodes/annotations/src/test_contract/expected-metadata.json +++ b/test/chaincodes/annotations/src/test_contract/expected-metadata.json @@ -107,7 +107,7 @@ } }, "info": { - "version": "2.5.3", + "version": "2.5.4", "title": "ts_chaincode" }, "components": { diff --git a/test/chaincodes/clientidentity/package.json b/test/chaincodes/clientidentity/package.json index 2d70a5b89..daf9186e6 100644 --- a/test/chaincodes/clientidentity/package.json +++ b/test/chaincodes/clientidentity/package.json @@ -10,11 +10,11 @@ "main": "index.js", "engine-strict": true, "engineStrict": true, - "version": "2.5.3", + "version": "2.5.4", "author": "", "license": "Apache-2.0", "dependencies": { - "fabric-shim": "2.5.3", - "fabric-contract-api": "2.5.3" + "fabric-shim": "2.5.4", + "fabric-contract-api": "2.5.4" } } diff --git a/test/chaincodes/crosschaincode/package.json b/test/chaincodes/crosschaincode/package.json index 6d6075cf2..0c4add61b 100644 --- a/test/chaincodes/crosschaincode/package.json +++ b/test/chaincodes/crosschaincode/package.json @@ -10,11 +10,11 @@ "main": "index.js", "engine-strict": true, "engineStrict": true, - "version": "2.5.3", + "version": "2.5.4", "author": "", "license": "Apache-2.0", "dependencies": { - "fabric-shim": "2.5.3", - "fabric-contract-api": "2.5.3" + "fabric-shim": "2.5.4", + "fabric-contract-api": "2.5.4" } } diff --git a/test/chaincodes/crosschaincode2/package.json b/test/chaincodes/crosschaincode2/package.json index bdb48d8c7..b3567b50e 100644 --- a/test/chaincodes/crosschaincode2/package.json +++ b/test/chaincodes/crosschaincode2/package.json @@ -10,11 +10,11 @@ "main": "index.js", "engine-strict": true, "engineStrict": true, - "version": "2.5.3", + "version": "2.5.4", "author": "", "license": "Apache-2.0", "dependencies": { - "fabric-shim": "2.5.3", - "fabric-contract-api": "2.5.3" + "fabric-shim": "2.5.4", + "fabric-contract-api": "2.5.4" } } diff --git a/test/chaincodes/crud/package.json b/test/chaincodes/crud/package.json index 0943cf454..a6d64df65 100644 --- a/test/chaincodes/crud/package.json +++ b/test/chaincodes/crud/package.json @@ -10,11 +10,11 @@ "main": "index.js", "engine-strict": true, "engineStrict": true, - "version": "2.5.3", + "version": "2.5.4", "author": "", "license": "Apache-2.0", "dependencies": { - "fabric-shim": "2.5.3", - "fabric-contract-api": "2.5.3" + "fabric-shim": "2.5.4", + "fabric-contract-api": "2.5.4" } } diff --git a/test/chaincodes/events/package.json b/test/chaincodes/events/package.json index b96b55096..d69f61f2d 100644 --- a/test/chaincodes/events/package.json +++ b/test/chaincodes/events/package.json @@ -10,11 +10,11 @@ "main": "index.js", "engine-strict": true, "engineStrict": true, - "version": "2.5.3", + "version": "2.5.4", "author": "", "license": "Apache-2.0", "dependencies": { - "fabric-shim": "2.5.3", - "fabric-contract-api": "2.5.3" + "fabric-shim": "2.5.4", + "fabric-contract-api": "2.5.4" } } diff --git a/test/chaincodes/ledger/package.json b/test/chaincodes/ledger/package.json index 24a6463ac..153a49ac7 100644 --- a/test/chaincodes/ledger/package.json +++ b/test/chaincodes/ledger/package.json @@ -10,12 +10,12 @@ "main": "index.js", "engine-strict": true, "engineStrict": true, - "version": "2.5.3", + "version": "2.5.4", "author": "", "license": "Apache-2.0", "dependencies": { - "fabric-shim": "2.5.3", - "fabric-contract-api": "2.5.3", - "fabric-ledger": "2.5.3" + "fabric-shim": "2.5.4", + "fabric-contract-api": "2.5.4", + "fabric-ledger": "2.5.4" } } diff --git a/test/chaincodes/privateData/package.json b/test/chaincodes/privateData/package.json index b7ba51c65..67e3a194b 100644 --- a/test/chaincodes/privateData/package.json +++ b/test/chaincodes/privateData/package.json @@ -11,11 +11,11 @@ "main": "index.js", "engine-strict": true, "engineStrict": true, - "version": "2.5.3", + "version": "2.5.4", "author": "", "license": "Apache-2.0", "dependencies": { - "fabric-shim": "2.5.3", - "fabric-contract-api": "2.5.3" + "fabric-shim": "2.5.4", + "fabric-contract-api": "2.5.4" } } diff --git a/test/chaincodes/query/package.json b/test/chaincodes/query/package.json index 04db2fd98..0026b142c 100644 --- a/test/chaincodes/query/package.json +++ b/test/chaincodes/query/package.json @@ -10,11 +10,11 @@ "main": "index.js", "engine-strict": true, "engineStrict": true, - "version": "2.5.3", + "version": "2.5.4", "author": "", "license": "Apache-2.0", "dependencies": { - "fabric-shim": "2.5.3", - "fabric-contract-api": "2.5.3" + "fabric-shim": "2.5.4", + "fabric-contract-api": "2.5.4" } } diff --git a/test/chaincodes/scenario/package.json b/test/chaincodes/scenario/package.json index 4219dc2d1..01df0fd67 100644 --- a/test/chaincodes/scenario/package.json +++ b/test/chaincodes/scenario/package.json @@ -10,11 +10,11 @@ "main": "index.js", "engine-strict": true, "engineStrict": true, - "version": "2.5.3", + "version": "2.5.4", "author": "", "license": "Apache-2.0", "dependencies": { - "fabric-shim": "2.5.3", - "fabric-contract-api": "2.5.3" + "fabric-shim": "2.5.4", + "fabric-contract-api": "2.5.4" } } diff --git a/test/e2e/package.json b/test/e2e/package.json index 64ce761be..2aae143c8 100644 --- a/test/e2e/package.json +++ b/test/e2e/package.json @@ -1,6 +1,6 @@ { "name": "fabric-e2e-tests", - "version": "2.5.3", + "version": "2.5.4", "description": "", "main": "docker.js", "scripts": { @@ -13,7 +13,7 @@ "devDependencies": { "git-rev-sync": "3.0.1", "gulp": "^4.0.2", - "toolchain": "2.5.3", + "toolchain": "2.5.4", "delay": "5.0.0", "fs-extra": "^10.0.1", "ip": "^1.1.5", diff --git a/test/e2e/scenario.js b/test/e2e/scenario.js index cde10a677..d5dc95511 100644 --- a/test/e2e/scenario.js +++ b/test/e2e/scenario.js @@ -57,7 +57,7 @@ const queryFunctions = async () => { const metadata = JSON.parse(stdout); - const expectedMetadata = '{"$schema":"https://hyperledger.github.io/fabric-chaincode-node/main/api/contract-schema.json","contracts":{"UpdateValues":{"name":"UpdateValues","contractInstance":{"name":"UpdateValues","logBuffer":{"output":[]},"default":true},"transactions":[{"name":"setup","tags":["SUBMIT","submitTx"]},{"name":"setNewAssetValue","tags":["SUBMIT","submitTx"],"parameters":[{"name":"arg0","description":"Argument 0","schema":{"type":"string"}}]},{"name":"doubleAssetValue","tags":["SUBMIT","submitTx"]}],"info":{"title":"","version":""}},"RemoveValues":{"name":"RemoveValues","contractInstance":{"name":"RemoveValues"},"transactions":[{"name":"quarterAssetValue","tags":["SUBMIT","submitTx"]},{"name":"getAssetValue","tags":["SUBMIT","submitTx"]}],"info":{"title":"","version":""}},"org.hyperledger.fabric":{"name":"org.hyperledger.fabric","contractInstance":{"name":"org.hyperledger.fabric"},"transactions":[{"name":"GetMetadata"}],"info":{"title":"","version":""}}},"info":{"version":"2.5.3","title":"chaincode"},"components":{"schemas":{}}}'; + const expectedMetadata = '{"$schema":"https://hyperledger.github.io/fabric-chaincode-node/main/api/contract-schema.json","contracts":{"UpdateValues":{"name":"UpdateValues","contractInstance":{"name":"UpdateValues","logBuffer":{"output":[]},"default":true},"transactions":[{"name":"setup","tags":["SUBMIT","submitTx"]},{"name":"setNewAssetValue","tags":["SUBMIT","submitTx"],"parameters":[{"name":"arg0","description":"Argument 0","schema":{"type":"string"}}]},{"name":"doubleAssetValue","tags":["SUBMIT","submitTx"]}],"info":{"title":"","version":""}},"RemoveValues":{"name":"RemoveValues","contractInstance":{"name":"RemoveValues"},"transactions":[{"name":"quarterAssetValue","tags":["SUBMIT","submitTx"]},{"name":"getAssetValue","tags":["SUBMIT","submitTx"]}],"info":{"title":"","version":""}},"org.hyperledger.fabric":{"name":"org.hyperledger.fabric","contractInstance":{"name":"org.hyperledger.fabric"},"transactions":[{"name":"GetMetadata"}],"info":{"title":"","version":""}}},"info":{"version":"2.5.4","title":"chaincode"},"components":{"schemas":{}}}'; const schema = fs.readFileSync(path.join(__dirname, '../../apis/fabric-contract-api/schema/contract-schema.json')); diff --git a/test/fv/package.json b/test/fv/package.json index cc3155fc5..aa79bb6df 100644 --- a/test/fv/package.json +++ b/test/fv/package.json @@ -1,6 +1,6 @@ { "name": "fvtests", - "version": "2.5.3", + "version": "2.5.4", "description": "fv tests", "testFabricVersion": "main", "testFabricThirdParty": "0.4.15", @@ -25,9 +25,9 @@ "del": "^3.0.0", "delay": "5.0.0", "eslint": "^6.6.0", - "fabric-contract-api": "2.5.3", - "fabric-shim": "2.5.3", - "fabric-shim-api": "2.5.3", + "fabric-contract-api": "2.5.4", + "fabric-shim": "2.5.4", + "fabric-shim-api": "2.5.4", "fs-extra": "^10.0.1", "git-rev-sync": "3.0.1", "gulp": "^4.0.2", diff --git a/tools/scripts/updateversions.sh b/tools/scripts/updateversions.sh index a73996c1c..5c223e4f6 100755 --- a/tools/scripts/updateversions.sh +++ b/tools/scripts/updateversions.sh @@ -1,24 +1,23 @@ -#!/bin/bash -# Note uses bash4.4 or later features, and sponge from GNU moreutils +#!/usr/bin/env bash + set -eo pipefail -if [ -z $1 ]; then - echo "Need to have the first arg set to the new package.json version " +if [ -z "$1" ]; then + echo "Need to have the first arg set to the new package.json version" exit 1 fi -NEW_VERSION=$1 +NEW_VERSION="$1" echo "Setting new version to '${NEW_VERSION}'" -readarray -d '' PACKAGES < <(find . -name package.json -not -path '*/node_modules/*' -not -path '*/common/*') - -for PACKAGE in ${PACKAGES} -do - echo "Updating '${PACKAGE}'" - jq --arg VER "${NEW_VERSION}" '.version=$VER' "${PACKAGE}" | sponge "${PACKAGE}" -done +while read -r PACKAGE; do + echo "Updating '${PACKAGE}'" + ( cd "$(dirname "${PACKAGE}")" && npm --allow-same-version --no-git-tag-version version "${NEW_VERSION}" ) +done <<< "$(find . -type d \( -name node_modules -o -name common \) -prune -o -type f -name package.json -print)" +MAJOR_MINOR=$(cut -d. -f-2 <<< "${NEW_VERSION}") -echo "Please also check these files" +echo "Please also check these files containing ${MAJOR_MINOR}.n" # NB - the grep regexp syntax is a little different -find . -name "*.js" -not -path '*/node_modules/*' -not -path '*/common/*' | xargs grep "2\.4\.\?[0-9]" \ No newline at end of file +MAJOR_MINOR_REGEX="${MAJOR_MINOR/./\.}\.\?[0-9]" +find . -type d \( -name node_modules -o -name common \) -prune -o -type f -name '*.js' -exec grep "${MAJOR_MINOR_REGEX}" {} + diff --git a/tools/toolchain/package.json b/tools/toolchain/package.json index 2b55329aa..cc5ab5477 100644 --- a/tools/toolchain/package.json +++ b/tools/toolchain/package.json @@ -1,6 +1,6 @@ { "name": "toolchain", - "version": "2.5.3", + "version": "2.5.4", "description": "", "main": "index.js", "scripts": {