From 26c3fa7303dbad27d3dbff3b82348c7d430ee4d7 Mon Sep 17 00:00:00 2001 From: Pavel Date: Wed, 8 Sep 2021 13:00:24 +0300 Subject: [PATCH] Update JS SDK version and migrate to the new JS API (#11) --- .prettierrc.js | 8 + aqua/dht/dht-example.aqua | 2 + aqua/examples/imports_exports/declare.aqua | 1 + aqua/examples/imports_exports/exports.aqua | 1 - aqua/examples/new-api-full.aqua | 25 + aqua/examples/new-api.aqua | 6 + package-lock.json | 10392 ++++++---------- package.json | 79 +- src/compiled/dht/dht-example.ts | 710 ++ src/compiled/examples/assignment.ts | 125 +- src/compiled/examples/callArrow.ts | 91 +- src/compiled/examples/co.ts | 135 +- src/compiled/examples/complex.ts | 187 +- src/compiled/examples/constants.ts | 161 +- src/compiled/examples/dataAlias.ts | 105 +- src/compiled/examples/example.ts | 224 +- src/compiled/examples/fldist-sample.ts | 109 +- src/compiled/examples/fold.ts | 122 +- src/compiled/examples/foldJoin.ts | 112 +- src/compiled/examples/func.ts | 105 +- src/compiled/examples/helloWorld.ts | 111 +- src/compiled/examples/if.ts | 93 +- .../examples/imports_exports/declare.ts | 72 + .../examples/imports_exports/exports.ts | 105 +- .../examples/imports_exports/gen/OneMore.ts | 64 +- .../examples/imports_exports/import2.ts | 91 +- .../examples/imports_exports/imports-empty.ts | 573 + .../examples/imports_exports/imports.ts | 108 +- .../examples/imports_exports/subImport.ts | 109 +- src/compiled/examples/multiReturn.ts | 230 +- src/compiled/examples/nestedFuncs.ts | 153 +- src/compiled/examples/new-api-full.ts | 600 + src/compiled/examples/new-api.ts | 168 + src/compiled/examples/on.ts | 115 +- src/compiled/examples/option.ts | 231 +- src/compiled/examples/par.ts | 135 +- src/compiled/examples/passArgs.ts | 185 +- src/compiled/examples/println.ts | 109 +- src/compiled/examples/pushToStream.ts | 105 +- src/compiled/examples/returnLiteral.ts | 53 +- src/compiled/examples/stream.ts | 111 +- src/compiled/examples/streamArgs.ts | 162 +- src/compiled/examples/streamResults.ts | 153 +- src/compiled/examples/subImportUsage.ts | 122 +- src/compiled/examples/topology.ts | 200 +- src/compiled/examples/tryCatch.ts | 163 +- src/compiled/examples/tryOtherwise.ts | 163 +- src/compiled/examples/via.ts | 258 +- src/examples/assignment.ts | 9 +- src/examples/callArrowCall.ts | 19 +- src/examples/coCall.ts | 24 +- src/examples/complex.ts | 26 +- src/examples/constantsCall.ts | 19 +- src/examples/dataAliasCall.ts | 22 +- src/examples/declareCall.ts | 35 +- src/examples/foldCall.ts | 24 +- src/examples/foldJoinCall.ts | 9 +- src/examples/funcCall.ts | 15 +- src/examples/helloWorldCall.ts | 16 +- src/examples/if.ts | 14 +- src/examples/import2Call.ts | 29 +- src/examples/multiReturnCall.ts | 26 +- src/examples/nestedFuncsCall.ts | 16 +- src/examples/onCall.ts | 9 +- src/examples/parCall.ts | 31 +- src/examples/passArgsCall.ts | 18 +- src/examples/pushToStreamCall.ts | 18 +- src/examples/returnLiteralCall.ts | 10 +- src/examples/streamArgsCall.ts | 18 +- src/examples/streamCall.ts | 18 +- src/examples/streamResultsCall.ts | 22 +- src/examples/subImportUsageCall.ts | 37 +- src/examples/topologyCall.ts | 34 +- src/examples/tryCatchCall.ts | 13 +- src/examples/tryOtherwiseCall.ts | 12 +- src/examples/useOptionalCall.ts | 43 +- src/examples/viaCall.ts | 27 +- src/index.ts | 28 +- src/pubsub.ts | 33 +- src/run-examples.ts | 376 +- tsconfig.json | 3 +- 81 files changed, 10592 insertions(+), 7903 deletions(-) create mode 100644 .prettierrc.js create mode 100644 aqua/examples/new-api-full.aqua create mode 100644 aqua/examples/new-api.aqua create mode 100644 src/compiled/dht/dht-example.ts create mode 100644 src/compiled/examples/imports_exports/declare.ts create mode 100644 src/compiled/examples/imports_exports/imports-empty.ts create mode 100644 src/compiled/examples/new-api-full.ts create mode 100644 src/compiled/examples/new-api.ts diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 0000000..36f36b8 --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,8 @@ +module.exports = { + semi: true, + trailingComma: 'all', + singleQuote: true, + printWidth: 120, + tabWidth: 4, + useTabs: false, +}; diff --git a/aqua/dht/dht-example.aqua b/aqua/dht/dht-example.aqua index 41a7778..406ebab 100644 --- a/aqua/dht/dht-example.aqua +++ b/aqua/dht/dht-example.aqua @@ -2,6 +2,8 @@ import "@fluencelabs/aqua-dht/pubsub.aqua" import "@fluencelabs/aqua-dht/dht.aqua" import "@fluencelabs/aqua-lib/builtin.aqua" +export getNeighbours, initTopicAndSubscribe, findSubscribers + func put_value(initial_peer: string, value: string) -> string: initTopicAndSubscribe(initial_peer, "some-const3", value, nil, nil) <- "OK" diff --git a/aqua/examples/imports_exports/declare.aqua b/aqua/examples/imports_exports/declare.aqua index afb1da4..cbe7267 100644 --- a/aqua/examples/imports_exports/declare.aqua +++ b/aqua/examples/imports_exports/declare.aqua @@ -1,4 +1,5 @@ module FooBars declares decl_foo, decl_bar, SuperFoo, DECLARE_CONST, DECLARE_CONST2 +export SuperFoo const DECLARE_CONST = "declare_const" const DECLARE_CONST2 = "declare_const2" diff --git a/aqua/examples/imports_exports/exports.aqua b/aqua/examples/imports_exports/exports.aqua index 3e78a96..d8785b6 100644 --- a/aqua/examples/imports_exports/exports.aqua +++ b/aqua/examples/imports_exports/exports.aqua @@ -1,6 +1,5 @@ module Exports declares some_string, MyExportSrv, EXPORT_CONST, some_random_func --- TODO: check it in TS after it will be implemented export some_string as string_from_lib export MyExportSrv diff --git a/aqua/examples/new-api-full.aqua b/aqua/examples/new-api-full.aqua new file mode 100644 index 0000000..3ed0fb6 --- /dev/null +++ b/aqua/examples/new-api-full.aqua @@ -0,0 +1,25 @@ +service ServiceWithDefaultId("defaultId"): + hello(s: string) + +service ServiceWithOUTDefaultId: + hello(s: string) + +service MoreMembers: + member1() + member2(s1: string) + member3(s1: string, s2: string) + member4(s1: string, s2: string, i: i32) -> i32 + member5(s1: string, s2: string, i: i32) -> i32 + +func f1(callback: string, i32 -> ()): + callback("hello, world", 42) + +func f2(num: i32, callback: string, i32 -> ()): + callback("hello, world", 42) + +func f3(num: i32, callback: string, i32 -> ()) -> string: + callback("hello, world", 42) + <- "hello world" + +func callBackZeroArgs(callback: -> ()): + callback() \ No newline at end of file diff --git a/aqua/examples/new-api.aqua b/aqua/examples/new-api.aqua new file mode 100644 index 0000000..064182d --- /dev/null +++ b/aqua/examples/new-api.aqua @@ -0,0 +1,6 @@ +service HelloWorld("default"): + sayHello(s: string) + getNumber() -> i32 + +func callMeBack(callback: string, i32 -> ()): + callback("hello, world", 42) \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index abe848c..fecaf5c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6398 +1,4076 @@ { - "name": "aquamarine-template", - "version": "0.3.9", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "aquamarine-template", - "version": "0.3.9", - "license": "MIT", - "dependencies": { - "@fluencelabs/aqua-dht-ts": "0.1.38", - "@fluencelabs/fluence": "0.10.1", - "@fluencelabs/fluence-network-environment": "1.0.10", - "deep-equal": "^2.0.5" - }, - "bin": { - "fldist": "dist/index.js" - }, - "devDependencies": { - "@fluencelabs/aqua-cli": "^0.2.2-221", - "@fluencelabs/aqua-dht": "0.1.38", - "@fluencelabs/aqua-lib": "0.1.14", - "ts-node": "^9.1.1", - "typescript": "^4.2.4" - } - }, - "node_modules/@chainsafe/libp2p-noise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-4.0.0.tgz", - "integrity": "sha512-Q9gcC1IzN8/aQQXl/ntRbldTD/3c35j5lK5guIKEB+QU/Ogi0EyaihkL3YGx9QrSiFTyz0ABlSfxA0Wxfw5R1A==", - "dependencies": { - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/hkdf": "^1.0.1", - "@stablelib/sha256": "^1.0.1", - "@stablelib/x25519": "^1.0.1", - "debug": "^4.3.1", - "it-buffer": "^0.1.1", - "it-length-prefixed": "^5.0.2", - "it-pair": "^1.0.0", - "it-pb-rpc": "^0.1.9", - "it-pipe": "^1.1.0", - "libp2p-crypto": "^0.19.0", - "peer-id": "^0.15.0", - "protobufjs": "^6.10.1", - "uint8arrays": "^2.0.5" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "dependencies": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/peer-id": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.3.tgz", - "integrity": "sha512-pass5tk6Fbaz7PTD/3fJg2KWqaproHY0B0Ki8GQMEuMjkoLRcS2Vqt9yy6ob/+8uGBmWjRLtbMhaLV4HTyMDfw==", - "dependencies": { - "class-is": "^1.1.0", - "libp2p-crypto": "^0.19.0", - "minimist": "^1.2.5", - "multiformats": "^9.4.5", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0" - }, - "bin": { - "peer-id": "src/bin.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/peer-id/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/@chainsafe/libp2p-noise/node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - }, - "node_modules/@fluencelabs/aqua-cli": { - "version": "0.2.2-221", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.2.2-221.tgz", - "integrity": "sha512-ktH8v0gXxHIld9mwsZ9LkR3GFjdwN09m5YjkCM0XIS0CMCpCr70xHvw6A0RKlPRq/ngGyVfbVJP9XSqAIYxV9g==", - "dev": true, - "bin": { - "aqua": "index.js", - "aqua-cli": "index.js", - "aqua-js": "index-experimental.js" - } - }, - "node_modules/@fluencelabs/aqua-dht": { - "version": "0.1.38", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-dht/-/aqua-dht-0.1.38.tgz", - "integrity": "sha512-rJkBmI0NFeNKiOJe+mUoz3uSjbB79LP7VpcC4yuHuDPC449gpALSubZHdVAlXTD7KVCS/2Phhh8WwEOyvlyN6g==", - "dev": true, - "dependencies": { - "@fluencelabs/aqua-lib": "^0.1.14" - } - }, - "node_modules/@fluencelabs/aqua-dht-ts": { - "version": "0.1.38", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-dht-ts/-/aqua-dht-ts-0.1.38.tgz", - "integrity": "sha512-IYvQieDxjoN+2E9cwGZvy5a5k1+wRlcjfZ2iezh+A4T0K+JEKavvp3k2qfq03bhrKjx8B+sE3kxOzJBGEmyVOA==", - "dependencies": { - "@fluencelabs/fluence": "^0.10.0" - } - }, - "node_modules/@fluencelabs/aqua-lib": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.1.14.tgz", - "integrity": "sha512-H2Q4gIvociUxc4J2mwmH0D+mrU2N2Z+enKCHgBCanMVEE2wZDsZ80GTbDKsQjEq+gpqbnJIk8lJBYW6lyvLJTg==", - "dev": true - }, - "node_modules/@fluencelabs/avm": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.3.tgz", - "integrity": "sha512-HCRIn8WHshHDkZmoW9ITnEzdr+XcZBo9SjlcbKHd8+ls1LkX4SiGe2tKh3QQwtmJ6xFh9TypTwjWeDYCGIw7JA==", - "dependencies": { - "base64-js": "1.5.1" - } - }, - "node_modules/@fluencelabs/avm/node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/@fluencelabs/fluence": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.10.1.tgz", - "integrity": "sha512-xAtZh6B9IIQiDflwNhf4dIvjNX6vFddDvU27fGiDuhiXs92k/dQ6ks3yWL0tqsceSbkz4w7r2vQMfDq6gWkdgg==", - "dependencies": { - "@chainsafe/libp2p-noise": "4.0.0", - "@fluencelabs/avm": "0.14.3", - "async": "3.2.0", - "base64-js": "1.3.1", - "bs58": "4.0.1", - "cids": "0.8.1", - "it-length-prefixed": "3.0.1", - "it-pipe": "1.1.0", - "libp2p": "0.32.3", - "libp2p-crypto": "0.19.7", - "libp2p-mplex": "0.10.4", - "libp2p-websockets": "0.16.1", - "loglevel": "1.7.0", - "multiaddr": "10.0.0", - "peer-id": "0.15.3", - "uuid": "8.3.0" - } - }, - "node_modules/@fluencelabs/fluence-network-environment": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@fluencelabs/fluence-network-environment/-/fluence-network-environment-1.0.10.tgz", - "integrity": "sha512-aaWZDDFIIasSTgdFdw1KEz+boZMSn7pXffUENZNLX4DrP11rC3AEX4c8GnIJQbWqGsouOFZOPna2DSG6o2rLNQ==" - }, - "node_modules/@fluencelabs/fluence/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/@fluencelabs/fluence/node_modules/interface-datastore": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-5.1.2.tgz", - "integrity": "sha512-nRFl19/IkilNzuPdCUJHejyJCZrVAk4lIRcRXJkekuTdaiagIEnCd9GfmTTQlo2afiVISk8Iy/PxSgnfmrdEIw==", - "dependencies": { - "err-code": "^3.0.1", - "interface-store": "^0.1.1", - "ipfs-utils": "^8.1.2", - "it-all": "^1.0.2", - "it-drain": "^1.0.1", - "it-filter": "^1.0.2", - "it-take": "^1.0.1", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/interface-datastore/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/ip-address": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-8.1.0.tgz", - "integrity": "sha512-Wz91gZKpNKoXtqvY8ScarKYwhXoK4r/b5QuT+uywe/azv0/nUCo7Bh0IRRI7F9DHR06kJNWtzMGLIbXavngbKA==", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/ipfs-utils": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-8.1.5.tgz", - "integrity": "sha512-qjERTUy0iXPw5LRPA1OQLzYPjdYb7JQenihYaE0L+yA4NMoC9qhGVrYUqU8yaV0Iu+zk7i6BxoNwg8beWsqjbg==", - "dependencies": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^3.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.1.5", - "it-glob": "~0.0.11", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "nanoid": "^3.1.20", - "native-abort-controller": "^1.0.3", - "native-fetch": "^3.0.0", - "node-fetch": "npm:@achingbrain/node-fetch@^2.6.4", - "react-native-fetch-api": "^2.0.0", - "stream-to-it": "^0.2.2" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/it-handshake": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz", - "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==", - "dependencies": { - "it-pushable": "^1.4.0", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/it-reader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", - "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", - "dependencies": { - "bl": "^5.0.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/it-take": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.1.tgz", - "integrity": "sha512-6H6JAWYcyumKSpcIPLs6tHN4xnibphmyU79WQaYVCBtaBOzf4fn75wzvSH8fH8fcMlPBTWY1RlmOWleQxBt2Ug==" - }, - "node_modules/@fluencelabs/fluence/node_modules/it-ws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-4.0.0.tgz", - "integrity": "sha512-XmTzpMkevc6rUboy73r0CCNhciMmL/Yxir9O6FujRwdrjysztqLBQ1Xkr4CpY2m7BVSCObKotaCWJeZ29lOXRA==", - "dependencies": { - "buffer": "^6.0.3", - "event-iterator": "^2.0.0", - "iso-url": "^1.1.2", - "ws": "^7.3.1" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" - }, - "node_modules/@fluencelabs/fluence/node_modules/libp2p": { - "version": "0.32.3", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.32.3.tgz", - "integrity": "sha512-FD1cweUmWgI510JIRfr80yCD/SugAawZPUQXPKPtOtaFeAynpEj7DEIE6iiVpc6Ed56nnyUivVikY7C8L50f9g==", - "dependencies": { - "@motrix/nat-api": "^0.3.1", - "@vascosantos/moving-average": "^1.1.0", - "abort-controller": "^3.0.0", - "aggregate-error": "^3.1.0", - "any-signal": "^2.1.1", - "bignumber.js": "^9.0.1", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.0", - "es6-promisify": "^6.1.1", - "events": "^3.3.0", - "hashlru": "^2.3.0", - "interface-datastore": "^5.1.1", - "it-all": "^1.0.4", - "it-buffer": "^0.1.2", - "it-drain": "^1.0.3", - "it-filter": "^1.0.1", - "it-first": "^1.0.4", - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.2", - "it-map": "^1.0.4", - "it-merge": "^1.0.0", - "it-pipe": "^1.1.0", - "it-take": "^1.0.0", - "libp2p-crypto": "^0.19.4", - "libp2p-interfaces": "^1.0.0", - "libp2p-utils": "^0.4.0", - "mafmt": "^10.0.0", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiformats": "^9.0.0", - "multistream-select": "^2.0.0", - "mutable-proxy": "^1.0.0", - "node-forge": "^0.10.0", - "p-any": "^3.0.0", - "p-fifo": "^1.0.0", - "p-retry": "^4.4.0", - "p-settle": "^4.1.1", - "peer-id": "^0.15.0", - "private-ip": "^2.1.0", - "protobufjs": "^6.10.2", - "retimer": "^3.0.0", - "sanitize-filename": "^1.6.3", - "set-delayed-interval": "^1.0.0", - "streaming-iterables": "^6.0.0", - "timeout-abort-controller": "^1.1.1", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0", - "wherearewe": "^1.0.0", - "xsalsa20": "^1.1.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/libp2p-crypto": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.7.tgz", - "integrity": "sha512-Qb5o/3WFKF2j6mYSt4UBPyi2kbKl3jYV0podBJoJCw70DlpM5Xc+oh3fFY9ToSunu8aSQQ5GY8nutjXgX/uGRA==", - "dependencies": { - "err-code": "^3.0.1", - "is-typedarray": "^1.0.0", - "iso-random-stream": "^2.0.0", - "keypair": "^1.0.1", - "multiformats": "^9.4.5", - "node-forge": "^0.10.0", - "pem-jwk": "^2.0.0", - "protobufjs": "^6.11.2", - "secp256k1": "^4.0.0", - "uint8arrays": "^3.0.0", - "ursa-optional": "^0.10.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/libp2p-crypto/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/libp2p-interfaces": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-1.1.0.tgz", - "integrity": "sha512-5nc/HZJgeks1qfkyYQdI84hcZLF4SJKJSUx33JpO0w7v7R+obz+HOwk0GSa4/ZvQHjX+/+OWC4NYVA0yZxZXag==", - "dependencies": { - "abort-controller": "^3.0.0", - "abortable-iterator": "^3.0.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "it-length-prefixed": "^5.0.2", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.2", - "libp2p-crypto": "^0.19.5", - "multiaddr": "^10.0.0", - "multiformats": "^9.1.2", - "peer-id": "^0.15.0", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/libp2p-interfaces/node_modules/it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "dependencies": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/libp2p-interfaces/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/libp2p-mplex": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.4.tgz", - "integrity": "sha512-a8Oy68EXaSBBXGOGYMuwBcpnynkhqAFJ3LiyV24u9fE4wTxvuWTr0prSyKc+KC8QsLuX3A+CAdSgxqm09NbumQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "abortable-iterator": "^3.0.0", - "bl": "^5.0.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.1", - "varint": "^6.0.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/libp2p-utils": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.4.1.tgz", - "integrity": "sha512-kq/US2unamiyY+YwP47dO1uqpAdcbdYI2Fzi9JIEhjfPBaD1MR/uyQ/YP7ABthl3EaxAjIQYd1TVp85d6QKAtQ==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "debug": "^4.3.0", - "err-code": "^3.0.1", - "ip-address": "^8.0.0", - "is-loopback-addr": "^1.0.0", - "multiaddr": "^10.0.0", - "private-ip": "^2.1.1" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/libp2p-websockets": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/libp2p-websockets/-/libp2p-websockets-0.16.1.tgz", - "integrity": "sha512-HXaCdlAkG5RDZCehEnkoVzQjT1C6NIaCKLERkkZ1ArKG77K7Y7uy+8y81uNZhy4OLQ8jGUMyOvKnjw6EjKJPmw==", - "dependencies": { - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "ipfs-utils": "^8.1.2", - "it-ws": "^4.0.0", - "libp2p-utils": "^0.4.0", - "mafmt": "^10.0.0", - "multiaddr": "^10.0.0", - "multiaddr-to-uri": "^8.0.0", - "p-defer": "^3.0.0", - "p-timeout": "^4.1.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/libp2p/node_modules/it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "dependencies": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/mafmt": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-10.0.0.tgz", - "integrity": "sha512-K1bziJOXcnepfztu+2Xy9FLKVLaFMDuspmiyJIYRxnO0WOxFSV7XKSdMxMrVZxcvg1+YjlTIvSGTImUHU2k4Aw==", - "dependencies": { - "multiaddr": "^10.0.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/multiaddr": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.0.tgz", - "integrity": "sha512-yP3LzFkM0GORZHNenS8Ok2spsaICRBhxLEohAfKKwwrgHIEWrDUhMRIkh/MONDBThNqaiGl7Ch1H7qblRDNHyg==", - "dependencies": { - "dns-over-http-resolver": "^1.0.0", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multiformats": "^9.0.2", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/multiaddr-to-uri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz", - "integrity": "sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==", - "dependencies": { - "multiaddr": "^10.0.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/multistream-select": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/multistream-select/-/multistream-select-2.0.1.tgz", - "integrity": "sha512-ziVNT/vux0uUElP4OKNMVr0afU/X6PciAmT2UJNolhzhSLXIwFAaYfmLajD8NoZ+DsBQ1bp0zZ2nMVPF+FhClA==", - "dependencies": { - "bl": "^5.0.0", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "it-first": "^1.0.6", - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.0", - "it-pipe": "^1.0.1", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/multistream-select/node_modules/it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "dependencies": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/multistream-select/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/p-timeout": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", - "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/peer-id": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.3.tgz", - "integrity": "sha512-pass5tk6Fbaz7PTD/3fJg2KWqaproHY0B0Ki8GQMEuMjkoLRcS2Vqt9yy6ob/+8uGBmWjRLtbMhaLV4HTyMDfw==", - "dependencies": { - "class-is": "^1.1.0", - "libp2p-crypto": "^0.19.0", - "minimist": "^1.2.5", - "multiformats": "^9.4.5", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0" - }, - "bin": { - "peer-id": "src/bin.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/peer-id/node_modules/uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/retimer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz", - "integrity": "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==" - }, - "node_modules/@fluencelabs/fluence/node_modules/streaming-iterables": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-6.0.0.tgz", - "integrity": "sha512-GYbJh0ife8PvryWSyFifY1m1uj6zO12d9duuP6xltiOolUz44eKasp5gbFhRbFbLy50ik6hcKn4Pbxl9AkxB+Q==", - "engines": { - "node": ">=10" - } - }, - "node_modules/@fluencelabs/fluence/node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - }, - "node_modules/@motrix/nat-api": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.2.tgz", - "integrity": "sha512-T3LSHnEUULbSU1o1zCZZ1ul8l8Jm98f0fz/0BeF7DhNvrV63YllLCD4vUR9hFZWu/+WTIVPnbH8dBK5Ckuveuw==", - "dependencies": { - "async": "^3.2.0", - "debug": "^4.3.1", - "default-gateway": "^6.0.3", - "request": "^2.88.2", - "unordered-array-remove": "^1.0.2", - "xml2js": "^0.4.23" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@multiformats/base-x": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@stablelib/aead": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", - "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" - }, - "node_modules/@stablelib/binary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", - "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", - "dependencies": { - "@stablelib/int": "^1.0.1" - } - }, - "node_modules/@stablelib/bytes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", - "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" - }, - "node_modules/@stablelib/chacha": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", - "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/chacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", - "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", - "dependencies": { - "@stablelib/aead": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/poly1305": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", - "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" - }, - "node_modules/@stablelib/hash": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", - "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" - }, - "node_modules/@stablelib/hkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz", - "integrity": "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==", - "dependencies": { - "@stablelib/hash": "^1.0.1", - "@stablelib/hmac": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/hmac": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz", - "integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==", - "dependencies": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/int": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", - "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" - }, - "node_modules/@stablelib/keyagreement": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", - "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", - "dependencies": { - "@stablelib/bytes": "^1.0.1" - } - }, - "node_modules/@stablelib/poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", - "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", - "dependencies": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz", - "integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/sha256": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz", - "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==", - "dependencies": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@stablelib/wipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", - "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" - }, - "node_modules/@stablelib/x25519": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.1.tgz", - "integrity": "sha512-nmyUI2ZArxYDh1PhdoSCPEtlTYE0DYugp2qqx8OtjrX3Hmh7boIlDsD0X71ihAxzxqJf3TyQqN/p58ToWhnp+Q==", - "dependencies": { - "@stablelib/keyagreement": "^1.0.1", - "@stablelib/random": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, - "node_modules/@types/node": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.0.tgz", - "integrity": "sha512-OyiZPohMMjZEYqcVo/UJ04GyAxXOJEZO/FpzyXxcH4r/ArrVoXHf4MbUrkLp0Tz7/p1mMKpo5zJ6ZHl8XBNthQ==" - }, - "node_modules/@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" - }, - "node_modules/@vascosantos/moving-average": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz", - "integrity": "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w==" - }, - "node_modules/@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "optional": true - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/abortable-iterator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.0.tgz", - "integrity": "sha512-7KqcPPnMhfot4GrEjK51zesS4Ye/lUCHBgYt3oRxIlU24HO3mVxBwEo9niNyfHqoWKqWLuZTc3zErNomdHA+ag==", - "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "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" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/any-signal": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", - "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "native-abort-controller": "^1.0.3" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/array-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", - "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", - "dependencies": { - "array-filter": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", - "engines": { - "node": "*" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/blakejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", - "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" - }, - "node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "node_modules/cids": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.8.1.tgz", - "integrity": "sha512-bs9hGUYHzsclGSt4ipi6SRUBIWYpuEHhd2uPc5hUatNQl6y5mFr+6JvJtN3fGUiNZNohc7rkY6OpXamwj6PQeg==", - "dependencies": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.7.0", - "multicodec": "^1.0.1", - "multihashes": "~0.4.17" - }, - "engines": { - "node": ">=4.0.0", - "npm": ">=3.0.0" - } - }, - "node_modules/class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-equal": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", - "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", - "dependencies": { - "call-bind": "^1.0.0", - "es-get-iterator": "^1.1.1", - "get-intrinsic": "^1.0.1", - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.2", - "is-regex": "^1.1.1", - "isarray": "^2.0.5", - "object-is": "^1.1.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.3", - "which-boxed-primitive": "^1.0.1", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/deep-equal/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dns-over-http-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", - "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", - "dependencies": { - "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/electron-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.3.tgz", - "integrity": "sha512-1AVMaxrHXTTMqd7EK0MGWusdqNr07Rpj8Th6bG4at0oNgIi/1LBwa9CjT/0Zy+M0k/tSJPS04nFxHj0SXDVgVw==", - "dependencies": { - "encoding": "^0.1.13" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "node_modules/es-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-get-iterator/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es6-promisify": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz", - "integrity": "sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==" - }, - "node_modules/event-iterator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", - "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-fifo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.0.0.tgz", - "integrity": "sha512-4VEXmjxLj7sbs8J//cn2qhRap50dGzF5n8fjay8mau+Jn4hxSeR3xPFwxMaQq/pDaq7+KQk0PAbC2+nWDkJrmQ==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hashlru": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", - "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/interface-store": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-0.1.1.tgz", - "integrity": "sha512-ynnjIOybDZc0Brep3HHSa2RVlo/M5g7kuL/leui7o21EusKcLJS170vCJ8rliisc3c4jyd9ao5PthkGlBaX29g==" - }, - "node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", - "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", - "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-electron": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.0.tgz", - "integrity": "sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q==" - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "dependencies": { - "ip-regex": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-loopback-addr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz", - "integrity": "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw==" - }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", - "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", - "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", - "dependencies": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.0-next.2", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz", - "integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/iso-random-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.0.tgz", - "integrity": "sha512-lGuIu104KfBV9ubYTSaE3GeAr6I69iggXxBHbTBc5u/XKlwlWl0LCytnkIZissaKqvxablwRD9B3ktVnmIUnEg==", - "dependencies": { - "events": "^3.3.0", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/it-all": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.5.tgz", - "integrity": "sha512-ygD4kA4vp8fi+Y+NBgEKt6W06xSbv6Ub/0V8d1r3uCyJ9Izwa1UspkIOlqY9fOee0Z1w3WRo1+VWyAU4DgtufA==" - }, - "node_modules/it-buffer": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/it-buffer/-/it-buffer-0.1.3.tgz", - "integrity": "sha512-9a2/9SYVwG7bcn3tpRDR4bXbtuMLXnDK48KVC+GXiQg97ZOOdWz2nIITBsOQ19b+gj01Rw8RNwtiLDLI8P8oiQ==", - "dependencies": { - "bl": "^5.0.0", - "buffer": "^6.0.3" - } - }, - "node_modules/it-buffer/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/it-buffer/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-drain": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.4.tgz", - "integrity": "sha512-coB7mcyZ4lWBQKoQGJuqM+P94pvpn2T3KY27vcVWPqeB1WmoysRC76VZnzAqrBWzpWcoEJMjZ+fsMBslxNaWfQ==" - }, - "node_modules/it-filter": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.2.tgz", - "integrity": "sha512-rxFUyPCrhk7WrNxD8msU10iEPhQmROoqwuyWmQUYY1PtopwUGBYyra9EYG2nRZADYeuT83cohKWmKCWPzpeyiw==" - }, - "node_modules/it-first": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.6.tgz", - "integrity": "sha512-wiI02c+G1BVuu0jz30Nsr1/et0cpSRulKUusN8HDZXxuX4MdUzfMp2P4JUk+a49Wr1kHitRLrnnh3+UzJ6neaQ==" - }, - "node_modules/it-glob": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.13.tgz", - "integrity": "sha512-0Hcd5BraJUPzL28NWiFbdNrcdyNxNTKKdU3sjdFiYynNTQpwlG2UKW31X7bp+XhJwux/oPzIquo5ioztVmc2RQ==", - "dependencies": { - "@types/minimatch": "^3.0.4", - "minimatch": "^3.0.4" - } - }, - "node_modules/it-length-prefixed": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-3.0.1.tgz", - "integrity": "sha512-QnfnFkpklDhWpyPQ2al6pdqmsQbwZAUpa7066e8S9RQxXo0s4o21ceqCG0n/0wdmvgfRSYsW5g2dYgchqtLZYw==", - "dependencies": { - "bl": "^4.0.2", - "buffer": "^5.5.0", - "varint": "^5.0.0" - } - }, - "node_modules/it-map": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.5.tgz", - "integrity": "sha512-EElupuWhHVStUgUY+OfTJIS2MZed96lDrAXzJUuqiiqLnIKoBRqtX1ZG2oR0bGDsSppmz83MtzCeKLZ9TVAUxQ==" - }, - "node_modules/it-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.0.tgz", - "integrity": "sha512-bs40LMjG/9JMOcJ7pgyGLoOeWBpw28ZoMmZIk/1NCa5SUxd4elXCuadAr2qSjPiHz2GxrqoWGFAP7SePGddatw==", - "dependencies": { - "it-pushable": "^1.4.0" - } - }, - "node_modules/it-pair": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz", - "integrity": "sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww==", - "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/it-pb-rpc": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.1.11.tgz", - "integrity": "sha512-1Yvae7LNHNM/WzxWT7OyHqwpA7DZoGos22JioMZ5H6i9iExQf71NHE0phHKEfkJdWLo7SRqPLLbqs2zaeKCwPA==", - "dependencies": { - "is-buffer": "^2.0.5", - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.2" - } - }, - "node_modules/it-pb-rpc/node_modules/bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "dependencies": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/it-pb-rpc/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/it-pb-rpc/node_modules/it-handshake": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz", - "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==", - "dependencies": { - "it-pushable": "^1.4.0", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/it-pb-rpc/node_modules/it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "dependencies": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - } - }, - "node_modules/it-pb-rpc/node_modules/it-reader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", - "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", - "dependencies": { - "bl": "^5.0.0" - } - }, - "node_modules/it-pb-rpc/node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - }, - "node_modules/it-pipe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", - "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" - }, - "node_modules/it-pushable": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", - "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", - "dependencies": { - "fast-fifo": "^1.0.0" - } - }, - "node_modules/it-to-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", - "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", - "dependencies": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "node_modules/it-to-stream/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/keypair": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.3.tgz", - "integrity": "sha512-0wjZ2z/SfZZq01+3/8jYLd8aEShSa+aat1zyPGQY3IuKoEAp6DJGvu2zt6snELrQU9jbCkIlCyNOD7RdQbHhkQ==" - }, - "node_modules/libp2p-crypto": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.0.tgz", - "integrity": "sha512-w4tduG32px1i6TwekYZBSvizZTvDdMReZkE4DhUkf9IQ8WSqSo98K+6IZaYYM6PzWd5arbcAQQcFCRalJu9Ytw==", - "dependencies": { - "err-code": "^2.0.0", - "is-typedarray": "^1.0.0", - "iso-random-stream": "^1.1.0", - "keypair": "^1.0.1", - "multibase": "^3.0.0", - "multicodec": "^2.0.0", - "multihashing-async": "^2.0.1", - "node-forge": "^0.10.0", - "pem-jwk": "^2.0.0", - "protons": "^2.0.0", - "secp256k1": "^4.0.0", - "uint8arrays": "^1.1.0", - "ursa-optional": "^0.10.1" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-crypto/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/libp2p-crypto/node_modules/iso-random-stream": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-1.1.2.tgz", - "integrity": "sha512-7y0tsBBgQs544iTYjyrMp5xvgrbYR8b+plQq1Bryp+03p0LssrxC9C1M0oHv4QESDt7d95c74XvMk/yawKqX+A==", - "dependencies": { - "buffer": "^6.0.3", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/libp2p-crypto/node_modules/multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - }, - "engines": { - "node": ">=10.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/libp2p-crypto/node_modules/multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", - "dependencies": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - } - }, - "node_modules/libp2p-crypto/node_modules/uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "dependencies": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "node_modules/libp2p-crypto/node_modules/varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - }, - "node_modules/loglevel": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz", - "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/subscription/pkg/npm-loglevel?utm_medium=referral&utm_source=npm_fund" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/merge-options": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", - "dependencies": { - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dependencies": { - "mime-db": "1.49.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "node_modules/multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "dependencies": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "node_modules/multiformats": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.4.5.tgz", - "integrity": "sha512-zQxukxsHM34EJi3yT3MkUlycY9wEouyrAz0PSN+CyCj6cYchJZ4LrTH74YtlsxVyAK6waz/gnVLmJwi3P0knKg==" - }, - "node_modules/multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "dependencies": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "node_modules/multihashing-async": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-2.1.3.tgz", - "integrity": "sha512-z4dlnTgZLn4D8daBdMGn601aS3GLOMnW5+EKoaevLwa3Fu4FK64ofn9PdJ3s0bDkhGK2fdwSjrG/S8mWlW9bzQ==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "blakejs": "^1.1.0", - "err-code": "^3.0.0", - "js-sha3": "^0.8.0", - "multihashes": "^4.0.1", - "murmurhash3js-revisited": "^3.0.0", - "uint8arrays": "^2.1.3" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multihashing-async/node_modules/err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "node_modules/multihashing-async/node_modules/multibase": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.5.tgz", - "integrity": "sha512-oqFkOYXdUkakxT8MqGyn5sE1KYeVt1zataOTvg688skQp6TVBv9XnouCcVO86XKFzh/UTiCGmEImTx6ZnPZ0qQ==", - "deprecated": "This module has been superseded by the multiformats module", - "dependencies": { - "@multiformats/base-x": "^4.0.1" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/multihashing-async/node_modules/multihashes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz", - "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==", - "dependencies": { - "multibase": "^4.0.1", - "uint8arrays": "^2.1.3", - "varint": "^5.0.2" - }, - "engines": { - "node": ">=12.0.0", - "npm": ">=6.0.0" - } - }, - "node_modules/murmurhash3js-revisited": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", - "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/mutable-proxy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mutable-proxy/-/mutable-proxy-1.0.0.tgz", - "integrity": "sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A==", - "engines": { - "node": ">=6.X.X", - "npm": ">=3.X.X" - } - }, - "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" - }, - "node_modules/nanoid": { - "version": "3.1.24", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.24.tgz", - "integrity": "sha512-WNhqqgD4qH7TQdU9ujXfFa/hQI5rOGGnZq+JRmz4JwMZFCgSZVquTq3ORUSv6IC+Y41ACBYV8a8J1kPkqGIiQg==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/native-abort-controller": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.3.tgz", - "integrity": "sha512-fd5LY5q06mHKZPD5FmMrn7Lkd2H018oBGKNOAdLpctBDEPFKsfJ1nX9ke+XRa8PEJJpjqrpQkGjq2IZ27QNmYA==", - "peerDependencies": { - "abort-controller": "*" - } - }, - "node_modules/native-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", - "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", - "peerDependencies": { - "node-fetch": "*" - } - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-fetch": { - "name": "@achingbrain/node-fetch", - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-gyp-build": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", - "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/object-inspect": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz", - "integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-any": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-any/-/p-any-3.0.0.tgz", - "integrity": "sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w==", - "dependencies": { - "p-cancelable": "^2.0.0", - "p-some": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-defer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", - "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-fifo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", - "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", - "dependencies": { - "fast-fifo": "^1.0.0", - "p-defer": "^3.0.0" - } - }, - "node_modules/p-reflect": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", - "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", - "dependencies": { - "@types/retry": "^0.12.0", - "retry": "^0.13.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-settle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz", - "integrity": "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==", - "dependencies": { - "p-limit": "^2.2.2", - "p-reflect": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-settle/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-some": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz", - "integrity": "sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig==", - "dependencies": { - "aggregate-error": "^3.0.0", - "p-cancelable": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/pem-jwk": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz", - "integrity": "sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA==", - "dependencies": { - "asn1.js": "^5.0.1" - }, - "bin": { - "pem-jwk": "bin/pem-jwk.js" - }, - "engines": { - "node": ">=5.10.0" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/private-ip": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.2.1.tgz", - "integrity": "sha512-jN1WT/br/VNW9xEcwHr6DjtOKxQ5qOIqmh7o+co2TWgq56pZJw99iO3UT1tWdfgsQiyK9FqG4ji3ykwpjFqITA==", - "dependencies": { - "ip-regex": "^4.3.0", - "netmask": "^2.0.2" - } - }, - "node_modules/protobufjs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", - "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/protocol-buffers-schema": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.5.2.tgz", - "integrity": "sha512-LPzSaBYp/TcbuSlpGwqT5jR9kvJ3Zp5ic2N5c2ybx6XB/lSfEHq2D7ja8AgoxHoMD91wXFALJoXsvshKPuXyew==" - }, - "node_modules/protons": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/protons/-/protons-2.0.2.tgz", - "integrity": "sha512-EIPoT9ftVirJ9QJ3oFoueYUiBhmPqE1AoSBPypLSqbbvHvx+OcUeK9z84YIsk6jda+N3FL58dU1LcWmfGCZGHA==", - "deprecated": "This module is no longer maintained", - "dependencies": { - "protocol-buffers-schema": "^3.3.1", - "signed-varint": "^2.0.1", - "uint8arrays": "^2.1.3", - "varint": "^5.0.0" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/react-native-fetch-api": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz", - "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==", - "dependencies": { - "p-defer": "^3.0.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/receptacle": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", - "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/retimer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", - "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==" - }, - "node_modules/retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "dependencies": { - "truncate-utf8-bytes": "^1.0.0" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/secp256k1": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", - "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/set-delayed-interval": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz", - "integrity": "sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "node_modules/signed-varint": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz", - "integrity": "sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk=", - "dependencies": { - "varint": "~5.0.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stream-to-it": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", - "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", - "dependencies": { - "get-iterator": "^1.0.2" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/timeout-abort-controller": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz", - "integrity": "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==", - "dependencies": { - "abort-controller": "^3.0.0", - "retimer": "^2.0.0" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", - "dependencies": { - "utf8-byte-length": "^1.0.1" - } - }, - "node_modules/ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "dev": true, - "dependencies": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "typescript": ">=2.7" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "node_modules/typescript": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", - "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uint8arrays": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", - "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", - "dependencies": { - "multiformats": "^9.4.2" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unordered-array-remove": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz", - "integrity": "sha1-xUbo+I4xegzyZEyX7LV9umbSUO8=" - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/ursa-optional": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz", - "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.14.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" - }, - "node_modules/util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/uuid": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", - "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/web-encoding": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "dependencies": { - "util": "^0.12.3" - }, - "optionalDependencies": { - "@zxing/text-encoding": "0.9.0" - } - }, - "node_modules/wherearewe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-1.0.0.tgz", - "integrity": "sha512-oQnRsAfMCqNAC7U4JrBdmFXAhBRLOkPGOfU5+nw9fs2D3g8O6EV7hn7BhpXtt0yno4pxFiRD55rMyt0fsLMqlw==", - "dependencies": { - "is-electron": "^2.2.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", - "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", - "dependencies": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.0", - "es-abstract": "^1.18.0-next.1", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ws": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", - "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xsalsa20": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.1.0.tgz", - "integrity": "sha512-zd3ytX2cm+tcSndRU+krm0eL4TMMpZE7evs5hLRAoOy6gviqLfe3qOlkjF3i5SeAkQUCeJk0lJZrEU56kHRfWw==" - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - } - }, - "dependencies": { - "@chainsafe/libp2p-noise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-4.0.0.tgz", - "integrity": "sha512-Q9gcC1IzN8/aQQXl/ntRbldTD/3c35j5lK5guIKEB+QU/Ogi0EyaihkL3YGx9QrSiFTyz0ABlSfxA0Wxfw5R1A==", - "requires": { - "@stablelib/chacha20poly1305": "^1.0.1", - "@stablelib/hkdf": "^1.0.1", - "@stablelib/sha256": "^1.0.1", - "@stablelib/x25519": "^1.0.1", - "debug": "^4.3.1", - "it-buffer": "^0.1.1", - "it-length-prefixed": "^5.0.2", - "it-pair": "^1.0.0", - "it-pb-rpc": "^0.1.9", - "it-pipe": "^1.1.0", - "libp2p-crypto": "^0.19.0", - "peer-id": "^0.15.0", - "protobufjs": "^6.10.1", - "uint8arrays": "^2.0.5" - }, - "dependencies": { - "bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "requires": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - } - }, - "peer-id": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.3.tgz", - "integrity": "sha512-pass5tk6Fbaz7PTD/3fJg2KWqaproHY0B0Ki8GQMEuMjkoLRcS2Vqt9yy6ob/+8uGBmWjRLtbMhaLV4HTyMDfw==", - "requires": { - "class-is": "^1.1.0", - "libp2p-crypto": "^0.19.0", - "minimist": "^1.2.5", - "multiformats": "^9.4.5", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "requires": { - "multiformats": "^9.4.2" - } + "name": "aquamarine-template", + "version": "0.3.9", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@chainsafe/libp2p-noise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-4.0.0.tgz", + "integrity": "sha512-Q9gcC1IzN8/aQQXl/ntRbldTD/3c35j5lK5guIKEB+QU/Ogi0EyaihkL3YGx9QrSiFTyz0ABlSfxA0Wxfw5R1A==", + "requires": { + "@stablelib/chacha20poly1305": "^1.0.1", + "@stablelib/hkdf": "^1.0.1", + "@stablelib/sha256": "^1.0.1", + "@stablelib/x25519": "^1.0.1", + "debug": "^4.3.1", + "it-buffer": "^0.1.1", + "it-length-prefixed": "^5.0.2", + "it-pair": "^1.0.0", + "it-pb-rpc": "^0.1.9", + "it-pipe": "^1.1.0", + "libp2p-crypto": "^0.19.0", + "peer-id": "^0.15.0", + "protobufjs": "^6.10.1", + "uint8arrays": "^2.0.5" + }, + "dependencies": { + "bl": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", + "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", + "requires": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "it-length-prefixed": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", + "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", + "requires": { + "bl": "^5.0.0", + "buffer": "^6.0.3", + "varint": "^6.0.0" + } + }, + "peer-id": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.3.tgz", + "integrity": "sha512-pass5tk6Fbaz7PTD/3fJg2KWqaproHY0B0Ki8GQMEuMjkoLRcS2Vqt9yy6ob/+8uGBmWjRLtbMhaLV4HTyMDfw==", + "requires": { + "class-is": "^1.1.0", + "libp2p-crypto": "^0.19.0", + "minimist": "^1.2.5", + "multiformats": "^9.4.5", + "protobufjs": "^6.10.2", + "uint8arrays": "^3.0.0" + }, + "dependencies": { + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "uint8arrays": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", + "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", + "requires": { + "multiformats": "^9.4.2" + } + }, + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + } + } + }, + "@fluencelabs/aqua-cli": { + "version": "0.2.0-208", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.2.0-208.tgz", + "integrity": "sha512-IQ2loGZo/kGi1KmCeoNZWXTrzZFd7AdD4b8hvZdvFkRBCAmOz2Hx/6/b7SnTDjR7qcHvxWlSR1h9QcAgsjOLUg==", + "dev": true + }, + "@fluencelabs/aqua-dht": { + "version": "0.1.36", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-dht/-/aqua-dht-0.1.36.tgz", + "integrity": "sha512-cBEeSbHCER45uSVsMzsXpnrbQhOl5dAFCheC8oS2atHGdsknd3oovLWcWeHse/pS8UlerocvyuJU52aI2JG96Q==", + "dev": true, + "requires": { + "@fluencelabs/aqua-lib": "^0.1.10" + } + }, + "@fluencelabs/aqua-dht-ts": { + "version": "0.1.36", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-dht-ts/-/aqua-dht-ts-0.1.36.tgz", + "integrity": "sha512-J48Ut6spXiKRxTinkupINsO6vWrjCWazfGWDoxLMo3ToparK6HLj2rs5aN5BOl6uPywWhPDP/ABzdNvVehAEhw==", + "requires": { + "@fluencelabs/fluence": "0.9.53" + }, + "dependencies": { + "@fluencelabs/fluence": { + "version": "0.9.53", + "resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.9.53.tgz", + "integrity": "sha512-DxazRumUWM4idI55ZSbfI26lRm5tvrgBYPa4XwPmxSbjgkLE5OjZ+sUStesMiUSst6ROQkwMM4v8BK7WqAyMuw==", + "requires": { + "@fluencelabs/avm": "0.10.5", + "async": "3.2.0", + "base64-js": "1.3.1", + "bs58": "4.0.1", + "cids": "0.8.1", + "it-length-prefixed": "3.0.1", + "it-pipe": "1.1.0", + "libp2p": "0.30.10", + "libp2p-crypto": "0.19.0", + "libp2p-mplex": "0.10.2", + "libp2p-noise": "2.0.5", + "libp2p-websockets": "0.15.3", + "loglevel": "1.7.0", + "multiaddr": "8.1.2", + "peer-id": "0.14.3", + "uuid": "8.3.0" + } + } + } + }, + "@fluencelabs/aqua-lib": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.1.14.tgz", + "integrity": "sha512-H2Q4gIvociUxc4J2mwmH0D+mrU2N2Z+enKCHgBCanMVEE2wZDsZ80GTbDKsQjEq+gpqbnJIk8lJBYW6lyvLJTg==", + "dev": true + }, + "@fluencelabs/avm": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.10.5.tgz", + "integrity": "sha512-R65qY8PeVdlF27UDlcODTnxSBfEbiqXivHWoM62e7mZYr4T/lcZEklqMPOkRrymJWs7y/zP/D8N7zxecDNLBOA==", + "requires": { + "base64-js": "1.5.1" + }, + "dependencies": { + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + } + } + }, + "@fluencelabs/fluence": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.11.0.tgz", + "integrity": "sha512-HfUS8eLwfviiJhqsrHnOnRxO20TbdahPreP6AkBXQaEpWeRew6vxAd0Dn+xdzy6KCJ4W9GOKLcgtPfqquIO2Pg==", + "requires": { + "@chainsafe/libp2p-noise": "4.0.0", + "@fluencelabs/avm": "0.14.4", + "async": "3.2.0", + "base64-js": "1.5.1", + "bs58": "4.0.1", + "cids": "0.8.1", + "it-length-prefixed": "3.0.1", + "it-pipe": "1.1.0", + "libp2p": "0.32.3", + "libp2p-crypto": "0.19.7", + "libp2p-mplex": "0.10.4", + "libp2p-websockets": "0.16.1", + "loglevel": "1.7.0", + "multiaddr": "10.0.0", + "noble-ed25519": "^1.2.5", + "peer-id": "0.15.3", + "uuid": "8.3.0" + }, + "dependencies": { + "@fluencelabs/avm": { + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.4.tgz", + "integrity": "sha512-XyR+1H5k0CAc+mDHOkl81viX8XeW1Yqbw793xbsfUfju5bUb/hqk+gHv3q8lAFdbrCG5P45gdOT08a5RNODZaQ==", + "requires": { + "base64-js": "1.5.1" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bl": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", + "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", + "requires": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + }, + "interface-datastore": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-5.1.3.tgz", + "integrity": "sha512-OVJ2wXg4wuR8kGI9r+09UponEQl/oEtiPaMKiS8QnAKSOf/NTOGnnpmtQPy00UOp3vvbFOvocF6G7HnV76Fmpw==", + "requires": { + "err-code": "^3.0.1", + "interface-store": "^1.0.2", + "ipfs-utils": "^8.1.2", + "it-all": "^1.0.2", + "it-drain": "^1.0.1", + "it-filter": "^1.0.2", + "it-take": "^1.0.1", + "nanoid": "^3.0.2", + "uint8arrays": "^3.0.0" + }, + "dependencies": { + "it-take": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.1.tgz", + "integrity": "sha512-6H6JAWYcyumKSpcIPLs6tHN4xnibphmyU79WQaYVCBtaBOzf4fn75wzvSH8fH8fcMlPBTWY1RlmOWleQxBt2Ug==" + }, + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "ip-address": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-8.1.0.tgz", + "integrity": "sha512-Wz91gZKpNKoXtqvY8ScarKYwhXoK4r/b5QuT+uywe/azv0/nUCo7Bh0IRRI7F9DHR06kJNWtzMGLIbXavngbKA==", + "requires": { + "jsbn": "1.1.0", + "sprintf-js": "1.1.2" + } + }, + "ipfs-utils": { + "version": "8.1.6", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-8.1.6.tgz", + "integrity": "sha512-V/cwb6113DrDhrjDTWImA6+zmJbpdbUkxdxmEQO7it8ykV76bBmzU1ZXSM0QR0qxGy9VW8dkUlPAC2K10VgSmw==", + "requires": { + "abort-controller": "^3.0.0", + "any-signal": "^2.1.0", + "buffer": "^6.0.1", + "electron-fetch": "^1.7.2", + "err-code": "^3.0.1", + "is-electron": "^2.2.0", + "iso-url": "^1.1.5", + "it-glob": "~0.0.11", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "nanoid": "^3.1.20", + "native-abort-controller": "^1.0.3", + "native-fetch": "^3.0.0", + "node-fetch": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", + "react-native-fetch-api": "^2.0.0", + "stream-to-it": "^0.2.2" + } + }, + "it-handshake": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz", + "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==", + "requires": { + "it-pushable": "^1.4.0", + "it-reader": "^3.0.0", + "p-defer": "^3.0.0" + } + }, + "it-reader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", + "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", + "requires": { + "bl": "^5.0.0" + } + }, + "it-ws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-4.0.0.tgz", + "integrity": "sha512-XmTzpMkevc6rUboy73r0CCNhciMmL/Yxir9O6FujRwdrjysztqLBQ1Xkr4CpY2m7BVSCObKotaCWJeZ29lOXRA==", + "requires": { + "buffer": "^6.0.3", + "event-iterator": "^2.0.0", + "iso-url": "^1.1.2", + "ws": "^7.3.1" + } + }, + "jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" + }, + "libp2p": { + "version": "0.32.3", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.32.3.tgz", + "integrity": "sha512-FD1cweUmWgI510JIRfr80yCD/SugAawZPUQXPKPtOtaFeAynpEj7DEIE6iiVpc6Ed56nnyUivVikY7C8L50f9g==", + "requires": { + "@motrix/nat-api": "^0.3.1", + "@vascosantos/moving-average": "^1.1.0", + "abort-controller": "^3.0.0", + "aggregate-error": "^3.1.0", + "any-signal": "^2.1.1", + "bignumber.js": "^9.0.1", + "class-is": "^1.1.0", + "debug": "^4.3.1", + "err-code": "^3.0.0", + "es6-promisify": "^6.1.1", + "events": "^3.3.0", + "hashlru": "^2.3.0", + "interface-datastore": "^5.1.1", + "it-all": "^1.0.4", + "it-buffer": "^0.1.2", + "it-drain": "^1.0.3", + "it-filter": "^1.0.1", + "it-first": "^1.0.4", + "it-handshake": "^2.0.0", + "it-length-prefixed": "^5.0.2", + "it-map": "^1.0.4", + "it-merge": "^1.0.0", + "it-pipe": "^1.1.0", + "it-take": "^1.0.0", + "libp2p-crypto": "^0.19.4", + "libp2p-interfaces": "^1.0.0", + "libp2p-utils": "^0.4.0", + "mafmt": "^10.0.0", + "merge-options": "^3.0.4", + "multiaddr": "^10.0.0", + "multiformats": "^9.0.0", + "multistream-select": "^2.0.0", + "mutable-proxy": "^1.0.0", + "node-forge": "^0.10.0", + "p-any": "^3.0.0", + "p-fifo": "^1.0.0", + "p-retry": "^4.4.0", + "p-settle": "^4.1.1", + "peer-id": "^0.15.0", + "private-ip": "^2.1.0", + "protobufjs": "^6.10.2", + "retimer": "^3.0.0", + "sanitize-filename": "^1.6.3", + "set-delayed-interval": "^1.0.0", + "streaming-iterables": "^6.0.0", + "timeout-abort-controller": "^1.1.1", + "uint8arrays": "^2.1.3", + "varint": "^6.0.0", + "wherearewe": "^1.0.0", + "xsalsa20": "^1.1.0" + }, + "dependencies": { + "it-length-prefixed": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", + "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", + "requires": { + "bl": "^5.0.0", + "buffer": "^6.0.3", + "varint": "^6.0.0" + } + } + } + }, + "libp2p-crypto": { + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.7.tgz", + "integrity": "sha512-Qb5o/3WFKF2j6mYSt4UBPyi2kbKl3jYV0podBJoJCw70DlpM5Xc+oh3fFY9ToSunu8aSQQ5GY8nutjXgX/uGRA==", + "requires": { + "err-code": "^3.0.1", + "is-typedarray": "^1.0.0", + "iso-random-stream": "^2.0.0", + "keypair": "^1.0.1", + "multiformats": "^9.4.5", + "node-forge": "^0.10.0", + "pem-jwk": "^2.0.0", + "protobufjs": "^6.11.2", + "secp256k1": "^4.0.0", + "uint8arrays": "^3.0.0", + "ursa-optional": "^0.10.1" + }, + "dependencies": { + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "libp2p-interfaces": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-1.1.0.tgz", + "integrity": "sha512-5nc/HZJgeks1qfkyYQdI84hcZLF4SJKJSUx33JpO0w7v7R+obz+HOwk0GSa4/ZvQHjX+/+OWC4NYVA0yZxZXag==", + "requires": { + "abort-controller": "^3.0.0", + "abortable-iterator": "^3.0.0", + "debug": "^4.3.1", + "err-code": "^3.0.1", + "it-length-prefixed": "^5.0.2", + "it-pipe": "^1.1.0", + "it-pushable": "^1.4.2", + "libp2p-crypto": "^0.19.5", + "multiaddr": "^10.0.0", + "multiformats": "^9.1.2", + "peer-id": "^0.15.0", + "protobufjs": "^6.10.2", + "uint8arrays": "^3.0.0" + }, + "dependencies": { + "it-length-prefixed": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", + "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", + "requires": { + "bl": "^5.0.0", + "buffer": "^6.0.3", + "varint": "^6.0.0" + } + }, + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "libp2p-mplex": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.4.tgz", + "integrity": "sha512-a8Oy68EXaSBBXGOGYMuwBcpnynkhqAFJ3LiyV24u9fE4wTxvuWTr0prSyKc+KC8QsLuX3A+CAdSgxqm09NbumQ==", + "requires": { + "abort-controller": "^3.0.0", + "abortable-iterator": "^3.0.0", + "bl": "^5.0.0", + "debug": "^4.3.1", + "err-code": "^3.0.1", + "it-pipe": "^1.1.0", + "it-pushable": "^1.4.1", + "varint": "^6.0.0" + } + }, + "libp2p-utils": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.4.1.tgz", + "integrity": "sha512-kq/US2unamiyY+YwP47dO1uqpAdcbdYI2Fzi9JIEhjfPBaD1MR/uyQ/YP7ABthl3EaxAjIQYd1TVp85d6QKAtQ==", + "requires": { + "abortable-iterator": "^3.0.0", + "debug": "^4.3.0", + "err-code": "^3.0.1", + "ip-address": "^8.0.0", + "is-loopback-addr": "^1.0.0", + "multiaddr": "^10.0.0", + "private-ip": "^2.1.1" + } + }, + "libp2p-websockets": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/libp2p-websockets/-/libp2p-websockets-0.16.1.tgz", + "integrity": "sha512-HXaCdlAkG5RDZCehEnkoVzQjT1C6NIaCKLERkkZ1ArKG77K7Y7uy+8y81uNZhy4OLQ8jGUMyOvKnjw6EjKJPmw==", + "requires": { + "abortable-iterator": "^3.0.0", + "class-is": "^1.1.0", + "debug": "^4.3.1", + "err-code": "^3.0.1", + "ipfs-utils": "^8.1.2", + "it-ws": "^4.0.0", + "libp2p-utils": "^0.4.0", + "mafmt": "^10.0.0", + "multiaddr": "^10.0.0", + "multiaddr-to-uri": "^8.0.0", + "p-defer": "^3.0.0", + "p-timeout": "^4.1.0" + } + }, + "mafmt": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-10.0.0.tgz", + "integrity": "sha512-K1bziJOXcnepfztu+2Xy9FLKVLaFMDuspmiyJIYRxnO0WOxFSV7XKSdMxMrVZxcvg1+YjlTIvSGTImUHU2k4Aw==", + "requires": { + "multiaddr": "^10.0.0" + } + }, + "multiaddr": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.0.tgz", + "integrity": "sha512-yP3LzFkM0GORZHNenS8Ok2spsaICRBhxLEohAfKKwwrgHIEWrDUhMRIkh/MONDBThNqaiGl7Ch1H7qblRDNHyg==", + "requires": { + "dns-over-http-resolver": "^1.0.0", + "err-code": "^3.0.1", + "is-ip": "^3.1.0", + "multiformats": "^9.0.2", + "uint8arrays": "^2.1.3", + "varint": "^6.0.0" + } + }, + "multiaddr-to-uri": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz", + "integrity": "sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==", + "requires": { + "multiaddr": "^10.0.0" + } + }, + "multistream-select": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/multistream-select/-/multistream-select-2.0.1.tgz", + "integrity": "sha512-ziVNT/vux0uUElP4OKNMVr0afU/X6PciAmT2UJNolhzhSLXIwFAaYfmLajD8NoZ+DsBQ1bp0zZ2nMVPF+FhClA==", + "requires": { + "bl": "^5.0.0", + "debug": "^4.1.1", + "err-code": "^3.0.1", + "it-first": "^1.0.6", + "it-handshake": "^2.0.0", + "it-length-prefixed": "^5.0.0", + "it-pipe": "^1.0.1", + "it-reader": "^3.0.0", + "p-defer": "^3.0.0", + "uint8arrays": "^3.0.0" + }, + "dependencies": { + "it-length-prefixed": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", + "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", + "requires": { + "bl": "^5.0.0", + "buffer": "^6.0.3", + "varint": "^6.0.0" + } + }, + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "node-fetch": { + "version": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==" + }, + "p-timeout": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", + "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==" + }, + "peer-id": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.3.tgz", + "integrity": "sha512-pass5tk6Fbaz7PTD/3fJg2KWqaproHY0B0Ki8GQMEuMjkoLRcS2Vqt9yy6ob/+8uGBmWjRLtbMhaLV4HTyMDfw==", + "requires": { + "class-is": "^1.1.0", + "libp2p-crypto": "^0.19.0", + "minimist": "^1.2.5", + "multiformats": "^9.4.5", + "protobufjs": "^6.10.2", + "uint8arrays": "^3.0.0" + }, + "dependencies": { + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "retimer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz", + "integrity": "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==" + }, + "streaming-iterables": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-6.0.0.tgz", + "integrity": "sha512-GYbJh0ife8PvryWSyFifY1m1uj6zO12d9duuP6xltiOolUz44eKasp5gbFhRbFbLy50ik6hcKn4Pbxl9AkxB+Q==" + }, + "uint8arrays": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", + "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", + "requires": { + "multiformats": "^9.4.2" + } + }, + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + } + } + }, + "@fluencelabs/fluence-network-environment": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@fluencelabs/fluence-network-environment/-/fluence-network-environment-1.0.10.tgz", + "integrity": "sha512-aaWZDDFIIasSTgdFdw1KEz+boZMSn7pXffUENZNLX4DrP11rC3AEX4c8GnIJQbWqGsouOFZOPna2DSG6o2rLNQ==" + }, + "@motrix/nat-api": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.2.tgz", + "integrity": "sha512-T3LSHnEUULbSU1o1zCZZ1ul8l8Jm98f0fz/0BeF7DhNvrV63YllLCD4vUR9hFZWu/+WTIVPnbH8dBK5Ckuveuw==", + "requires": { + "async": "^3.2.0", + "debug": "^4.3.1", + "default-gateway": "^6.0.3", + "request": "^2.88.2", + "unordered-array-remove": "^1.0.2", + "xml2js": "^0.4.23" + } + }, + "@multiformats/base-x": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@sinonjs/samsam": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz", + "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==", + "requires": { + "@sinonjs/commons": "^1.6.0", + "lodash.get": "^4.4.2", + "type-detect": "^4.0.8" + } + }, + "@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==" + }, + "@stablelib/aead": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", + "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" + }, + "@stablelib/binary": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", + "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", + "requires": { + "@stablelib/int": "^1.0.1" + } + }, + "@stablelib/bytes": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", + "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" + }, + "@stablelib/chacha": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", + "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", + "requires": { + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/chacha20poly1305": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", + "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", + "requires": { + "@stablelib/aead": "^1.0.1", + "@stablelib/binary": "^1.0.1", + "@stablelib/chacha": "^1.0.1", + "@stablelib/constant-time": "^1.0.1", + "@stablelib/poly1305": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", + "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" + }, + "@stablelib/hash": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", + "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" + }, + "@stablelib/hkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz", + "integrity": "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==", + "requires": { + "@stablelib/hash": "^1.0.1", + "@stablelib/hmac": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/hmac": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz", + "integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==", + "requires": { + "@stablelib/constant-time": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/int": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", + "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" + }, + "@stablelib/keyagreement": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", + "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", + "requires": { + "@stablelib/bytes": "^1.0.1" + } + }, + "@stablelib/poly1305": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", + "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", + "requires": { + "@stablelib/constant-time": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz", + "integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==", + "requires": { + "@stablelib/binary": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/sha256": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz", + "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==", + "requires": { + "@stablelib/binary": "^1.0.1", + "@stablelib/hash": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@stablelib/wipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", + "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" + }, + "@stablelib/x25519": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.1.tgz", + "integrity": "sha512-nmyUI2ZArxYDh1PhdoSCPEtlTYE0DYugp2qqx8OtjrX3Hmh7boIlDsD0X71ihAxzxqJf3TyQqN/p58ToWhnp+Q==", + "requires": { + "@stablelib/keyagreement": "^1.0.1", + "@stablelib/random": "^1.0.1", + "@stablelib/wipe": "^1.0.1" + } + }, + "@types/bl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/bl/-/bl-2.1.0.tgz", + "integrity": "sha512-1TdA9IXOy4sdqn8vgieQ6GZAiHiPNrOiO1s2GJjuYPw4QVY7gYoVjkW049avj33Ez7IcIvu43hQsMsoUFbCn2g==", + "requires": { + "@types/node": "*" + } + }, + "@types/long": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", + "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" + }, + "@types/node": { + "version": "16.7.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.1.tgz", + "integrity": "sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A==" + }, + "@types/retry": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", + "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + }, + "@vascosantos/moving-average": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz", + "integrity": "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w==" + }, + "@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "optional": true + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "abortable-iterator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.0.tgz", + "integrity": "sha512-7KqcPPnMhfot4GrEjK51zesS4Ye/lUCHBgYt3oRxIlU24HO3mVxBwEo9niNyfHqoWKqWLuZTc3zErNomdHA+ag==", + "requires": { + "get-iterator": "^1.0.2" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "any-signal": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", + "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", + "requires": { + "abort-controller": "^3.0.0", + "native-abort-controller": "^1.0.3" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" + }, + "async": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", + "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "available-typed-arrays": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", + "integrity": "sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base-x": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", + "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", + "requires": { + "safe-buffer": "^5.0.1" } - } }, - "varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - } - } - }, - "@fluencelabs/aqua-cli": { - "version": "0.2.2-221", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-cli/-/aqua-cli-0.2.2-221.tgz", - "integrity": "sha512-ktH8v0gXxHIld9mwsZ9LkR3GFjdwN09m5YjkCM0XIS0CMCpCr70xHvw6A0RKlPRq/ngGyVfbVJP9XSqAIYxV9g==", - "dev": true - }, - "@fluencelabs/aqua-dht": { - "version": "0.1.38", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-dht/-/aqua-dht-0.1.38.tgz", - "integrity": "sha512-rJkBmI0NFeNKiOJe+mUoz3uSjbB79LP7VpcC4yuHuDPC449gpALSubZHdVAlXTD7KVCS/2Phhh8WwEOyvlyN6g==", - "dev": true, - "requires": { - "@fluencelabs/aqua-lib": "^0.1.14" - } - }, - "@fluencelabs/aqua-dht-ts": { - "version": "0.1.38", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-dht-ts/-/aqua-dht-ts-0.1.38.tgz", - "integrity": "sha512-IYvQieDxjoN+2E9cwGZvy5a5k1+wRlcjfZ2iezh+A4T0K+JEKavvp3k2qfq03bhrKjx8B+sE3kxOzJBGEmyVOA==", - "requires": { - "@fluencelabs/fluence": "^0.10.0" - } - }, - "@fluencelabs/aqua-lib": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.1.14.tgz", - "integrity": "sha512-H2Q4gIvociUxc4J2mwmH0D+mrU2N2Z+enKCHgBCanMVEE2wZDsZ80GTbDKsQjEq+gpqbnJIk8lJBYW6lyvLJTg==", - "dev": true - }, - "@fluencelabs/avm": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.14.3.tgz", - "integrity": "sha512-HCRIn8WHshHDkZmoW9ITnEzdr+XcZBo9SjlcbKHd8+ls1LkX4SiGe2tKh3QQwtmJ6xFh9TypTwjWeDYCGIw7JA==", - "requires": { - "base64-js": "1.5.1" - }, - "dependencies": { "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - } - } - }, - "@fluencelabs/fluence": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.10.1.tgz", - "integrity": "sha512-xAtZh6B9IIQiDflwNhf4dIvjNX6vFddDvU27fGiDuhiXs92k/dQ6ks3yWL0tqsceSbkz4w7r2vQMfDq6gWkdgg==", - "requires": { - "@chainsafe/libp2p-noise": "4.0.0", - "@fluencelabs/avm": "0.14.3", - "async": "3.2.0", - "base64-js": "1.3.1", - "bs58": "4.0.1", - "cids": "0.8.1", - "it-length-prefixed": "3.0.1", - "it-pipe": "1.1.0", - "libp2p": "0.32.3", - "libp2p-crypto": "0.19.7", - "libp2p-mplex": "0.10.4", - "libp2p-websockets": "0.16.1", - "loglevel": "1.7.0", - "multiaddr": "10.0.0", - "peer-id": "0.15.3", - "uuid": "8.3.0" - }, - "dependencies": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bcrypto": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/bcrypto/-/bcrypto-5.4.0.tgz", + "integrity": "sha512-KDX2CR29o6ZoqpQndcCxFZAtYA1jDMnXU3jmCfzP44g++Cu7AHHtZN/JbrN/MXAg9SLvtQ8XISG+eVD9zH1+Jg==", + "requires": { + "bufio": "~1.0.7", + "loady": "~0.0.5" + } + }, + "bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "blakejs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", + "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "^3.0.2" + } }, "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "bufio": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/bufio/-/bufio-1.0.7.tgz", + "integrity": "sha512-bd1dDQhiC+bEbEfg56IdBv7faWa6OipMs/AFFFvtFnB3wAYjlwQpQRZ0pm6ZkgtfL0pILRXhKxOiQj6UzoMR7A==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==", + "requires": { + "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" + } + }, + "chai-checkmark": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chai-checkmark/-/chai-checkmark-1.0.1.tgz", + "integrity": "sha1-n7s8mtkQHwl+8ogyjTD0In10//s=" + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" + }, + "cids": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/cids/-/cids-0.8.1.tgz", + "integrity": "sha512-bs9hGUYHzsclGSt4ipi6SRUBIWYpuEHhd2uPc5hUatNQl6y5mFr+6JvJtN3fGUiNZNohc7rkY6OpXamwj6PQeg==", + "requires": { + "buffer": "^5.5.0", + "class-is": "^1.1.0", + "multibase": "~0.7.0", + "multicodec": "^1.0.1", + "multihashes": "~0.4.17" + } + }, + "class-is": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", + "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "requires": { + "ms": "2.1.2" + } + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-equal": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", + "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", + "requires": { + "call-bind": "^1.0.0", + "es-get-iterator": "^1.1.1", + "get-intrinsic": "^1.0.1", + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.2", + "is-regex": "^1.1.1", + "isarray": "^2.0.5", + "object-is": "^1.1.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.3", + "which-boxed-primitive": "^1.0.1", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.2" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } + } + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "requires": { + "execa": "^5.0.0" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "delay": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/delay/-/delay-4.4.1.tgz", + "integrity": "sha512-aL3AhqtfhOlT/3ai6sWXeqwnw63ATNpnUiN4HL7x9q+My5QtHlO3OIkasmug9LKzpheLdmUKGRKnYXYAS7FQkQ==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "dirty-chai": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/dirty-chai/-/dirty-chai-2.0.1.tgz", + "integrity": "sha512-ys79pWKvDMowIDEPC6Fig8d5THiC0DJ2gmTeGzVAoEH18J8OzLud0Jh7I9IWg3NSk8x2UocznUuFmfHCXYZx9w==" + }, + "dns-over-http-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", + "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", + "requires": { + "debug": "^4.3.1", + "native-fetch": "^3.0.0", + "receptacle": "^1.3.2" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "electron-fetch": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz", + "integrity": "sha512-+fBLXEy4CJWQ5bz8dyaeSG1hD6JJ15kBZyj3eh24pIVrd3hLM47H/umffrdQfS6GZ0falF0g9JT9f3Rs6AVUhw==", + "requires": { + "encoding": "^0.1.13" + } + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "requires": { + "iconv-lite": "^0.6.2" + } }, "err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, + "es-abstract": { + "version": "1.18.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", + "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-get-iterator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", + "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-promisify": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz", + "integrity": "sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==" + }, + "event-iterator": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", + "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-fifo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.0.0.tgz", + "integrity": "sha512-4VEXmjxLj7sbs8J//cn2qhRap50dGzF5n8fjay8mau+Jn4hxSeR3xPFwxMaQq/pDaq7+KQk0PAbC2+nWDkJrmQ==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hashlru": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", + "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "interface-datastore": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-5.1.2.tgz", - "integrity": "sha512-nRFl19/IkilNzuPdCUJHejyJCZrVAk4lIRcRXJkekuTdaiagIEnCd9GfmTTQlo2afiVISk8Iy/PxSgnfmrdEIw==", - "requires": { - "err-code": "^3.0.1", - "interface-store": "^0.1.1", - "ipfs-utils": "^8.1.2", - "it-all": "^1.0.2", - "it-drain": "^1.0.1", - "it-filter": "^1.0.2", - "it-take": "^1.0.1", - "nanoid": "^3.0.2", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "requires": { - "multiformats": "^9.4.2" - } + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-3.0.6.tgz", + "integrity": "sha512-ruF9CVmtKCNfzCZYW6YeEKDRDbgFaiKGrSWof19BVCv6Qx/WrL1jRV4sCQUHCaXwJI7FCFknhw++PGafWCXvfw==", + "requires": { + "err-code": "^3.0.1", + "ipfs-utils": "^6.0.0", + "iso-random-stream": "^2.0.0", + "it-all": "^1.0.2", + "it-drain": "^1.0.1", + "nanoid": "^3.0.2" + }, + "dependencies": { + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + } + } + }, + "interface-store": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-1.0.2.tgz", + "integrity": "sha512-rUBLYsgoWwxuUpnQoSUr+DR/3dH3reVeIu5aOHFZK31lAexmb++kR6ZECNRgrx6WvoaM3Akdo0A7TDrqgCzZaQ==" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" } - } }, "ip-address": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-8.1.0.tgz", - "integrity": "sha512-Wz91gZKpNKoXtqvY8ScarKYwhXoK4r/b5QuT+uywe/azv0/nUCo7Bh0IRRI7F9DHR06kJNWtzMGLIbXavngbKA==", - "requires": { - "jsbn": "1.1.0", - "sprintf-js": "1.1.2" - } + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-7.1.0.tgz", + "integrity": "sha512-V9pWC/VJf2lsXqP7IWJ+pe3P1/HCYGBMZrrnT62niLGjAfCbeiwXMUxaeHvnVlz19O27pvXP4azs+Pj/A0x+SQ==", + "requires": { + "jsbn": "1.1.0", + "sprintf-js": "1.1.2" + }, + "dependencies": { + "jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" + } + } + }, + "ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" }, "ipfs-utils": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-8.1.5.tgz", - "integrity": "sha512-qjERTUy0iXPw5LRPA1OQLzYPjdYb7JQenihYaE0L+yA4NMoC9qhGVrYUqU8yaV0Iu+zk7i6BxoNwg8beWsqjbg==", - "requires": { - "abort-controller": "^3.0.0", - "any-signal": "^2.1.0", - "buffer": "^6.0.1", - "electron-fetch": "^1.7.2", - "err-code": "^3.0.1", - "is-electron": "^2.2.0", - "iso-url": "^1.1.5", - "it-glob": "~0.0.11", - "it-to-stream": "^1.0.0", - "merge-options": "^3.0.4", - "nanoid": "^3.1.20", - "native-abort-controller": "^1.0.3", - "native-fetch": "^3.0.0", - "node-fetch": "npm:@achingbrain/node-fetch@^2.6.4", - "react-native-fetch-api": "^2.0.0", - "stream-to-it": "^0.2.2" - } - }, - "it-handshake": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz", - "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==", - "requires": { - "it-pushable": "^1.4.0", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0" - } - }, - "it-reader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", - "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", - "requires": { - "bl": "^5.0.0" - } - }, - "it-take": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.1.tgz", - "integrity": "sha512-6H6JAWYcyumKSpcIPLs6tHN4xnibphmyU79WQaYVCBtaBOzf4fn75wzvSH8fH8fcMlPBTWY1RlmOWleQxBt2Ug==" - }, - "it-ws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-4.0.0.tgz", - "integrity": "sha512-XmTzpMkevc6rUboy73r0CCNhciMmL/Yxir9O6FujRwdrjysztqLBQ1Xkr4CpY2m7BVSCObKotaCWJeZ29lOXRA==", - "requires": { - "buffer": "^6.0.3", - "event-iterator": "^2.0.0", - "iso-url": "^1.1.2", - "ws": "^7.3.1" - } - }, - "jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" - }, - "libp2p": { - "version": "0.32.3", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.32.3.tgz", - "integrity": "sha512-FD1cweUmWgI510JIRfr80yCD/SugAawZPUQXPKPtOtaFeAynpEj7DEIE6iiVpc6Ed56nnyUivVikY7C8L50f9g==", - "requires": { - "@motrix/nat-api": "^0.3.1", - "@vascosantos/moving-average": "^1.1.0", - "abort-controller": "^3.0.0", - "aggregate-error": "^3.1.0", - "any-signal": "^2.1.1", - "bignumber.js": "^9.0.1", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.0", - "es6-promisify": "^6.1.1", - "events": "^3.3.0", - "hashlru": "^2.3.0", - "interface-datastore": "^5.1.1", - "it-all": "^1.0.4", - "it-buffer": "^0.1.2", - "it-drain": "^1.0.3", - "it-filter": "^1.0.1", - "it-first": "^1.0.4", - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.2", - "it-map": "^1.0.4", - "it-merge": "^1.0.0", - "it-pipe": "^1.1.0", - "it-take": "^1.0.0", - "libp2p-crypto": "^0.19.4", - "libp2p-interfaces": "^1.0.0", - "libp2p-utils": "^0.4.0", - "mafmt": "^10.0.0", - "merge-options": "^3.0.4", - "multiaddr": "^10.0.0", - "multiformats": "^9.0.0", - "multistream-select": "^2.0.0", - "mutable-proxy": "^1.0.0", - "node-forge": "^0.10.0", - "p-any": "^3.0.0", - "p-fifo": "^1.0.0", - "p-retry": "^4.4.0", - "p-settle": "^4.1.1", - "peer-id": "^0.15.0", - "private-ip": "^2.1.0", - "protobufjs": "^6.10.2", - "retimer": "^3.0.0", - "sanitize-filename": "^1.6.3", - "set-delayed-interval": "^1.0.0", - "streaming-iterables": "^6.0.0", - "timeout-abort-controller": "^1.1.1", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0", - "wherearewe": "^1.0.0", - "xsalsa20": "^1.1.0" - }, - "dependencies": { - "it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "requires": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - } - } - } - }, - "libp2p-crypto": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.7.tgz", - "integrity": "sha512-Qb5o/3WFKF2j6mYSt4UBPyi2kbKl3jYV0podBJoJCw70DlpM5Xc+oh3fFY9ToSunu8aSQQ5GY8nutjXgX/uGRA==", - "requires": { - "err-code": "^3.0.1", - "is-typedarray": "^1.0.0", - "iso-random-stream": "^2.0.0", - "keypair": "^1.0.1", - "multiformats": "^9.4.5", - "node-forge": "^0.10.0", - "pem-jwk": "^2.0.0", - "protobufjs": "^6.11.2", - "secp256k1": "^4.0.0", - "uint8arrays": "^3.0.0", - "ursa-optional": "^0.10.1" - }, - "dependencies": { - "uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "requires": { - "multiformats": "^9.4.2" - } - } - } - }, - "libp2p-interfaces": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-1.1.0.tgz", - "integrity": "sha512-5nc/HZJgeks1qfkyYQdI84hcZLF4SJKJSUx33JpO0w7v7R+obz+HOwk0GSa4/ZvQHjX+/+OWC4NYVA0yZxZXag==", - "requires": { - "abort-controller": "^3.0.0", - "abortable-iterator": "^3.0.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "it-length-prefixed": "^5.0.2", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.2", - "libp2p-crypto": "^0.19.5", - "multiaddr": "^10.0.0", - "multiformats": "^9.1.2", - "peer-id": "^0.15.0", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "requires": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - } + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-6.0.8.tgz", + "integrity": "sha512-mDDQaDisI/uWk+X08wyw+jBcq76IXwMjgyaoyEgJDb/Izb+QbBCSJjo9q+EvbMxh6/l6q0NiAfbbsxEyQYPW9w==", + "requires": { + "abort-controller": "^3.0.0", + "any-signal": "^2.1.0", + "buffer": "^6.0.1", + "electron-fetch": "^1.7.2", + "err-code": "^3.0.1", + "is-electron": "^2.2.0", + "iso-url": "^1.0.0", + "it-glob": "~0.0.11", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "nanoid": "^3.1.20", + "native-abort-controller": "^1.0.3", + "native-fetch": "^3.0.0", + "node-fetch": "^2.6.1", + "stream-to-it": "^0.2.2" }, - "uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "requires": { - "multiformats": "^9.4.2" - } + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + } } - } }, - "libp2p-mplex": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.4.tgz", - "integrity": "sha512-a8Oy68EXaSBBXGOGYMuwBcpnynkhqAFJ3LiyV24u9fE4wTxvuWTr0prSyKc+KC8QsLuX3A+CAdSgxqm09NbumQ==", - "requires": { - "abort-controller": "^3.0.0", - "abortable-iterator": "^3.0.0", - "bl": "^5.0.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "it-pipe": "^1.1.0", - "it-pushable": "^1.4.1", - "varint": "^6.0.0" - } - }, - "libp2p-utils": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.4.1.tgz", - "integrity": "sha512-kq/US2unamiyY+YwP47dO1uqpAdcbdYI2Fzi9JIEhjfPBaD1MR/uyQ/YP7ABthl3EaxAjIQYd1TVp85d6QKAtQ==", - "requires": { - "abortable-iterator": "^3.0.0", - "debug": "^4.3.0", - "err-code": "^3.0.1", - "ip-address": "^8.0.0", - "is-loopback-addr": "^1.0.0", - "multiaddr": "^10.0.0", - "private-ip": "^2.1.1" - } - }, - "libp2p-websockets": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/libp2p-websockets/-/libp2p-websockets-0.16.1.tgz", - "integrity": "sha512-HXaCdlAkG5RDZCehEnkoVzQjT1C6NIaCKLERkkZ1ArKG77K7Y7uy+8y81uNZhy4OLQ8jGUMyOvKnjw6EjKJPmw==", - "requires": { - "abortable-iterator": "^3.0.0", - "class-is": "^1.1.0", - "debug": "^4.3.1", - "err-code": "^3.0.1", - "ipfs-utils": "^8.1.2", - "it-ws": "^4.0.0", - "libp2p-utils": "^0.4.0", - "mafmt": "^10.0.0", - "multiaddr": "^10.0.0", - "multiaddr-to-uri": "^8.0.0", - "p-defer": "^3.0.0", - "p-timeout": "^4.1.0" - } - }, - "mafmt": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-10.0.0.tgz", - "integrity": "sha512-K1bziJOXcnepfztu+2Xy9FLKVLaFMDuspmiyJIYRxnO0WOxFSV7XKSdMxMrVZxcvg1+YjlTIvSGTImUHU2k4Aw==", - "requires": { - "multiaddr": "^10.0.0" - } - }, - "multiaddr": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.0.tgz", - "integrity": "sha512-yP3LzFkM0GORZHNenS8Ok2spsaICRBhxLEohAfKKwwrgHIEWrDUhMRIkh/MONDBThNqaiGl7Ch1H7qblRDNHyg==", - "requires": { - "dns-over-http-resolver": "^1.0.0", - "err-code": "^3.0.1", - "is-ip": "^3.1.0", - "multiformats": "^9.0.2", - "uint8arrays": "^2.1.3", - "varint": "^6.0.0" - } - }, - "multiaddr-to-uri": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-8.0.0.tgz", - "integrity": "sha512-dq4p/vsOOUdVEd1J1gl+R2GFrXJQH8yjLtz4hodqdVbieg39LvBOdMQRdQnfbg5LSM/q1BYNVf5CBbwZFFqBgA==", - "requires": { - "multiaddr": "^10.0.0" - } - }, - "multistream-select": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/multistream-select/-/multistream-select-2.0.1.tgz", - "integrity": "sha512-ziVNT/vux0uUElP4OKNMVr0afU/X6PciAmT2UJNolhzhSLXIwFAaYfmLajD8NoZ+DsBQ1bp0zZ2nMVPF+FhClA==", - "requires": { - "bl": "^5.0.0", - "debug": "^4.1.1", - "err-code": "^3.0.1", - "it-first": "^1.0.6", - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.0", - "it-pipe": "^1.0.1", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "requires": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - } - }, - "uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "requires": { - "multiformats": "^9.4.2" - } + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" } - } }, - "p-timeout": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", - "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==" - }, - "peer-id": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.3.tgz", - "integrity": "sha512-pass5tk6Fbaz7PTD/3fJg2KWqaproHY0B0Ki8GQMEuMjkoLRcS2Vqt9yy6ob/+8uGBmWjRLtbMhaLV4HTyMDfw==", - "requires": { - "class-is": "^1.1.0", - "libp2p-crypto": "^0.19.0", - "minimist": "^1.2.5", - "multiformats": "^9.4.5", - "protobufjs": "^6.10.2", - "uint8arrays": "^3.0.0" - }, - "dependencies": { - "uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", - "requires": { - "multiformats": "^9.4.2" - } + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "requires": { + "has-bigints": "^1.0.1" } - } }, - "retimer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/retimer/-/retimer-3.0.0.tgz", - "integrity": "sha512-WKE0j11Pa0ZJI5YIk0nflGI7SQsfl2ljihVy7ogh7DeQSeYAUi0ubZ/yEueGtDfUPk6GH5LRw1hBdLq4IwUBWA==" + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } }, - "streaming-iterables": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-6.0.0.tgz", - "integrity": "sha512-GYbJh0ife8PvryWSyFifY1m1uj6zO12d9duuP6xltiOolUz44eKasp5gbFhRbFbLy50ik6hcKn4Pbxl9AkxB+Q==" + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==" + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-electron": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.0.tgz", + "integrity": "sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q==" + }, + "is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-ip": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", + "requires": { + "ip-regex": "^4.0.0" + } + }, + "is-loopback-addr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz", + "integrity": "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw==" + }, + "is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.7.tgz", + "integrity": "sha512-VxlpTBGknhQ3o7YiVjIhdLU6+oD8dPz/79vvvH4F+S/c8608UCVa9fgDpa1kZgFoUST2DCgacc70UszKgzKuvA==", + "requires": { + "available-typed-arrays": "^1.0.4", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" + }, + "is-weakset": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz", + "integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==" }, - "varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - } - } - }, - "@fluencelabs/fluence-network-environment": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@fluencelabs/fluence-network-environment/-/fluence-network-environment-1.0.10.tgz", - "integrity": "sha512-aaWZDDFIIasSTgdFdw1KEz+boZMSn7pXffUENZNLX4DrP11rC3AEX4c8GnIJQbWqGsouOFZOPna2DSG6o2rLNQ==" - }, - "@motrix/nat-api": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@motrix/nat-api/-/nat-api-0.3.2.tgz", - "integrity": "sha512-T3LSHnEUULbSU1o1zCZZ1ul8l8Jm98f0fz/0BeF7DhNvrV63YllLCD4vUR9hFZWu/+WTIVPnbH8dBK5Ckuveuw==", - "requires": { - "async": "^3.2.0", - "debug": "^4.3.1", - "default-gateway": "^6.0.3", - "request": "^2.88.2", - "unordered-array-remove": "^1.0.2", - "xml2js": "^0.4.23" - } - }, - "@multiformats/base-x": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@stablelib/aead": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", - "integrity": "sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==" - }, - "@stablelib/binary": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/binary/-/binary-1.0.1.tgz", - "integrity": "sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==", - "requires": { - "@stablelib/int": "^1.0.1" - } - }, - "@stablelib/bytes": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/bytes/-/bytes-1.0.1.tgz", - "integrity": "sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==" - }, - "@stablelib/chacha": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha/-/chacha-1.0.1.tgz", - "integrity": "sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/chacha20poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz", - "integrity": "sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==", - "requires": { - "@stablelib/aead": "^1.0.1", - "@stablelib/binary": "^1.0.1", - "@stablelib/chacha": "^1.0.1", - "@stablelib/constant-time": "^1.0.1", - "@stablelib/poly1305": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/constant-time/-/constant-time-1.0.1.tgz", - "integrity": "sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==" - }, - "@stablelib/hash": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hash/-/hash-1.0.1.tgz", - "integrity": "sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==" - }, - "@stablelib/hkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hkdf/-/hkdf-1.0.1.tgz", - "integrity": "sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==", - "requires": { - "@stablelib/hash": "^1.0.1", - "@stablelib/hmac": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/hmac": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/hmac/-/hmac-1.0.1.tgz", - "integrity": "sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==", - "requires": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/int": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/int/-/int-1.0.1.tgz", - "integrity": "sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==" - }, - "@stablelib/keyagreement": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz", - "integrity": "sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==", - "requires": { - "@stablelib/bytes": "^1.0.1" - } - }, - "@stablelib/poly1305": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/poly1305/-/poly1305-1.0.1.tgz", - "integrity": "sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==", - "requires": { - "@stablelib/constant-time": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/random": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/random/-/random-1.0.1.tgz", - "integrity": "sha512-zOh+JHX3XG9MSfIB0LZl/YwPP9w3o6WBiJkZvjPoKKu5LKFW4OLV71vMxWp9qG5T43NaWyn0QQTWgqCdO+yOBQ==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/sha256": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/sha256/-/sha256-1.0.1.tgz", - "integrity": "sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==", - "requires": { - "@stablelib/binary": "^1.0.1", - "@stablelib/hash": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@stablelib/wipe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/wipe/-/wipe-1.0.1.tgz", - "integrity": "sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==" - }, - "@stablelib/x25519": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stablelib/x25519/-/x25519-1.0.1.tgz", - "integrity": "sha512-nmyUI2ZArxYDh1PhdoSCPEtlTYE0DYugp2qqx8OtjrX3Hmh7boIlDsD0X71ihAxzxqJf3TyQqN/p58ToWhnp+Q==", - "requires": { - "@stablelib/keyagreement": "^1.0.1", - "@stablelib/random": "^1.0.1", - "@stablelib/wipe": "^1.0.1" - } - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, - "@types/node": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.6.0.tgz", - "integrity": "sha512-OyiZPohMMjZEYqcVo/UJ04GyAxXOJEZO/FpzyXxcH4r/ArrVoXHf4MbUrkLp0Tz7/p1mMKpo5zJ6ZHl8XBNthQ==" - }, - "@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" - }, - "@vascosantos/moving-average": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz", - "integrity": "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w==" - }, - "@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "optional": true - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "abortable-iterator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.0.tgz", - "integrity": "sha512-7KqcPPnMhfot4GrEjK51zesS4Ye/lUCHBgYt3oRxIlU24HO3mVxBwEo9niNyfHqoWKqWLuZTc3zErNomdHA+ag==", - "requires": { - "get-iterator": "^1.0.2" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "any-signal": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", - "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", - "requires": { - "abort-controller": "^3.0.0", - "native-abort-controller": "^1.0.3" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "array-filter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz", - "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=" - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "available-typed-arrays": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz", - "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==", - "requires": { - "array-filter": "^1.0.0" - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base-x": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", - "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "blakejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", - "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==" - }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", - "requires": { - "base-x": "^3.0.2" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "cids": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/cids/-/cids-0.8.1.tgz", - "integrity": "sha512-bs9hGUYHzsclGSt4ipi6SRUBIWYpuEHhd2uPc5hUatNQl6y5mFr+6JvJtN3fGUiNZNohc7rkY6OpXamwj6PQeg==", - "requires": { - "buffer": "^5.5.0", - "class-is": "^1.1.0", - "multibase": "~0.7.0", - "multicodec": "^1.0.1", - "multihashes": "~0.4.17" - } - }, - "class-is": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", - "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "deep-equal": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", - "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", - "requires": { - "call-bind": "^1.0.0", - "es-get-iterator": "^1.1.1", - "get-intrinsic": "^1.0.1", - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.2", - "is-regex": "^1.1.1", - "isarray": "^2.0.5", - "object-is": "^1.1.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.3", - "which-boxed-primitive": "^1.0.1", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.2" - }, - "dependencies": { "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - } - } - }, - "default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "requires": { - "execa": "^5.0.0" - } - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "requires": { - "object-keys": "^1.0.12" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "dns-over-http-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz", - "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==", - "requires": { - "debug": "^4.3.1", - "native-fetch": "^3.0.0", - "receptacle": "^1.3.2" - } - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "electron-fetch": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.3.tgz", - "integrity": "sha512-1AVMaxrHXTTMqd7EK0MGWusdqNr07Rpj8Th6bG4at0oNgIi/1LBwa9CjT/0Zy+M0k/tSJPS04nFxHj0SXDVgVw==", - "requires": { - "encoding": "^0.1.13" - } - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "es-abstract": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", - "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "is-callable": "^1.2.3", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.2", - "is-string": "^1.0.5", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.0" - } - }, - "es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - } - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-promisify": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz", - "integrity": "sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==" - }, - "event-iterator": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-2.0.0.tgz", - "integrity": "sha512-KGft0ldl31BZVV//jj+IAIGCxkvvUkkON+ScH6zfoX+l+omX6001ggyRSpI0Io2Hlro0ThXotswCtfzS8UkIiQ==" - }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-fifo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.0.0.tgz", - "integrity": "sha512-4VEXmjxLj7sbs8J//cn2qhRap50dGzF5n8fjay8mau+Jn4hxSeR3xPFwxMaQq/pDaq7+KQk0PAbC2+nWDkJrmQ==" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-iterator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", - "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hashlru": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", - "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==" - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "interface-store": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-0.1.1.tgz", - "integrity": "sha512-ynnjIOybDZc0Brep3HHSa2RVlo/M5g7kuL/leui7o21EusKcLJS170vCJ8rliisc3c4jyd9ao5PthkGlBaX29g==" - }, - "ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" - }, - "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-bigint": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", - "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==" - }, - "is-boolean-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", - "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", - "requires": { - "call-bind": "^1.0.0" - } - }, - "is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" - }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" - }, - "is-electron": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.0.tgz", - "integrity": "sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q==" - }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-ip": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", - "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", - "requires": { - "ip-regex": "^4.0.0" - } - }, - "is-loopback-addr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz", - "integrity": "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw==" - }, - "is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==" - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" - }, - "is-number-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", - "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==" - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" - }, - "is-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" - } - }, - "is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "requires": { - "has-symbols": "^1.0.1" - } - }, - "is-typed-array": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", - "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", - "requires": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.0-next.2", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==" - }, - "is-weakset": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.1.tgz", - "integrity": "sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "iso-random-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.0.tgz", - "integrity": "sha512-lGuIu104KfBV9ubYTSaE3GeAr6I69iggXxBHbTBc5u/XKlwlWl0LCytnkIZissaKqvxablwRD9B3ktVnmIUnEg==", - "requires": { - "events": "^3.3.0", - "readable-stream": "^3.4.0" - } - }, - "iso-url": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", - "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "it-all": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.5.tgz", - "integrity": "sha512-ygD4kA4vp8fi+Y+NBgEKt6W06xSbv6Ub/0V8d1r3uCyJ9Izwa1UspkIOlqY9fOee0Z1w3WRo1+VWyAU4DgtufA==" - }, - "it-buffer": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/it-buffer/-/it-buffer-0.1.3.tgz", - "integrity": "sha512-9a2/9SYVwG7bcn3tpRDR4bXbtuMLXnDK48KVC+GXiQg97ZOOdWz2nIITBsOQ19b+gj01Rw8RNwtiLDLI8P8oiQ==", - "requires": { - "bl": "^5.0.0", - "buffer": "^6.0.3" - }, - "dependencies": { - "bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "it-drain": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.4.tgz", - "integrity": "sha512-coB7mcyZ4lWBQKoQGJuqM+P94pvpn2T3KY27vcVWPqeB1WmoysRC76VZnzAqrBWzpWcoEJMjZ+fsMBslxNaWfQ==" - }, - "it-filter": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.2.tgz", - "integrity": "sha512-rxFUyPCrhk7WrNxD8msU10iEPhQmROoqwuyWmQUYY1PtopwUGBYyra9EYG2nRZADYeuT83cohKWmKCWPzpeyiw==" - }, - "it-first": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.6.tgz", - "integrity": "sha512-wiI02c+G1BVuu0jz30Nsr1/et0cpSRulKUusN8HDZXxuX4MdUzfMp2P4JUk+a49Wr1kHitRLrnnh3+UzJ6neaQ==" - }, - "it-glob": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.13.tgz", - "integrity": "sha512-0Hcd5BraJUPzL28NWiFbdNrcdyNxNTKKdU3sjdFiYynNTQpwlG2UKW31X7bp+XhJwux/oPzIquo5ioztVmc2RQ==", - "requires": { - "@types/minimatch": "^3.0.4", - "minimatch": "^3.0.4" - } - }, - "it-length-prefixed": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-3.0.1.tgz", - "integrity": "sha512-QnfnFkpklDhWpyPQ2al6pdqmsQbwZAUpa7066e8S9RQxXo0s4o21ceqCG0n/0wdmvgfRSYsW5g2dYgchqtLZYw==", - "requires": { - "bl": "^4.0.2", - "buffer": "^5.5.0", - "varint": "^5.0.0" - } - }, - "it-map": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.5.tgz", - "integrity": "sha512-EElupuWhHVStUgUY+OfTJIS2MZed96lDrAXzJUuqiiqLnIKoBRqtX1ZG2oR0bGDsSppmz83MtzCeKLZ9TVAUxQ==" - }, - "it-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.0.tgz", - "integrity": "sha512-bs40LMjG/9JMOcJ7pgyGLoOeWBpw28ZoMmZIk/1NCa5SUxd4elXCuadAr2qSjPiHz2GxrqoWGFAP7SePGddatw==", - "requires": { - "it-pushable": "^1.4.0" - } - }, - "it-pair": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz", - "integrity": "sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww==", - "requires": { - "get-iterator": "^1.0.2" - } - }, - "it-pb-rpc": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.1.11.tgz", - "integrity": "sha512-1Yvae7LNHNM/WzxWT7OyHqwpA7DZoGos22JioMZ5H6i9iExQf71NHE0phHKEfkJdWLo7SRqPLLbqs2zaeKCwPA==", - "requires": { - "is-buffer": "^2.0.5", - "it-handshake": "^2.0.0", - "it-length-prefixed": "^5.0.2" - }, - "dependencies": { - "bl": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", - "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", - "requires": { - "buffer": "^6.0.3", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "it-handshake": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz", - "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==", - "requires": { - "it-pushable": "^1.4.0", - "it-reader": "^3.0.0", - "p-defer": "^3.0.0" - } - }, - "it-length-prefixed": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", - "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", - "requires": { - "bl": "^5.0.0", - "buffer": "^6.0.3", - "varint": "^6.0.0" - } - }, - "it-reader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", - "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", - "requires": { - "bl": "^5.0.0" - } - }, - "varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - } - } - }, - "it-pipe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", - "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" - }, - "it-pushable": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", - "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", - "requires": { - "fast-fifo": "^1.0.0" - } - }, - "it-to-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", - "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", - "requires": { - "buffer": "^6.0.3", - "fast-fifo": "^1.0.0", - "get-iterator": "^1.0.2", - "p-defer": "^3.0.0", - "p-fifo": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "keypair": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.3.tgz", - "integrity": "sha512-0wjZ2z/SfZZq01+3/8jYLd8aEShSa+aat1zyPGQY3IuKoEAp6DJGvu2zt6snELrQU9jbCkIlCyNOD7RdQbHhkQ==" - }, - "libp2p-crypto": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.0.tgz", - "integrity": "sha512-w4tduG32px1i6TwekYZBSvizZTvDdMReZkE4DhUkf9IQ8WSqSo98K+6IZaYYM6PzWd5arbcAQQcFCRalJu9Ytw==", - "requires": { - "err-code": "^2.0.0", - "is-typedarray": "^1.0.0", - "iso-random-stream": "^1.1.0", - "keypair": "^1.0.1", - "multibase": "^3.0.0", - "multicodec": "^2.0.0", - "multihashing-async": "^2.0.1", - "node-forge": "^0.10.0", - "pem-jwk": "^2.0.0", - "protons": "^2.0.0", - "secp256k1": "^4.0.0", - "uint8arrays": "^1.1.0", - "ursa-optional": "^0.10.1" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "iso-random-stream": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-1.1.2.tgz", - "integrity": "sha512-7y0tsBBgQs544iTYjyrMp5xvgrbYR8b+plQq1Bryp+03p0LssrxC9C1M0oHv4QESDt7d95c74XvMk/yawKqX+A==", - "requires": { - "buffer": "^6.0.3", - "readable-stream": "^3.4.0" - } + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.0.tgz", + "integrity": "sha512-lGuIu104KfBV9ubYTSaE3GeAr6I69iggXxBHbTBc5u/XKlwlWl0LCytnkIZissaKqvxablwRD9B3ktVnmIUnEg==", + "requires": { + "events": "^3.3.0", + "readable-stream": "^3.4.0" + } + }, + "iso-url": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.5.tgz", + "integrity": "sha512-+3JqoKdBTGmyv9vOkS6b9iHhvK34UajfTibrH/1HOK8TI7K2VsM0qOCd+aJdWKtSOA8g3PqZfcwDmnR0p3klqQ==" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "it-all": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.5.tgz", + "integrity": "sha512-ygD4kA4vp8fi+Y+NBgEKt6W06xSbv6Ub/0V8d1r3uCyJ9Izwa1UspkIOlqY9fOee0Z1w3WRo1+VWyAU4DgtufA==" + }, + "it-buffer": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/it-buffer/-/it-buffer-0.1.3.tgz", + "integrity": "sha512-9a2/9SYVwG7bcn3tpRDR4bXbtuMLXnDK48KVC+GXiQg97ZOOdWz2nIITBsOQ19b+gj01Rw8RNwtiLDLI8P8oiQ==", + "requires": { + "bl": "^5.0.0", + "buffer": "^6.0.3" + }, + "dependencies": { + "bl": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", + "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", + "requires": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, + "it-drain": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.4.tgz", + "integrity": "sha512-coB7mcyZ4lWBQKoQGJuqM+P94pvpn2T3KY27vcVWPqeB1WmoysRC76VZnzAqrBWzpWcoEJMjZ+fsMBslxNaWfQ==" + }, + "it-filter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.2.tgz", + "integrity": "sha512-rxFUyPCrhk7WrNxD8msU10iEPhQmROoqwuyWmQUYY1PtopwUGBYyra9EYG2nRZADYeuT83cohKWmKCWPzpeyiw==" + }, + "it-first": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.6.tgz", + "integrity": "sha512-wiI02c+G1BVuu0jz30Nsr1/et0cpSRulKUusN8HDZXxuX4MdUzfMp2P4JUk+a49Wr1kHitRLrnnh3+UzJ6neaQ==" + }, + "it-glob": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.13.tgz", + "integrity": "sha512-0Hcd5BraJUPzL28NWiFbdNrcdyNxNTKKdU3sjdFiYynNTQpwlG2UKW31X7bp+XhJwux/oPzIquo5ioztVmc2RQ==", + "requires": { + "@types/minimatch": "^3.0.4", + "minimatch": "^3.0.4" + } + }, + "it-goodbye": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/it-goodbye/-/it-goodbye-2.0.2.tgz", + "integrity": "sha512-k56lqArpxkIU0yyhnPhvnyOBpzRQn+4VEyd+dUBWhN5kvCgPBeC0XMuHiA71iU98sDpCrJrT/X+81ajT0AOQtQ==", + "requires": { + "buffer": "^5.6.0" + } + }, + "it-handshake": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-1.0.2.tgz", + "integrity": "sha512-uutOim5xF1eyDQD3u8qd3TxbWKwxqGMlbvacZsRsPdjO1BD9lnPTVci0jSMGsvMOu+5Y3W/QQ4hPQb87qPmPVQ==", + "requires": { + "it-pushable": "^1.4.0", + "it-reader": "^2.0.0", + "p-defer": "^3.0.0" + } + }, + "it-length-prefixed": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-3.0.1.tgz", + "integrity": "sha512-QnfnFkpklDhWpyPQ2al6pdqmsQbwZAUpa7066e8S9RQxXo0s4o21ceqCG0n/0wdmvgfRSYsW5g2dYgchqtLZYw==", + "requires": { + "bl": "^4.0.2", + "buffer": "^5.5.0", + "varint": "^5.0.0" + } + }, + "it-map": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.5.tgz", + "integrity": "sha512-EElupuWhHVStUgUY+OfTJIS2MZed96lDrAXzJUuqiiqLnIKoBRqtX1ZG2oR0bGDsSppmz83MtzCeKLZ9TVAUxQ==" + }, + "it-merge": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.0.tgz", + "integrity": "sha512-bs40LMjG/9JMOcJ7pgyGLoOeWBpw28ZoMmZIk/1NCa5SUxd4elXCuadAr2qSjPiHz2GxrqoWGFAP7SePGddatw==", + "requires": { + "it-pushable": "^1.4.0" + } + }, + "it-pair": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-pair/-/it-pair-1.0.0.tgz", + "integrity": "sha512-9raOiDu5OAuDOahtMtapKQDrQTxBfzlzrNcB6o7JARHkt+7Bb1dMkW/TpYdAjBJE77KH3e2zGzwpGUP9tXbLww==", + "requires": { + "get-iterator": "^1.0.2" + } + }, + "it-pb-rpc": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.1.11.tgz", + "integrity": "sha512-1Yvae7LNHNM/WzxWT7OyHqwpA7DZoGos22JioMZ5H6i9iExQf71NHE0phHKEfkJdWLo7SRqPLLbqs2zaeKCwPA==", + "requires": { + "is-buffer": "^2.0.5", + "it-handshake": "^2.0.0", + "it-length-prefixed": "^5.0.2" + }, + "dependencies": { + "bl": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz", + "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==", + "requires": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "it-handshake": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-handshake/-/it-handshake-2.0.0.tgz", + "integrity": "sha512-K4q+mz8aLlCK3vTjtgNdHC9c/JbuOATsfogarjMsLcBZC5vYfKbX3Gq3AWcCdjIsIrPqzTlhPKSxl64LJkrt2w==", + "requires": { + "it-pushable": "^1.4.0", + "it-reader": "^3.0.0", + "p-defer": "^3.0.0" + } + }, + "it-length-prefixed": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", + "integrity": "sha512-b+jDHLcnOnPDQN79ronmzF5jeBjdJsy0ce2O6i6X4J5tnaO8Fd146ZA/tMbzaLlKnTpXa0eKtofpYhumXGENeg==", + "requires": { + "bl": "^5.0.0", + "buffer": "^6.0.3", + "varint": "^6.0.0" + } + }, + "it-reader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-3.0.0.tgz", + "integrity": "sha512-NxR40odATeaBmSefn6Xn43DplYvn2KtEKQzn4jrTRuPYXMky5M4e+KQ7aTJh0k0vkytLyeenGO1I1GXlGm4laQ==", + "requires": { + "bl": "^5.0.0" + } + }, + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + } + } + }, + "it-pipe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", + "integrity": "sha512-lF0/3qTVeth13TOnHVs0BTFaziwQF7m5Gg+E6JV0BXcLKutC92YjSi7bASgkPOXaLEb+YvNZrPorGMBIJvZfxg==" + }, + "it-protocol-buffers": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/it-protocol-buffers/-/it-protocol-buffers-0.2.1.tgz", + "integrity": "sha512-UbezSc9BZTw0DU7mFS6iG9PXeycJfTDJlFAlniI3x1CRrKeDP+IW6ERPAFskHI3O+wij18Mk7eHgDtFz4Zk65A==", + "requires": { + "it-buffer": "^0.1.1", + "it-length-prefixed": "^3.0.0" + } + }, + "it-pushable": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-1.4.2.tgz", + "integrity": "sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg==", + "requires": { + "fast-fifo": "^1.0.0" + } + }, + "it-reader": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-2.1.0.tgz", + "integrity": "sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==", + "requires": { + "bl": "^4.0.0" + } + }, + "it-take": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.0.tgz", + "integrity": "sha512-zfr2iAtekTGhHVWzCqqqgDnHhmzdzfCW92L0GvbaSFlvc3n2Ep/sponzmlNl2Kg39N5Py+02v+Aypc+i2c+9og==" + }, + "it-to-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-1.0.0.tgz", + "integrity": "sha512-pLULMZMAB/+vbdvbZtebC0nWBTbG581lk6w8P7DfIIIKUfa8FbY7Oi0FxZcFPbxvISs7A9E+cMpLDBc1XhpAOA==", + "requires": { + "buffer": "^6.0.3", + "fast-fifo": "^1.0.0", + "get-iterator": "^1.0.2", + "p-defer": "^3.0.0", + "p-fifo": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, + "it-ws": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/it-ws/-/it-ws-3.0.2.tgz", + "integrity": "sha512-INZhCXNjd5Xr7mYWtNZQb9y5i6XIsf4CKD4XUXeCD3tbaoIya1bPVtJNP1lN5UVGo6Ql9rAn3WVre/8IKtKShw==", + "requires": { + "buffer": "^5.6.0", + "event-iterator": "^2.0.0", + "relative-url": "^1.0.2", + "ws": "^7.3.1" + } + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "just-extend": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz", + "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==" + }, + "keypair": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.3.tgz", + "integrity": "sha512-0wjZ2z/SfZZq01+3/8jYLd8aEShSa+aat1zyPGQY3IuKoEAp6DJGvu2zt6snELrQU9jbCkIlCyNOD7RdQbHhkQ==" + }, + "libp2p": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.30.10.tgz", + "integrity": "sha512-TdFLG4CF7/tLF1ypwNM8+q1YshW3+hYWDWYo6IA5Zyhg2MFDPdsUqaX4JLG0EiYHQvVcrUQF8B7rL49YbDHE7Q==", + "requires": { + "@motrix/nat-api": "^0.3.1", + "abort-controller": "^3.0.0", + "aggregate-error": "^3.1.0", + "any-signal": "^2.1.1", + "bignumber.js": "^9.0.1", + "cids": "^1.1.5", + "class-is": "^1.1.0", + "debug": "^4.3.1", + "err-code": "^2.0.0", + "es6-promisify": "^6.1.1", + "events": "^3.2.0", + "hashlru": "^2.3.0", + "interface-datastore": "^3.0.3", + "ipfs-utils": "^6.0.0", + "it-all": "^1.0.4", + "it-buffer": "^0.1.2", + "it-drain": "^1.0.3", + "it-filter": "^1.0.1", + "it-first": "^1.0.4", + "it-handshake": "^1.0.2", + "it-length-prefixed": "^3.1.0", + "it-map": "^1.0.4", + "it-merge": "1.0.0", + "it-pipe": "^1.1.0", + "it-protocol-buffers": "^0.2.0", + "it-take": "1.0.0", + "libp2p-crypto": "^0.19.0", + "libp2p-interfaces": "^0.8.1", + "libp2p-utils": "^0.2.2", + "mafmt": "^8.0.0", + "merge-options": "^3.0.4", + "moving-average": "^1.0.0", + "multiaddr": "^8.1.0", + "multicodec": "^2.1.0", + "multihashing-async": "^2.0.1", + "multistream-select": "^1.0.0", + "mutable-proxy": "^1.0.0", + "node-forge": "^0.10.0", + "p-any": "^3.0.0", + "p-fifo": "^1.0.0", + "p-retry": "^4.2.0", + "p-settle": "^4.0.1", + "peer-id": "^0.14.2", + "private-ip": "^2.0.0", + "protons": "^2.0.0", + "retimer": "^2.0.0", + "sanitize-filename": "^1.6.3", + "set-delayed-interval": "^1.0.0", + "streaming-iterables": "^5.0.2", + "timeout-abort-controller": "^1.1.1", + "varint": "^6.0.0", + "xsalsa20": "^1.0.2" + }, + "dependencies": { + "cids": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.8.tgz", + "integrity": "sha512-N+YllwSV6XwqYIzx1dggJj9lioivdUe5U5i3t6ZIM3i2yt57d4Yfxk3xSMMgPIt4b9sHDkOmMEA+PYDKSVuWxA==", + "requires": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^3.0.0" + }, + "dependencies": { + "multicodec": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.1.1.tgz", + "integrity": "sha512-q29htEIgHglgxEcD0SvTmf1er68nfhm87rMKPqpClequHOTJknDCX5xA8QHBwBstgj+niO2KrsJeFzpsMZj2DQ==", + "requires": { + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + } + } + } + }, + "it-length-prefixed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-3.1.0.tgz", + "integrity": "sha512-E5GwT6qfZEwh3/XThyYwgjKJ4/hxvTC9kdbj3gxXDeUDKtC7+K2T647sPeX7xDEWqunsnoQyvOrjoHPegaT3uw==", + "requires": { + "@types/bl": "^2.1.0", + "bl": "^4.0.2", + "buffer": "^5.5.0", + "varint": "^5.0.0" + }, + "dependencies": { + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + } + } + }, + "multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "requires": { + "@multiformats/base-x": "^4.0.1" + } + }, + "multicodec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", + "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "requires": { + "uint8arrays": "1.1.0", + "varint": "^6.0.0" + }, + "dependencies": { + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + } + } + }, + "multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "requires": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "dependencies": { + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + } + } + }, + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + } + } + }, + "libp2p-crypto": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.0.tgz", + "integrity": "sha512-w4tduG32px1i6TwekYZBSvizZTvDdMReZkE4DhUkf9IQ8WSqSo98K+6IZaYYM6PzWd5arbcAQQcFCRalJu9Ytw==", + "requires": { + "err-code": "^2.0.0", + "is-typedarray": "^1.0.0", + "iso-random-stream": "^1.1.0", + "keypair": "^1.0.1", + "multibase": "^3.0.0", + "multicodec": "^2.0.0", + "multihashing-async": "^2.0.1", + "node-forge": "^0.10.0", + "pem-jwk": "^2.0.0", + "protons": "^2.0.0", + "secp256k1": "^4.0.0", + "uint8arrays": "^1.1.0", + "ursa-optional": "^0.10.1" + }, + "dependencies": { + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "iso-random-stream": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-1.1.2.tgz", + "integrity": "sha512-7y0tsBBgQs544iTYjyrMp5xvgrbYR8b+plQq1Bryp+03p0LssrxC9C1M0oHv4QESDt7d95c74XvMk/yawKqX+A==", + "requires": { + "buffer": "^6.0.3", + "readable-stream": "^3.4.0" + } + }, + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "multicodec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", + "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "requires": { + "uint8arrays": "1.1.0", + "varint": "^6.0.0" + } + }, + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + }, + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + } + } + }, + "libp2p-interfaces": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-0.8.4.tgz", + "integrity": "sha512-LaPkXVhqgAcFwqsyqGSZNAjgXSa2V+skOfIKE2UtQHaduwLct2KpFDOmvhRHTWHfRHwI9bSCskDB7xWGNTwZsQ==", + "requires": { + "@types/bl": "^2.1.0", + "abort-controller": "^3.0.0", + "abortable-iterator": "^3.0.0", + "chai": "^4.2.0", + "chai-checkmark": "^1.0.1", + "debug": "^4.3.1", + "delay": "^4.4.0", + "detect-node": "^2.0.4", + "dirty-chai": "^2.0.1", + "err-code": "^2.0.3", + "it-goodbye": "^2.0.2", + "it-length-prefixed": "^3.1.0", + "it-pair": "^1.0.0", + "it-pipe": "^1.1.0", + "it-pushable": "^1.4.0", + "libp2p-crypto": "^0.19.0", + "libp2p-tcp": "^0.15.0", + "multiaddr": "^8.1.2", + "multibase": "^3.1.1", + "multihashes": "^3.1.1", + "p-defer": "^3.0.0", + "p-limit": "^3.1.0", + "p-wait-for": "^3.2.0", + "peer-id": "^0.14.2", + "protons": "^2.0.0", + "sinon": "^9.2.4", + "streaming-iterables": "^5.0.4", + "uint8arrays": "^2.0.5" + }, + "dependencies": { + "it-length-prefixed": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-3.1.0.tgz", + "integrity": "sha512-E5GwT6qfZEwh3/XThyYwgjKJ4/hxvTC9kdbj3gxXDeUDKtC7+K2T647sPeX7xDEWqunsnoQyvOrjoHPegaT3uw==", + "requires": { + "@types/bl": "^2.1.0", + "bl": "^4.0.2", + "buffer": "^5.5.0", + "varint": "^5.0.0" + } + }, + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "multihashes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.1.2.tgz", + "integrity": "sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ==", + "requires": { + "multibase": "^3.1.0", + "uint8arrays": "^2.0.5", + "varint": "^6.0.0" + }, + "dependencies": { + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + } + } + }, + "uint8arrays": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", + "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "libp2p-mplex": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.2.tgz", + "integrity": "sha512-fNdlPTts2MmGalPTYdQtzeGeuM73je9mP+2OvB6Gdn5vP9LeutUzUV4wvD9ISDVi8Gru5BzCsIBiS3WjxQqjdw==", + "requires": { + "abort-controller": "^3.0.0", + "abortable-iterator": "^3.0.0", + "bl": "^4.0.0", + "debug": "^4.3.1", + "err-code": "^2.0.3", + "it-pipe": "^1.1.0", + "it-pushable": "^1.4.1", + "varint": "^6.0.0" + }, + "dependencies": { + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + } + } + }, + "libp2p-noise": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/libp2p-noise/-/libp2p-noise-2.0.5.tgz", + "integrity": "sha512-hmR1Y4bJ6hxEO+1aIF1HeJrUNh9NHUbH8gUTtMqpIe7zfdggGau9XKMY0InbafBPFF/WxeIOJDKZiQV4qy2fFg==", + "requires": { + "bcrypto": "^5.4.0", + "debug": "^4.3.1", + "it-buffer": "^0.1.1", + "it-length-prefixed": "^3.0.0", + "it-pair": "^1.0.0", + "it-pb-rpc": "^0.1.9", + "it-pipe": "^1.1.0", + "libp2p-crypto": "^0.19.0", + "peer-id": "^0.14.3", + "protobufjs": "^6.10.1", + "uint8arrays": "^2.0.5" + }, + "dependencies": { + "uint8arrays": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", + "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "libp2p-tcp": { + "version": "0.15.4", + "resolved": "https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.15.4.tgz", + "integrity": "sha512-MqXIlqV7t9z0A1Ww9Omd2XIlndcYOAh5R6kWRZ8Vo/CITazKUC5ZGNoj23hq/aEPaX8p5XmJs2BKESg/OuhGhQ==", + "requires": { + "abortable-iterator": "^3.0.0", + "class-is": "^1.1.0", + "debug": "^4.3.1", + "err-code": "^3.0.1", + "libp2p-utils": "^0.3.0", + "mafmt": "^9.0.0", + "multiaddr": "^9.0.1", + "stream-to-it": "^0.2.2" + }, + "dependencies": { + "cids": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.8.tgz", + "integrity": "sha512-N+YllwSV6XwqYIzx1dggJj9lioivdUe5U5i3t6ZIM3i2yt57d4Yfxk3xSMMgPIt4b9sHDkOmMEA+PYDKSVuWxA==", + "requires": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^3.0.0" + }, + "dependencies": { + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + }, + "libp2p-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.3.1.tgz", + "integrity": "sha512-LOVfww7a6Rhtoupl3z1ABuTEli5whY3VLTB9QntsOIwbOcX9GfmjuhqYbEDht9lVPAQl+rCUWbfDMvK121ryUg==", + "requires": { + "abortable-iterator": "^3.0.0", + "debug": "^4.3.0", + "err-code": "^3.0.1", + "ip-address": "^7.1.0", + "is-loopback-addr": "^1.0.0", + "multiaddr": "^9.0.1", + "private-ip": "^2.1.1" + } + }, + "mafmt": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-9.0.0.tgz", + "integrity": "sha512-BwKL6FJxc6R85K6gFE/pX7MVyCp0NkM2DJHg0RatxVgDlK4g9kqtfXQUt2iReSmTcgZss/Q/Bdfa2KTg4KyC+g==", + "requires": { + "multiaddr": "^9.0.1" + } + }, + "multiaddr": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", + "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", + "requires": { + "cids": "^1.0.0", + "dns-over-http-resolver": "^1.0.0", + "err-code": "^3.0.1", + "is-ip": "^3.1.0", + "multibase": "^4.0.2", + "uint8arrays": "^2.1.3", + "varint": "^6.0.0" + } + }, + "multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "requires": { + "@multiformats/base-x": "^4.0.1" + } + }, + "multicodec": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.1.1.tgz", + "integrity": "sha512-q29htEIgHglgxEcD0SvTmf1er68nfhm87rMKPqpClequHOTJknDCX5xA8QHBwBstgj+niO2KrsJeFzpsMZj2DQ==", + "requires": { + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + }, + "dependencies": { + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "requires": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "dependencies": { + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + } + } + }, + "uint8arrays": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", + "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", + "requires": { + "multiformats": "^9.4.2" + } + }, + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + } + } + }, + "libp2p-utils": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/libp2p-utils/-/libp2p-utils-0.2.3.tgz", + "integrity": "sha512-9BoMCgvJF7LJ+JVMaHtqfCqhZN4i/sx0DrY6lf9U0Rq9uUgQ9qTai2O9LXcfr1LOS3OMMeRLsKk25MMgsf7W3w==", + "requires": { + "abortable-iterator": "^3.0.0", + "debug": "^4.2.0", + "err-code": "^2.0.3", + "ip-address": "^6.1.0", + "is-loopback-addr": "^1.0.0", + "multiaddr": "^8.0.0", + "private-ip": "^2.1.1" + }, + "dependencies": { + "ip-address": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-6.4.0.tgz", + "integrity": "sha512-c5uxc2WUTuRBVHT/6r4m7HIr/DfV0bF6DvLH3iZGSK8wp8iMwwZSgIq2do0asFf8q9ECug0SE+6+1ACMe4sorA==", + "requires": { + "jsbn": "1.1.0", + "lodash.find": "4.6.0", + "lodash.max": "4.0.1", + "lodash.merge": "4.6.2", + "lodash.padstart": "4.6.1", + "lodash.repeat": "4.1.0", + "sprintf-js": "1.1.2" + } + }, + "jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA=" + } + } + }, + "libp2p-websockets": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/libp2p-websockets/-/libp2p-websockets-0.15.3.tgz", + "integrity": "sha512-GbrdacmtqE4rdb8+UnarRlMvnUwfO4T4ABCMAGkVkwb7faAIA5S3bfCYnTAxRV1nvESAk6KwR+4JSkGM+A7j5w==", + "requires": { + "abortable-iterator": "^3.0.0", + "class-is": "^1.1.0", + "debug": "^4.2.0", + "err-code": "^3.0.1", + "ipfs-utils": "^6.0.1", + "it-ws": "^3.0.2", + "libp2p-utils": "^0.2.1", + "mafmt": "^8.0.1", + "multiaddr": "^8.1.1", + "multiaddr-to-uri": "^6.0.0", + "p-defer": "^3.0.0", + "p-timeout": "^4.1.0" + }, + "dependencies": { + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + }, + "p-timeout": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-4.1.0.tgz", + "integrity": "sha512-+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==" + } + } + }, + "loady": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/loady/-/loady-0.0.5.tgz", + "integrity": "sha512-uxKD2HIj042/HBx77NBcmEPsD+hxCgAtjEWlYNScuUjIsh/62Uyu39GOR68TBR68v+jqDL9zfftCWoUo4y03sQ==" + }, + "lodash.find": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.find/-/lodash.find-4.6.0.tgz", + "integrity": "sha1-ywcE1Hq3F4n/oN6Ll92Sb7iLE7E=" + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" + }, + "lodash.max": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.max/-/lodash.max-4.0.1.tgz", + "integrity": "sha1-hzVWbGGLNan3YFILSHrnllivE2o=" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "lodash.padstart": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", + "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=" + }, + "lodash.repeat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-4.1.0.tgz", + "integrity": "sha1-/H3oEx2MisB+S0n3T/6CnR8r7EQ=" + }, + "loglevel": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz", + "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==" + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "mafmt": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/mafmt/-/mafmt-8.0.4.tgz", + "integrity": "sha512-wwZ5+PU0vQw10kwQRyZin1Z0dqVOp0BnYlX1xvXHS2fmLwrrQCfU1+3tlW5MRcihUwGz1virnVhbRAU1biKfiw==", + "requires": { + "multiaddr": "^8.0.0" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "merge-options": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "requires": { + "is-plain-obj": "^2.1.0" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "mime-db": { + "version": "1.49.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", + "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" + }, + "mime-types": { + "version": "2.1.32", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", + "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", + "requires": { + "mime-db": "1.49.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "moving-average": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/moving-average/-/moving-average-1.0.1.tgz", + "integrity": "sha512-Hl3aUJqu/7LMslHM6mz9Sk1mpFwe4jW5QcmJgukcUGFILBcQW5L9ot8BUVRSuUaW3o/1Twrwmu7w2NTGvw76cA==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multiaddr": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.2.tgz", + "integrity": "sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==", + "requires": { + "cids": "^1.0.0", + "class-is": "^1.1.0", + "dns-over-http-resolver": "^1.0.0", + "err-code": "^2.0.3", + "is-ip": "^3.1.0", + "multibase": "^3.0.0", + "uint8arrays": "^1.1.0", + "varint": "^5.0.0" + }, + "dependencies": { + "cids": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.8.tgz", + "integrity": "sha512-N+YllwSV6XwqYIzx1dggJj9lioivdUe5U5i3t6ZIM3i2yt57d4Yfxk3xSMMgPIt4b9sHDkOmMEA+PYDKSVuWxA==", + "requires": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^3.0.0" + }, + "dependencies": { + "multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "requires": { + "@multiformats/base-x": "^4.0.1" + } + }, + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "multicodec": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.1.1.tgz", + "integrity": "sha512-q29htEIgHglgxEcD0SvTmf1er68nfhm87rMKPqpClequHOTJknDCX5xA8QHBwBstgj+niO2KrsJeFzpsMZj2DQ==", + "requires": { + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + }, + "dependencies": { + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + }, + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + } + } + }, + "multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "requires": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "dependencies": { + "multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "requires": { + "@multiformats/base-x": "^4.0.1" + } + }, + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + } + } + }, + "multiaddr-to-uri": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz", + "integrity": "sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A==", + "requires": { + "multiaddr": "^8.0.0" + } }, "multibase": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", - "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", - "requires": { - "@multiformats/base-x": "^4.0.1", - "web-encoding": "^1.0.6" - } + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", + "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", + "requires": { + "base-x": "^3.0.8", + "buffer": "^5.5.0" + } }, "multicodec": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", - "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", - "requires": { - "uint8arrays": "1.1.0", - "varint": "^6.0.0" - } + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", + "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", + "requires": { + "buffer": "^5.6.0", + "varint": "^5.0.0" + } }, - "uint8arrays": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", - "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", - "requires": { - "multibase": "^3.0.0", - "web-encoding": "^1.0.2" - } - }, - "varint": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", - "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" - } - } - }, - "loglevel": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz", - "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "merge-options": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", - "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", - "requires": { - "is-plain-obj": "^2.1.0" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" - }, - "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "requires": { - "mime-db": "1.49.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multibase": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", - "integrity": "sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg==", - "requires": { - "base-x": "^3.0.8", - "buffer": "^5.5.0" - } - }, - "multicodec": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz", - "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==", - "requires": { - "buffer": "^5.6.0", - "varint": "^5.0.0" - } - }, - "multiformats": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.4.5.tgz", - "integrity": "sha512-zQxukxsHM34EJi3yT3MkUlycY9wEouyrAz0PSN+CyCj6cYchJZ4LrTH74YtlsxVyAK6waz/gnVLmJwi3P0knKg==" - }, - "multihashes": { - "version": "0.4.21", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", - "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", - "requires": { - "buffer": "^5.5.0", - "multibase": "^0.7.0", - "varint": "^5.0.0" - } - }, - "multihashing-async": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-2.1.3.tgz", - "integrity": "sha512-z4dlnTgZLn4D8daBdMGn601aS3GLOMnW5+EKoaevLwa3Fu4FK64ofn9PdJ3s0bDkhGK2fdwSjrG/S8mWlW9bzQ==", - "requires": { - "blakejs": "^1.1.0", - "err-code": "^3.0.0", - "js-sha3": "^0.8.0", - "multihashes": "^4.0.1", - "murmurhash3js-revisited": "^3.0.0", - "uint8arrays": "^2.1.3" - }, - "dependencies": { - "err-code": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", - "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" - }, - "multibase": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.5.tgz", - "integrity": "sha512-oqFkOYXdUkakxT8MqGyn5sE1KYeVt1zataOTvg688skQp6TVBv9XnouCcVO86XKFzh/UTiCGmEImTx6ZnPZ0qQ==", - "requires": { - "@multiformats/base-x": "^4.0.1" - } + "multiformats": { + "version": "9.4.6", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.4.6.tgz", + "integrity": "sha512-ngZRO82P7mPvw/3gu5NQ2QiUJGYTS0LAxvQnEAlWCJakvn7YpK2VAd9JWM5oosYUeqoVbkylH/FsqRc4fc2+ag==" }, "multihashes": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz", - "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==", - "requires": { - "multibase": "^4.0.1", - "uint8arrays": "^2.1.3", - "varint": "^5.0.2" - } - } - } - }, - "murmurhash3js-revisited": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", - "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==" - }, - "mutable-proxy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mutable-proxy/-/mutable-proxy-1.0.0.tgz", - "integrity": "sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A==" - }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" - }, - "nanoid": { - "version": "3.1.24", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.24.tgz", - "integrity": "sha512-WNhqqgD4qH7TQdU9ujXfFa/hQI5rOGGnZq+JRmz4JwMZFCgSZVquTq3ORUSv6IC+Y41ACBYV8a8J1kPkqGIiQg==" - }, - "native-abort-controller": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.3.tgz", - "integrity": "sha512-fd5LY5q06mHKZPD5FmMrn7Lkd2H018oBGKNOAdLpctBDEPFKsfJ1nX9ke+XRa8PEJJpjqrpQkGjq2IZ27QNmYA==", - "requires": {} - }, - "native-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", - "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", - "requires": {} - }, - "netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" - }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node-fetch": { - "version": "npm:@achingbrain/node-fetch@2.6.7", - "resolved": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g==" - }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" - }, - "node-gyp-build": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", - "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-inspect": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.2.tgz", - "integrity": "sha512-gz58rdPpadwztRrPjZE9DZLOABUpTGdcANUgOwBFO1C+HZZhePoP83M65WGDmbpwFYJSWqavbl4SgDn4k8RYTA==" - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-any": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-any/-/p-any-3.0.0.tgz", - "integrity": "sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w==", - "requires": { - "p-cancelable": "^2.0.0", - "p-some": "^5.0.0" - } - }, - "p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" - }, - "p-defer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", - "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==" - }, - "p-fifo": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", - "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", - "requires": { - "fast-fifo": "^1.0.0", - "p-defer": "^3.0.0" - } - }, - "p-reflect": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", - "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==" - }, - "p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", - "requires": { - "@types/retry": "^0.12.0", - "retry": "^0.13.1" - } - }, - "p-settle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz", - "integrity": "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==", - "requires": { - "p-limit": "^2.2.2", - "p-reflect": "^2.1.0" - }, - "dependencies": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-0.4.21.tgz", + "integrity": "sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw==", + "requires": { + "buffer": "^5.5.0", + "multibase": "^0.7.0", + "varint": "^5.0.0" + } + }, + "multihashing-async": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-2.1.4.tgz", + "integrity": "sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg==", + "requires": { + "blakejs": "^1.1.0", + "err-code": "^3.0.0", + "js-sha3": "^0.8.0", + "multihashes": "^4.0.1", + "murmurhash3js-revisited": "^3.0.0", + "uint8arrays": "^3.0.0" + }, + "dependencies": { + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + }, + "multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "requires": { + "@multiformats/base-x": "^4.0.1" + } + }, + "multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "requires": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + } + } + } + }, + "multistream-select": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/multistream-select/-/multistream-select-1.0.0.tgz", + "integrity": "sha512-82riQ+qZ0RPY+KbRdeeKKQnFSBCVpUbZ15EniGU2nfwM8NdrpPIeUYXFw4a/pyprcNeRfMgLlG9aCh874p8nJg==", + "requires": { + "bl": "^4.0.0", + "debug": "^4.1.1", + "err-code": "^2.0.0", + "it-handshake": "^1.0.2", + "it-length-prefixed": "^3.0.0", + "it-pipe": "^1.0.1", + "it-reader": "^2.0.0", + "p-defer": "^3.0.0", + "uint8arrays": "^1.1.0" + }, + "dependencies": { + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + } + } + }, + "murmurhash3js-revisited": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", + "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==" + }, + "mutable-proxy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mutable-proxy/-/mutable-proxy-1.0.0.tgz", + "integrity": "sha512-4OvNRr1DJpy2QuDUV74m+BWZ//n4gG4bmd21MzDSPqHEidIDWqwyOjcadU1LBMO3vXYGurVKjfBrxrSQIHFu9A==" + }, + "nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==" + }, + "nanoid": { + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", + "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==" + }, + "native-abort-controller": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.3.tgz", + "integrity": "sha512-fd5LY5q06mHKZPD5FmMrn7Lkd2H018oBGKNOAdLpctBDEPFKsfJ1nX9ke+XRa8PEJJpjqrpQkGjq2IZ27QNmYA==" + }, + "native-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==" + }, + "netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" + }, + "nise": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz", + "integrity": "sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==", + "requires": { + "@sinonjs/commons": "^1.7.0", + "@sinonjs/fake-timers": "^6.0.0", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "path-to-regexp": "^1.7.0" + } + }, + "noble-ed25519": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/noble-ed25519/-/noble-ed25519-1.2.5.tgz", + "integrity": "sha512-7vst+4UhM5QU3jJ3pUqPMKBCOePrxBojmoQa59qcSnYvjFF/T4jqb4WISlfslcWyBw7G5H9V/acpcAxMd8DzUQ==" + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" + }, + "node-gyp-build": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-any": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-any/-/p-any-3.0.0.tgz", + "integrity": "sha512-5rqbqfsRWNb0sukt0awwgJMlaep+8jV45S15SKKB34z4UuzjcofIfnriCBhWjZP2jbVtjt9yRl7buB6RlKsu9w==", + "requires": { + "p-cancelable": "^2.0.0", + "p-some": "^5.0.0" + } + }, + "p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==" + }, + "p-defer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==" + }, + "p-fifo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", + "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", + "requires": { + "fast-fifo": "^1.0.0", + "p-defer": "^3.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-some": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz", - "integrity": "sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig==", - "requires": { - "aggregate-error": "^3.0.0", - "p-cancelable": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "pem-jwk": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz", - "integrity": "sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA==", - "requires": { - "asn1.js": "^5.0.1" - } - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "private-ip": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.2.1.tgz", - "integrity": "sha512-jN1WT/br/VNW9xEcwHr6DjtOKxQ5qOIqmh7o+co2TWgq56pZJw99iO3UT1tWdfgsQiyK9FqG4ji3ykwpjFqITA==", - "requires": { - "ip-regex": "^4.3.0", - "netmask": "^2.0.2" - } - }, - "protobufjs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", - "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "protocol-buffers-schema": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.5.2.tgz", - "integrity": "sha512-LPzSaBYp/TcbuSlpGwqT5jR9kvJ3Zp5ic2N5c2ybx6XB/lSfEHq2D7ja8AgoxHoMD91wXFALJoXsvshKPuXyew==" - }, - "protons": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/protons/-/protons-2.0.2.tgz", - "integrity": "sha512-EIPoT9ftVirJ9QJ3oFoueYUiBhmPqE1AoSBPypLSqbbvHvx+OcUeK9z84YIsk6jda+N3FL58dU1LcWmfGCZGHA==", - "requires": { - "protocol-buffers-schema": "^3.3.1", - "signed-varint": "^2.0.1", - "uint8arrays": "^2.1.3", - "varint": "^5.0.0" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "react-native-fetch-api": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz", - "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==", - "requires": { - "p-defer": "^3.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "receptacle": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", - "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", - "requires": { - "ms": "^2.1.1" - } - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-reflect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", + "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==" + }, + "p-retry": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", + "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "requires": { + "@types/retry": "^0.12.0", + "retry": "^0.13.1" + } + }, + "p-settle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz", + "integrity": "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==", + "requires": { + "p-limit": "^2.2.2", + "p-reflect": "^2.1.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "p-some": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-some/-/p-some-5.0.0.tgz", + "integrity": "sha512-Js5XZxo6vHjB9NOYAzWDYAIyyiPvva0DWESAIWIK7uhSpGsyg5FwUPxipU/SOQx5x9EqhOh545d1jo6cVkitig==", + "requires": { + "aggregate-error": "^3.0.0", + "p-cancelable": "^2.0.0" + } + }, + "p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "p-wait-for": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.2.0.tgz", + "integrity": "sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==", + "requires": { + "p-timeout": "^3.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" + }, + "peer-id": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.14.3.tgz", + "integrity": "sha512-3ug6gDFWPuzihjjhMC0G/EEyaJaM9JCKPZqvPhwnsbhIUbutbS/MMF8Mb+TdDE1IksOXgCKNmohSZBJ/gFijOg==", + "requires": { + "cids": "^1.1.5", + "class-is": "^1.1.0", + "libp2p-crypto": "^0.19.0", + "minimist": "^1.2.5", + "multihashes": "^3.1.1", + "protons": "^2.0.0", + "uint8arrays": "^2.0.5" + }, + "dependencies": { + "cids": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.8.tgz", + "integrity": "sha512-N+YllwSV6XwqYIzx1dggJj9lioivdUe5U5i3t6ZIM3i2yt57d4Yfxk3xSMMgPIt4b9sHDkOmMEA+PYDKSVuWxA==", + "requires": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^3.0.0" + }, + "dependencies": { + "multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "requires": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + } + }, + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + } + } + }, + "multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "requires": { + "@multiformats/base-x": "^4.0.1" + } + }, + "multicodec": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.1.1.tgz", + "integrity": "sha512-q29htEIgHglgxEcD0SvTmf1er68nfhm87rMKPqpClequHOTJknDCX5xA8QHBwBstgj+niO2KrsJeFzpsMZj2DQ==", + "requires": { + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + }, + "dependencies": { + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "multihashes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.1.2.tgz", + "integrity": "sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ==", + "requires": { + "multibase": "^3.1.0", + "uint8arrays": "^2.0.5", + "varint": "^6.0.0" + }, + "dependencies": { + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + } + } + }, + "uint8arrays": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", + "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", + "requires": { + "multiformats": "^9.4.2" + } + }, + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + } + } + }, + "pem-jwk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz", + "integrity": "sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA==", + "requires": { + "asn1.js": "^5.0.1" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "private-ip": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.2.1.tgz", + "integrity": "sha512-jN1WT/br/VNW9xEcwHr6DjtOKxQ5qOIqmh7o+co2TWgq56pZJw99iO3UT1tWdfgsQiyK9FqG4ji3ykwpjFqITA==", + "requires": { + "ip-regex": "^4.3.0", + "netmask": "^2.0.2" + } + }, + "protobufjs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz", + "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + }, + "protocol-buffers-schema": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.5.2.tgz", + "integrity": "sha512-LPzSaBYp/TcbuSlpGwqT5jR9kvJ3Zp5ic2N5c2ybx6XB/lSfEHq2D7ja8AgoxHoMD91wXFALJoXsvshKPuXyew==" + }, + "protons": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/protons/-/protons-2.0.3.tgz", + "integrity": "sha512-j6JikP/H7gNybNinZhAHMN07Vjr1i4lVupg598l4I9gSTjJqOvKnwjzYX2PzvBTSVf2eZ2nWv4vG+mtW8L6tpA==", + "requires": { + "protocol-buffers-schema": "^3.3.1", + "signed-varint": "^2.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.0" + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "react-native-fetch-api": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-native-fetch-api/-/react-native-fetch-api-2.0.0.tgz", + "integrity": "sha512-GOA8tc1EVYLnHvma/TU9VTgLOyralO7eATRuCDchQveXW9Fr9vXygyq9iwqmM7YRZ8qRJfEt9xOS7OYMdJvRFw==", + "requires": { + "p-defer": "^3.0.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "receptacle": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", + "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", + "requires": { + "ms": "^2.1.1" + } + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "relative-url": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/relative-url/-/relative-url-1.0.2.tgz", + "integrity": "sha1-0hxSpy1gYQGLzun5yfwQa/fWUoc=" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "retimer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", + "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==" + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "requires": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "secp256k1": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", + "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", + "requires": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "set-delayed-interval": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz", + "integrity": "sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "signed-varint": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz", + "integrity": "sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk=", + "requires": { + "varint": "~5.0.0" + } + }, + "sinon": { + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", + "integrity": "sha512-zljcULZQsJxVra28qIAL6ow1Z9tpattkCTEJR4RBP3TGc00FcttsP5pK284Nas5WjMZU5Yzy3kAIp3B3KRf5Yg==", + "requires": { + "@sinonjs/commons": "^1.8.1", + "@sinonjs/fake-timers": "^6.0.1", + "@sinonjs/samsam": "^5.3.1", + "diff": "^4.0.2", + "nise": "^4.0.4", + "supports-color": "^7.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stream-to-it": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", + "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", + "requires": { + "get-iterator": "^1.0.2" + } + }, + "streaming-iterables": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-5.0.4.tgz", + "integrity": "sha512-nEs6hBGIPsVz6uq6pscGGKfoPDQWrDQW0b0UHurtSDysekfKLmkPg7FQVRE2sj3Rad6yUo9E1sGTxOWyYsHQ/g==" + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "timeout-abort-controller": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz", + "integrity": "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==", + "requires": { + "abort-controller": "^3.0.0", + "retimer": "^2.0.0" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", + "requires": { + "utf8-byte-length": "^1.0.1" + } + }, + "ts-node": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "typescript": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", + "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", + "dev": true + }, + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "requires": { + "multiformats": "^9.4.2" + } + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "unordered-array-remove": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz", + "integrity": "sha1-xUbo+I4xegzyZEyX7LV9umbSUO8=" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "ursa-optional": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz", + "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==", + "requires": { + "bindings": "^1.5.0", + "nan": "^2.14.2" + } + }, + "utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" + }, + "util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==" + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "web-encoding": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", + "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", + "requires": { + "@zxing/text-encoding": "0.9.0", + "util": "^0.12.3" + } + }, + "wherearewe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-1.0.0.tgz", + "integrity": "sha512-oQnRsAfMCqNAC7U4JrBdmFXAhBRLOkPGOfU5+nw9fs2D3g8O6EV7hn7BhpXtt0yno4pxFiRD55rMyt0fsLMqlw==", + "requires": { + "is-electron": "^2.2.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "requires": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + } + }, + "which-typed-array": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.6.tgz", + "integrity": "sha512-DdY984dGD5sQ7Tf+x1CkXzdg85b9uEel6nr4UkFg1LoE9OXv3uRuZhe5CoWdawhGACeFpEZXH8fFLQnDhbpm/Q==", + "requires": { + "available-typed-arrays": "^1.0.4", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.6" + } + }, + "ws": { + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", + "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==" + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + }, + "xsalsa20": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.1.0.tgz", + "integrity": "sha512-zd3ytX2cm+tcSndRU+krm0eL4TMMpZE7evs5hLRAoOy6gviqLfe3qOlkjF3i5SeAkQUCeJk0lJZrEU56kHRfWw==" + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" } - } - }, - "retimer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", - "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==" - }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sanitize-filename": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", - "requires": { - "truncate-utf8-bytes": "^1.0.0" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "secp256k1": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", - "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", - "requires": { - "elliptic": "^6.5.2", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "set-delayed-interval": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz", - "integrity": "sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "signed-varint": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz", - "integrity": "sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk=", - "requires": { - "varint": "~5.0.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stream-to-it": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz", - "integrity": "sha512-4vEbkSs83OahpmBybNJXlJd7d6/RxzkkSdT3I0mnGt79Xd2Kk+e1JqbvAvsQfCeKj3aKb0QIWkyK3/n0j506vQ==", - "requires": { - "get-iterator": "^1.0.2" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - }, - "timeout-abort-controller": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz", - "integrity": "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==", - "requires": { - "abort-controller": "^3.0.0", - "retimer": "^2.0.0" - } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "truncate-utf8-bytes": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", - "requires": { - "utf8-byte-length": "^1.0.1" - } - }, - "ts-node": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "dev": true, - "requires": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "typescript": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", - "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", - "dev": true - }, - "uint8arrays": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", - "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", - "requires": { - "multiformats": "^9.4.2" - } - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unordered-array-remove": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz", - "integrity": "sha1-xUbo+I4xegzyZEyX7LV9umbSUO8=" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "ursa-optional": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz", - "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==", - "requires": { - "bindings": "^1.5.0", - "nan": "^2.14.2" - } - }, - "utf8-byte-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", - "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" - }, - "util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", - "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==" - }, - "varint": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", - "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "web-encoding": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", - "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", - "requires": { - "@zxing/text-encoding": "0.9.0", - "util": "^0.12.3" - } - }, - "wherearewe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-1.0.0.tgz", - "integrity": "sha512-oQnRsAfMCqNAC7U4JrBdmFXAhBRLOkPGOfU5+nw9fs2D3g8O6EV7hn7BhpXtt0yno4pxFiRD55rMyt0fsLMqlw==", - "requires": { - "is-electron": "^2.2.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "requires": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - } - }, - "which-typed-array": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", - "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", - "requires": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.0", - "es-abstract": "^1.18.0-next.1", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" - } - }, - "ws": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", - "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", - "requires": {} - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - }, - "xsalsa20": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.1.0.tgz", - "integrity": "sha512-zd3ytX2cm+tcSndRU+krm0eL4TMMpZE7evs5hLRAoOy6gviqLfe3qOlkjF3i5SeAkQUCeJk0lJZrEU56kHRfWw==" - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true } - } } diff --git a/package.json b/package.json index 0786a34..837b688 100644 --- a/package.json +++ b/package.json @@ -1,41 +1,42 @@ { - "name": "aquamarine-template", - "version": "0.3.9", - "keywords": [ - "typescript", - "template" - ], - "author": "FluenceLabs (https://github.com/fluencelabs)", - "license": "MIT", - "main": "dist/index.js", - "bin": { - "fldist": "./dist/index.js" - }, - "types": "dist/index.d.ts", - "files": [ - "dist/" - ], - "scripts": { - "build": "tsc", - "examples": "node -r ts-node/register src/run-examples.ts", - "pubsub": "node -r ts-node/register src/pubsub.ts", - "exec": "npm run compile-aqua && node -r ts-node/register src/index.ts", - "run": "node -r ts-node/register src/index.ts", - "compile-aqua": "aqua-cli -i ./aqua/ -o ./src/compiled", - "compile-aqua:air": "aqua-cli -i ./aqua/ -o ./compiled-air -a" - }, - "devDependencies": { - "@fluencelabs/aqua-cli": "^0.2.2-221", - "@fluencelabs/aqua-lib": "0.1.14", - "@fluencelabs/aqua-dht": "0.1.38", - "ts-node": "^9.1.1", - "typescript": "^4.2.4" - }, - "dependencies": { - "@fluencelabs/fluence": "0.10.1", - "@fluencelabs/fluence-network-environment": "1.0.10", - "@fluencelabs/aqua-dht-ts": "0.1.38", - "deep-equal": "^2.0.5" - }, - "description": "Minimal template for aquamarine project." + "name": "aquamarine-template", + "version": "0.3.9", + "keywords": [ + "typescript", + "template" + ], + "author": "FluenceLabs (https://github.com/fluencelabs)", + "license": "MIT", + "main": "dist/index.js", + "bin": { + "fldist": "./dist/index.js" + }, + "types": "dist/index.d.ts", + "files": [ + "dist/" + ], + "scripts": { + "build": "tsc", + "examples": "node -r ts-node/register src/run-examples.ts", + "pubsub": "node -r ts-node/register src/pubsub.ts", + "exec": "npm run compile-aqua && node -r ts-node/register src/index.ts", + "run": "node -r ts-node/register src/index.ts", + "compile-aqua": "aqua-cli -i ./aqua/ -o ./src/compiled", + "compile-aqua:air": "aqua-cli -i ./aqua/ -o ./compiled-air -a", + "prettify-compiled": "prettier --write src/compiled" + }, + "devDependencies": { + "@fluencelabs/aqua-cli": "0.2.0-208", + "@fluencelabs/aqua-dht": "0.1.36", + "@fluencelabs/aqua-lib": "0.1.14", + "ts-node": "^9.1.1", + "typescript": "^4.2.4" + }, + "dependencies": { + "@fluencelabs/aqua-dht-ts": "0.1.36", + "@fluencelabs/fluence": "0.11.0", + "@fluencelabs/fluence-network-environment": "^1.0.10", + "deep-equal": "^2.0.5" + }, + "description": "Minimal template for aquamarine project." } diff --git a/src/compiled/dht/dht-example.ts b/src/compiled/dht/dht-example.ts new file mode 100644 index 0000000..75ea698 --- /dev/null +++ b/src/compiled/dht/dht-example.ts @@ -0,0 +1,710 @@ +/** + * + * This file is auto-generated. Do not edit manually: changes may be erased. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues + * Aqua version: 0.3.0-SNAPSHOT + * + */ +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; + +// Services + +// Functions + +export function put_value(initial_peer: string, value: string, config?: { ttl?: number }): Promise; +export function put_value( + peer: FluencePeer, + initial_peer: string, + value: string, + config?: { ttl?: number }, +): Promise; +export function put_value(...args) { + let peer: FluencePeer; + let initial_peer; + let value; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + initial_peer = args[1]; + value = args[2]; + config = args[3]; + } else { + peer = FluencePeer.default; + initial_peer = args[0]; + value = args[1]; + config = args[2]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "initial_peer") [] initial_peer) + ) + (call %init_peer_id% ("getDataSrv" "value") [] value) + ) + (call -relay- ("op" "noop") []) + ) + (xor + (seq + (call initial_peer ("op" "string_to_b58") ["some-const3"] k) + (call initial_peer ("kad" "neighborhood") [k [] []] nodes) + ) + (seq + (call -relay- ("op" "noop") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + ) + (call -relay- ("op" "noop") []) + ) + (fold nodes n + (par + (xor + (seq + (seq + (call n ("peer" "timestamp_sec") [] t) + (call n ("aqua-dht" "register_key") ["some-const3" t false 0]) + ) + (call n ("aqua-dht" "put_value") ["some-const3" value t [] [] 0]) + ) + (null) + ) + (seq + (call -relay- ("op" "noop") []) + (next n) + ) + ) + ) + ) + (xor + (call %init_peer_id% ("callbackSrv" "response") ["OK"]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'initial_peer', () => { + return initial_peer; + }); + h.on('getDataSrv', 'value', () => { + return value; + }); + h.onEvent('callbackSrv', 'response', (args) => { + const [res] = args; + resolve(res); + }); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for put_value'); + }); + if (config && config.ttl) { + r.withTTL(config.ttl); + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return promise; +} + +export function registerKeyPutValue( + node_id: string, + key: string, + value: string, + relay_id: string | null, + service_id: string | null, + config?: { ttl?: number }, +): Promise; +export function registerKeyPutValue( + peer: FluencePeer, + node_id: string, + key: string, + value: string, + relay_id: string | null, + service_id: string | null, + config?: { ttl?: number }, +): Promise; +export function registerKeyPutValue(...args) { + let peer: FluencePeer; + let node_id; + let key; + let value; + let relay_id; + let service_id; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + node_id = args[1]; + key = args[2]; + value = args[3]; + relay_id = args[4]; + service_id = args[5]; + config = args[6]; + } else { + peer = FluencePeer.default; + node_id = args[0]; + key = args[1]; + value = args[2]; + relay_id = args[3]; + service_id = args[4]; + config = args[5]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "node_id") [] node_id) + ) + (call %init_peer_id% ("getDataSrv" "key") [] key) + ) + (call %init_peer_id% ("getDataSrv" "value") [] value) + ) + (call %init_peer_id% ("getDataSrv" "relay_id") [] relay_id) + ) + (call %init_peer_id% ("getDataSrv" "service_id") [] service_id) + ) + (call -relay- ("op" "noop") []) + ) + (xor + (seq + (call key ("op" "string_to_b58") [node_id] k) + (call key ("kad" "neighborhood") [k [] []] nodes) + ) + (seq + (call -relay- ("op" "noop") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + ) + (call -relay- ("op" "noop") []) + ) + (fold nodes n + (par + (xor + (call n ("peer" "timestamp_sec") [] t) + (seq + (call -relay- ("op" "noop") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + ) + (seq + (call -relay- ("op" "noop") []) + (next n) + ) + ) + ) + ) + (xor + (call %init_peer_id% ("callbackSrv" "response") [nodes]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'node_id', () => { + return node_id; + }); + h.on('getDataSrv', 'key', () => { + return key; + }); + h.on('getDataSrv', 'value', () => { + return value; + }); + h.on('getDataSrv', 'relay_id', () => { + return relay_id === null ? [] : [relay_id]; + }); + h.on('getDataSrv', 'service_id', () => { + return service_id === null ? [] : [service_id]; + }); + h.onEvent('callbackSrv', 'response', (args) => { + const [res] = args; + resolve(res); + }); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for registerKeyPutValue'); + }); + if (config && config.ttl) { + r.withTTL(config.ttl); + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return promise; +} + +export function getNeighbours(node_id: string, topic: string, config?: { ttl?: number }): Promise; +export function getNeighbours( + peer: FluencePeer, + node_id: string, + topic: string, + config?: { ttl?: number }, +): Promise; +export function getNeighbours(...args) { + let peer: FluencePeer; + let node_id; + let topic; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + node_id = args[1]; + topic = args[2]; + config = args[3]; + } else { + peer = FluencePeer.default; + node_id = args[0]; + topic = args[1]; + config = args[2]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "node_id") [] node_id) + ) + (call %init_peer_id% ("getDataSrv" "topic") [] topic) + ) + (call -relay- ("op" "noop") []) + ) + (xor + (seq + (call node_id ("op" "string_to_b58") [topic] k) + (call node_id ("kad" "neighborhood") [k [] []] nodes) + ) + (seq + (call -relay- ("op" "noop") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + ) + (call -relay- ("op" "noop") []) + ) + (xor + (call %init_peer_id% ("callbackSrv" "response") [nodes]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'node_id', () => { + return node_id; + }); + h.on('getDataSrv', 'topic', () => { + return topic; + }); + h.onEvent('callbackSrv', 'response', (args) => { + const [res] = args; + resolve(res); + }); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for getNeighbours'); + }); + if (config && config.ttl) { + r.withTTL(config.ttl); + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return promise; +} + +export function findSubscribers( + node_id: string, + topic: string, + config?: { ttl?: number }, +): Promise< + { + peer_id: string; + relay_id: string[]; + service_id: string[]; + set_by: string; + timestamp_created: number; + value: string; + weight: number; + }[] +>; +export function findSubscribers( + peer: FluencePeer, + node_id: string, + topic: string, + config?: { ttl?: number }, +): Promise< + { + peer_id: string; + relay_id: string[]; + service_id: string[]; + set_by: string; + timestamp_created: number; + value: string; + weight: number; + }[] +>; +export function findSubscribers(...args) { + let peer: FluencePeer; + let node_id; + let topic; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + node_id = args[1]; + topic = args[2]; + config = args[3]; + } else { + peer = FluencePeer.default; + node_id = args[0]; + topic = args[1]; + config = args[2]; + } + + let request: RequestFlow; + const promise = new Promise< + { + peer_id: string; + relay_id: string[]; + service_id: string[]; + set_by: string; + timestamp_created: number; + value: string; + weight: number; + }[] + >((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "node_id") [] node_id) + ) + (call %init_peer_id% ("getDataSrv" "topic") [] topic) + ) + (call -relay- ("op" "noop") []) + ) + (xor + (seq + (call node_id ("op" "string_to_b58") [topic] k) + (call node_id ("kad" "neighborhood") [k [] []] nodes) + ) + (seq + (seq + (call -relay- ("op" "noop") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + (call -relay- ("op" "noop") []) + ) + ) + ) + (call -relay- ("op" "noop") []) + ) + (fold nodes n + (par + (seq + (xor + (seq + (call n ("peer" "timestamp_sec") [] t) + (call n ("aqua-dht" "get_values") [topic t] $res) + ) + (null) + ) + (call node_id ("op" "noop") []) + ) + (seq + (call -relay- ("op" "noop") []) + (next n) + ) + ) + ) + ) + (xor + (call node_id ("aqua-dht" "merge_two") [$res.$.[0].result! $res.$.[1].result!] v) + (seq + (call -relay- ("op" "noop") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + ) + ) + (call -relay- ("op" "noop") []) + ) + (xor + (call %init_peer_id% ("callbackSrv" "response") [v.$.result!]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 4]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'node_id', () => { + return node_id; + }); + h.on('getDataSrv', 'topic', () => { + return topic; + }); + h.onEvent('callbackSrv', 'response', (args) => { + const [res] = args; + resolve(res); + }); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for findSubscribers'); + }); + if (config && config.ttl) { + r.withTTL(config.ttl); + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return promise; +} + +export function initTopicAndSubscribe( + node_id: string, + topic: string, + value: string, + relay_id: string | null, + service_id: string | null, + config?: { ttl?: number }, +): Promise; +export function initTopicAndSubscribe( + peer: FluencePeer, + node_id: string, + topic: string, + value: string, + relay_id: string | null, + service_id: string | null, + config?: { ttl?: number }, +): Promise; +export function initTopicAndSubscribe(...args) { + let peer: FluencePeer; + let node_id; + let topic; + let value; + let relay_id; + let service_id; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + node_id = args[1]; + topic = args[2]; + value = args[3]; + relay_id = args[4]; + service_id = args[5]; + config = args[6]; + } else { + peer = FluencePeer.default; + node_id = args[0]; + topic = args[1]; + value = args[2]; + relay_id = args[3]; + service_id = args[4]; + config = args[5]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "node_id") [] node_id) + ) + (call %init_peer_id% ("getDataSrv" "topic") [] topic) + ) + (call %init_peer_id% ("getDataSrv" "value") [] value) + ) + (call %init_peer_id% ("getDataSrv" "relay_id") [] relay_id) + ) + (call %init_peer_id% ("getDataSrv" "service_id") [] service_id) + ) + (call -relay- ("op" "noop") []) + ) + (xor + (seq + (call node_id ("op" "string_to_b58") [topic] k) + (call node_id ("kad" "neighborhood") [k [] []] nodes) + ) + (seq + (call -relay- ("op" "noop") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + ) + (call -relay- ("op" "noop") []) + ) + (fold nodes n + (par + (xor + (seq + (seq + (call n ("peer" "timestamp_sec") [] t) + (call n ("aqua-dht" "register_key") [topic t false 0]) + ) + (call n ("aqua-dht" "put_value") [topic value t relay_id service_id 0]) + ) + (null) + ) + (seq + (call -relay- ("op" "noop") []) + (next n) + ) + ) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'node_id', () => { + return node_id; + }); + h.on('getDataSrv', 'topic', () => { + return topic; + }); + h.on('getDataSrv', 'value', () => { + return value; + }); + h.on('getDataSrv', 'relay_id', () => { + return relay_id === null ? [] : [relay_id]; + }); + h.on('getDataSrv', 'service_id', () => { + return service_id === null ? [] : [service_id]; + }); + h.onEvent('callbackSrv', 'response', (args) => {}); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for initTopicAndSubscribe'); + }); + if (config && config.ttl) { + r.withTTL(config.ttl); + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return Promise.race([promise, Promise.resolve()]); +} diff --git a/src/compiled/examples/assignment.ts b/src/compiled/examples/assignment.ts index d55dac3..cbfcb12 100644 --- a/src/compiled/examples/assignment.ts +++ b/src/compiled/examples/assignment.ts @@ -1,37 +1,114 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//OpHa -//defaultId = "op" +export interface OpHaDef { + array: (a: string, b: string, callParams: CallParams<'a' | 'b'>) => string[]; + identity: (a: string, callParams: CallParams<'a'>) => string; +} -//array: (a: string, b: string) => string[] -//identity: (a: string) => string -//END OpHa +export function registerOpHa(service: OpHaDef): void; +export function registerOpHa(serviceId: string, service: OpHaDef): void; +export function registerOpHa(peer: FluencePeer, service: OpHaDef): void; +export function registerOpHa(peer: FluencePeer, serviceId: string, service: OpHaDef): void; +export function registerOpHa(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'op'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'array') { + const callParams = { + ...req.particleContext, + tetraplets: { + a: req.tetraplets[0], + b: req.tetraplets[1], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.array(req.args[0], req.args[1], callParams); + } + + if (req.fnName === 'identity') { + const callParams = { + ...req.particleContext, + tetraplets: { + a: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.identity(req.args[0], callParams); + } + + next(); + }); +} // Functions -export async function doSmth(client: FluenceClient, arg: {value:string}, config?: {ttl?: number}): Promise { +export function doSmth(arg: { value: string }, config?: { ttl?: number }): Promise; +export function doSmth(peer: FluencePeer, arg: { value: string }, config?: { ttl?: number }): Promise; +export function doSmth(...args) { + let peer: FluencePeer; + let arg; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + arg = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + arg = args[0]; + config = args[1]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -51,20 +128,21 @@ export async function doSmth(client: FluenceClient, arg: {value:string}, config? (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'arg', () => { + return arg; }); - h.on('getDataSrv', 'arg', () => {return arg;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -72,13 +150,12 @@ export async function doSmth(client: FluenceClient, arg: {value:string}, config? .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for doSmth'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/callArrow.ts b/src/compiled/examples/callArrow.ts index a915a09..9f1316b 100644 --- a/src/compiled/examples/callArrow.ts +++ b/src/compiled/examples/callArrow.ts @@ -1,29 +1,63 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services - // Functions -export async function passFunctionAsArg(client: FluenceClient, node: string, str: string, c: (arg0: string) => string, config?: {ttl?: number}): Promise { +export function passFunctionAsArg( + node: string, + str: string, + c: (arg0: string, callParams: CallParams<'arg0'>) => string, + config?: { ttl?: number }, +): Promise; +export function passFunctionAsArg( + peer: FluencePeer, + node: string, + str: string, + c: (arg0: string, callParams: CallParams<'arg0'>) => string, + config?: { ttl?: number }, +): Promise; +export function passFunctionAsArg(...args) { + let peer: FluencePeer; + let node; + let str; + let c; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + node = args[1]; + str = args[2]; + c = args[3]; + config = args[4]; + } else { + peer = FluencePeer.default; + node = args[0]; + str = args[1]; + c = args[2]; + config = args[3]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -67,18 +101,36 @@ export async function passFunctionAsArg(client: FluenceClient, node: string, str (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - h.on('getDataSrv', 'node', () => {return node;}); -h.on('getDataSrv', 'str', () => {return str;}); -h.on('callbackSrv', 'c', (args) => {return c(args[0]);}); - + h.on('getDataSrv', 'node', () => { + return node; + }); + h.on('getDataSrv', 'str', () => { + return str; + }); + + h.use((req, resp, next) => { + if (req.serviceId === 'callbackSrv' && req.fnName === 'c') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = c(req.args[0], callParams); + } + next(); + }); + + h.onEvent('callbackSrv', 'response', (args) => {}); + h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -86,13 +138,12 @@ h.on('callbackSrv', 'c', (args) => {return c(args[0]);}); .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for passFunctionAsArg'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return Promise.race([promise, Promise.resolve()]); } - diff --git a/src/compiled/examples/co.ts b/src/compiled/examples/co.ts index 3f214ca..df2ac07 100644 --- a/src/compiled/examples/co.ts +++ b/src/compiled/examples/co.ts @@ -1,36 +1,111 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//CoService -//defaultId = "coservice-id" +export interface CoServiceDef { + call: (callParams: CallParams) => string; +} -//call: () => string -//END CoService +export function registerCoService(service: CoServiceDef): void; +export function registerCoService(serviceId: string, service: CoServiceDef): void; +export function registerCoService(peer: FluencePeer, service: CoServiceDef): void; +export function registerCoService(peer: FluencePeer, serviceId: string, service: CoServiceDef): void; +export function registerCoService(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'coservice-id'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'call') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + resp.result = service.call(callParams); + } + + next(); + }); +} // Functions -export async function coFunc(client: FluenceClient, node: string, c: (arg0: {external_addresses:string[]}) => void, config?: {ttl?: number}): Promise { +export function coFunc( + node: string, + c: (arg0: { external_addresses: string[] }, callParams: CallParams<'arg0'>) => void, + config?: { ttl?: number }, +): Promise; +export function coFunc( + peer: FluencePeer, + node: string, + c: (arg0: { external_addresses: string[] }, callParams: CallParams<'arg0'>) => void, + config?: { ttl?: number }, +): Promise; +export function coFunc(...args) { + let peer: FluencePeer; + let node; + let c; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + node = args[1]; + c = args[2]; + config = args[3]; + } else { + peer = FluencePeer.default; + node = args[0]; + c = args[1]; + config = args[2]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -65,17 +140,34 @@ export async function coFunc(client: FluenceClient, node: string, c: (arg0: {ext (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - h.on('getDataSrv', 'node', () => {return node;}); -h.on('callbackSrv', 'c', (args) => {c(args[0]); return {};}); - + h.on('getDataSrv', 'node', () => { + return node; + }); + + h.use((req, resp, next) => { + if (req.serviceId === 'callbackSrv' && req.fnName === 'c') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + c(req.args[0], callParams); + resp.result = {}; + } + next(); + }); + + h.onEvent('callbackSrv', 'response', (args) => {}); + h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -83,13 +175,12 @@ h.on('callbackSrv', 'c', (args) => {c(args[0]); return {};}); .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for coFunc'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return Promise.race([promise, Promise.resolve()]); } - diff --git a/src/compiled/examples/complex.ts b/src/compiled/examples/complex.ts index 8568e4e..623fb04 100644 --- a/src/compiled/examples/complex.ts +++ b/src/compiled/examples/complex.ts @@ -1,37 +1,152 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//TestS -//defaultId = "some-id" +export interface TestSDef { + multiline: (a: string, b: string, c: boolean, callParams: CallParams<'a' | 'b' | 'c'>) => string; + t: (arg0: string, callParams: CallParams<'arg0'>) => string; +} -//multiline: (a: string, b: string, c: boolean) => string -//t: (arg0: string) => string -//END TestS +export function registerTestS(service: TestSDef): void; +export function registerTestS(serviceId: string, service: TestSDef): void; +export function registerTestS(peer: FluencePeer, service: TestSDef): void; +export function registerTestS(peer: FluencePeer, serviceId: string, service: TestSDef): void; +export function registerTestS(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'some-id'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'multiline') { + const callParams = { + ...req.particleContext, + tetraplets: { + a: req.tetraplets[0], + b: req.tetraplets[1], + c: req.tetraplets[2], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.multiline(req.args[0], req.args[1], req.args[2], callParams); + } + + if (req.fnName === 't') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.t(req.args[0], callParams); + } + + next(); + }); +} // Functions -export async function doStuff(client: FluenceClient, a: string, b: string, c: boolean, d: boolean, e: string[], g: string[], str: string, config?: {ttl?: number}): Promise { +export function doStuff( + a: string, + b: string, + c: boolean, + d: boolean, + e: string[], + g: string[], + str: string, + config?: { ttl?: number }, +): Promise; +export function doStuff( + peer: FluencePeer, + a: string, + b: string, + c: boolean, + d: boolean, + e: string[], + g: string[], + str: string, + config?: { ttl?: number }, +): Promise; +export function doStuff(...args) { + let peer: FluencePeer; + let a; + let b; + let c; + let d; + let e; + let g; + let str; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + a = args[1]; + b = args[2]; + c = args[3]; + d = args[4]; + e = args[5]; + g = args[6]; + str = args[7]; + config = args[8]; + } else { + peer = FluencePeer.default; + a = args[0]; + b = args[1]; + c = args[2]; + d = args[3]; + e = args[4]; + g = args[5]; + str = args[6]; + config = args[7]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -143,26 +258,39 @@ export async function doStuff(client: FluenceClient, a: string, b: string, c: bo (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 5]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'a', () => { + return a; + }); + h.on('getDataSrv', 'b', () => { + return b; + }); + h.on('getDataSrv', 'c', () => { + return c; + }); + h.on('getDataSrv', 'd', () => { + return d; + }); + h.on('getDataSrv', 'e', () => { + return e; + }); + h.on('getDataSrv', 'g', () => { + return g; + }); + h.on('getDataSrv', 'str', () => { + return str; }); - h.on('getDataSrv', 'a', () => {return a;}); -h.on('getDataSrv', 'b', () => {return b;}); -h.on('getDataSrv', 'c', () => {return c;}); -h.on('getDataSrv', 'd', () => {return d;}); -h.on('getDataSrv', 'e', () => {return e;}); -h.on('getDataSrv', 'g', () => {return g;}); -h.on('getDataSrv', 'str', () => {return str;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -170,13 +298,12 @@ h.on('getDataSrv', 'str', () => {return str;}); .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for doStuff'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/constants.ts b/src/compiled/examples/constants.ts index 4767f17..301fe15 100644 --- a/src/compiled/examples/constants.ts +++ b/src/compiled/examples/constants.ts @@ -1,45 +1,154 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//Getter -//defaultId = "test" +export interface GetterDef { + createStr: (arg0: number, callParams: CallParams<'arg0'>) => string; +} -//createStr: (arg0: number) => string -//END Getter +export function registerGetter(service: GetterDef): void; +export function registerGetter(serviceId: string, service: GetterDef): void; +export function registerGetter(peer: FluencePeer, service: GetterDef): void; +export function registerGetter(peer: FluencePeer, serviceId: string, service: GetterDef): void; +export function registerGetter(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'test'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } -//OpO -//defaultId = "op" + if (req.fnName === 'createStr') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.createStr(req.args[0], callParams); + } -//identity: (arg0: string) => string -//END OpO + next(); + }); +} +export interface OpODef { + identity: (arg0: string, callParams: CallParams<'arg0'>) => string; +} +export function registerOpO(service: OpODef): void; +export function registerOpO(serviceId: string, service: OpODef): void; +export function registerOpO(peer: FluencePeer, service: OpODef): void; +export function registerOpO(peer: FluencePeer, serviceId: string, service: OpODef): void; +export function registerOpO(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'op'; + } + + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'identity') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.identity(req.args[0], callParams); + } + + next(); + }); +} // Functions -export async function callConstant(client: FluenceClient, config?: {ttl?: number}): Promise { +export function callConstant(config?: { ttl?: number }): Promise; +export function callConstant(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function callConstant(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -56,20 +165,19 @@ export async function callConstant(client: FluenceClient, config?: {ttl?: number (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - + h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -77,13 +185,12 @@ export async function callConstant(client: FluenceClient, config?: {ttl?: number .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for callConstant'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/dataAlias.ts b/src/compiled/examples/dataAlias.ts index e992461..02fbcd7 100644 --- a/src/compiled/examples/dataAlias.ts +++ b/src/compiled/examples/dataAlias.ts @@ -1,36 +1,97 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//NodeIdGetter -//defaultId = "somesrv" +export interface NodeIdGetterDef { + get: (callParams: CallParams) => { name: string; peerId: string }; +} -//get: () => {name:string;peerId:string} -//END NodeIdGetter +export function registerNodeIdGetter(service: NodeIdGetterDef): void; +export function registerNodeIdGetter(serviceId: string, service: NodeIdGetterDef): void; +export function registerNodeIdGetter(peer: FluencePeer, service: NodeIdGetterDef): void; +export function registerNodeIdGetter(peer: FluencePeer, serviceId: string, service: NodeIdGetterDef): void; +export function registerNodeIdGetter(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'somesrv'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'get') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + resp.result = service.get(callParams); + } + + next(); + }); +} // Functions -export async function getAliasedData(client: FluenceClient, config?: {ttl?: number}): Promise { +export function getAliasedData(config?: { ttl?: number }): Promise; +export function getAliasedData(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function getAliasedData(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) @@ -44,20 +105,19 @@ export async function getAliasedData(client: FluenceClient, config?: {ttl?: numb (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - + h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -65,13 +125,12 @@ export async function getAliasedData(client: FluenceClient, config?: {ttl?: numb .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for getAliasedData'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/example.ts b/src/compiled/examples/example.ts index b75ab60..3f6f442 100644 --- a/src/compiled/examples/example.ts +++ b/src/compiled/examples/example.ts @@ -1,55 +1,218 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//Peer -//defaultId = "peer" +export interface PeerDef { + is_connected: (arg0: string, callParams: CallParams<'arg0'>) => boolean; +} -//is_connected: (arg0: string) => boolean -//END Peer +export function registerPeer(service: PeerDef): void; +export function registerPeer(serviceId: string, service: PeerDef): void; +export function registerPeer(peer: FluencePeer, service: PeerDef): void; +export function registerPeer(peer: FluencePeer, serviceId: string, service: PeerDef): void; +export function registerPeer(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'peer'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } -//Op -//defaultId = "op" + if (req.fnName === 'is_connected') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.is_connected(req.args[0], callParams); + } -//identity: () => void -//END Op + next(); + }); +} +export interface OpDef { + identity: (callParams: CallParams) => void; +} +export function registerOp(service: OpDef): void; +export function registerOp(serviceId: string, service: OpDef): void; +export function registerOp(peer: FluencePeer, service: OpDef): void; +export function registerOp(peer: FluencePeer, serviceId: string, service: OpDef): void; +export function registerOp(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'op'; + } -//Test -//defaultId = "test" + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } -//doSomething: () => boolean -//getUserList: () => {name:string;peer_id:string;relay_id:string}[] -//END Test + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + if (req.fnName === 'identity') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + service.identity(callParams); + resp.result = {}; + } + next(); + }); +} + +export interface TestDef { + doSomething: (callParams: CallParams) => boolean; + getUserList: (callParams: CallParams) => { name: string; peer_id: string; relay_id: string }[]; +} + +export function registerTest(service: TestDef): void; +export function registerTest(serviceId: string, service: TestDef): void; +export function registerTest(peer: FluencePeer, service: TestDef): void; +export function registerTest(peer: FluencePeer, serviceId: string, service: TestDef): void; +export function registerTest(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'test'; + } + + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'doSomething') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + resp.result = service.doSomething(callParams); + } + + if (req.fnName === 'getUserList') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + resp.result = service.getUserList(callParams); + } + + next(); + }); +} // Functions -export async function betterMessage(client: FluenceClient, relay: string, config?: {ttl?: number}): Promise { +export function betterMessage(relay: string, config?: { ttl?: number }): Promise; +export function betterMessage(peer: FluencePeer, relay: string, config?: { ttl?: number }): Promise; +export function betterMessage(...args) { + let peer: FluencePeer; + let relay; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + relay = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + relay = args[0]; + config = args[1]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -83,16 +246,18 @@ export async function betterMessage(client: FluenceClient, relay: string, config (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - h.on('getDataSrv', 'relay', () => {return relay;}); - + h.on('getDataSrv', 'relay', () => { + return relay; + }); + h.onEvent('callbackSrv', 'response', (args) => {}); + h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -100,13 +265,12 @@ export async function betterMessage(client: FluenceClient, relay: string, config .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for betterMessage'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return Promise.race([promise, Promise.resolve()]); } - diff --git a/src/compiled/examples/fldist-sample.ts b/src/compiled/examples/fldist-sample.ts index b57e7d8..af57c75 100644 --- a/src/compiled/examples/fldist-sample.ts +++ b/src/compiled/examples/fldist-sample.ts @@ -1,36 +1,102 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//Return -//defaultId = "returnService" +export interface ReturnDef { + run: (arg0: { external_addresses: string[] }, callParams: CallParams<'arg0'>) => void; +} -//run: (arg0: {external_addresses:string[]}) => void -//END Return +export function registerReturn(service: ReturnDef): void; +export function registerReturn(serviceId: string, service: ReturnDef): void; +export function registerReturn(peer: FluencePeer, service: ReturnDef): void; +export function registerReturn(peer: FluencePeer, serviceId: string, service: ReturnDef): void; +export function registerReturn(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'returnService'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'run') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + service.run(req.args[0], callParams); + resp.result = {}; + } + + next(); + }); +} // Functions -export async function test(client: FluenceClient, node: string, config?: {ttl?: number}): Promise { +export function test(node: string, config?: { ttl?: number }): Promise; +export function test(peer: FluencePeer, node: string, config?: { ttl?: number }): Promise; +export function test(...args) { + let peer: FluencePeer; + let node; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + node = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + node = args[0]; + config = args[1]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -56,16 +122,18 @@ export async function test(client: FluenceClient, node: string, config?: {ttl?: (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - h.on('getDataSrv', 'node', () => {return node;}); - + h.on('getDataSrv', 'node', () => { + return node; + }); + h.onEvent('callbackSrv', 'response', (args) => {}); + h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -73,13 +141,12 @@ export async function test(client: FluenceClient, node: string, config?: {ttl?: .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for test'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return Promise.race([promise, Promise.resolve()]); } - diff --git a/src/compiled/examples/fold.ts b/src/compiled/examples/fold.ts index 1041cc3..dc3e7b4 100644 --- a/src/compiled/examples/fold.ts +++ b/src/compiled/examples/fold.ts @@ -1,29 +1,46 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services - // Functions -export async function iterateAndPrint(client: FluenceClient, strings: string[], config?: {ttl?: number}): Promise { +export function iterateAndPrint(strings: string[], config?: { ttl?: number }): Promise; +export function iterateAndPrint(peer: FluencePeer, strings: string[], config?: { ttl?: number }): Promise; +export function iterateAndPrint(...args) { + let peer: FluencePeer; + let strings; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + strings = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + strings = args[0]; + config = args[1]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) @@ -39,16 +56,18 @@ export async function iterateAndPrint(client: FluenceClient, strings: string[], (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - h.on('getDataSrv', 'strings', () => {return strings;}); - + h.on('getDataSrv', 'strings', () => { + return strings; + }); + h.onEvent('callbackSrv', 'response', (args) => {}); + h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -56,26 +75,51 @@ export async function iterateAndPrint(client: FluenceClient, strings: string[], .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for iterateAndPrint'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return Promise.race([promise, Promise.resolve()]); } - +export function iterateAndPrintParallel( + nodes: string[], + c: (arg0: { external_addresses: string[] }, callParams: CallParams<'arg0'>) => void, + config?: { ttl?: number }, +): Promise; +export function iterateAndPrintParallel( + peer: FluencePeer, + nodes: string[], + c: (arg0: { external_addresses: string[] }, callParams: CallParams<'arg0'>) => void, + config?: { ttl?: number }, +): Promise; +export function iterateAndPrintParallel(...args) { + let peer: FluencePeer; + let nodes; + let c; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + nodes = args[1]; + c = args[2]; + config = args[3]; + } else { + peer = FluencePeer.default; + nodes = args[0]; + c = args[1]; + config = args[2]; + } -export async function iterateAndPrintParallel(client: FluenceClient, nodes: string[], c: (arg0: {external_addresses:string[]}) => void, config?: {ttl?: number}): Promise { let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) @@ -106,17 +150,34 @@ export async function iterateAndPrintParallel(client: FluenceClient, nodes: stri (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - h.on('getDataSrv', 'nodes', () => {return nodes;}); -h.on('callbackSrv', 'c', (args) => {c(args[0]); return {};}); - + h.on('getDataSrv', 'nodes', () => { + return nodes; + }); + + h.use((req, resp, next) => { + if (req.serviceId === 'callbackSrv' && req.fnName === 'c') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + c(req.args[0], callParams); + resp.result = {}; + } + next(); + }); + + h.onEvent('callbackSrv', 'response', (args) => {}); + h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -124,13 +185,12 @@ h.on('callbackSrv', 'c', (args) => {c(args[0]); return {};}); .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for iterateAndPrintParallel'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return Promise.race([promise, Promise.resolve()]); } - diff --git a/src/compiled/examples/foldJoin.ts b/src/compiled/examples/foldJoin.ts index 7e65f96..b174b36 100644 --- a/src/compiled/examples/foldJoin.ts +++ b/src/compiled/examples/foldJoin.ts @@ -1,36 +1,102 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//Op2 -//defaultId = "op" +export interface Op2Def { + identity: (s: number, callParams: CallParams<'s'>) => void; +} -//identity: (s: number) => void -//END Op2 +export function registerOp2(service: Op2Def): void; +export function registerOp2(serviceId: string, service: Op2Def): void; +export function registerOp2(peer: FluencePeer, service: Op2Def): void; +export function registerOp2(peer: FluencePeer, serviceId: string, service: Op2Def): void; +export function registerOp2(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'op'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'identity') { + const callParams = { + ...req.particleContext, + tetraplets: { + s: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + service.identity(req.args[0], callParams); + resp.result = {}; + } + + next(); + }); +} // Functions -export async function getTwoResults(client: FluenceClient, relay: string, config?: {ttl?: number}): Promise { +export function getTwoResults(relay: string, config?: { ttl?: number }): Promise; +export function getTwoResults(peer: FluencePeer, relay: string, config?: { ttl?: number }): Promise; +export function getTwoResults(...args) { + let peer: FluencePeer; + let relay; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + relay = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + relay = args[0]; + config = args[1]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -85,20 +151,21 @@ export async function getTwoResults(client: FluenceClient, relay: string, config (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'relay', () => { + return relay; }); - h.on('getDataSrv', 'relay', () => {return relay;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -106,13 +173,12 @@ export async function getTwoResults(client: FluenceClient, relay: string, config .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for getTwoResults'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/func.ts b/src/compiled/examples/func.ts index 106f212..78a54cc 100644 --- a/src/compiled/examples/func.ts +++ b/src/compiled/examples/func.ts @@ -1,36 +1,97 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//TestSrv -//defaultId = "test-service-id" +export interface TestSrvDef { + str: (callParams: CallParams) => string; +} -//str: () => string -//END TestSrv +export function registerTestSrv(service: TestSrvDef): void; +export function registerTestSrv(serviceId: string, service: TestSrvDef): void; +export function registerTestSrv(peer: FluencePeer, service: TestSrvDef): void; +export function registerTestSrv(peer: FluencePeer, serviceId: string, service: TestSrvDef): void; +export function registerTestSrv(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'test-service-id'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'str') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + resp.result = service.str(callParams); + } + + next(); + }); +} // Functions -export async function testFunc(client: FluenceClient, config?: {ttl?: number}): Promise { +export function testFunc(config?: { ttl?: number }): Promise; +export function testFunc(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function testFunc(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) @@ -44,20 +105,19 @@ export async function testFunc(client: FluenceClient, config?: {ttl?: number}): (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - + h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -65,13 +125,12 @@ export async function testFunc(client: FluenceClient, config?: {ttl?: number}): .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for testFunc'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/helloWorld.ts b/src/compiled/examples/helloWorld.ts index 250b1a6..222af4e 100644 --- a/src/compiled/examples/helloWorld.ts +++ b/src/compiled/examples/helloWorld.ts @@ -1,36 +1,101 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//StringExtra -//defaultId = "service-id" +export interface StringExtraDef { + addNameToHello: (arg0: string, callParams: CallParams<'arg0'>) => string; +} -//addNameToHello: (arg0: string) => string -//END StringExtra +export function registerStringExtra(service: StringExtraDef): void; +export function registerStringExtra(serviceId: string, service: StringExtraDef): void; +export function registerStringExtra(peer: FluencePeer, service: StringExtraDef): void; +export function registerStringExtra(peer: FluencePeer, serviceId: string, service: StringExtraDef): void; +export function registerStringExtra(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'service-id'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'addNameToHello') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.addNameToHello(req.args[0], callParams); + } + + next(); + }); +} // Functions -export async function helloWorld(client: FluenceClient, name: string, config?: {ttl?: number}): Promise { +export function helloWorld(name: string, config?: { ttl?: number }): Promise; +export function helloWorld(peer: FluencePeer, name: string, config?: { ttl?: number }): Promise; +export function helloWorld(...args) { + let peer: FluencePeer; + let name; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + name = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + name = args[0]; + config = args[1]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -47,20 +112,21 @@ export async function helloWorld(client: FluenceClient, name: string, config?: { (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'name', () => { + return name; }); - h.on('getDataSrv', 'name', () => {return name;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -68,13 +134,12 @@ export async function helloWorld(client: FluenceClient, name: string, config?: { .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for helloWorld'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/if.ts b/src/compiled/examples/if.ts index 95444ce..8d4d9d8 100644 --- a/src/compiled/examples/if.ts +++ b/src/compiled/examples/if.ts @@ -1,29 +1,46 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services - // Functions -export async function ifElseCall(client: FluenceClient, condition: boolean, config?: {ttl?: number}): Promise { +export function ifElseCall(condition: boolean, config?: { ttl?: number }): Promise; +export function ifElseCall(peer: FluencePeer, condition: boolean, config?: { ttl?: number }): Promise; +export function ifElseCall(...args) { + let peer: FluencePeer; + let condition; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + condition = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + condition = args[0]; + config = args[1]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) @@ -42,16 +59,18 @@ export async function ifElseCall(client: FluenceClient, condition: boolean, conf (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - h.on('getDataSrv', 'condition', () => {return condition;}); - + h.on('getDataSrv', 'condition', () => { + return condition; + }); + h.onEvent('callbackSrv', 'response', (args) => {}); + h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -59,26 +78,39 @@ export async function ifElseCall(client: FluenceClient, condition: boolean, conf .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for ifElseCall'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return Promise.race([promise, Promise.resolve()]); } - +export function ifElseNumCall(condition: number, config?: { ttl?: number }): Promise; +export function ifElseNumCall(peer: FluencePeer, condition: number, config?: { ttl?: number }): Promise; +export function ifElseNumCall(...args) { + let peer: FluencePeer; + let condition; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + condition = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + condition = args[0]; + config = args[1]; + } -export async function ifElseNumCall(client: FluenceClient, condition: number, config?: {ttl?: number}): Promise { let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) @@ -97,16 +129,18 @@ export async function ifElseNumCall(client: FluenceClient, condition: number, co (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - h.on('getDataSrv', 'condition', () => {return condition;}); - + h.on('getDataSrv', 'condition', () => { + return condition; + }); + h.onEvent('callbackSrv', 'response', (args) => {}); + h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -114,13 +148,12 @@ export async function ifElseNumCall(client: FluenceClient, condition: number, co .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for ifElseNumCall'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return Promise.race([promise, Promise.resolve()]); } - diff --git a/src/compiled/examples/imports_exports/declare.ts b/src/compiled/examples/imports_exports/declare.ts new file mode 100644 index 0000000..c0b6db4 --- /dev/null +++ b/src/compiled/examples/imports_exports/declare.ts @@ -0,0 +1,72 @@ +/** + * + * This file is auto-generated. Do not edit manually: changes may be erased. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues + * Aqua version: 0.3.0-SNAPSHOT + * + */ +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; + +// Services + +export interface SuperFooDef { + small_foo: (callParams: CallParams) => string; +} + +export function registerSuperFoo(service: SuperFooDef): void; +export function registerSuperFoo(serviceId: string, service: SuperFooDef): void; +export function registerSuperFoo(peer: FluencePeer, service: SuperFooDef): void; +export function registerSuperFoo(peer: FluencePeer, serviceId: string, service: SuperFooDef): void; +export function registerSuperFoo(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'super_foo'; + } + + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'small_foo') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + resp.result = service.small_foo(callParams); + } + + next(); + }); +} + +// Functions diff --git a/src/compiled/examples/imports_exports/exports.ts b/src/compiled/examples/imports_exports/exports.ts index 2cd0d51..2e5c77f 100644 --- a/src/compiled/examples/imports_exports/exports.ts +++ b/src/compiled/examples/imports_exports/exports.ts @@ -1,36 +1,97 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//MyExportSrv -//defaultId = "my_export_srv" +export interface MyExportSrvDef { + another_str: (callParams: CallParams) => string; +} -//another_str: () => string -//END MyExportSrv +export function registerMyExportSrv(service: MyExportSrvDef): void; +export function registerMyExportSrv(serviceId: string, service: MyExportSrvDef): void; +export function registerMyExportSrv(peer: FluencePeer, service: MyExportSrvDef): void; +export function registerMyExportSrv(peer: FluencePeer, serviceId: string, service: MyExportSrvDef): void; +export function registerMyExportSrv(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'my_export_srv'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'another_str') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + resp.result = service.another_str(callParams); + } + + next(); + }); +} // Functions -export async function string_from_lib(client: FluenceClient, config?: {ttl?: number}): Promise { +export function string_from_lib(config?: { ttl?: number }): Promise; +export function string_from_lib(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function string_from_lib(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) (xor @@ -41,20 +102,19 @@ export async function string_from_lib(client: FluenceClient, config?: {ttl?: num (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - + h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -62,13 +122,12 @@ export async function string_from_lib(client: FluenceClient, config?: {ttl?: num .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for string_from_lib'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/imports_exports/gen/OneMore.ts b/src/compiled/examples/imports_exports/gen/OneMore.ts index ff56c2e..b9ba217 100644 --- a/src/compiled/examples/imports_exports/gen/OneMore.ts +++ b/src/compiled/examples/imports_exports/gen/OneMore.ts @@ -1,25 +1,69 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//OneMore -//defaultId = undefined +export interface OneMoreDef { + more_call: (callParams: CallParams) => void; +} -//more_call: () => void -//END OneMore +export function registerOneMore(serviceId: string, service: OneMoreDef): void; +export function registerOneMore(peer: FluencePeer, serviceId: string, service: OneMoreDef): void; +export function registerOneMore(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'more_call') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + service.more_call(callParams); + resp.result = {}; + } + + next(); + }); +} // Functions - diff --git a/src/compiled/examples/imports_exports/import2.ts b/src/compiled/examples/imports_exports/import2.ts index d02e726..bc2204b 100644 --- a/src/compiled/examples/imports_exports/import2.ts +++ b/src/compiled/examples/imports_exports/import2.ts @@ -1,29 +1,44 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services - // Functions -export async function wrap(client: FluenceClient, config?: {ttl?: number}): Promise { +export function wrap(config?: { ttl?: number }): Promise; +export function wrap(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function wrap(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -40,20 +55,19 @@ export async function wrap(client: FluenceClient, config?: {ttl?: number}): Prom (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - + h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -61,26 +75,37 @@ export async function wrap(client: FluenceClient, config?: {ttl?: number}): Prom .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for wrap'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - +export function barfoo(config?: { ttl?: number }): Promise; +export function barfoo(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function barfoo(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } -export async function barfoo(client: FluenceClient, config?: {ttl?: number}): Promise { let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -97,20 +122,19 @@ export async function barfoo(client: FluenceClient, config?: {ttl?: number}): Pr (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - + h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -118,13 +142,12 @@ export async function barfoo(client: FluenceClient, config?: {ttl?: number}): Pr .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for barfoo'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/imports_exports/imports-empty.ts b/src/compiled/examples/imports_exports/imports-empty.ts new file mode 100644 index 0000000..7dfcded --- /dev/null +++ b/src/compiled/examples/imports_exports/imports-empty.ts @@ -0,0 +1,573 @@ +/** + * + * This file is auto-generated. Do not edit manually: changes may be erased. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues + * Aqua version: 0.3.0-SNAPSHOT + * + */ +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; + +// Services + +export interface NoopDef { + array: ( + a: string, + b: string | null, + c: string | null, + d: string | null, + callParams: CallParams<'a' | 'b' | 'c' | 'd'>, + ) => string[]; + array_length: (array: string[], callParams: CallParams<'array'>) => number; + bytes_from_b58: (b: string, callParams: CallParams<'b'>) => number[]; + bytes_to_b58: (bs: number[], callParams: CallParams<'bs'>) => string; + concat: ( + a: string[], + b: string[] | null, + c: string[] | null, + d: string[] | null, + callParams: CallParams<'a' | 'b' | 'c' | 'd'>, + ) => string[]; + concat_strings: (a: string, b: string, callParams: CallParams<'a' | 'b'>) => string; + identity: (s: string | null, callParams: CallParams<'s'>) => string | null; + noop: (callParams: CallParams) => void; + sha256_string: (s: string, callParams: CallParams<'s'>) => string; + string_from_b58: (b: string, callParams: CallParams<'b'>) => string; + string_to_b58: (s: string, callParams: CallParams<'s'>) => string; +} + +export function registerNoop(service: NoopDef): void; +export function registerNoop(serviceId: string, service: NoopDef): void; +export function registerNoop(peer: FluencePeer, service: NoopDef): void; +export function registerNoop(peer: FluencePeer, serviceId: string, service: NoopDef): void; +export function registerNoop(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'op'; + } + + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'array') { + const callParams = { + ...req.particleContext, + tetraplets: { + a: req.tetraplets[0], + b: req.tetraplets[1], + c: req.tetraplets[2], + d: req.tetraplets[3], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.array(req.args[0], req.args[1], req.args[2], req.args[3], callParams); + } + + if (req.fnName === 'array_length') { + const callParams = { + ...req.particleContext, + tetraplets: { + array: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.array_length(req.args[0], callParams); + } + + if (req.fnName === 'bytes_from_b58') { + const callParams = { + ...req.particleContext, + tetraplets: { + b: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.bytes_from_b58(req.args[0], callParams); + } + + if (req.fnName === 'bytes_to_b58') { + const callParams = { + ...req.particleContext, + tetraplets: { + bs: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.bytes_to_b58(req.args[0], callParams); + } + + if (req.fnName === 'concat') { + const callParams = { + ...req.particleContext, + tetraplets: { + a: req.tetraplets[0], + b: req.tetraplets[1], + c: req.tetraplets[2], + d: req.tetraplets[3], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.concat(req.args[0], req.args[1], req.args[2], req.args[3], callParams); + } + + if (req.fnName === 'concat_strings') { + const callParams = { + ...req.particleContext, + tetraplets: { + a: req.tetraplets[0], + b: req.tetraplets[1], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.concat_strings(req.args[0], req.args[1], callParams); + } + + if (req.fnName === 'identity') { + const callParams = { + ...req.particleContext, + tetraplets: { + s: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.identity(req.args[0], callParams); + } + + if (req.fnName === 'noop') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + service.noop(callParams); + resp.result = {}; + } + + if (req.fnName === 'sha256_string') { + const callParams = { + ...req.particleContext, + tetraplets: { + s: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.sha256_string(req.args[0], callParams); + } + + if (req.fnName === 'string_from_b58') { + const callParams = { + ...req.particleContext, + tetraplets: { + b: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.string_from_b58(req.args[0], callParams); + } + + if (req.fnName === 'string_to_b58') { + const callParams = { + ...req.particleContext, + tetraplets: { + s: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.string_to_b58(req.args[0], callParams); + } + + next(); + }); +} + +export interface MyExportSrvDef { + another_str: (callParams: CallParams) => string; +} + +export function registerMyExportSrv(service: MyExportSrvDef): void; +export function registerMyExportSrv(serviceId: string, service: MyExportSrvDef): void; +export function registerMyExportSrv(peer: FluencePeer, service: MyExportSrvDef): void; +export function registerMyExportSrv(peer: FluencePeer, serviceId: string, service: MyExportSrvDef): void; +export function registerMyExportSrv(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'my_export_srv'; + } + + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'another_str') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + resp.result = service.another_str(callParams); + } + + next(); + }); +} + +// Functions + +export function some_str(config?: { ttl?: number }): Promise; +export function some_str(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function some_str(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (xor + (call %init_peer_id% ("callbackSrv" "response") ["some_string_func"]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay; + }); + + h.onEvent('callbackSrv', 'response', (args) => { + const [res] = args; + resolve(res); + }); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for some_str'); + }); + if (config && config.ttl) { + r.withTTL(config.ttl); + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return promise; +} + +export function some_string(config?: { ttl?: number }): Promise; +export function some_string(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function some_string(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (xor + (call %init_peer_id% ("callbackSrv" "response") ["some_string_func"]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay; + }); + + h.onEvent('callbackSrv', 'response', (args) => { + const [res] = args; + resolve(res); + }); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for some_string'); + }); + if (config && config.ttl) { + r.withTTL(config.ttl); + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return promise; +} + +export function decl_foo(config?: { ttl?: number }): Promise; +export function decl_foo(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function decl_foo(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("super_foo" "small_foo") [] res1) + ) + (xor + (call %init_peer_id% ("callbackSrv" "response") [res1]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay; + }); + + h.onEvent('callbackSrv', 'response', (args) => { + const [res] = args; + resolve(res); + }); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for decl_foo'); + }); + if (config && config.ttl) { + r.withTTL(config.ttl); + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return promise; +} + +export function decl_bar(config?: { ttl?: number }): Promise; +export function decl_bar(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function decl_bar(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (xor + (call %init_peer_id% ("callbackSrv" "response") ["declare all bar"]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay; + }); + + h.onEvent('callbackSrv', 'response', (args) => { + const [res] = args; + resolve(res); + }); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for decl_bar'); + }); + if (config && config.ttl) { + r.withTTL(config.ttl); + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return promise; +} + +export function some_random_func(config?: { ttl?: number }): Promise; +export function some_random_func(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function some_random_func(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (xor + (call %init_peer_id% ("callbackSrv" "response") ["wow, so random"]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay; + }); + + h.onEvent('callbackSrv', 'response', (args) => { + const [res] = args; + resolve(res); + }); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for some_random_func'); + }); + if (config && config.ttl) { + r.withTTL(config.ttl); + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return promise; +} diff --git a/src/compiled/examples/imports_exports/imports.ts b/src/compiled/examples/imports_exports/imports.ts index 7ab7902..1e67877 100644 --- a/src/compiled/examples/imports_exports/imports.ts +++ b/src/compiled/examples/imports_exports/imports.ts @@ -1,36 +1,100 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//StringService -//defaultId = "string_service" +export interface StringServiceDef { + concat: (a: string, b: string, callParams: CallParams<'a' | 'b'>) => string; +} -//concat: (a: string, b: string) => string -//END StringService +export function registerStringService(service: StringServiceDef): void; +export function registerStringService(serviceId: string, service: StringServiceDef): void; +export function registerStringService(peer: FluencePeer, service: StringServiceDef): void; +export function registerStringService(peer: FluencePeer, serviceId: string, service: StringServiceDef): void; +export function registerStringService(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'string_service'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'concat') { + const callParams = { + ...req.particleContext, + tetraplets: { + a: req.tetraplets[0], + b: req.tetraplets[1], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.concat(req.args[0], req.args[1], callParams); + } + + next(); + }); +} // Functions -export async function concat_foobars(client: FluenceClient, config?: {ttl?: number}): Promise { +export function concat_foobars(config?: { ttl?: number }): Promise; +export function concat_foobars(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function concat_foobars(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -62,20 +126,19 @@ export async function concat_foobars(client: FluenceClient, config?: {ttl?: numb (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - + h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -83,13 +146,12 @@ export async function concat_foobars(client: FluenceClient, config?: {ttl?: numb .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for concat_foobars'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/imports_exports/subImport.ts b/src/compiled/examples/imports_exports/subImport.ts index 3216b38..1ab9266 100644 --- a/src/compiled/examples/imports_exports/subImport.ts +++ b/src/compiled/examples/imports_exports/subImport.ts @@ -1,36 +1,99 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//SubService -//defaultId = "sub_service" +export interface SubServiceDef { + sub: (s: string, callParams: CallParams<'s'>) => { one: string; two: number }; +} -//sub: (s: string) => {one:string;two:number} -//END SubService +export function registerSubService(service: SubServiceDef): void; +export function registerSubService(serviceId: string, service: SubServiceDef): void; +export function registerSubService(peer: FluencePeer, service: SubServiceDef): void; +export function registerSubService(peer: FluencePeer, serviceId: string, service: SubServiceDef): void; +export function registerSubService(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'sub_service'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'sub') { + const callParams = { + ...req.particleContext, + tetraplets: { + s: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.sub(req.args[0], callParams); + } + + next(); + }); +} // Functions -export async function subImport(client: FluenceClient, config?: {ttl?: number}): Promise<{one:string;two:number}> { +export function subImport(config?: { ttl?: number }): Promise<{ one: string; two: number }>; +export function subImport(peer: FluencePeer, config?: { ttl?: number }): Promise<{ one: string; two: number }>; +export function subImport(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + let request: RequestFlow; - const promise = new Promise<{one:string;two:number}>((resolve, reject) => { + const promise = new Promise<{ one: string; two: number }>((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) @@ -44,20 +107,19 @@ export async function subImport(client: FluenceClient, config?: {ttl?: number}): (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - + h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -65,13 +127,12 @@ export async function subImport(client: FluenceClient, config?: {ttl?: number}): .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for subImport'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/multiReturn.ts b/src/compiled/examples/multiReturn.ts index ed1ebf3..2bfa730 100644 --- a/src/compiled/examples/multiReturn.ts +++ b/src/compiled/examples/multiReturn.ts @@ -1,45 +1,152 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//GetStr -//defaultId = "multiret-test" +export interface GetStrDef { + retStr: (arg0: string, callParams: CallParams<'arg0'>) => string; +} -//retStr: (arg0: string) => string -//END GetStr +export function registerGetStr(service: GetStrDef): void; +export function registerGetStr(serviceId: string, service: GetStrDef): void; +export function registerGetStr(peer: FluencePeer, service: GetStrDef): void; +export function registerGetStr(peer: FluencePeer, serviceId: string, service: GetStrDef): void; +export function registerGetStr(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'multiret-test'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } -//GetNum -//defaultId = "multiret-num" + if (req.fnName === 'retStr') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.retStr(req.args[0], callParams); + } -//retNum: () => number -//END GetNum + next(); + }); +} +export interface GetNumDef { + retNum: (callParams: CallParams) => number; +} +export function registerGetNum(service: GetNumDef): void; +export function registerGetNum(serviceId: string, service: GetNumDef): void; +export function registerGetNum(peer: FluencePeer, service: GetNumDef): void; +export function registerGetNum(peer: FluencePeer, serviceId: string, service: GetNumDef): void; +export function registerGetNum(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'multiret-num'; + } + + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'retNum') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + resp.result = service.retNum(callParams); + } + + next(); + }); +} // Functions -export async function tupleFunc(client: FluenceClient, config?: {ttl?: number}): Promise<[string, number]> { +export function tupleFunc(config?: { ttl?: number }): Promise<[string, number]>; +export function tupleFunc(peer: FluencePeer, config?: { ttl?: number }): Promise<[string, number]>; +export function tupleFunc(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + let request: RequestFlow; const promise = new Promise<[string, number]>((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -56,21 +163,20 @@ export async function tupleFunc(client: FluenceClient, config?: {ttl?: number}): (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - - h.onEvent('callbackSrv', 'response', (args) => { - let opt: any = args; - return resolve(opt); -}); + h.onEvent('callbackSrv', 'response', (args) => { + let opt: any = args; + + return resolve(opt); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -78,26 +184,51 @@ export async function tupleFunc(client: FluenceClient, config?: {ttl?: number}): .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for tupleFunc'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - +export function multiReturnFunc( + somethingToReturn: number[], + smthOption: string | null, + config?: { ttl?: number }, +): Promise<[string[], number, string, number[], string | null, number]>; +export function multiReturnFunc( + peer: FluencePeer, + somethingToReturn: number[], + smthOption: string | null, + config?: { ttl?: number }, +): Promise<[string[], number, string, number[], string | null, number]>; +export function multiReturnFunc(...args) { + let peer: FluencePeer; + let somethingToReturn; + let smthOption; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + somethingToReturn = args[1]; + smthOption = args[2]; + config = args[3]; + } else { + peer = FluencePeer.default; + somethingToReturn = args[0]; + smthOption = args[1]; + config = args[2]; + } -export async function multiReturnFunc(client: FluenceClient, somethingToReturn: number[], smthOption: string | null, config?: {ttl?: number}): Promise<[string[], number, string, number[], string | null, number]> { let request: RequestFlow; const promise = new Promise<[string[], number, string, number[], string | null, number]>((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -129,26 +260,32 @@ export async function multiReturnFunc(client: FluenceClient, somethingToReturn: (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'somethingToReturn', () => { + return somethingToReturn; + }); + h.on('getDataSrv', 'smthOption', () => { + return smthOption === null ? [] : [smthOption]; }); - h.on('getDataSrv', 'somethingToReturn', () => {return somethingToReturn;}); -h.on('getDataSrv', 'smthOption', () => {return smthOption === null ? [] : [smthOption];}); h.onEvent('callbackSrv', 'response', (args) => { - let opt: any = args; + let opt: any = args; - if(Array.isArray(opt[4])) { - if (opt[4].length === 0) { opt[4] = null; } - else {opt[4] = opt[4][0]; } - } - return resolve(opt); -}); + if (Array.isArray(opt[4])) { + if (opt[4].length === 0) { + opt[4] = null; + } else { + opt[4] = opt[4][0]; + } + } + return resolve(opt); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -156,13 +293,12 @@ h.on('getDataSrv', 'smthOption', () => {return smthOption === null ? [] : [smthO .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for multiReturnFunc'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/nestedFuncs.ts b/src/compiled/examples/nestedFuncs.ts index 2a2f198..ff2a7ab 100644 --- a/src/compiled/examples/nestedFuncs.ts +++ b/src/compiled/examples/nestedFuncs.ts @@ -1,36 +1,101 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//OpH -//defaultId = "opa" +export interface OpHDef { + identity: (s: string, callParams: CallParams<'s'>) => string; +} -//identity: (s: string) => string -//END OpH +export function registerOpH(service: OpHDef): void; +export function registerOpH(serviceId: string, service: OpHDef): void; +export function registerOpH(peer: FluencePeer, service: OpHDef): void; +export function registerOpH(peer: FluencePeer, serviceId: string, service: OpHDef): void; +export function registerOpH(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'opa'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'identity') { + const callParams = { + ...req.particleContext, + tetraplets: { + s: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.identity(req.args[0], callParams); + } + + next(); + }); +} // Functions -export async function a(client: FluenceClient, b: string, config?: {ttl?: number}): Promise { +export function a(b: string, config?: { ttl?: number }): Promise; +export function a(peer: FluencePeer, b: string, config?: { ttl?: number }): Promise; +export function a(...args) { + let peer: FluencePeer; + let b; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + b = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + b = args[0]; + config = args[1]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -47,20 +112,21 @@ export async function a(client: FluenceClient, b: string, config?: {ttl?: number (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'b', () => { + return b; }); - h.on('getDataSrv', 'b', () => {return b;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -68,26 +134,39 @@ export async function a(client: FluenceClient, b: string, config?: {ttl?: number .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for a'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - +export function d(e: string, config?: { ttl?: number }): Promise; +export function d(peer: FluencePeer, e: string, config?: { ttl?: number }): Promise; +export function d(...args) { + let peer: FluencePeer; + let e; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + e = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + e = args[0]; + config = args[1]; + } -export async function d(client: FluenceClient, e: string, config?: {ttl?: number}): Promise { let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -104,20 +183,21 @@ export async function d(client: FluenceClient, e: string, config?: {ttl?: number (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'e', () => { + return e; }); - h.on('getDataSrv', 'e', () => {return e;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -125,13 +205,12 @@ export async function d(client: FluenceClient, e: string, config?: {ttl?: number .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for d'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/new-api-full.ts b/src/compiled/examples/new-api-full.ts new file mode 100644 index 0000000..f3bea86 --- /dev/null +++ b/src/compiled/examples/new-api-full.ts @@ -0,0 +1,600 @@ +/** + * + * This file is auto-generated. Do not edit manually: changes may be erased. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues + * Aqua version: 0.3.0-SNAPSHOT + * + */ +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; + +// Services + +export interface ServiceWithDefaultIdDef { + hello: (s: string, callParams: CallParams<'s'>) => void; +} + +export function registerServiceWithDefaultId(service: ServiceWithDefaultIdDef): void; +export function registerServiceWithDefaultId(serviceId: string, service: ServiceWithDefaultIdDef): void; +export function registerServiceWithDefaultId(peer: FluencePeer, service: ServiceWithDefaultIdDef): void; +export function registerServiceWithDefaultId( + peer: FluencePeer, + serviceId: string, + service: ServiceWithDefaultIdDef, +): void; +export function registerServiceWithDefaultId(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'defaultId'; + } + + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'hello') { + const callParams = { + ...req.particleContext, + tetraplets: { + s: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + service.hello(req.args[0], callParams); + resp.result = {}; + } + + next(); + }); +} + +export interface ServiceWithOUTDefaultIdDef { + hello: (s: string, callParams: CallParams<'s'>) => void; +} + +export function registerServiceWithOUTDefaultId(serviceId: string, service: ServiceWithOUTDefaultIdDef): void; +export function registerServiceWithOUTDefaultId( + peer: FluencePeer, + serviceId: string, + service: ServiceWithOUTDefaultIdDef, +): void; +export function registerServiceWithOUTDefaultId(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } + + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'hello') { + const callParams = { + ...req.particleContext, + tetraplets: { + s: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + service.hello(req.args[0], callParams); + resp.result = {}; + } + + next(); + }); +} + +export interface MoreMembersDef { + member1: (callParams: CallParams) => void; + member2: (s1: string, callParams: CallParams<'s1'>) => void; + member3: (s1: string, s2: string, callParams: CallParams<'s1' | 's2'>) => void; + member4: (s1: string, s2: string, i: number, callParams: CallParams<'s1' | 's2' | 'i'>) => number; + member5: (s1: string, s2: string, i: number, callParams: CallParams<'s1' | 's2' | 'i'>) => number; +} + +export function registerMoreMembers(serviceId: string, service: MoreMembersDef): void; +export function registerMoreMembers(peer: FluencePeer, serviceId: string, service: MoreMembersDef): void; +export function registerMoreMembers(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } + + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'member1') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + service.member1(callParams); + resp.result = {}; + } + + if (req.fnName === 'member2') { + const callParams = { + ...req.particleContext, + tetraplets: { + s1: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + service.member2(req.args[0], callParams); + resp.result = {}; + } + + if (req.fnName === 'member3') { + const callParams = { + ...req.particleContext, + tetraplets: { + s1: req.tetraplets[0], + s2: req.tetraplets[1], + }, + }; + resp.retCode = ResultCodes.success; + service.member3(req.args[0], req.args[1], callParams); + resp.result = {}; + } + + if (req.fnName === 'member4') { + const callParams = { + ...req.particleContext, + tetraplets: { + s1: req.tetraplets[0], + s2: req.tetraplets[1], + i: req.tetraplets[2], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.member4(req.args[0], req.args[1], req.args[2], callParams); + } + + if (req.fnName === 'member5') { + const callParams = { + ...req.particleContext, + tetraplets: { + s1: req.tetraplets[0], + s2: req.tetraplets[1], + i: req.tetraplets[2], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.member5(req.args[0], req.args[1], req.args[2], callParams); + } + + next(); + }); +} + +// Functions + +export function f1( + callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void, + config?: { ttl?: number }, +): Promise; +export function f1( + peer: FluencePeer, + callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void, + config?: { ttl?: number }, +): Promise; +export function f1(...args) { + let peer: FluencePeer; + let callback; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + callback = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + callback = args[0]; + config = args[1]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (xor + (call %init_peer_id% ("callbackSrv" "callback") ["hello, world" 42]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay; + }); + + h.use((req, resp, next) => { + if (req.serviceId === 'callbackSrv' && req.fnName === 'callback') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + arg1: req.tetraplets[1], + }, + }; + resp.retCode = ResultCodes.success; + callback(req.args[0], req.args[1], callParams); + resp.result = {}; + } + next(); + }); + + h.onEvent('callbackSrv', 'response', (args) => {}); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for f1'); + }); + if (config && config.ttl) { + r.withTTL(config.ttl); + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return Promise.race([promise, Promise.resolve()]); +} + +export function f2( + num: number, + callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void, + config?: { ttl?: number }, +): Promise; +export function f2( + peer: FluencePeer, + num: number, + callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void, + config?: { ttl?: number }, +): Promise; +export function f2(...args) { + let peer: FluencePeer; + let num; + let callback; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + num = args[1]; + callback = args[2]; + config = args[3]; + } else { + peer = FluencePeer.default; + num = args[0]; + callback = args[1]; + config = args[2]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "num") [] num) + ) + (xor + (call %init_peer_id% ("callbackSrv" "callback") ["hello, world" 42]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'num', () => { + return num; + }); + + h.use((req, resp, next) => { + if (req.serviceId === 'callbackSrv' && req.fnName === 'callback') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + arg1: req.tetraplets[1], + }, + }; + resp.retCode = ResultCodes.success; + callback(req.args[0], req.args[1], callParams); + resp.result = {}; + } + next(); + }); + + h.onEvent('callbackSrv', 'response', (args) => {}); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for f2'); + }); + if (config && config.ttl) { + r.withTTL(config.ttl); + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return Promise.race([promise, Promise.resolve()]); +} + +export function f3( + num: number, + callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void, + config?: { ttl?: number }, +): Promise; +export function f3( + peer: FluencePeer, + num: number, + callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void, + config?: { ttl?: number }, +): Promise; +export function f3(...args) { + let peer: FluencePeer; + let num; + let callback; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + num = args[1]; + callback = args[2]; + config = args[3]; + } else { + peer = FluencePeer.default; + num = args[0]; + callback = args[1]; + config = args[2]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "num") [] num) + ) + (xor + (call %init_peer_id% ("callbackSrv" "callback") ["hello, world" 42]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (xor + (call %init_peer_id% ("callbackSrv" "response") ["hello world"]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'num', () => { + return num; + }); + + h.use((req, resp, next) => { + if (req.serviceId === 'callbackSrv' && req.fnName === 'callback') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + arg1: req.tetraplets[1], + }, + }; + resp.retCode = ResultCodes.success; + callback(req.args[0], req.args[1], callParams); + resp.result = {}; + } + next(); + }); + + h.onEvent('callbackSrv', 'response', (args) => { + const [res] = args; + resolve(res); + }); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for f3'); + }); + if (config && config.ttl) { + r.withTTL(config.ttl); + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return promise; +} + +export function callBackZeroArgs( + callback: (callParams: CallParams) => void, + config?: { ttl?: number }, +): Promise; +export function callBackZeroArgs( + peer: FluencePeer, + callback: (callParams: CallParams) => void, + config?: { ttl?: number }, +): Promise; +export function callBackZeroArgs(...args) { + let peer: FluencePeer; + let callback; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + callback = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + callback = args[0]; + config = args[1]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (xor + (call %init_peer_id% ("callbackSrv" "callback") []) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay; + }); + + h.use((req, resp, next) => { + if (req.serviceId === 'callbackSrv' && req.fnName === 'callback') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + callback(callParams); + resp.result = {}; + } + next(); + }); + + h.onEvent('callbackSrv', 'response', (args) => {}); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for callBackZeroArgs'); + }); + if (config && config.ttl) { + r.withTTL(config.ttl); + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return Promise.race([promise, Promise.resolve()]); +} diff --git a/src/compiled/examples/new-api.ts b/src/compiled/examples/new-api.ts new file mode 100644 index 0000000..579760e --- /dev/null +++ b/src/compiled/examples/new-api.ts @@ -0,0 +1,168 @@ +/** + * + * This file is auto-generated. Do not edit manually: changes may be erased. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues + * Aqua version: 0.3.0-SNAPSHOT + * + */ +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; + +// Services + +export interface HelloWorldDef { + getNumber: (callParams: CallParams) => number; + sayHello: (s: string, callParams: CallParams<'s'>) => void; +} + +export function registerHelloWorld(service: HelloWorldDef): void; +export function registerHelloWorld(serviceId: string, service: HelloWorldDef): void; +export function registerHelloWorld(peer: FluencePeer, service: HelloWorldDef): void; +export function registerHelloWorld(peer: FluencePeer, serviceId: string, service: HelloWorldDef): void; +export function registerHelloWorld(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'default'; + } + + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'getNumber') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + resp.result = service.getNumber(callParams); + } + + if (req.fnName === 'sayHello') { + const callParams = { + ...req.particleContext, + tetraplets: { + s: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + service.sayHello(req.args[0], callParams); + resp.result = {}; + } + + next(); + }); +} + +// Functions + +export function callMeBack( + callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void, + config?: { ttl?: number }, +): Promise; +export function callMeBack( + peer: FluencePeer, + callback: (arg0: string, arg1: number, callParams: CallParams<'arg0' | 'arg1'>) => void, + config?: { ttl?: number }, +): Promise; +export function callMeBack(...args) { + let peer: FluencePeer; + let callback; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + callback = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + callback = args[0]; + config = args[1]; + } + + let request: RequestFlow; + const promise = new Promise((resolve, reject) => { + const r = new RequestFlowBuilder() + .disableInjections() + .withRawScript( + ` + (xor + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (xor + (call %init_peer_id% ("callbackSrv" "callback") ["hello, world" 42]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) +) + + `, + ) + .configHandler((h) => { + h.on('getDataSrv', '-relay-', () => { + return peer.connectionInfo.connectedRelay; + }); + + h.use((req, resp, next) => { + if (req.serviceId === 'callbackSrv' && req.fnName === 'callback') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + arg1: req.tetraplets[1], + }, + }; + resp.retCode = ResultCodes.success; + callback(req.args[0], req.args[1], callParams); + resp.result = {}; + } + next(); + }); + + h.onEvent('callbackSrv', 'response', (args) => {}); + + h.onEvent('errorHandlingSrv', 'error', (args) => { + const [err] = args; + reject(err); + }); + }) + .handleScriptError(reject) + .handleTimeout(() => { + reject('Request timed out for callMeBack'); + }); + if (config && config.ttl) { + r.withTTL(config.ttl); + } + request = r.build(); + }); + peer.internals.initiateFlow(request!); + return Promise.race([promise, Promise.resolve()]); +} diff --git a/src/compiled/examples/on.ts b/src/compiled/examples/on.ts index a7ff3d8..1bffc21 100644 --- a/src/compiled/examples/on.ts +++ b/src/compiled/examples/on.ts @@ -1,29 +1,50 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services - // Functions -export async function getPeerExternalAddresses(client: FluenceClient, otherNodePeerId: string, config?: {ttl?: number}): Promise { +export function getPeerExternalAddresses(otherNodePeerId: string, config?: { ttl?: number }): Promise; +export function getPeerExternalAddresses( + peer: FluencePeer, + otherNodePeerId: string, + config?: { ttl?: number }, +): Promise; +export function getPeerExternalAddresses(...args) { + let peer: FluencePeer; + let otherNodePeerId; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + otherNodePeerId = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + otherNodePeerId = args[0]; + config = args[1]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -52,20 +73,21 @@ export async function getPeerExternalAddresses(client: FluenceClient, otherNodeP (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'otherNodePeerId', () => { + return otherNodePeerId; }); - h.on('getDataSrv', 'otherNodePeerId', () => {return otherNodePeerId;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -73,26 +95,47 @@ export async function getPeerExternalAddresses(client: FluenceClient, otherNodeP .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for getPeerExternalAddresses'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - +export function getDistantAddresses(target: string, viaNode: string, config?: { ttl?: number }): Promise; +export function getDistantAddresses( + peer: FluencePeer, + target: string, + viaNode: string, + config?: { ttl?: number }, +): Promise; +export function getDistantAddresses(...args) { + let peer: FluencePeer; + let target; + let viaNode; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + target = args[1]; + viaNode = args[2]; + config = args[3]; + } else { + peer = FluencePeer.default; + target = args[0]; + viaNode = args[1]; + config = args[2]; + } -export async function getDistantAddresses(client: FluenceClient, target: string, viaNode: string, config?: {ttl?: number}): Promise { let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -136,21 +179,24 @@ export async function getDistantAddresses(client: FluenceClient, target: string, (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'target', () => { + return target; + }); + h.on('getDataSrv', 'viaNode', () => { + return viaNode; }); - h.on('getDataSrv', 'target', () => {return target;}); -h.on('getDataSrv', 'viaNode', () => {return viaNode;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -158,13 +204,12 @@ h.on('getDataSrv', 'viaNode', () => {return viaNode;}); .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for getDistantAddresses'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/option.ts b/src/compiled/examples/option.ts index f883387..906d011 100644 --- a/src/compiled/examples/option.ts +++ b/src/compiled/examples/option.ts @@ -1,38 +1,123 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//SomeS -//defaultId = "test2" +export interface SomeSDef { + getStr: (arg0: string | null, callParams: CallParams<'arg0'>) => string | null; + getStr1: (callParams: CallParams) => string | null; + getStr2: (arg0: string, callParams: CallParams<'arg0'>) => string; +} -//getStr: (arg0: string | null) => string | null -//getStr1: () => string | null -//getStr2: (arg0: string) => string -//END SomeS +export function registerSomeS(service: SomeSDef): void; +export function registerSomeS(serviceId: string, service: SomeSDef): void; +export function registerSomeS(peer: FluencePeer, service: SomeSDef): void; +export function registerSomeS(peer: FluencePeer, serviceId: string, service: SomeSDef): void; +export function registerSomeS(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'test2'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'getStr') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.getStr(req.args[0], callParams); + } + + if (req.fnName === 'getStr1') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + resp.result = service.getStr1(callParams); + } + + if (req.fnName === 'getStr2') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.getStr2(req.args[0], callParams); + } + + next(); + }); +} // Functions -export async function useOptional(client: FluenceClient, opt: string | null, config?: {ttl?: number}): Promise { +export function useOptional(opt: string | null, config?: { ttl?: number }): Promise; +export function useOptional(peer: FluencePeer, opt: string | null, config?: { ttl?: number }): Promise; +export function useOptional(...args) { + let peer: FluencePeer; + let opt; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + opt = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + opt = args[0]; + config = args[1]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -57,20 +142,21 @@ export async function useOptional(client: FluenceClient, opt: string | null, con (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'opt', () => { + return opt === null ? [] : [opt]; }); - h.on('getDataSrv', 'opt', () => {return opt === null ? [] : [opt];}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -78,26 +164,37 @@ export async function useOptional(client: FluenceClient, opt: string | null, con .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for useOptional'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - +export function returnOptional(config?: { ttl?: number }): Promise; +export function returnOptional(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function returnOptional(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } -export async function returnOptional(client: FluenceClient, config?: {ttl?: number}): Promise { let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) @@ -111,24 +208,25 @@ export async function returnOptional(client: FluenceClient, config?: {ttl?: numb (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - + h.onEvent('callbackSrv', 'response', (args) => { - let [opt] = args; - if (Array.isArray(opt)) { - if (opt.length === 0) { resolve(null); } - opt = opt[0]; - } - return resolve(opt); -}); + let [opt] = args; + if (Array.isArray(opt)) { + if (opt.length === 0) { + resolve(null); + } + opt = opt[0]; + } + return resolve(opt); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -136,26 +234,37 @@ export async function returnOptional(client: FluenceClient, config?: {ttl?: numb .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for returnOptional'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - +export function returnNone(config?: { ttl?: number }): Promise; +export function returnNone(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function returnNone(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } -export async function returnNone(client: FluenceClient, config?: {ttl?: number}): Promise { let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) @@ -169,24 +278,25 @@ export async function returnNone(client: FluenceClient, config?: {ttl?: number}) (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - + h.onEvent('callbackSrv', 'response', (args) => { - let [opt] = args; - if (Array.isArray(opt)) { - if (opt.length === 0) { resolve(null); } - opt = opt[0]; - } - return resolve(opt); -}); + let [opt] = args; + if (Array.isArray(opt)) { + if (opt.length === 0) { + resolve(null); + } + opt = opt[0]; + } + return resolve(opt); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -194,13 +304,12 @@ export async function returnNone(client: FluenceClient, config?: {ttl?: number}) .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for returnNone'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/par.ts b/src/compiled/examples/par.ts index 6cc5217..2b06e98 100644 --- a/src/compiled/examples/par.ts +++ b/src/compiled/examples/par.ts @@ -1,36 +1,111 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//ParService -//defaultId = "parservice-id" +export interface ParServiceDef { + call: (callParams: CallParams) => string; +} -//call: () => string -//END ParService +export function registerParService(service: ParServiceDef): void; +export function registerParService(serviceId: string, service: ParServiceDef): void; +export function registerParService(peer: FluencePeer, service: ParServiceDef): void; +export function registerParService(peer: FluencePeer, serviceId: string, service: ParServiceDef): void; +export function registerParService(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'parservice-id'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'call') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + resp.result = service.call(callParams); + } + + next(); + }); +} // Functions -export async function parFunc(client: FluenceClient, node: string, c: (arg0: {external_addresses:string[]}) => void, config?: {ttl?: number}): Promise { +export function parFunc( + node: string, + c: (arg0: { external_addresses: string[] }, callParams: CallParams<'arg0'>) => void, + config?: { ttl?: number }, +): Promise; +export function parFunc( + peer: FluencePeer, + node: string, + c: (arg0: { external_addresses: string[] }, callParams: CallParams<'arg0'>) => void, + config?: { ttl?: number }, +): Promise; +export function parFunc(...args) { + let peer: FluencePeer; + let node; + let c; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + node = args[1]; + c = args[2]; + config = args[3]; + } else { + peer = FluencePeer.default; + node = args[0]; + c = args[1]; + config = args[2]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) @@ -62,17 +137,34 @@ export async function parFunc(client: FluenceClient, node: string, c: (arg0: {ex (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - h.on('getDataSrv', 'node', () => {return node;}); -h.on('callbackSrv', 'c', (args) => {c(args[0]); return {};}); - + h.on('getDataSrv', 'node', () => { + return node; + }); + + h.use((req, resp, next) => { + if (req.serviceId === 'callbackSrv' && req.fnName === 'c') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + c(req.args[0], callParams); + resp.result = {}; + } + next(); + }); + + h.onEvent('callbackSrv', 'response', (args) => {}); + h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -80,13 +172,12 @@ h.on('callbackSrv', 'c', (args) => {c(args[0]); return {};}); .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for parFunc'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return Promise.race([promise, Promise.resolve()]); } - diff --git a/src/compiled/examples/passArgs.ts b/src/compiled/examples/passArgs.ts index 6224d98..f478cab 100644 --- a/src/compiled/examples/passArgs.ts +++ b/src/compiled/examples/passArgs.ts @@ -1,36 +1,125 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//AquaDHT -//defaultId = "test-dht" +export interface AquaDHTDef { + put_host_value: ( + key: string, + value: string, + service_id: string[], + callParams: CallParams<'key' | 'value' | 'service_id'>, + ) => string; +} -//put_host_value: (key: string, value: string, service_id: string[]) => string -//END AquaDHT +export function registerAquaDHT(service: AquaDHTDef): void; +export function registerAquaDHT(serviceId: string, service: AquaDHTDef): void; +export function registerAquaDHT(peer: FluencePeer, service: AquaDHTDef): void; +export function registerAquaDHT(peer: FluencePeer, serviceId: string, service: AquaDHTDef): void; +export function registerAquaDHT(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'test-dht'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'put_host_value') { + const callParams = { + ...req.particleContext, + tetraplets: { + key: req.tetraplets[0], + value: req.tetraplets[1], + service_id: req.tetraplets[2], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.put_host_value(req.args[0], req.args[1], req.args[2], callParams); + } + + next(); + }); +} // Functions -export async function putHostValue(client: FluenceClient, key: string, value: string, service_id: string | null, config?: {ttl?: number}): Promise { +export function putHostValue( + key: string, + value: string, + service_id: string | null, + config?: { ttl?: number }, +): Promise; +export function putHostValue( + peer: FluencePeer, + key: string, + value: string, + service_id: string | null, + config?: { ttl?: number }, +): Promise; +export function putHostValue(...args) { + let peer: FluencePeer; + let key; + let value; + let service_id; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + key = args[1]; + value = args[2]; + service_id = args[3]; + config = args[4]; + } else { + peer = FluencePeer.default; + key = args[0]; + value = args[1]; + service_id = args[2]; + config = args[3]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -53,22 +142,27 @@ export async function putHostValue(client: FluenceClient, key: string, value: st (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'key', () => { + return key; + }); + h.on('getDataSrv', 'value', () => { + return value; + }); + h.on('getDataSrv', 'service_id', () => { + return service_id === null ? [] : [service_id]; }); - h.on('getDataSrv', 'key', () => {return key;}); -h.on('getDataSrv', 'value', () => {return value;}); -h.on('getDataSrv', 'service_id', () => {return service_id === null ? [] : [service_id];}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -76,26 +170,39 @@ h.on('getDataSrv', 'service_id', () => {return service_id === null ? [] : [servi .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for putHostValue'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - +export function create_client_util(service_id: string, config?: { ttl?: number }): Promise; +export function create_client_util(peer: FluencePeer, service_id: string, config?: { ttl?: number }): Promise; +export function create_client_util(...args) { + let peer: FluencePeer; + let service_id; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + service_id = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + service_id = args[0]; + config = args[1]; + } -export async function create_client_util(client: FluenceClient, service_id: string, config?: {ttl?: number}): Promise { let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -112,20 +219,21 @@ export async function create_client_util(client: FluenceClient, service_id: stri (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'service_id', () => { + return service_id; }); - h.on('getDataSrv', 'service_id', () => {return service_id;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -133,13 +241,12 @@ export async function create_client_util(client: FluenceClient, service_id: stri .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for create_client_util'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/println.ts b/src/compiled/examples/println.ts index 1c04b0e..8647997 100644 --- a/src/compiled/examples/println.ts +++ b/src/compiled/examples/println.ts @@ -1,36 +1,102 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//Println -//defaultId = "println-service-id" +export interface PrintlnDef { + print: (arg0: string, callParams: CallParams<'arg0'>) => void; +} -//print: (arg0: string) => void -//END Println +export function registerPrintln(service: PrintlnDef): void; +export function registerPrintln(serviceId: string, service: PrintlnDef): void; +export function registerPrintln(peer: FluencePeer, service: PrintlnDef): void; +export function registerPrintln(peer: FluencePeer, serviceId: string, service: PrintlnDef): void; +export function registerPrintln(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'println-service-id'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'print') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + service.print(req.args[0], callParams); + resp.result = {}; + } + + next(); + }); +} // Functions -export async function print(client: FluenceClient, str: string, config?: {ttl?: number}): Promise { +export function print(str: string, config?: { ttl?: number }): Promise; +export function print(peer: FluencePeer, str: string, config?: { ttl?: number }): Promise; +export function print(...args) { + let peer: FluencePeer; + let str; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + str = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + str = args[0]; + config = args[1]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) @@ -41,16 +107,18 @@ export async function print(client: FluenceClient, str: string, config?: {ttl?: (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - h.on('getDataSrv', 'str', () => {return str;}); - + h.on('getDataSrv', 'str', () => { + return str; + }); + h.onEvent('callbackSrv', 'response', (args) => {}); + h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -58,13 +126,12 @@ export async function print(client: FluenceClient, str: string, config?: {ttl?: .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for print'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return Promise.race([promise, Promise.resolve()]); } - diff --git a/src/compiled/examples/pushToStream.ts b/src/compiled/examples/pushToStream.ts index 5504ca9..52f7a5f 100644 --- a/src/compiled/examples/pushToStream.ts +++ b/src/compiled/examples/pushToStream.ts @@ -1,36 +1,97 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//OpA -//defaultId = "pop" +export interface OpADef { + get_str: (callParams: CallParams) => string; +} -//get_str: () => string -//END OpA +export function registerOpA(service: OpADef): void; +export function registerOpA(serviceId: string, service: OpADef): void; +export function registerOpA(peer: FluencePeer, service: OpADef): void; +export function registerOpA(peer: FluencePeer, serviceId: string, service: OpADef): void; +export function registerOpA(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'pop'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'get_str') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + resp.result = service.get_str(callParams); + } + + next(); + }); +} // Functions -export async function get_results(client: FluenceClient, config?: {ttl?: number}): Promise { +export function get_results(config?: { ttl?: number }): Promise; +export function get_results(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function get_results(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -50,20 +111,19 @@ export async function get_results(client: FluenceClient, config?: {ttl?: number} (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - + h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -71,13 +131,12 @@ export async function get_results(client: FluenceClient, config?: {ttl?: number} .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for get_results'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/returnLiteral.ts b/src/compiled/examples/returnLiteral.ts index d28ba68..eb9998f 100644 --- a/src/compiled/examples/returnLiteral.ts +++ b/src/compiled/examples/returnLiteral.ts @@ -1,29 +1,44 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services - // Functions -export async function returnLiteral(client: FluenceClient, config?: {ttl?: number}): Promise { +export function returnLiteral(config?: { ttl?: number }): Promise; +export function returnLiteral(peer: FluencePeer, config?: { ttl?: number }): Promise; +export function returnLiteral(...args) { + let peer: FluencePeer; + + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + config = args[1]; + } else { + peer = FluencePeer.default; + config = args[0]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) (xor @@ -34,20 +49,19 @@ export async function returnLiteral(client: FluenceClient, config?: {ttl?: numbe (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - + h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -55,13 +69,12 @@ export async function returnLiteral(client: FluenceClient, config?: {ttl?: numbe .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for returnLiteral'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/stream.ts b/src/compiled/examples/stream.ts index fe502bb..e140339 100644 --- a/src/compiled/examples/stream.ts +++ b/src/compiled/examples/stream.ts @@ -1,36 +1,101 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//Stringer -//defaultId = "stringer-id" +export interface StringerDef { + returnString: (arg0: string, callParams: CallParams<'arg0'>) => string; +} -//returnString: (arg0: string) => string -//END Stringer +export function registerStringer(service: StringerDef): void; +export function registerStringer(serviceId: string, service: StringerDef): void; +export function registerStringer(peer: FluencePeer, service: StringerDef): void; +export function registerStringer(peer: FluencePeer, serviceId: string, service: StringerDef): void; +export function registerStringer(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'stringer-id'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'returnString') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.returnString(req.args[0], callParams); + } + + next(); + }); +} // Functions -export async function checkStreams(client: FluenceClient, ch: string[], config?: {ttl?: number}): Promise { +export function checkStreams(ch: string[], config?: { ttl?: number }): Promise; +export function checkStreams(peer: FluencePeer, ch: string[], config?: { ttl?: number }): Promise; +export function checkStreams(...args) { + let peer: FluencePeer; + let ch; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + ch = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + ch = args[0]; + config = args[1]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -58,20 +123,21 @@ export async function checkStreams(client: FluenceClient, ch: string[], config?: (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'ch', () => { + return ch; }); - h.on('getDataSrv', 'ch', () => {return ch;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -79,13 +145,12 @@ export async function checkStreams(client: FluenceClient, ch: string[], config?: .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for checkStreams'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/streamArgs.ts b/src/compiled/examples/streamArgs.ts index 52d83fc..3d1d193 100644 --- a/src/compiled/examples/streamArgs.ts +++ b/src/compiled/examples/streamArgs.ts @@ -1,36 +1,109 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//TestService -//defaultId = "test-service" +export interface TestServiceDef { + get_records: (key: string, callParams: CallParams<'key'>) => string[]; +} -//get_records: (key: string) => string[] -//END TestService +export function registerTestService(service: TestServiceDef): void; +export function registerTestService(serviceId: string, service: TestServiceDef): void; +export function registerTestService(peer: FluencePeer, service: TestServiceDef): void; +export function registerTestService(peer: FluencePeer, serviceId: string, service: TestServiceDef): void; +export function registerTestService(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'test-service'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'get_records') { + const callParams = { + ...req.particleContext, + tetraplets: { + key: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.get_records(req.args[0], callParams); + } + + next(); + }); +} // Functions -export async function append_records(client: FluenceClient, peer: string, srum: string[][], config?: {ttl?: number}): Promise { +export function append_records(peer_: string, srum: string[][], config?: { ttl?: number }): Promise; +export function append_records( + peer: FluencePeer, + peer_: string, + srum: string[][], + config?: { ttl?: number }, +): Promise; +export function append_records(...args) { + let peer: FluencePeer; + let peer_; + let srum; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + peer_ = args[1]; + srum = args[2]; + config = args[3]; + } else { + peer = FluencePeer.default; + peer_ = args[0]; + srum = args[1]; + config = args[2]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -52,17 +125,21 @@ export async function append_records(client: FluenceClient, peer: string, srum: (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; }); - h.on('getDataSrv', 'peer', () => {return peer;}); -h.on('getDataSrv', 'srum', () => {return srum;}); - + h.on('getDataSrv', 'peer', () => { + return peer_; + }); + h.on('getDataSrv', 'srum', () => { + return srum; + }); + h.onEvent('callbackSrv', 'response', (args) => {}); + h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -70,26 +147,39 @@ h.on('getDataSrv', 'srum', () => {return srum;}); .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for append_records'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return Promise.race([promise, Promise.resolve()]); } - +export function retrieve_records(peer_: string, config?: { ttl?: number }): Promise; +export function retrieve_records(peer: FluencePeer, peer_: string, config?: { ttl?: number }): Promise; +export function retrieve_records(...args) { + let peer: FluencePeer; + let peer_; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + peer_ = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + peer_ = args[0]; + config = args[1]; + } -export async function retrieve_records(client: FluenceClient, peer: string, config?: {ttl?: number}): Promise { let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -106,20 +196,21 @@ export async function retrieve_records(client: FluenceClient, peer: string, conf (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'peer', () => { + return peer_; }); - h.on('getDataSrv', 'peer', () => {return peer;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -127,13 +218,12 @@ export async function retrieve_records(client: FluenceClient, peer: string, conf .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for retrieve_records'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/streamResults.ts b/src/compiled/examples/streamResults.ts index baa287b..6bbe60c 100644 --- a/src/compiled/examples/streamResults.ts +++ b/src/compiled/examples/streamResults.ts @@ -1,36 +1,101 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//DTGetter -//defaultId = "get-dt" +export interface DTGetterDef { + get_dt: (s: string, callParams: CallParams<'s'>) => { field: string }; +} -//get_dt: (s: string) => {field:string} -//END DTGetter +export function registerDTGetter(service: DTGetterDef): void; +export function registerDTGetter(serviceId: string, service: DTGetterDef): void; +export function registerDTGetter(peer: FluencePeer, service: DTGetterDef): void; +export function registerDTGetter(peer: FluencePeer, serviceId: string, service: DTGetterDef): void; +export function registerDTGetter(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'get-dt'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'get_dt') { + const callParams = { + ...req.particleContext, + tetraplets: { + s: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.get_dt(req.args[0], callParams); + } + + next(); + }); +} // Functions -export async function use_name1(client: FluenceClient, name: string, config?: {ttl?: number}): Promise { +export function use_name1(name: string, config?: { ttl?: number }): Promise; +export function use_name1(peer: FluencePeer, name: string, config?: { ttl?: number }): Promise; +export function use_name1(...args) { + let peer: FluencePeer; + let name; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + name = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + name = args[0]; + config = args[1]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -47,20 +112,21 @@ export async function use_name1(client: FluenceClient, name: string, config?: {t (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'name', () => { + return name; }); - h.on('getDataSrv', 'name', () => {return name;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -68,26 +134,39 @@ export async function use_name1(client: FluenceClient, name: string, config?: {t .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for use_name1'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - +export function use_name2(name: string, config?: { ttl?: number }): Promise; +export function use_name2(peer: FluencePeer, name: string, config?: { ttl?: number }): Promise; +export function use_name2(...args) { + let peer: FluencePeer; + let name; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + name = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + name = args[0]; + config = args[1]; + } -export async function use_name2(client: FluenceClient, name: string, config?: {ttl?: number}): Promise { let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -119,20 +198,21 @@ export async function use_name2(client: FluenceClient, name: string, config?: {t (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'name', () => { + return name; }); - h.on('getDataSrv', 'name', () => {return name;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -140,13 +220,12 @@ export async function use_name2(client: FluenceClient, name: string, config?: {t .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for use_name2'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/subImportUsage.ts b/src/compiled/examples/subImportUsage.ts index 8bb6d94..e774ec0 100644 --- a/src/compiled/examples/subImportUsage.ts +++ b/src/compiled/examples/subImportUsage.ts @@ -1,36 +1,110 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//ConcatSubs -//defaultId = "concat_subs" +export interface ConcatSubsDef { + get_some: ( + s: string, + sr: { one: string; two: number }, + callParams: CallParams<'s' | 'sr'>, + ) => { one: string; two: number }; +} -//get_some: (s: string, sr: {one:string;two:number}) => {one:string;two:number} -//END ConcatSubs +export function registerConcatSubs(service: ConcatSubsDef): void; +export function registerConcatSubs(serviceId: string, service: ConcatSubsDef): void; +export function registerConcatSubs(peer: FluencePeer, service: ConcatSubsDef): void; +export function registerConcatSubs(peer: FluencePeer, serviceId: string, service: ConcatSubsDef): void; +export function registerConcatSubs(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'concat_subs'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'get_some') { + const callParams = { + ...req.particleContext, + tetraplets: { + s: req.tetraplets[0], + sr: req.tetraplets[1], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.get_some(req.args[0], req.args[1], callParams); + } + + next(); + }); +} // Functions -export async function subImportUsage(client: FluenceClient, s: string, config?: {ttl?: number}): Promise<{one:string;two:number}> { +export function subImportUsage(s: string, config?: { ttl?: number }): Promise<{ one: string; two: number }>; +export function subImportUsage( + peer: FluencePeer, + s: string, + config?: { ttl?: number }, +): Promise<{ one: string; two: number }>; +export function subImportUsage(...args) { + let peer: FluencePeer; + let s; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + s = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + s = args[0]; + config = args[1]; + } + let request: RequestFlow; - const promise = new Promise<{one:string;two:number}>((resolve, reject) => { + const promise = new Promise<{ one: string; two: number }>((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -53,20 +127,21 @@ export async function subImportUsage(client: FluenceClient, s: string, config?: (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 's', () => { + return s; }); - h.on('getDataSrv', 's', () => {return s;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -74,13 +149,12 @@ export async function subImportUsage(client: FluenceClient, s: string, config?: .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for subImportUsage'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/topology.ts b/src/compiled/examples/topology.ts index bd62fd5..54a4a59 100644 --- a/src/compiled/examples/topology.ts +++ b/src/compiled/examples/topology.ts @@ -1,45 +1,179 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//Testo -//defaultId = "testo" +export interface TestoDef { + getString: (arg0: string, callParams: CallParams<'arg0'>) => string; +} -//getString: (arg0: string) => string -//END Testo +export function registerTesto(service: TestoDef): void; +export function registerTesto(serviceId: string, service: TestoDef): void; +export function registerTesto(peer: FluencePeer, service: TestoDef): void; +export function registerTesto(peer: FluencePeer, serviceId: string, service: TestoDef): void; +export function registerTesto(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'testo'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } -//LocalPrint -//defaultId = "lp" + if (req.fnName === 'getString') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.getString(req.args[0], callParams); + } -//print: (arg0: string) => void -//END LocalPrint + next(); + }); +} +export interface LocalPrintDef { + print: (arg0: string, callParams: CallParams<'arg0'>) => void; +} +export function registerLocalPrint(service: LocalPrintDef): void; +export function registerLocalPrint(serviceId: string, service: LocalPrintDef): void; +export function registerLocalPrint(peer: FluencePeer, service: LocalPrintDef): void; +export function registerLocalPrint(peer: FluencePeer, serviceId: string, service: LocalPrintDef): void; +export function registerLocalPrint(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'lp'; + } + + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'print') { + const callParams = { + ...req.particleContext, + tetraplets: { + arg0: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + service.print(req.args[0], callParams); + resp.result = {}; + } + + next(); + }); +} // Functions -export async function topologyTest(client: FluenceClient, me: string, myRelay: string, friend: string, friendRelay: string, config?: {ttl?: number}): Promise { +export function topologyTest( + me: string, + myRelay: string, + friend: string, + friendRelay: string, + config?: { ttl?: number }, +): Promise; +export function topologyTest( + peer: FluencePeer, + me: string, + myRelay: string, + friend: string, + friendRelay: string, + config?: { ttl?: number }, +): Promise; +export function topologyTest(...args) { + let peer: FluencePeer; + let me; + let myRelay; + let friend; + let friendRelay; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + me = args[1]; + myRelay = args[2]; + friend = args[3]; + friendRelay = args[4]; + config = args[5]; + } else { + peer = FluencePeer.default; + me = args[0]; + myRelay = args[1]; + friend = args[2]; + friendRelay = args[3]; + config = args[4]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -95,23 +229,30 @@ export async function topologyTest(client: FluenceClient, me: string, myRelay: s (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'me', () => { + return me; + }); + h.on('getDataSrv', 'myRelay', () => { + return myRelay; + }); + h.on('getDataSrv', 'friend', () => { + return friend; + }); + h.on('getDataSrv', 'friendRelay', () => { + return friendRelay; }); - h.on('getDataSrv', 'me', () => {return me;}); -h.on('getDataSrv', 'myRelay', () => {return myRelay;}); -h.on('getDataSrv', 'friend', () => {return friend;}); -h.on('getDataSrv', 'friendRelay', () => {return friendRelay;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -119,13 +260,12 @@ h.on('getDataSrv', 'friendRelay', () => {return friendRelay;}); .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for topologyTest'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/tryCatch.ts b/src/compiled/examples/tryCatch.ts index 2d066eb..6e5d09c 100644 --- a/src/compiled/examples/tryCatch.ts +++ b/src/compiled/examples/tryCatch.ts @@ -1,45 +1,154 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//Unexisted -//defaultId = "unex" +export interface UnexistedDef { + getStr: (callParams: CallParams) => string; +} -//getStr: () => string -//END Unexisted +export function registerUnexisted(service: UnexistedDef): void; +export function registerUnexisted(serviceId: string, service: UnexistedDef): void; +export function registerUnexisted(peer: FluencePeer, service: UnexistedDef): void; +export function registerUnexisted(peer: FluencePeer, serviceId: string, service: UnexistedDef): void; +export function registerUnexisted(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'unex'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } -//OpA -//defaultId = "op" + if (req.fnName === 'getStr') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + resp.result = service.getStr(callParams); + } -//identity: (s: string) => string -//END OpA + next(); + }); +} +export interface OpADef { + identity: (s: string, callParams: CallParams<'s'>) => string; +} +export function registerOpA(service: OpADef): void; +export function registerOpA(serviceId: string, service: OpADef): void; +export function registerOpA(peer: FluencePeer, service: OpADef): void; +export function registerOpA(peer: FluencePeer, serviceId: string, service: OpADef): void; +export function registerOpA(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'op'; + } + + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'identity') { + const callParams = { + ...req.particleContext, + tetraplets: { + s: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.identity(req.args[0], callParams); + } + + next(); + }); +} // Functions -export async function tryCatchTest(client: FluenceClient, node_id: string, config?: {ttl?: number}): Promise { +export function tryCatchTest(node_id: string, config?: { ttl?: number }): Promise; +export function tryCatchTest(peer: FluencePeer, node_id: string, config?: { ttl?: number }): Promise; +export function tryCatchTest(...args) { + let peer: FluencePeer; + let node_id; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + node_id = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + node_id = args[0]; + config = args[1]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -77,20 +186,21 @@ export async function tryCatchTest(client: FluenceClient, node_id: string, confi (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'node_id', () => { + return node_id; }); - h.on('getDataSrv', 'node_id', () => {return node_id;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -98,13 +208,12 @@ export async function tryCatchTest(client: FluenceClient, node_id: string, confi .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for tryCatchTest'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/tryOtherwise.ts b/src/compiled/examples/tryOtherwise.ts index dc4c4c0..9e1373a 100644 --- a/src/compiled/examples/tryOtherwise.ts +++ b/src/compiled/examples/tryOtherwise.ts @@ -1,45 +1,154 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//Unexisted -//defaultId = "unex" +export interface UnexistedDef { + getStr: (callParams: CallParams) => string; +} -//getStr: () => string -//END Unexisted +export function registerUnexisted(service: UnexistedDef): void; +export function registerUnexisted(serviceId: string, service: UnexistedDef): void; +export function registerUnexisted(peer: FluencePeer, service: UnexistedDef): void; +export function registerUnexisted(peer: FluencePeer, serviceId: string, service: UnexistedDef): void; +export function registerUnexisted(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'unex'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } -//OpE -//defaultId = "op" + if (req.fnName === 'getStr') { + const callParams = { + ...req.particleContext, + tetraplets: {}, + }; + resp.retCode = ResultCodes.success; + resp.result = service.getStr(callParams); + } -//identity: (s: string) => string -//END OpE + next(); + }); +} +export interface OpEDef { + identity: (s: string, callParams: CallParams<'s'>) => string; +} +export function registerOpE(service: OpEDef): void; +export function registerOpE(serviceId: string, service: OpEDef): void; +export function registerOpE(peer: FluencePeer, service: OpEDef): void; +export function registerOpE(peer: FluencePeer, serviceId: string, service: OpEDef): void; +export function registerOpE(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'op'; + } + + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'identity') { + const callParams = { + ...req.particleContext, + tetraplets: { + s: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.identity(req.args[0], callParams); + } + + next(); + }); +} // Functions -export async function tryOtherwiseTest(client: FluenceClient, node_id: string, config?: {ttl?: number}): Promise { +export function tryOtherwiseTest(node_id: string, config?: { ttl?: number }): Promise; +export function tryOtherwiseTest(peer: FluencePeer, node_id: string, config?: { ttl?: number }): Promise; +export function tryOtherwiseTest(...args) { + let peer: FluencePeer; + let node_id; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + node_id = args[1]; + config = args[2]; + } else { + peer = FluencePeer.default; + node_id = args[0]; + config = args[1]; + } + let request: RequestFlow; const promise = new Promise((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -71,20 +180,21 @@ export async function tryOtherwiseTest(client: FluenceClient, node_id: string, c (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'node_id', () => { + return node_id; }); - h.on('getDataSrv', 'node_id', () => {return node_id;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -92,13 +202,12 @@ export async function tryOtherwiseTest(client: FluenceClient, node_id: string, c .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for tryOtherwiseTest'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/compiled/examples/via.ts b/src/compiled/examples/via.ts index 164751e..8b28887 100644 --- a/src/compiled/examples/via.ts +++ b/src/compiled/examples/via.ts @@ -1,36 +1,113 @@ /** * * This file is auto-generated. Do not edit manually: changes may be erased. - * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. + * Generated by Aqua compiler: https://github.com/fluencelabs/aqua/. * If you find any bugs, please write an issue on GitHub: https://github.com/fluencelabs/aqua/issues * Aqua version: 0.3.0-SNAPSHOT * */ -import { FluenceClient, PeerIdB58 } from '@fluencelabs/fluence'; -import { RequestFlowBuilder } from '@fluencelabs/fluence/dist/api.unstable'; -import { RequestFlow } from '@fluencelabs/fluence/dist/internal/RequestFlow'; - +import { FluencePeer } from '@fluencelabs/fluence'; +import { + ResultCodes, + RequestFlow, + RequestFlowBuilder, + CallParams, +} from '@fluencelabs/fluence/dist/internal/compilerSupport/v1'; // Services -//CustomId -//defaultId = "cid" +export interface CustomIdDef { + id: (s: string, callParams: CallParams<'s'>) => string; +} -//id: (s: string) => string -//END CustomId +export function registerCustomId(service: CustomIdDef): void; +export function registerCustomId(serviceId: string, service: CustomIdDef): void; +export function registerCustomId(peer: FluencePeer, service: CustomIdDef): void; +export function registerCustomId(peer: FluencePeer, serviceId: string, service: CustomIdDef): void; +export function registerCustomId(...args) { + let peer: FluencePeer; + let serviceId; + let service; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + } else { + peer = FluencePeer.default; + } + if (typeof args[0] === 'string') { + serviceId = args[0]; + } else if (typeof args[1] === 'string') { + serviceId = args[1]; + } else { + serviceId = 'cid'; + } + if (!(args[0] instanceof FluencePeer) && typeof args[0] === 'object') { + service = args[0]; + } else if (typeof args[1] === 'object') { + service = args[1]; + } else { + service = args[2]; + } + + peer.internals.callServiceHandler.use((req, resp, next) => { + if (req.serviceId !== serviceId) { + next(); + return; + } + + if (req.fnName === 'id') { + const callParams = { + ...req.particleContext, + tetraplets: { + s: req.tetraplets[0], + }, + }; + resp.retCode = ResultCodes.success; + resp.result = service.id(req.args[0], callParams); + } + + next(); + }); +} // Functions -export async function viaArr(client: FluenceClient, node_id: string, viaAr: string[], config?: {ttl?: number}): Promise<{external_addresses:string[]}> { +export function viaArr( + node_id: string, + viaAr: string[], + config?: { ttl?: number }, +): Promise<{ external_addresses: string[] }>; +export function viaArr( + peer: FluencePeer, + node_id: string, + viaAr: string[], + config?: { ttl?: number }, +): Promise<{ external_addresses: string[] }>; +export function viaArr(...args) { + let peer: FluencePeer; + let node_id; + let viaAr; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + node_id = args[1]; + viaAr = args[2]; + config = args[3]; + } else { + peer = FluencePeer.default; + node_id = args[0]; + viaAr = args[1]; + config = args[2]; + } + let request: RequestFlow; - const promise = new Promise<{external_addresses:string[]}>((resolve, reject) => { + const promise = new Promise<{ external_addresses: string[] }>((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -89,21 +166,24 @@ export async function viaArr(client: FluenceClient, node_id: string, viaAr: stri (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'node_id', () => { + return node_id; + }); + h.on('getDataSrv', 'viaAr', () => { + return viaAr; }); - h.on('getDataSrv', 'node_id', () => {return node_id;}); -h.on('getDataSrv', 'viaAr', () => {return viaAr;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -111,26 +191,51 @@ h.on('getDataSrv', 'viaAr', () => {return viaAr;}); .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for viaArr'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - +export function viaStream( + node_id: string, + viaStr: string[], + config?: { ttl?: number }, +): Promise<{ external_addresses: string[] }>; +export function viaStream( + peer: FluencePeer, + node_id: string, + viaStr: string[], + config?: { ttl?: number }, +): Promise<{ external_addresses: string[] }>; +export function viaStream(...args) { + let peer: FluencePeer; + let node_id; + let viaStr; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + node_id = args[1]; + viaStr = args[2]; + config = args[3]; + } else { + peer = FluencePeer.default; + node_id = args[0]; + viaStr = args[1]; + config = args[2]; + } -export async function viaStream(client: FluenceClient, node_id: string, viaStr: string[], config?: {ttl?: number}): Promise<{external_addresses:string[]}> { let request: RequestFlow; - const promise = new Promise<{external_addresses:string[]}>((resolve, reject) => { + const promise = new Promise<{ external_addresses: string[] }>((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -197,21 +302,24 @@ export async function viaStream(client: FluenceClient, node_id: string, viaStr: (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'node_id', () => { + return node_id; + }); + h.on('getDataSrv', 'viaStr', () => { + return viaStr; }); - h.on('getDataSrv', 'node_id', () => {return node_id;}); -h.on('getDataSrv', 'viaStr', () => {return viaStr;}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -219,26 +327,56 @@ h.on('getDataSrv', 'viaStr', () => {return viaStr;}); .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for viaStream'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - +export function viaOpt( + relay: string, + node_id: string, + viaOpt: string | null, + config?: { ttl?: number }, +): Promise<{ external_addresses: string[] }>; +export function viaOpt( + peer: FluencePeer, + relay: string, + node_id: string, + viaOpt: string | null, + config?: { ttl?: number }, +): Promise<{ external_addresses: string[] }>; +export function viaOpt(...args) { + let peer: FluencePeer; + let relay; + let node_id; + let viaOpt; + let config; + if (args[0] instanceof FluencePeer) { + peer = args[0]; + relay = args[1]; + node_id = args[2]; + viaOpt = args[3]; + config = args[4]; + } else { + peer = FluencePeer.default; + relay = args[0]; + node_id = args[1]; + viaOpt = args[2]; + config = args[3]; + } -export async function viaOpt(client: FluenceClient, relay: string, node_id: string, viaOpt: string | null, config?: {ttl?: number}): Promise<{external_addresses:string[]}> { let request: RequestFlow; - const promise = new Promise<{external_addresses:string[]}>((resolve, reject) => { + const promise = new Promise<{ external_addresses: string[] }>((resolve, reject) => { const r = new RequestFlowBuilder() .disableInjections() .withRawScript( ` -(xor + (xor (seq (seq (seq @@ -300,22 +438,27 @@ export async function viaOpt(client: FluenceClient, relay: string, node_id: stri (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 3]) ) - `, + `, ) .configHandler((h) => { h.on('getDataSrv', '-relay-', () => { - return client.relayPeerId!; + return peer.connectionInfo.connectedRelay; + }); + h.on('getDataSrv', 'relay', () => { + return relay; + }); + h.on('getDataSrv', 'node_id', () => { + return node_id; + }); + h.on('getDataSrv', 'viaOpt', () => { + return viaOpt === null ? [] : [viaOpt]; }); - h.on('getDataSrv', 'relay', () => {return relay;}); -h.on('getDataSrv', 'node_id', () => {return node_id;}); -h.on('getDataSrv', 'viaOpt', () => {return viaOpt === null ? [] : [viaOpt];}); h.onEvent('callbackSrv', 'response', (args) => { - const [res] = args; - resolve(res); -}); + const [res] = args; + resolve(res); + }); h.onEvent('errorHandlingSrv', 'error', (args) => { - // assuming error is the single argument const [err] = args; reject(err); }); @@ -323,13 +466,12 @@ h.on('getDataSrv', 'viaOpt', () => {return viaOpt === null ? [] : [viaOpt];}); .handleScriptError(reject) .handleTimeout(() => { reject('Request timed out for viaOpt'); - }) - if(config && config.ttl) { - r.withTTL(config.ttl) + }); + if (config && config.ttl) { + r.withTTL(config.ttl); } request = r.build(); }); - await client.initiateFlow(request!); + peer.internals.initiateFlow(request!); return promise; } - diff --git a/src/examples/assignment.ts b/src/examples/assignment.ts index 79db246..64e8942 100644 --- a/src/examples/assignment.ts +++ b/src/examples/assignment.ts @@ -1,7 +1,6 @@ -import {FluenceClient} from "@fluencelabs/fluence"; -import {passFunctionAsArg} from "../compiled/examples/callArrow"; -import {doSmth} from "../compiled/examples/assignment"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { doSmth } from '../compiled/examples/assignment'; -export async function assignmentCall(client: FluenceClient): Promise { - return await doSmth(client, {value: "abc"}, {ttl: 6000}) +export async function assignmentCall(): Promise { + return await doSmth({ value: 'abc' }, { ttl: 6000 }); } diff --git a/src/examples/callArrowCall.ts b/src/examples/callArrowCall.ts index 8afc09d..a017dac 100644 --- a/src/examples/callArrowCall.ts +++ b/src/examples/callArrowCall.ts @@ -1,12 +1,13 @@ -import {FluenceClient} from "@fluencelabs/fluence"; -import {passFunctionAsArg} from "../compiled/examples/callArrow"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { passFunctionAsArg } from '../compiled/examples/callArrow'; -export async function callArrowCall(client: FluenceClient): Promise { - return new Promise((resolve, reject) => { - passFunctionAsArg(client, client.relayPeerId!, "callArrow call", (a: string) => { - let result = "Hello, " + a + "!"; - resolve(result) - return result; +export async function callArrowCall(): Promise { + const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay; + return new Promise((resolve, reject) => { + passFunctionAsArg(relayPeerId, 'callArrow call', (a: string) => { + let result = 'Hello, ' + a + '!'; + resolve(result); + return result; + }); }); - }) } diff --git a/src/examples/coCall.ts b/src/examples/coCall.ts index 437f3ee..06326b2 100644 --- a/src/examples/coCall.ts +++ b/src/examples/coCall.ts @@ -1,15 +1,19 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {parFunc} from "../compiled/examples/par"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { parFunc } from '../compiled/examples/par'; +import { registerCoService } from '../compiled/examples/co'; -export async function coCall(client: FluenceClient): Promise { +export async function coCall(): Promise { + const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay; - registerServiceFunction(client, "coservice-id", "call", (args: any[], _) => { - return "hello" - }) + registerCoService({ + call: () => { + return 'hello'; + }, + }); return new Promise((resolve, reject) => { - parFunc(client, client.relayPeerId!, (c) => { - resolve(c.external_addresses) - }) - }) + parFunc(relayPeerId, (c) => { + resolve(c.external_addresses); + }); + }); } diff --git a/src/examples/complex.ts b/src/examples/complex.ts index c4e062b..d71efc4 100644 --- a/src/examples/complex.ts +++ b/src/examples/complex.ts @@ -1,16 +1,18 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {doStuff} from "../compiled/examples/complex"; -import {testNet} from "@fluencelabs/fluence-network-environment"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { doStuff, registerTestS } from '../compiled/examples/complex'; -export async function complexCall(client: FluenceClient) { +export async function complexCall() { + const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay; + const selfPeerId = FluencePeer.default.connectionInfo.selfPeerId; - registerServiceFunction(client, "some-id", "t", (args: any[], _) => { - return args[0] - }) + registerTestS({ + t: (arg0) => { + return arg0; + }, + multiline: (a, b, c) => { + return b; + }, + }); - registerServiceFunction(client, "some-id", "multiline", (args: any[], _) => { - return args[1] - }) - - return await doStuff(client, client.relayPeerId!, client.selfPeerId, true, true, ["1", "2"], ["3", "4"], "some str") + return await doStuff(relayPeerId, selfPeerId, true, true, ['1', '2'], ['3', '4'], 'some str'); } diff --git a/src/examples/constantsCall.ts b/src/examples/constantsCall.ts index 2945190..59f6c65 100644 --- a/src/examples/constantsCall.ts +++ b/src/examples/constantsCall.ts @@ -1,11 +1,12 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {callConstant} from "../compiled/examples/constants"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { callConstant, registerGetter } from '../compiled/examples/constants'; -export async function constantsCall(client: FluenceClient): Promise { - registerServiceFunction(client, "test", "createStr", (args: any[], _) => { - return "" + args[0] - }) +export async function constantsCall(): Promise { + registerGetter({ + createStr: (arg0) => { + return '' + arg0; + }, + }); - - return await callConstant(client); -} \ No newline at end of file + return await callConstant(); +} diff --git a/src/examples/dataAliasCall.ts b/src/examples/dataAliasCall.ts index 3768c03..414d748 100644 --- a/src/examples/dataAliasCall.ts +++ b/src/examples/dataAliasCall.ts @@ -1,13 +1,15 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {getAliasedData} from "../compiled/examples/dataAlias"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { getAliasedData, registerNodeIdGetter } from '../compiled/examples/dataAlias'; -export async function dataAliasCall(client: FluenceClient) { - registerServiceFunction(client, "somesrv", "get", (args: any[], _) => { - return { - peerId: "peer id str", - name: "name str" - } - }) +export async function dataAliasCall() { + registerNodeIdGetter({ + get: () => { + return { + peerId: 'peer id str', + name: 'name str', + }; + }, + }); - return await getAliasedData(client) + return await getAliasedData(); } diff --git a/src/examples/declareCall.ts b/src/examples/declareCall.ts index 7ad7f79..77cb302 100644 --- a/src/examples/declareCall.ts +++ b/src/examples/declareCall.ts @@ -1,18 +1,23 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {concat_foobars} from "../compiled/examples/imports_exports/imports"; +import { concat_foobars, registerStringService } from '../compiled/examples/imports_exports/imports'; +import { registerMyExportSrv } from '../compiled/examples/imports_exports/exports'; +import { registerSuperFoo } from '../compiled/examples/imports_exports/declare'; -export async function declareCall(client: FluenceClient) { - registerServiceFunction(client, "super_foo", "small_foo", (args: any[], _) => { - return "small_foo" - }) +export async function declareCall() { + registerSuperFoo({ + small_foo: () => { + return 'small_foo'; + }, + }); - registerServiceFunction(client, "string_service", "concat", (args: any[], _) => { - return args[0] + args[1] - }) - - registerServiceFunction(client, "my_export_srv", "another_str", (args: any[], _) => { - return "str_from_my_export_srv" - }) - - return await concat_foobars(client) + registerStringService({ + concat: (a, b) => { + return a + b; + }, + }); + registerMyExportSrv({ + another_str: () => { + return 'str_from_my_export_srv'; + }, + }); + return await concat_foobars(); } diff --git a/src/examples/foldCall.ts b/src/examples/foldCall.ts index 89ea73e..dbbd5bf 100644 --- a/src/examples/foldCall.ts +++ b/src/examples/foldCall.ts @@ -1,13 +1,15 @@ - import {FluenceClient} from "@fluencelabs/fluence"; - import {iterateAndPrint, iterateAndPrintParallel} from "../compiled/examples/fold"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { iterateAndPrint, iterateAndPrintParallel } from '../compiled/examples/fold'; - export async function foldCall(client: FluenceClient) { - await iterateAndPrint(client, [client.relayPeerId!]) +export async function foldCall() { + const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay; - return new Promise((resolve, reject) => { - iterateAndPrintParallel(client, [client.relayPeerId!], (c) => { - console.log("iterateAndPrintParallel. external addresses: " + c.external_addresses) - resolve(c.external_addresses) - }) - }) - } + await iterateAndPrint([relayPeerId]); + + return new Promise((resolve, reject) => { + iterateAndPrintParallel([relayPeerId], (c) => { + console.log('iterateAndPrintParallel. external addresses: ' + c.external_addresses); + resolve(c.external_addresses); + }); + }); +} diff --git a/src/examples/foldJoinCall.ts b/src/examples/foldJoinCall.ts index 5e19fe9..8ad2505 100644 --- a/src/examples/foldJoinCall.ts +++ b/src/examples/foldJoinCall.ts @@ -1,6 +1,7 @@ -import {FluenceClient} from "@fluencelabs/fluence"; -import {getTwoResults} from "../compiled/examples/foldJoin"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { getTwoResults } from '../compiled/examples/foldJoin'; -export async function foldJoinCall(client: FluenceClient): Promise { - return await getTwoResults(client, client.relayPeerId!, {ttl: 10000}) +export async function foldJoinCall(): Promise { + const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay; + return await getTwoResults(relayPeerId); } diff --git a/src/examples/funcCall.ts b/src/examples/funcCall.ts index 6f80bf4..0be6d1b 100644 --- a/src/examples/funcCall.ts +++ b/src/examples/funcCall.ts @@ -1,10 +1,11 @@ -import {testFunc} from "../compiled/examples/func"; -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; +import { testFunc, registerTestSrv } from '../compiled/examples/func'; -export async function funcCall(client: FluenceClient) { - registerServiceFunction(client, "test-service-id", "str", (args: any[], _) => { - return `some str` - }) +export async function funcCall() { + registerTestSrv({ + str: () => { + return `some str`; + }, + }); - return await testFunc(client); + return await testFunc(); } diff --git a/src/examples/helloWorldCall.ts b/src/examples/helloWorldCall.ts index a976375..8250634 100644 --- a/src/examples/helloWorldCall.ts +++ b/src/examples/helloWorldCall.ts @@ -1,11 +1,13 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {helloWorld} from "../compiled/examples/helloWorld"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { helloWorld, registerStringExtra } from '../compiled/examples/helloWorld'; -export async function helloWorldCall(client: FluenceClient) { +export async function helloWorldCall() { // helloWorld.aqua - registerServiceFunction(client, "service-id", "addNameToHello", (args: any[], _) => { - return `Hello, ${args[0]}!` - }) + registerStringExtra({ + addNameToHello: (args0) => { + return `Hello, ${args0}!`; + }, + }); - return await helloWorld(client, "NAME"); + return await helloWorld('NAME'); } diff --git a/src/examples/if.ts b/src/examples/if.ts index 5a39ee6..ad9a80c 100644 --- a/src/examples/if.ts +++ b/src/examples/if.ts @@ -1,10 +1,10 @@ -import {FluenceClient} from "@fluencelabs/fluence"; -import {ifElseCall, ifElseNumCall} from "../compiled/examples/if"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { ifElseCall, ifElseNumCall } from '../compiled/examples/if'; -export async function ifCall(client: FluenceClient) { - await ifElseCall(client, false) - await ifElseCall(client, true) +export async function ifCall() { + await ifElseCall(false); + await ifElseCall(true); - await ifElseNumCall(client, 1) - await ifElseNumCall(client, 5) + await ifElseNumCall(1); + await ifElseNumCall(5); } diff --git a/src/examples/import2Call.ts b/src/examples/import2Call.ts index 5bce995..bba5e33 100644 --- a/src/examples/import2Call.ts +++ b/src/examples/import2Call.ts @@ -1,18 +1,21 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {barfoo, wrap} from "../compiled/examples/imports_exports/import2"; +import { registerOneMore } from '../compiled/examples/imports_exports/gen/OneMore'; +import { barfoo, wrap } from '../compiled/examples/imports_exports/import2'; -export async function import2Call(client: FluenceClient) { +export async function import2Call() { + registerOneMore('hello', { + more_call: () => { + return {}; + }, + }); - registerServiceFunction(client, "hello", "more_call", (args: any[], _) => { - return {} - }) + registerOneMore('ohmygod', { + more_call: () => { + return {}; + }, + }); - registerServiceFunction(client, "ohmygod", "more_call", (args: any[], _) => { - return {} - }) + let first = await wrap(); + let second = await barfoo(); - let first = await wrap(client) - let second = await barfoo(client) - - return { first, second } + return { first, second }; } diff --git a/src/examples/multiReturnCall.ts b/src/examples/multiReturnCall.ts index f29ab38..31f0763 100644 --- a/src/examples/multiReturnCall.ts +++ b/src/examples/multiReturnCall.ts @@ -1,14 +1,18 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {multiReturnFunc} from "../compiled/examples/multiReturn"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { multiReturnFunc, registerGetStr, registerGetNum } from '../compiled/examples/multiReturn'; -export async function multiReturnCall(client: FluenceClient): Promise<[string[], number, string, number[], string | null, number]> { - registerServiceFunction(client, "multiret-test", "retStr", (args: any[], _) => { - return args[0] - }) +export async function multiReturnCall(): Promise<[string[], number, string, number[], string | null, number]> { + registerGetStr({ + retStr: (args0) => { + return args0; + }, + }); - registerServiceFunction(client, "multiret-num", "retNum", (args: any[], _) => { - return 10 - }) + registerGetNum({ + retNum: () => { + return 10; + }, + }); - return await multiReturnFunc(client, [1, 2], null) -} \ No newline at end of file + return await multiReturnFunc([1, 2], null); +} diff --git a/src/examples/nestedFuncsCall.ts b/src/examples/nestedFuncsCall.ts index 6e0b593..e460843 100644 --- a/src/examples/nestedFuncsCall.ts +++ b/src/examples/nestedFuncsCall.ts @@ -1,10 +1,12 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {d} from "../compiled/examples/nestedFuncs"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { d, registerOpH } from '../compiled/examples/nestedFuncs'; -export async function nestedFuncsCall(client: FluenceClient): Promise { - registerServiceFunction(client, "opa", "identity", (args: any[], _) => { - return args[0] - }) +export async function nestedFuncsCall(): Promise { + registerOpH({ + identity: (args0) => { + return args0; + }, + }); - return await d(client, "some-str") + return await d('some-str'); } diff --git a/src/examples/onCall.ts b/src/examples/onCall.ts index c48e769..c3b70df 100644 --- a/src/examples/onCall.ts +++ b/src/examples/onCall.ts @@ -1,6 +1,7 @@ -import {FluenceClient} from "@fluencelabs/fluence"; -import {getPeerExternalAddresses} from "../compiled/examples/on"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { getPeerExternalAddresses } from '../compiled/examples/on'; -export async function onCall(client: FluenceClient): Promise { - return await getPeerExternalAddresses(client, client.relayPeerId!) +export async function onCall(): Promise { + const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay; + return await getPeerExternalAddresses(relayPeerId); } diff --git a/src/examples/parCall.ts b/src/examples/parCall.ts index 4ffe818..34d08fc 100644 --- a/src/examples/parCall.ts +++ b/src/examples/parCall.ts @@ -1,20 +1,23 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {parFunc} from "../compiled/examples/par"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { parFunc, registerParService } from '../compiled/examples/par'; -export async function parCall(client: FluenceClient) { +export async function parCall() { + const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay; let promise = new Promise((resolve, reject) => { - registerServiceFunction(client, "parservice-id", "call", (args: any[], _) => { - console.log("hello from parservice-id") - let result = "hello" - resolve(result) - return result - }) - }) + registerParService({ + call: () => { + console.log('hello from parservice-id'); + let result = 'hello'; + resolve(result); + return result; + }, + }); + }); - await parFunc(client, client.relayPeerId!, (c) => { - console.log("parFunc. external addresses par: " + c.external_addresses) - }) + await parFunc(relayPeerId, (c) => { + console.log('parFunc. external addresses par: ' + c.external_addresses); + }); - return promise + return promise; } diff --git a/src/examples/passArgsCall.ts b/src/examples/passArgsCall.ts index caaf27c..78e8908 100644 --- a/src/examples/passArgsCall.ts +++ b/src/examples/passArgsCall.ts @@ -1,10 +1,12 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {create_client_util} from "../compiled/examples/passArgs"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { create_client_util, registerAquaDHT } from '../compiled/examples/passArgs'; -export async function passArgsCall(client: FluenceClient) { - registerServiceFunction(client, "test-dht", "put_host_value", (args: any[], _) => { - return args[0] + args[1] - }) +export async function passArgsCall() { + registerAquaDHT({ + put_host_value: (args0, args1) => { + return args0 + args1; + }, + }); - return await create_client_util(client, "sid") -} \ No newline at end of file + return await create_client_util('sid'); +} diff --git a/src/examples/pushToStreamCall.ts b/src/examples/pushToStreamCall.ts index 6379f6e..98a36c6 100644 --- a/src/examples/pushToStreamCall.ts +++ b/src/examples/pushToStreamCall.ts @@ -1,10 +1,12 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {get_results} from "../compiled/examples/pushToStream"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { get_results, registerOpA } from '../compiled/examples/pushToStream'; -export async function pushToStreamCall(client: FluenceClient) { - registerServiceFunction(client, "pop", "get_str", (args: any[], _) => { - return "get_string" - }) +export async function pushToStreamCall() { + registerOpA({ + get_str: () => { + return 'get_string'; + }, + }); - return await get_results(client) -} \ No newline at end of file + return await get_results(); +} diff --git a/src/examples/returnLiteralCall.ts b/src/examples/returnLiteralCall.ts index 0930bfb..b000d24 100644 --- a/src/examples/returnLiteralCall.ts +++ b/src/examples/returnLiteralCall.ts @@ -1,6 +1,6 @@ -import {FluenceClient} from "@fluencelabs/fluence"; -import {returnLiteral} from "../compiled/examples/returnLiteral"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { returnLiteral } from '../compiled/examples/returnLiteral'; -export async function literalCall(client: FluenceClient) { - return returnLiteral(client) -} \ No newline at end of file +export async function literalCall() { + return returnLiteral(); +} diff --git a/src/examples/streamArgsCall.ts b/src/examples/streamArgsCall.ts index ed7c1dd..53c1c2f 100644 --- a/src/examples/streamArgsCall.ts +++ b/src/examples/streamArgsCall.ts @@ -1,10 +1,12 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {retrieve_records} from "../compiled/examples/streamArgs"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { retrieve_records, registerTestService } from '../compiled/examples/streamArgs'; -export async function streamArgsCall(client: FluenceClient) { - registerServiceFunction(client, "test-service", "get_records", (args: any[], _) => { - return [args[0], args[0]] - }) +export async function streamArgsCall() { + registerTestService({ + get_records: (key) => { + return [key, key]; + }, + }); - return await retrieve_records(client, "peer_id") -} \ No newline at end of file + return await retrieve_records('peer_id'); +} diff --git a/src/examples/streamCall.ts b/src/examples/streamCall.ts index d01d69a..531d758 100644 --- a/src/examples/streamCall.ts +++ b/src/examples/streamCall.ts @@ -1,10 +1,12 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {checkStreams} from "../compiled/examples/stream"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { checkStreams, registerStringer } from '../compiled/examples/stream'; -export async function streamCall(client: FluenceClient) { - registerServiceFunction(client, "stringer-id", "returnString", (args: any[], _) => { - return args[0] + " updated" - }) +export async function streamCall() { + registerStringer({ + returnString: (args0) => { + return args0 + ' updated'; + }, + }); - return checkStreams(client, ["third", "fourth"]) -} \ No newline at end of file + return checkStreams(['third', 'fourth']); +} diff --git a/src/examples/streamResultsCall.ts b/src/examples/streamResultsCall.ts index 43d2087..a43c524 100644 --- a/src/examples/streamResultsCall.ts +++ b/src/examples/streamResultsCall.ts @@ -1,12 +1,14 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {use_name2} from "../compiled/examples/streamResults"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { use_name2, registerDTGetter } from '../compiled/examples/streamResults'; -export async function streamResultsCall(client: FluenceClient) { - registerServiceFunction(client, "get-dt", "get_dt", (args: any[], _) => { - return { - field: args[0] - } - }) +export async function streamResultsCall() { + registerDTGetter({ + get_dt: (args0) => { + return { + field: args0, + }; + }, + }); - return await use_name2(client, "new_name") -} \ No newline at end of file + return await use_name2('new_name'); +} diff --git a/src/examples/subImportUsageCall.ts b/src/examples/subImportUsageCall.ts index 0e11dfd..4f4dd93 100644 --- a/src/examples/subImportUsageCall.ts +++ b/src/examples/subImportUsageCall.ts @@ -1,21 +1,24 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {subImportUsage} from "../compiled/examples/subImportUsage"; +import { registerSubService } from '../compiled/examples/imports_exports/subImport'; +import { registerConcatSubs, subImportUsage } from '../compiled/examples/subImportUsage'; -export async function subImportCall(client: FluenceClient) { +export async function subImportCall() { // helloWorld.aqua - registerServiceFunction(client, "sub_service", "sub", (args: any[], _) => { - return { - one: args[0], - two: 42 - } - }) + registerSubService({ + sub: (s) => { + return { + one: s, + two: 42, + }; + }, + }); + registerConcatSubs({ + get_some: (s, sr) => { + return { + one: s, + two: sr.two, + }; + }, + }); - registerServiceFunction(client, "concat_subs", "get_some", (args: any[], _) => { - return { - one: args[0], - two: args[1].two - } - }) - - return await subImportUsage(client, "random_string"); + return await subImportUsage('random_string'); } diff --git a/src/examples/topologyCall.ts b/src/examples/topologyCall.ts index 2845473..5e41ec7 100644 --- a/src/examples/topologyCall.ts +++ b/src/examples/topologyCall.ts @@ -1,17 +1,27 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {topologyTest} from "../compiled/examples/topology"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { topologyTest, registerTesto, registerLocalPrint } from '../compiled/examples/topology'; -export async function topologyCall(client: FluenceClient, client2: FluenceClient): Promise { +export async function topologyCall(peer2: FluencePeer): Promise { + const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay; + const selfPeerId = FluencePeer.default.connectionInfo.selfPeerId; - registerServiceFunction(client2, "testo", "getString", (args: any[], _) => { - console.log("hello from client2: " + args[0]) - return "hello from client2: " + args[0] - }) + const relayPeerId2 = peer2.connectionInfo.connectedRelay; + const selfPeerId2 = peer2.connectionInfo.selfPeerId; - registerServiceFunction(client, "lp", "print", (args: any[], _) => { - console.log("print on client1: " + args[0]) - return {} - }) + registerTesto(peer2, { + getString: (args0) => { + console.log('hello from client2: ' + args0); + return 'hello from client2: ' + args0; + }, + }); - return await topologyTest(client, client.selfPeerId, client.relayPeerId!, client2.selfPeerId, client2.relayPeerId!, {ttl: 10000}) + registerLocalPrint({ + print: (args0) => { + console.log('print on client1: ' + args0); + }, + }); + + return await topologyTest(selfPeerId, relayPeerId, selfPeerId2, relayPeerId2, { + ttl: 10000, + }); } diff --git a/src/examples/tryCatchCall.ts b/src/examples/tryCatchCall.ts index d52ea2f..aaf8896 100644 --- a/src/examples/tryCatchCall.ts +++ b/src/examples/tryCatchCall.ts @@ -1,8 +1,7 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {topologyTest} from "../compiled/examples/topology"; -import {tryCatchTest} from "../compiled/examples/tryCatch"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { tryCatchTest } from '../compiled/examples/tryCatch'; -export async function tryCatchCall(client: FluenceClient): Promise { - - return await tryCatchTest(client, client.relayPeerId!) -} \ No newline at end of file +export async function tryCatchCall(): Promise { + const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay; + return await tryCatchTest(relayPeerId); +} diff --git a/src/examples/tryOtherwiseCall.ts b/src/examples/tryOtherwiseCall.ts index 117ed02..7ebec8b 100644 --- a/src/examples/tryOtherwiseCall.ts +++ b/src/examples/tryOtherwiseCall.ts @@ -1,7 +1,7 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {tryOtherwiseTest} from "../compiled/examples/tryOtherwise"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { tryOtherwiseTest } from '../compiled/examples/tryOtherwise'; -export async function tryOtherwiseCall(client: FluenceClient): Promise { - - return await tryOtherwiseTest(client, client.relayPeerId!) -} \ No newline at end of file +export async function tryOtherwiseCall(): Promise { + const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay; + return await tryOtherwiseTest(relayPeerId); +} diff --git a/src/examples/useOptionalCall.ts b/src/examples/useOptionalCall.ts index 200611f..0a6ff8b 100644 --- a/src/examples/useOptionalCall.ts +++ b/src/examples/useOptionalCall.ts @@ -1,27 +1,28 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {returnNone, returnOptional, useOptional} from "../compiled/examples/option"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { returnNone, returnOptional, useOptional, registerSomeS } from '../compiled/examples/option'; -export async function useOptionalCall(client: FluenceClient): Promise { - registerServiceFunction(client, "test2", "getStr", (args: any[], _) => { - return args[0] - }) - - registerServiceFunction(client, "test2", "getStr2", (args: any[], _) => { - return args[0] - }) - - return await useOptional(client, "hello") +export function registerHandlers(): void { + registerSomeS({ + getStr: (arg0) => { + return arg0; + }, + getStr1: () => { + return 'optional'; + }, + getStr2: (arg0) => { + return arg0; + }, + }); } -export async function returnOptionalCall(client: FluenceClient): Promise { - registerServiceFunction(client, "test2", "getStr1", (args: any[], _) => { - return ["optional"] - }) - - return await returnOptional(client) +export async function useOptionalCall(): Promise { + return await useOptional('hello'); } -export async function returnNull(client: FluenceClient): Promise { - - return await returnNone(client) +export async function returnOptionalCall(): Promise { + return await returnOptional(); +} + +export async function returnNull(): Promise { + return await returnNone(); } diff --git a/src/examples/viaCall.ts b/src/examples/viaCall.ts index 0a35a25..e9a2d01 100644 --- a/src/examples/viaCall.ts +++ b/src/examples/viaCall.ts @@ -1,17 +1,20 @@ -import {FluenceClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {krasnodar, stage} from "@fluencelabs/fluence-network-environment"; -import {viaArr, viaOpt, viaStream} from "../compiled/examples/via"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { krasnodar } from '@fluencelabs/fluence-network-environment'; +import { viaArr, viaOpt, viaStream, registerCustomId } from '../compiled/examples/via'; -export async function viaCall(client: FluenceClient): Promise { +export async function viaCall(): Promise { + const relayPeerId = FluencePeer.default.connectionInfo.connectedRelay; - registerServiceFunction(client, "cid", "id", (args: any[], _) => { - return args[0] - }) + registerCustomId({ + id: (args0) => { + return args0; + }, + }); - let res = await viaArr(client, stage[3].peerId, [stage[2].peerId, stage[1].peerId]) - let res2 = await viaOpt(client, client.relayPeerId!, stage[3].peerId, stage[2].peerId) - let res3 = await viaOpt(client, client.relayPeerId!, stage[3].peerId, stage[2].peerId || null) - let res4 = await viaStream(client, stage[3].peerId, [stage[2].peerId, stage[1].peerId]) + let res = await viaArr(krasnodar[3].peerId, [krasnodar[2].peerId, krasnodar[1].peerId]); + let res2 = await viaOpt(relayPeerId, krasnodar[3].peerId, krasnodar[2].peerId); + let res3 = await viaOpt(relayPeerId, krasnodar[3].peerId, krasnodar[2].peerId || null); + let res4 = await viaStream(krasnodar[3].peerId, [krasnodar[2].peerId, krasnodar[1].peerId]); - return [res.external_addresses, res2.external_addresses, res3.external_addresses, res4.external_addresses] + return [res.external_addresses, res2.external_addresses, res3.external_addresses, res4.external_addresses]; } diff --git a/src/index.ts b/src/index.ts index 1b1d92c..b6e1e5c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,30 +1,32 @@ #!/usr/bin/env node -import {createClient, registerServiceFunction} from "@fluencelabs/fluence"; -import {krasnodar} from "@fluencelabs/fluence-network-environment"; -import {helloWorld} from "./compiled/examples/helloWorld"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { krasnodar } from '@fluencelabs/fluence-network-environment'; +import { helloWorld, registerStringExtra } from './compiled/examples/helloWorld'; const main = async () => { // each compiled aqua function require a connected client - const client = await createClient(krasnodar[0]); + await FluencePeer.default.init({ connectTo: krasnodar[0] }); // example to how register a local service // it could be used in aqua code as follows // service StringExtra("service-id"): // addNameToHello: string -> string // see more in helloWorld.aqua - registerServiceFunction(client, "service-id", "addNameToHello", (args: any[], _) => { - return `Hello, ${args[0]}!` - }) + registerStringExtra({ + addNameToHello: (arg0) => { + return `Hello, ${arg0}!`; + }, + }); // call an aqua function thet presented in ../aqua/helloWorld.aqua - const result = await helloWorld(client, "NAME"); - console.log(result) + const result = await helloWorld('NAME'); + console.log(result); - process.exit(0) + process.exit(0); }; main().catch((err) => { - console.log(err) - process.exit(1) -}) + console.log(err); + process.exit(1); +}); diff --git a/src/pubsub.ts b/src/pubsub.ts index 8dc556e..d14ef0c 100644 --- a/src/pubsub.ts +++ b/src/pubsub.ts @@ -1,24 +1,25 @@ -import {findSubscribers, getNeighbours, initTopicAndSubscribe} from "@fluencelabs/aqua-dht-ts"; -import {createClient} from "@fluencelabs/fluence"; -import {krasnodar} from "@fluencelabs/fluence-network-environment"; +import { FluencePeer } from '@fluencelabs/fluence'; +import { krasnodar } from '@fluencelabs/fluence-network-environment'; +import { getNeighbours, initTopicAndSubscribe, findSubscribers } from './compiled/dht/dht-example'; const main = async () => { - const client = await createClient(krasnodar[0]); - const peer = krasnodar[0].peerId - const nodes = await getNeighbours(client, peer, "random") - console.log(nodes) + await FluencePeer.default.init({ connectTo: krasnodar[0] }); + const relayPeerId = krasnodar[0].peerId; - const topic = "random" - await initTopicAndSubscribe(client, peer, topic, "random value", null, null) + const nodes = await getNeighbours(relayPeerId, 'random'); + console.log(nodes); - const result = await findSubscribers(client, peer, topic) + const topic = 'random'; + await initTopicAndSubscribe(relayPeerId, topic, 'random value', null, null); - console.log(result) + const result = await findSubscribers(relayPeerId, topic); - process.exit(0) -} + console.log(result); + + process.exit(0); +}; main().catch((err) => { - console.log(err) - process.exit(1) -}) \ No newline at end of file + console.log(err); + process.exit(1); +}); diff --git a/src/run-examples.ts b/src/run-examples.ts index 0424997..391c48c 100644 --- a/src/run-examples.ts +++ b/src/run-examples.ts @@ -1,239 +1,233 @@ #!/usr/bin/env node -import {createClient, registerServiceFunction, setLogLevel} from "@fluencelabs/fluence"; -import {krasnodar, testNet, stage} from "@fluencelabs/fluence-network-environment"; -import {callArrowCall} from "./examples/callArrowCall"; -import {dataAliasCall} from "./examples/dataAliasCall"; -import {onCall} from "./examples/onCall"; -import {funcCall} from "./examples/funcCall"; -import {helloWorldCall} from "./examples/helloWorldCall"; -import {foldCall} from "./examples/foldCall"; -import {ifCall} from "./examples/if"; -import {parCall} from "./examples/parCall"; -import {complexCall} from "./examples/complex"; -import {constantsCall} from "./examples/constantsCall"; -import {streamCall} from "./examples/streamCall"; -import {topologyCall} from "./examples/topologyCall"; -import {foldJoinCall} from "./examples/foldJoinCall"; -import {returnNull, returnOptionalCall, useOptionalCall} from "./examples/useOptionalCall"; -import {viaCall} from "./examples/viaCall"; -import {nestedFuncsCall} from "./examples/nestedFuncsCall"; -import {assignmentCall} from "./examples/assignment"; -import {tryCatchCall} from "./examples/tryCatchCall"; -import {tryOtherwiseCall} from "./examples/tryOtherwiseCall"; -import {coCall} from "./examples/coCall"; -import {passArgsCall} from "./examples/passArgsCall"; -import {streamArgsCall} from "./examples/streamArgsCall"; -import {streamResultsCall} from "./examples/streamResultsCall"; -import {pushToStreamCall} from "./examples/pushToStreamCall"; -import {literalCall} from "./examples/returnLiteralCall"; -import {multiReturnCall} from "./examples/multiReturnCall"; -import {declareCall} from "./examples/declareCall"; -import {subImportCall} from "./examples/subImportUsageCall"; -import {import2Call} from "./examples/import2Call"; -let deepEqual = require('deep-equal') +import { FluencePeer } from '@fluencelabs/fluence'; +import { krasnodar, testNet } from '@fluencelabs/fluence-network-environment'; +import { registerPrintln } from './compiled/examples/println'; +import { callArrowCall } from './examples/callArrowCall'; +import { dataAliasCall } from './examples/dataAliasCall'; +import { onCall } from './examples/onCall'; +import { funcCall } from './examples/funcCall'; +import { helloWorldCall } from './examples/helloWorldCall'; +import { foldCall } from './examples/foldCall'; +import { ifCall } from './examples/if'; +import { parCall } from './examples/parCall'; +import { complexCall } from './examples/complex'; +import { constantsCall } from './examples/constantsCall'; +import { streamCall } from './examples/streamCall'; +import { topologyCall } from './examples/topologyCall'; +import { foldJoinCall } from './examples/foldJoinCall'; +import { registerHandlers, returnNull, returnOptionalCall, useOptionalCall } from './examples/useOptionalCall'; +import { viaCall } from './examples/viaCall'; +import { nestedFuncsCall } from './examples/nestedFuncsCall'; +import { assignmentCall } from './examples/assignment'; +import { tryCatchCall } from './examples/tryCatchCall'; +import { tryOtherwiseCall } from './examples/tryOtherwiseCall'; +import { coCall } from './examples/coCall'; +import { passArgsCall } from './examples/passArgsCall'; +import { streamArgsCall } from './examples/streamArgsCall'; +import { streamResultsCall } from './examples/streamResultsCall'; +import { pushToStreamCall } from './examples/pushToStreamCall'; +import { literalCall } from './examples/returnLiteralCall'; +import { multiReturnCall } from './examples/multiReturnCall'; +import { declareCall } from './examples/declareCall'; +let deepEqual = require('deep-equal'); function checkCall(name: string, actual: any, expected: any, callBackOnError: () => void) { - if (!deepEqual(expected, actual)) { - console.error(`${name} call has the wrong result`) - console.error("actual: ") - console.dir(actual) - console.error("expected: ") - console.dir(expected) - callBackOnError() - } + console.log('-- checking ' + name + ' --'); + if (!deepEqual(expected, actual)) { + console.error(`${name} call has the wrong result`); + console.error('actual: '); + console.dir(actual); + console.error('expected: '); + console.dir(expected); + callBackOnError(); + } } function checkCallBy(name: string, actual: any, by: (res: any) => boolean, callBackOnError: () => void) { - if (!by(actual)) { - console.error(`${name} call has the wrong result`) - console.error("actual: " + actual) - callBackOnError() - } + console.log('-- checking ' + name + ' --'); + if (!by(actual)) { + console.error(`${name} call has the wrong result`); + console.error('actual: ' + actual); + callBackOnError(); + } } const main = async () => { - // setLogLevel("trace") - const client = await createClient(stage[0]); - const client2 = await createClient(stage[1]); + // setLogLevel("trace") - // this could be called from `println.aqua` - registerServiceFunction(client, "println-service-id", "print", (args: any[], _) => { - console.log("println: " + args[0]) - return {} - }) + await FluencePeer.default.init({ connectTo: krasnodar[0] }); + const selfPeerId = FluencePeer.default.connectionInfo.selfPeerId; - // these is only list of calls. Take a look into functions to see what's going on + const peer2 = new FluencePeer(); + await peer2.init({ connectTo: krasnodar[1] }); - // these calls return void, so they could be executed at any time, - // because promise waits only a fact that particle was sent + // this could be called from `println.aqua` + registerPrintln({ + print: (arg0) => { + console.log('println: ' + arg0); + }, + }); - // callArrow.aqua - let callArrowResult = await callArrowCall(client) + // these is only list of calls. Take a look into functions to see what's going on - // fold.aqua - let foldCallResult = await foldCall(client) + // these calls return void, so they could be executed at any time, + // because promise waits only a fact that particle was sent - //if.aqua - await ifCall(client) + let success = true; + let cb: () => void = () => { + success = false; + }; - // par.aqua - let parCallResult = await parCall(client) + // callArrow.aqua + let callArrowResult = await callArrowCall(); + checkCall('callArrow', callArrowResult, 'Hello, callArrow call!', cb); - // these calls waiting for a result, so it will be called sequentially - // helloWorld.aqua - let helloWorldResult = await helloWorldCall(client) + // fold.aqua + let foldCallResult = await foldCall(); + checkCall('foldCall', foldCallResult, ['/ip4/164.90.171.139/tcp/7770', '/ip4/164.90.171.139/tcp/9990/ws'], cb); - // func.aqua - let funcCallResult = await funcCall(client) + //if.aqua + await ifCall(); - // on.aqua - let onCallResult = await onCall(client) + // par.aqua + let parCallResult = await parCall(); + checkCall('parArrow', parCallResult, 'hello', cb); - // dataAlias.aqua - let dataAliasResult = await dataAliasCall(client) + // these calls waiting for a result, so it will be called sequentially + // helloWorld.aqua + let helloWorldResult = await helloWorldCall(); + checkCall('helloWorldCall', helloWorldResult, 'Hello, NAME!', cb); - // complex.aqua - let complexCallResult = await complexCall(client) + // func.aqua + let funcCallResult = await funcCall(); + checkCall('funcCall', funcCallResult, 'some str', cb); - // constants.aqua - let constantCallResult = await constantsCall(client) + // on.aqua + let onCallResult = await onCall(); + checkCall('onCall', onCallResult, ['/ip4/164.90.171.139/tcp/7770', '/ip4/164.90.171.139/tcp/9990/ws'], cb); - // stream.aqua - let streamResult = await streamCall(client) + // dataAlias.aqua + let dataAliasResult = await dataAliasCall(); + checkCall('dataAliasCall', dataAliasResult, 'peer id str', cb); - // topology.aqua - let topologyResult = await topologyCall(client, client2) + // complex.aqua + let complexCallResult = await complexCall(); + checkCall( + 'complexCall', + complexCallResult, + ['some str', '3', '1', '4', '1', '1', '3', '2', '4', '2', '2', selfPeerId], + cb, + ); - // foldJoin.aqua - let foldJoinResult = await foldJoinCall(client) + // constants.aqua + let constantCallResult = await constantsCall(); + checkCall('constantCall', constantCallResult, ['1', 'ab'], cb); - // option.aqua - let optionResult = await useOptionalCall(client) - let optionalResult = await returnOptionalCall(client) - let noneResult = await returnNull(client) + // stream.aqua + let streamResult = await streamCall(); + checkCall('streamCall', streamResult, ['first updated', 'second updated', 'third updated', 'fourth updated'], cb); - // via.aqua - let viaResult = await viaCall(client) + // topology.aqua + let topologyResult = await topologyCall(peer2); + checkCall('topologyCall', topologyResult, 'finish', cb); - // nestedFuncs.aqua - let nestedFuncsResult = await nestedFuncsCall(client) + // foldJoin.aqua + let foldJoinResult = await foldJoinCall(); + checkCallBy('foldJoinCall', foldJoinResult, (res) => res.length == 3, cb); - // assignment.aqua - let assignmentResult = await assignmentCall(client) + // option.aqua + registerHandlers(); + let optionResult = await useOptionalCall(); + let optionalResult = await returnOptionalCall(); + let noneResult = await returnNull(); + checkCall('useOptional', optionResult, 'hello', cb); + checkCall('returnOptional', optionalResult, 'optional', cb); + checkCall('returnNone', noneResult, null, cb); - // tryOtherwise.aqua - let tryOtherwiseResult = await tryOtherwiseCall(client) + // via.aqua + let viaResult = await viaCall(); + checkCallBy('via', viaResult, (res) => res.every((val, i, arr) => deepEqual(val, arr[0])), cb); - // tryCatch.aqua - let tryCatchResult = await tryCatchCall(client) + // nestedFuncs.aqua + let nestedFuncsResult = await nestedFuncsCall(); + checkCall('nestedFuncsCall', nestedFuncsResult, 'some-str', cb); - // coCall.aqua - let coCallResult = await coCall(client) + // assignment.aqua + let assignmentResult = await assignmentCall(); + checkCall('assignmentCall', assignmentResult, ['abc', 'hello'], cb); - // passArgsCall.aqua - let passArgsResult = await passArgsCall(client) + // tryOtherwise.aqua + let tryOtherwiseResult = await tryOtherwiseCall(); + checkCall('tryOtherwiseCall', tryOtherwiseResult, 'error', cb); - // streamArgs.aqua - let streamArgsResult = await streamArgsCall(client) + // tryCatch.aqua + let tryCatchResult = await tryCatchCall(); + checkCallBy( + 'tryCatchCall', + tryCatchResult, + (res) => { + return ( + (res[0] as string).includes("Error: Service with id 'unex' not found") && + res[1] === '/ip4/164.90.171.139/tcp/7770' + ); + }, + cb, + ); - // streamResults.aqua - let streamResultsResult = await streamResultsCall(client) + // coCall.aqua + let coCallResult = await coCall(); + checkCall('coCall', coCallResult, ['/ip4/164.90.171.139/tcp/7770', '/ip4/164.90.171.139/tcp/9990/ws'], cb); - // pushToStream.aqua - let pushToStreamResult = await pushToStreamCall(client) + // passArgsCall.aqua + let passArgsResult = await passArgsCall(); + checkCall('passArgsCall', passArgsResult, 'client-utilsid', cb); - // literalCall.aqua - let literalCallResult = await literalCall(client) + // streamArgs.aqua + let streamArgsResult = await streamArgsCall(); + checkCall('streamArgsCall', streamArgsResult, [['peer_id', 'peer_id']], cb); - // multiReturn.aqua - let multiReturnResult = await multiReturnCall(client) + // streamResults.aqua + let streamResultsResult = await streamResultsCall(); + checkCall('streamResultsCall', streamResultsResult, ['new_name', 'new_name', 'new_name'], cb); - // declare.aqua - let declareResult = await declareCall(client) + // pushToStream.aqua + let pushToStreamResult = await pushToStreamCall(); + checkCall('pushToStreamCall', pushToStreamResult, ['hello', 'get_string'], cb); - // subImport.aqua and subImportUsage.aqua - let subImportResult = await subImportCall(client) + // literalCall.aqua + let literalCallResult = await literalCall(); + checkCall('literalCall', literalCallResult, 'some literal', cb); - // import2.aqua, export2.aqua, OneMore.aqua - let import2Result = await import2Call(client) + // multiReturn.aqua + let multiReturnResult = await multiReturnCall(); + checkCall( + 'multiReturnResult', + multiReturnResult, + [['some-str', 'random-str', 'some-str'], 5, 'some-str', [1, 2], null, 10], + cb, + ); - await client.disconnect(); + // declare.aqua + let declareResult = await declareCall(); + checkCall( + 'declareResult', + declareResult, + 'small_foodeclare all barsmall_fooexport_constdeclare_constdeclare_const2', + cb, + ); - let success = true; - let cb: () => void = () => { - success = false; - } - - checkCall("callArrow", callArrowResult, "Hello, callArrow call!", cb) - - checkCall("foldCall", foldCallResult, ['/ip4/134.209.186.43/tcp/7001', '/ip4/134.209.186.43/tcp/9001/ws'], cb) - - checkCall("onCall", onCallResult, ['/ip4/134.209.186.43/tcp/7001', '/ip4/134.209.186.43/tcp/9001/ws'], cb) - - checkCall("parArrow", parCallResult, "hello", cb) - - checkCall("helloWorldCall", helloWorldResult, "Hello, NAME!", cb) - - checkCall("funcCall", funcCallResult, "some str", cb) - - checkCall("dataAliasCall", dataAliasResult, "peer id str", cb) - - checkCall("complexCall", complexCallResult, ["some str", "3", "1", "4", "1", "1", "3", "2", "4", "2", "2", client.selfPeerId], cb) - - checkCall("constantCall", constantCallResult, ['1', 'ab'], cb) - - checkCall("streamCall", streamResult, ["first updated", "second updated", "third updated", "fourth updated"], cb) - - checkCall("topologyCall", topologyResult, "finish", cb) - - checkCallBy("foldJoinCall", foldJoinResult, (res) => res.length == 3, cb) - - checkCall("useOptional", optionResult, "hello", cb) - checkCall("returnOptional", optionalResult, "optional", cb) - checkCall("returnNone", noneResult, null, cb) - - checkCallBy("via", viaResult, (res) => res.every( (val, i, arr) => deepEqual(val, arr[0]) ), cb) - - checkCall("nestedFuncsCall", nestedFuncsResult, "some-str", cb) - - checkCall("assignmentCall", assignmentResult, ["abc", "hello"], cb) - - checkCall("tryOtherwiseCall", tryOtherwiseResult, "error", cb) - - checkCall("coCall", coCallResult, [ '/ip4/134.209.186.43/tcp/7001', '/ip4/134.209.186.43/tcp/9001/ws' ], cb) - - checkCall("passArgsCall", passArgsResult, "client-utilsid", cb) - - checkCall("streamArgsCall", streamArgsResult, [["peer_id", "peer_id"]], cb) - - checkCall("streamResultsCall", streamResultsResult, ["new_name", "new_name", "new_name"], cb) - - checkCall("pushToStreamCall", pushToStreamResult, ["hello", "get_string"], cb) - - checkCall("literalCall", literalCallResult, "some literal", cb) - - checkCall("multiReturnResult", multiReturnResult, [ [ 'some-str', 'random-str', 'some-str' ], 5, 'some-str', [ 1, 2 ], null, 10], cb) - - checkCall("declareResult", declareResult, 'small_foodeclare all barsmall_fooexport_constdeclare_constdeclare_const2', cb) - - checkCall("subImportResult", subImportResult, { one: "random_string", two: 42 }, cb) - - checkCall("import2Result", import2Result, { first: 'I am MyFooBar foo', second: [ 'I am MyFooBar foo', ' I am MyFooBar bar' ] }, cb) - - checkCallBy("tryCatchCall", tryCatchResult, (res) => { - return (res[0] as string).includes("Error: Service with id 'unex' not found") && res[1] === '/ip4/134.209.186.43/tcp/7001' - }, cb) - - if (success) { - process.exit(0) - } else { - process.exit(1) - } + await FluencePeer.default.uninit(); + await peer2.uninit(); + if (success) { + process.exit(0); + } else { + process.exit(1); + } }; main().catch((err) => { - console.log(err) - process.exit(1) -}) + console.log(err); + process.exit(1); +}); diff --git a/tsconfig.json b/tsconfig.json index 9df6fcc..13ae9eb 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,7 +13,8 @@ "moduleResolution": "node", "strict": true, "esModuleInterop": true, - "noImplicitAny": false + "noImplicitAny": false, + "strictNullChecks": false }, "exclude": [ "node_modules",