diff --git a/.github/workflows/publish_branch.yml b/.github/workflows/publish_branch.yml index 981f2de4..f457c057 100644 --- a/.github/workflows/publish_branch.yml +++ b/.github/workflows/publish_branch.yml @@ -27,7 +27,7 @@ jobs: ### Publish to NPM registry - uses: actions/setup-node@v1 with: - node-version: '15' + node-version: '16' registry-url: 'https://registry.npmjs.org' - run: cat package.json diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2c2ae257..e9250cd4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,7 +27,7 @@ jobs: ### Publish to NPM registry - uses: actions/setup-node@v1 with: - node-version: '14' + node-version: '16' registry-url: 'https://registry.npmjs.org' - run: npm i diff --git a/aqua/src/services.aqua b/aqua/src/services.aqua new file mode 100644 index 00000000..793bfce1 --- /dev/null +++ b/aqua/src/services.aqua @@ -0,0 +1,35 @@ +-- import SignResult, Sig from "@fluencelabs/aqua-lib/builtin.aqua" +-- export SignResult, Sig + +-- TODO:: fix this issue: https://github.com/fluencelabs/aqua-lib/issues/12 +-- and remove copy-paste + +data SignResult: + -- Was call successful or not + success: bool + -- Error message. Will be null if the call is successful + error: ?string + -- Signature as byte array. Will be null if the call is not successful + signature: ?[]u8 + +-- Available only on FluenceJS peers +-- The service can also be resolved by it's host peer id +service Sig("sig"): + -- Signs data with the service's private key. + -- Depending on implementation the service might check call params to restrict usage for security reasons. + -- By default it is only allowed to be used on the same peer the particle was initiated + -- and accepts data only from the following sources: + -- trust-graph.get_trust_bytes + -- trust-graph.get_revocation_bytes + -- registry.get_key_bytes + -- registry.get_record_bytes + -- registry.get_host_record_bytes + -- Argument: data - byte array to sign + -- Returns: signature as SignResult structure + sign(data: []u8) -> SignResult + + -- Given the data and signature both as byte arrays, returns true if the signature is correct, false otherwise. + verify(signature: []u8, data: []u8) -> bool + + -- Gets service's public key. + get_pub_key() -> string diff --git a/aqua/tests/sig-tests.aqua b/aqua/tests/sig-tests.aqua new file mode 100644 index 00000000..bdf97fdd --- /dev/null +++ b/aqua/tests/sig-tests.aqua @@ -0,0 +1,11 @@ +import SignResult, Sig from "../src/services.aqua" +export Sig + +service DataProvider("data"): + provide_data() -> []u8 + +func callSig(sigId: string) -> SignResult: + data <- DataProvider.provide_data() + Sig sigId + signature <- Sig.sign(data) + <- signature diff --git a/docs/assets/js/search.js b/docs/assets/js/search.js index 29e5b0f4..7643452b 100644 --- a/docs/assets/js/search.js +++ b/docs/assets/js/search.js @@ -1 +1 @@ -window.searchData = {"kinds":{"32":"Variable","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","262144":"Accessor","4194304":"Type alias"},"rows":[{"id":0,"kind":64,"name":"setLogLevel","url":"modules.html#setLogLevel","classes":"tsd-kind-function"},{"id":1,"kind":32,"name":"Fluence","url":"modules.html#Fluence","classes":"tsd-kind-variable"},{"id":2,"kind":65536,"name":"__type","url":"modules.html#Fluence.__type","classes":"tsd-kind-type-literal tsd-parent-kind-variable","parent":"Fluence"},{"id":3,"kind":1024,"name":"start","url":"modules.html#Fluence.__type.start","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":4,"kind":65536,"name":"__type","url":"modules.html#Fluence.__type.__type-3","classes":"tsd-kind-type-literal tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":5,"kind":1024,"name":"stop","url":"modules.html#Fluence.__type.stop","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":6,"kind":65536,"name":"__type","url":"modules.html#Fluence.__type.__type-4","classes":"tsd-kind-type-literal tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":7,"kind":1024,"name":"getStatus","url":"modules.html#Fluence.__type.getStatus","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":8,"kind":65536,"name":"__type","url":"modules.html#Fluence.__type.__type-2","classes":"tsd-kind-type-literal tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":9,"kind":1024,"name":"getPeer","url":"modules.html#Fluence.__type.getPeer","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":10,"kind":65536,"name":"__type","url":"modules.html#Fluence.__type.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":11,"kind":256,"name":"PeerStatus","url":"interfaces/PeerStatus.html","classes":"tsd-kind-interface"},{"id":12,"kind":1024,"name":"isInitialized","url":"interfaces/PeerStatus.html#isInitialized","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerStatus"},{"id":13,"kind":1024,"name":"isConnected","url":"interfaces/PeerStatus.html#isConnected","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerStatus"},{"id":14,"kind":1024,"name":"peerId","url":"interfaces/PeerStatus.html#peerId","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerStatus"},{"id":15,"kind":1024,"name":"relayPeerId","url":"interfaces/PeerStatus.html#relayPeerId","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerStatus"},{"id":16,"kind":128,"name":"KeyPair","url":"classes/KeyPair.html","classes":"tsd-kind-class"},{"id":17,"kind":2048,"name":"fromEd25519SK","url":"classes/KeyPair.html#fromEd25519SK","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeyPair"},{"id":18,"kind":2048,"name":"randomEd25519","url":"classes/KeyPair.html#randomEd25519","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeyPair"},{"id":19,"kind":512,"name":"constructor","url":"classes/KeyPair.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"KeyPair"},{"id":20,"kind":1024,"name":"Libp2pPeerId","url":"classes/KeyPair.html#Libp2pPeerId","classes":"tsd-kind-property tsd-parent-kind-class","parent":"KeyPair"},{"id":21,"kind":2048,"name":"toEd25519PrivateKey","url":"classes/KeyPair.html#toEd25519PrivateKey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyPair"},{"id":22,"kind":2048,"name":"signBytes","url":"classes/KeyPair.html#signBytes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyPair"},{"id":23,"kind":2048,"name":"verify","url":"classes/KeyPair.html#verify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyPair"},{"id":24,"kind":128,"name":"FluencePeer","url":"classes/FluencePeer.html","classes":"tsd-kind-class"},{"id":25,"kind":2048,"name":"isInstance","url":"classes/FluencePeer.html#isInstance","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FluencePeer"},{"id":26,"kind":512,"name":"constructor","url":"classes/FluencePeer.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"FluencePeer"},{"id":27,"kind":2048,"name":"getStatus","url":"classes/FluencePeer.html#getStatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FluencePeer"},{"id":28,"kind":2048,"name":"start","url":"classes/FluencePeer.html#start","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FluencePeer"},{"id":29,"kind":2048,"name":"stop","url":"classes/FluencePeer.html#stop","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FluencePeer"},{"id":30,"kind":262144,"name":"internals","url":"classes/FluencePeer.html#internals","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"FluencePeer"},{"id":31,"kind":4194304,"name":"AvmLoglevel","url":"modules.html#AvmLoglevel","classes":"tsd-kind-type-alias"},{"id":32,"kind":256,"name":"PeerConfig","url":"interfaces/PeerConfig.html","classes":"tsd-kind-interface"},{"id":33,"kind":1024,"name":"connectTo","url":"interfaces/PeerConfig.html#connectTo","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":34,"kind":1024,"name":"avmLogLevel","url":"interfaces/PeerConfig.html#avmLogLevel","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":35,"kind":1024,"name":"KeyPair","url":"interfaces/PeerConfig.html#KeyPair","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":36,"kind":1024,"name":"checkConnectionTimeoutMs","url":"interfaces/PeerConfig.html#checkConnectionTimeoutMs","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":37,"kind":1024,"name":"skipCheckConnection","url":"interfaces/PeerConfig.html#skipCheckConnection","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":38,"kind":1024,"name":"dialTimeoutMs","url":"interfaces/PeerConfig.html#dialTimeoutMs","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":39,"kind":1024,"name":"defaultTtlMs","url":"interfaces/PeerConfig.html#defaultTtlMs","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":40,"kind":1024,"name":"avmRunner","url":"interfaces/PeerConfig.html#avmRunner","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":41,"kind":4194304,"name":"PeerIdB58","url":"modules.html#PeerIdB58","classes":"tsd-kind-type-alias"},{"id":42,"kind":256,"name":"CallParams","url":"interfaces/CallParams.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":43,"kind":1024,"name":"particleId","url":"interfaces/CallParams.html#particleId","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"CallParams"},{"id":44,"kind":1024,"name":"initPeerId","url":"interfaces/CallParams.html#initPeerId","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"CallParams"},{"id":45,"kind":1024,"name":"timestamp","url":"interfaces/CallParams.html#timestamp","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"CallParams"},{"id":46,"kind":1024,"name":"ttl","url":"interfaces/CallParams.html#ttl","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"CallParams"},{"id":47,"kind":1024,"name":"signature","url":"interfaces/CallParams.html#signature","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"CallParams"},{"id":48,"kind":1024,"name":"tetraplets","url":"interfaces/CallParams.html#tetraplets","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"CallParams"}],"index":{"version":"2.3.9","fields":["name","parent"],"fieldVectors":[["name/0",[0,35.066]],["parent/0",[]],["name/1",[1,29.957]],["parent/1",[]],["name/2",[2,22.073]],["parent/2",[1,2.743]],["name/3",[3,29.957]],["parent/3",[4,1.623]],["name/4",[2,22.073]],["parent/4",[4,1.623]],["name/5",[5,29.957]],["parent/5",[4,1.623]],["name/6",[2,22.073]],["parent/6",[4,1.623]],["name/7",[6,29.957]],["parent/7",[4,1.623]],["name/8",[2,22.073]],["parent/8",[4,1.623]],["name/9",[7,35.066]],["parent/9",[4,1.623]],["name/10",[2,22.073]],["parent/10",[4,1.623]],["name/11",[8,22.073]],["parent/11",[]],["name/12",[9,35.066]],["parent/12",[8,2.021]],["name/13",[10,35.066]],["parent/13",[8,2.021]],["name/14",[11,35.066]],["parent/14",[8,2.021]],["name/15",[12,35.066]],["parent/15",[8,2.021]],["name/16",[13,16.607]],["parent/16",[]],["name/17",[14,35.066]],["parent/17",[13,1.521]],["name/18",[15,35.066]],["parent/18",[13,1.521]],["name/19",[16,29.957]],["parent/19",[13,1.521]],["name/20",[17,35.066]],["parent/20",[13,1.521]],["name/21",[18,35.066]],["parent/21",[13,1.521]],["name/22",[19,35.066]],["parent/22",[13,1.521]],["name/23",[20,35.066]],["parent/23",[13,1.521]],["name/24",[21,18.971]],["parent/24",[]],["name/25",[22,35.066]],["parent/25",[21,1.737]],["name/26",[16,29.957]],["parent/26",[21,1.737]],["name/27",[6,29.957]],["parent/27",[21,1.737]],["name/28",[3,29.957]],["parent/28",[21,1.737]],["name/29",[5,29.957]],["parent/29",[21,1.737]],["name/30",[23,35.066]],["parent/30",[21,1.737]],["name/31",[24,29.957]],["parent/31",[]],["name/32",[25,16.607]],["parent/32",[]],["name/33",[26,35.066]],["parent/33",[25,1.521]],["name/34",[24,29.957]],["parent/34",[25,1.521]],["name/35",[13,16.607]],["parent/35",[25,1.521]],["name/36",[27,35.066]],["parent/36",[25,1.521]],["name/37",[28,35.066]],["parent/37",[25,1.521]],["name/38",[29,35.066]],["parent/38",[25,1.521]],["name/39",[30,35.066]],["parent/39",[25,1.521]],["name/40",[31,35.066]],["parent/40",[25,1.521]],["name/41",[32,35.066]],["parent/41",[]],["name/42",[33,18.971]],["parent/42",[]],["name/43",[34,35.066]],["parent/43",[33,1.737]],["name/44",[35,35.066]],["parent/44",[33,1.737]],["name/45",[36,35.066]],["parent/45",[33,1.737]],["name/46",[37,35.066]],["parent/46",[33,1.737]],["name/47",[38,35.066]],["parent/47",[33,1.737]],["name/48",[39,35.066]],["parent/48",[33,1.737]]],"invertedIndex":[["__type",{"_index":2,"name":{"2":{},"4":{},"6":{},"8":{},"10":{}},"parent":{}}],["avmloglevel",{"_index":24,"name":{"31":{},"34":{}},"parent":{}}],["avmrunner",{"_index":31,"name":{"40":{}},"parent":{}}],["callparams",{"_index":33,"name":{"42":{}},"parent":{"43":{},"44":{},"45":{},"46":{},"47":{},"48":{}}}],["checkconnectiontimeoutms",{"_index":27,"name":{"36":{}},"parent":{}}],["connectto",{"_index":26,"name":{"33":{}},"parent":{}}],["constructor",{"_index":16,"name":{"19":{},"26":{}},"parent":{}}],["defaultttlms",{"_index":30,"name":{"39":{}},"parent":{}}],["dialtimeoutms",{"_index":29,"name":{"38":{}},"parent":{}}],["fluence",{"_index":1,"name":{"1":{}},"parent":{"2":{}}}],["fluence.__type",{"_index":4,"name":{},"parent":{"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{}}}],["fluencepeer",{"_index":21,"name":{"24":{}},"parent":{"25":{},"26":{},"27":{},"28":{},"29":{},"30":{}}}],["fromed25519sk",{"_index":14,"name":{"17":{}},"parent":{}}],["getpeer",{"_index":7,"name":{"9":{}},"parent":{}}],["getstatus",{"_index":6,"name":{"7":{},"27":{}},"parent":{}}],["initpeerid",{"_index":35,"name":{"44":{}},"parent":{}}],["internals",{"_index":23,"name":{"30":{}},"parent":{}}],["isconnected",{"_index":10,"name":{"13":{}},"parent":{}}],["isinitialized",{"_index":9,"name":{"12":{}},"parent":{}}],["isinstance",{"_index":22,"name":{"25":{}},"parent":{}}],["keypair",{"_index":13,"name":{"16":{},"35":{}},"parent":{"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{}}}],["libp2ppeerid",{"_index":17,"name":{"20":{}},"parent":{}}],["particleid",{"_index":34,"name":{"43":{}},"parent":{}}],["peerconfig",{"_index":25,"name":{"32":{}},"parent":{"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{}}}],["peerid",{"_index":11,"name":{"14":{}},"parent":{}}],["peeridb58",{"_index":32,"name":{"41":{}},"parent":{}}],["peerstatus",{"_index":8,"name":{"11":{}},"parent":{"12":{},"13":{},"14":{},"15":{}}}],["randomed25519",{"_index":15,"name":{"18":{}},"parent":{}}],["relaypeerid",{"_index":12,"name":{"15":{}},"parent":{}}],["setloglevel",{"_index":0,"name":{"0":{}},"parent":{}}],["signature",{"_index":38,"name":{"47":{}},"parent":{}}],["signbytes",{"_index":19,"name":{"22":{}},"parent":{}}],["skipcheckconnection",{"_index":28,"name":{"37":{}},"parent":{}}],["start",{"_index":3,"name":{"3":{},"28":{}},"parent":{}}],["stop",{"_index":5,"name":{"5":{},"29":{}},"parent":{}}],["tetraplets",{"_index":39,"name":{"48":{}},"parent":{}}],["timestamp",{"_index":36,"name":{"45":{}},"parent":{}}],["toed25519privatekey",{"_index":18,"name":{"21":{}},"parent":{}}],["ttl",{"_index":37,"name":{"46":{}},"parent":{}}],["verify",{"_index":20,"name":{"23":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file +window.searchData = {"kinds":{"32":"Variable","64":"Function","128":"Class","256":"Interface","512":"Constructor","1024":"Property","2048":"Method","65536":"Type literal","262144":"Accessor","4194304":"Type alias"},"rows":[{"id":0,"kind":64,"name":"setLogLevel","url":"modules.html#setLogLevel","classes":"tsd-kind-function"},{"id":1,"kind":32,"name":"Fluence","url":"modules.html#Fluence","classes":"tsd-kind-variable"},{"id":2,"kind":65536,"name":"__type","url":"modules.html#Fluence.__type","classes":"tsd-kind-type-literal tsd-parent-kind-variable","parent":"Fluence"},{"id":3,"kind":1024,"name":"start","url":"modules.html#Fluence.__type.start","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":4,"kind":65536,"name":"__type","url":"modules.html#Fluence.__type.__type-3","classes":"tsd-kind-type-literal tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":5,"kind":1024,"name":"stop","url":"modules.html#Fluence.__type.stop","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":6,"kind":65536,"name":"__type","url":"modules.html#Fluence.__type.__type-4","classes":"tsd-kind-type-literal tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":7,"kind":1024,"name":"getStatus","url":"modules.html#Fluence.__type.getStatus","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":8,"kind":65536,"name":"__type","url":"modules.html#Fluence.__type.__type-2","classes":"tsd-kind-type-literal tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":9,"kind":1024,"name":"getPeer","url":"modules.html#Fluence.__type.getPeer","classes":"tsd-kind-property tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":10,"kind":65536,"name":"__type","url":"modules.html#Fluence.__type.__type-1","classes":"tsd-kind-type-literal tsd-parent-kind-type-literal","parent":"Fluence.__type"},{"id":11,"kind":256,"name":"PeerStatus","url":"interfaces/PeerStatus.html","classes":"tsd-kind-interface"},{"id":12,"kind":1024,"name":"isInitialized","url":"interfaces/PeerStatus.html#isInitialized","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerStatus"},{"id":13,"kind":1024,"name":"isConnected","url":"interfaces/PeerStatus.html#isConnected","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerStatus"},{"id":14,"kind":1024,"name":"peerId","url":"interfaces/PeerStatus.html#peerId","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerStatus"},{"id":15,"kind":1024,"name":"relayPeerId","url":"interfaces/PeerStatus.html#relayPeerId","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerStatus"},{"id":16,"kind":128,"name":"KeyPair","url":"classes/KeyPair.html","classes":"tsd-kind-class"},{"id":17,"kind":2048,"name":"fromEd25519SK","url":"classes/KeyPair.html#fromEd25519SK","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeyPair"},{"id":18,"kind":2048,"name":"randomEd25519","url":"classes/KeyPair.html#randomEd25519","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"KeyPair"},{"id":19,"kind":512,"name":"constructor","url":"classes/KeyPair.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"KeyPair"},{"id":20,"kind":1024,"name":"Libp2pPeerId","url":"classes/KeyPair.html#Libp2pPeerId","classes":"tsd-kind-property tsd-parent-kind-class","parent":"KeyPair"},{"id":21,"kind":2048,"name":"toB58String","url":"classes/KeyPair.html#toB58String","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyPair"},{"id":22,"kind":2048,"name":"toEd25519PrivateKey","url":"classes/KeyPair.html#toEd25519PrivateKey","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyPair"},{"id":23,"kind":2048,"name":"signBytes","url":"classes/KeyPair.html#signBytes","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyPair"},{"id":24,"kind":2048,"name":"verify","url":"classes/KeyPair.html#verify","classes":"tsd-kind-method tsd-parent-kind-class","parent":"KeyPair"},{"id":25,"kind":128,"name":"FluencePeer","url":"classes/FluencePeer.html","classes":"tsd-kind-class"},{"id":26,"kind":2048,"name":"isInstance","url":"classes/FluencePeer.html#isInstance","classes":"tsd-kind-method tsd-parent-kind-class tsd-is-static","parent":"FluencePeer"},{"id":27,"kind":512,"name":"constructor","url":"classes/FluencePeer.html#constructor","classes":"tsd-kind-constructor tsd-parent-kind-class","parent":"FluencePeer"},{"id":28,"kind":2048,"name":"getStatus","url":"classes/FluencePeer.html#getStatus","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FluencePeer"},{"id":29,"kind":2048,"name":"start","url":"classes/FluencePeer.html#start","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FluencePeer"},{"id":30,"kind":2048,"name":"getServices","url":"classes/FluencePeer.html#getServices","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FluencePeer"},{"id":31,"kind":2048,"name":"stop","url":"classes/FluencePeer.html#stop","classes":"tsd-kind-method tsd-parent-kind-class","parent":"FluencePeer"},{"id":32,"kind":262144,"name":"internals","url":"classes/FluencePeer.html#internals","classes":"tsd-kind-get-signature tsd-parent-kind-class","parent":"FluencePeer"},{"id":33,"kind":4194304,"name":"AvmLoglevel","url":"modules.html#AvmLoglevel","classes":"tsd-kind-type-alias"},{"id":34,"kind":256,"name":"PeerConfig","url":"interfaces/PeerConfig.html","classes":"tsd-kind-interface"},{"id":35,"kind":1024,"name":"connectTo","url":"interfaces/PeerConfig.html#connectTo","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":36,"kind":1024,"name":"avmLogLevel","url":"interfaces/PeerConfig.html#avmLogLevel","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":37,"kind":1024,"name":"KeyPair","url":"interfaces/PeerConfig.html#KeyPair","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":38,"kind":1024,"name":"checkConnectionTimeoutMs","url":"interfaces/PeerConfig.html#checkConnectionTimeoutMs","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":39,"kind":1024,"name":"skipCheckConnection","url":"interfaces/PeerConfig.html#skipCheckConnection","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":40,"kind":1024,"name":"dialTimeoutMs","url":"interfaces/PeerConfig.html#dialTimeoutMs","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":41,"kind":1024,"name":"defaultTtlMs","url":"interfaces/PeerConfig.html#defaultTtlMs","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":42,"kind":1024,"name":"avmRunner","url":"interfaces/PeerConfig.html#avmRunner","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"PeerConfig"},{"id":43,"kind":4194304,"name":"PeerIdB58","url":"modules.html#PeerIdB58","classes":"tsd-kind-type-alias"},{"id":44,"kind":256,"name":"CallParams","url":"interfaces/CallParams.html","classes":"tsd-kind-interface tsd-has-type-parameter"},{"id":45,"kind":1024,"name":"particleId","url":"interfaces/CallParams.html#particleId","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"CallParams"},{"id":46,"kind":1024,"name":"initPeerId","url":"interfaces/CallParams.html#initPeerId","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"CallParams"},{"id":47,"kind":1024,"name":"timestamp","url":"interfaces/CallParams.html#timestamp","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"CallParams"},{"id":48,"kind":1024,"name":"ttl","url":"interfaces/CallParams.html#ttl","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"CallParams"},{"id":49,"kind":1024,"name":"signature","url":"interfaces/CallParams.html#signature","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"CallParams"},{"id":50,"kind":1024,"name":"tetraplets","url":"interfaces/CallParams.html#tetraplets","classes":"tsd-kind-property tsd-parent-kind-interface","parent":"CallParams"}],"index":{"version":"2.3.9","fields":["name","parent"],"fieldVectors":[["name/0",[0,35.458]],["parent/0",[]],["name/1",[1,30.35]],["parent/1",[]],["name/2",[2,22.465]],["parent/2",[1,2.79]],["name/3",[3,30.35]],["parent/3",[4,1.665]],["name/4",[2,22.465]],["parent/4",[4,1.665]],["name/5",[5,30.35]],["parent/5",[4,1.665]],["name/6",[2,22.465]],["parent/6",[4,1.665]],["name/7",[6,30.35]],["parent/7",[4,1.665]],["name/8",[2,22.465]],["parent/8",[4,1.665]],["name/9",[7,35.458]],["parent/9",[4,1.665]],["name/10",[2,22.465]],["parent/10",[4,1.665]],["name/11",[8,22.465]],["parent/11",[]],["name/12",[9,35.458]],["parent/12",[8,2.065]],["name/13",[10,35.458]],["parent/13",[8,2.065]],["name/14",[11,35.458]],["parent/14",[8,2.065]],["name/15",[12,35.458]],["parent/15",[8,2.065]],["name/16",[13,15.999]],["parent/16",[]],["name/17",[14,35.458]],["parent/17",[13,1.471]],["name/18",[15,35.458]],["parent/18",[13,1.471]],["name/19",[16,30.35]],["parent/19",[13,1.471]],["name/20",[17,35.458]],["parent/20",[13,1.471]],["name/21",[18,35.458]],["parent/21",[13,1.471]],["name/22",[19,35.458]],["parent/22",[13,1.471]],["name/23",[20,35.458]],["parent/23",[13,1.471]],["name/24",[21,35.458]],["parent/24",[13,1.471]],["name/25",[22,18.112]],["parent/25",[]],["name/26",[23,35.458]],["parent/26",[22,1.665]],["name/27",[16,30.35]],["parent/27",[22,1.665]],["name/28",[6,30.35]],["parent/28",[22,1.665]],["name/29",[3,30.35]],["parent/29",[22,1.665]],["name/30",[24,35.458]],["parent/30",[22,1.665]],["name/31",[5,30.35]],["parent/31",[22,1.665]],["name/32",[25,35.458]],["parent/32",[22,1.665]],["name/33",[26,30.35]],["parent/33",[]],["name/34",[27,17]],["parent/34",[]],["name/35",[28,35.458]],["parent/35",[27,1.563]],["name/36",[26,30.35]],["parent/36",[27,1.563]],["name/37",[13,15.999]],["parent/37",[27,1.563]],["name/38",[29,35.458]],["parent/38",[27,1.563]],["name/39",[30,35.458]],["parent/39",[27,1.563]],["name/40",[31,35.458]],["parent/40",[27,1.563]],["name/41",[32,35.458]],["parent/41",[27,1.563]],["name/42",[33,35.458]],["parent/42",[27,1.563]],["name/43",[34,35.458]],["parent/43",[]],["name/44",[35,19.363]],["parent/44",[]],["name/45",[36,35.458]],["parent/45",[35,1.78]],["name/46",[37,35.458]],["parent/46",[35,1.78]],["name/47",[38,35.458]],["parent/47",[35,1.78]],["name/48",[39,35.458]],["parent/48",[35,1.78]],["name/49",[40,35.458]],["parent/49",[35,1.78]],["name/50",[41,35.458]],["parent/50",[35,1.78]]],"invertedIndex":[["__type",{"_index":2,"name":{"2":{},"4":{},"6":{},"8":{},"10":{}},"parent":{}}],["avmloglevel",{"_index":26,"name":{"33":{},"36":{}},"parent":{}}],["avmrunner",{"_index":33,"name":{"42":{}},"parent":{}}],["callparams",{"_index":35,"name":{"44":{}},"parent":{"45":{},"46":{},"47":{},"48":{},"49":{},"50":{}}}],["checkconnectiontimeoutms",{"_index":29,"name":{"38":{}},"parent":{}}],["connectto",{"_index":28,"name":{"35":{}},"parent":{}}],["constructor",{"_index":16,"name":{"19":{},"27":{}},"parent":{}}],["defaultttlms",{"_index":32,"name":{"41":{}},"parent":{}}],["dialtimeoutms",{"_index":31,"name":{"40":{}},"parent":{}}],["fluence",{"_index":1,"name":{"1":{}},"parent":{"2":{}}}],["fluence.__type",{"_index":4,"name":{},"parent":{"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{}}}],["fluencepeer",{"_index":22,"name":{"25":{}},"parent":{"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{}}}],["fromed25519sk",{"_index":14,"name":{"17":{}},"parent":{}}],["getpeer",{"_index":7,"name":{"9":{}},"parent":{}}],["getservices",{"_index":24,"name":{"30":{}},"parent":{}}],["getstatus",{"_index":6,"name":{"7":{},"28":{}},"parent":{}}],["initpeerid",{"_index":37,"name":{"46":{}},"parent":{}}],["internals",{"_index":25,"name":{"32":{}},"parent":{}}],["isconnected",{"_index":10,"name":{"13":{}},"parent":{}}],["isinitialized",{"_index":9,"name":{"12":{}},"parent":{}}],["isinstance",{"_index":23,"name":{"26":{}},"parent":{}}],["keypair",{"_index":13,"name":{"16":{},"37":{}},"parent":{"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{}}}],["libp2ppeerid",{"_index":17,"name":{"20":{}},"parent":{}}],["particleid",{"_index":36,"name":{"45":{}},"parent":{}}],["peerconfig",{"_index":27,"name":{"34":{}},"parent":{"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{}}}],["peerid",{"_index":11,"name":{"14":{}},"parent":{}}],["peeridb58",{"_index":34,"name":{"43":{}},"parent":{}}],["peerstatus",{"_index":8,"name":{"11":{}},"parent":{"12":{},"13":{},"14":{},"15":{}}}],["randomed25519",{"_index":15,"name":{"18":{}},"parent":{}}],["relaypeerid",{"_index":12,"name":{"15":{}},"parent":{}}],["setloglevel",{"_index":0,"name":{"0":{}},"parent":{}}],["signature",{"_index":40,"name":{"49":{}},"parent":{}}],["signbytes",{"_index":20,"name":{"23":{}},"parent":{}}],["skipcheckconnection",{"_index":30,"name":{"39":{}},"parent":{}}],["start",{"_index":3,"name":{"3":{},"29":{}},"parent":{}}],["stop",{"_index":5,"name":{"5":{},"31":{}},"parent":{}}],["tetraplets",{"_index":41,"name":{"50":{}},"parent":{}}],["timestamp",{"_index":38,"name":{"47":{}},"parent":{}}],["tob58string",{"_index":18,"name":{"21":{}},"parent":{}}],["toed25519privatekey",{"_index":19,"name":{"22":{}},"parent":{}}],["ttl",{"_index":39,"name":{"48":{}},"parent":{}}],["verify",{"_index":21,"name":{"24":{}},"parent":{}}]],"pipeline":[]}} \ No newline at end of file diff --git a/docs/classes/FluencePeer.html b/docs/classes/FluencePeer.html index 86ca9cb0..cd3df11a 100644 --- a/docs/classes/FluencePeer.html +++ b/docs/classes/FluencePeer.html @@ -100,6 +100,7 @@

Methods

Methods

+
+ +

getServices

+ + +

getStatus

@@ -325,7 +348,7 @@
  • @@ -347,7 +370,7 @@
  • @@ -379,7 +402,7 @@
  • @@ -402,7 +425,7 @@
  • @@ -447,6 +470,9 @@
  • internals
  • +
  • + getServices +
  • getStatus
  • diff --git a/docs/classes/KeyPair.html b/docs/classes/KeyPair.html index 39bbd1f8..92b903c4 100644 --- a/docs/classes/KeyPair.html +++ b/docs/classes/KeyPair.html @@ -93,6 +93,7 @@

    Methods

    +
    + +

    toB58String

    + + +

    toEd25519PrivateKey

    @@ -181,7 +199,7 @@
  • Returns Uint8Array

    @@ -199,7 +217,7 @@
  • Parameters

    @@ -225,7 +243,7 @@
  • @@ -256,7 +274,7 @@
  • @@ -300,6 +318,9 @@
  • signBytes
  • +
  • + toB58String +
  • toEd25519PrivateKey
  • diff --git a/docs/interfaces/CallParams.html b/docs/interfaces/CallParams.html index 79307b7b..a7431030 100644 --- a/docs/interfaces/CallParams.html +++ b/docs/interfaces/CallParams.html @@ -118,7 +118,7 @@
    initPeerId: string
    @@ -133,7 +133,7 @@
    particleId: string
    @@ -148,7 +148,7 @@
    signature: string
    @@ -163,7 +163,7 @@
    tetraplets: {[ key in string]: SecurityTetraplet[] }
    @@ -178,7 +178,7 @@
    timestamp: number
    @@ -193,7 +193,7 @@
    ttl: number
    diff --git a/docs/interfaces/PeerConfig.html b/docs/interfaces/PeerConfig.html index 502a910f..6a004675 100644 --- a/docs/interfaces/PeerConfig.html +++ b/docs/interfaces/PeerConfig.html @@ -108,7 +108,7 @@
    KeyPair: KeyPair
    @@ -124,7 +124,7 @@
    avmLogLevel: LogLevel
    @@ -139,7 +139,7 @@
    avmRunner: AvmRunner
    @@ -154,7 +154,7 @@
    checkConnectionTimeoutMs: number
    @@ -171,7 +171,7 @@
    connectTo: string | Multiaddr | Node
    @@ -193,7 +193,7 @@
    defaultTtlMs: number
    @@ -210,7 +210,7 @@
    dialTimeoutMs: number
    @@ -225,7 +225,7 @@
    skipCheckConnection: boolean
    diff --git a/docs/interfaces/PeerStatus.html b/docs/interfaces/PeerStatus.html index 1b14c80f..2bdf23dd 100644 --- a/docs/interfaces/PeerStatus.html +++ b/docs/interfaces/PeerStatus.html @@ -104,7 +104,7 @@
    isConnected: Boolean
    @@ -119,7 +119,7 @@
    isInitialized: Boolean
    @@ -134,7 +134,7 @@
    peerId: string
    @@ -149,7 +149,7 @@
    relayPeerId: string
    diff --git a/docs/modules.html b/docs/modules.html index 01cab4ed..16c4465c 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -106,7 +106,7 @@
    AvmLoglevel: LogLevel
    @@ -122,7 +122,7 @@
    PeerIdB58: string
    @@ -140,7 +140,7 @@
    Fluence: { getPeer: () => FluencePeer; getStatus: () => PeerStatus; start: (config?: PeerConfig) => Promise<void>; stop: () => Promise<void> } = ...
    @@ -260,7 +260,7 @@
  • Parameters

    diff --git a/package-lock.json b/package-lock.json index 21a6235a..7a0db4e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,6 +33,8 @@ "copy-avm-public": "dist/tools/copyAvmPublic.js" }, "devDependencies": { + "@fluencelabs/aqua": "^0.5.3-258", + "@fluencelabs/aqua-lib": "^0.3.4", "@types/jest": "^26.0.22", "jest": "^26.6.3", "js-base64": "^3.7.2", @@ -655,6 +657,14 @@ "node": ">=12.0.0" } }, + "node_modules/@chainsafe/libp2p-noise/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/@cnakazawa/watch": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", @@ -671,6 +681,49 @@ "node": ">=0.1.95" } }, + "node_modules/@fluencelabs/aqua": { + "version": "0.5.3-258", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.5.3-258.tgz", + "integrity": "sha512-OM//lyc+xzvvm73/LD8ZoFmcvfNH/Ks/oRrHVAy40B3DwmXh1Y1YsaCYnzzC7Banc5ckW2JZDQsV1kZk+6pT3A==", + "dev": true, + "dependencies": { + "@fluencelabs/aqua-ipfs": "0.5.2", + "@fluencelabs/aqua-lib": "0.3.2", + "@fluencelabs/fluence": "0.18.0", + "ipfs-http-client": "50.1.2" + }, + "bin": { + "aqua": "index.js", + "aqua-cli": "error.js" + } + }, + "node_modules/@fluencelabs/aqua-ipfs": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-ipfs/-/aqua-ipfs-0.5.2.tgz", + "integrity": "sha512-vSZYH6mjCGly7Cifts1c84icAzeq6pQf3aspEW3ttA0AFVQTjDWlr86Imseg+p3I9oaNUykv/W+VqWX1ouj9Vg==", + "dev": true, + "dependencies": { + "@fluencelabs/aqua-lib": "^0.1.14" + } + }, + "node_modules/@fluencelabs/aqua-ipfs/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/aqua-lib": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.3.4.tgz", + "integrity": "sha512-DH7TZgflTJDxK18URlELnHI65jYtZf7b5e25gjRL9AiT/nvdodQqSvCcdVKK/jvhPy9q3RXM/rOcHfqh5mmpSQ==", + "dev": true + }, + "node_modules/@fluencelabs/aqua/node_modules/@fluencelabs/aqua-lib": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.3.2.tgz", + "integrity": "sha512-8+NKFwRg9SFzpbac1SvvTWcOgHhMoYZwRyb93qJRcNFaN7xjRcA8v0i6CF7Mkjno1zH3xixC9J44+LKQd8uvzA==", + "dev": true + }, "node_modules/@fluencelabs/avm": { "version": "0.20.0", "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.0.tgz", @@ -697,6 +750,289 @@ "resolved": "https://registry.npmjs.org/@fluencelabs/avm-runner-interface/-/avm-runner-interface-0.2.0.tgz", "integrity": "sha512-Y41pL+UwZZVdormxju8cJQsNRp6tdER0VqJ9Kg9gH2wd1KJAaYTJkyVbn8NB7fEFRUbqfbb1BXHi9wWBYOgGYQ==" }, + "node_modules/@fluencelabs/fluence": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.18.0.tgz", + "integrity": "sha512-YmDgpyu3ffFYkWrzILyfJH8hvca11QpeY0TZiN0ptHTRGxOeFThw5Ikcf68kErPTT7OQUhsjSKHGHT0Yopb3mg==", + "dev": true, + "dependencies": { + "@chainsafe/libp2p-noise": "4.0.0", + "@fluencelabs/avm": "0.20.0", + "@fluencelabs/avm-runner-background": "0.1.2", + "@fluencelabs/avm-runner-interface": "^0.2.0", + "async": "3.2.0", + "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", + "rxjs": "^7.3.0", + "ts-pattern": "^3.3.3", + "uuid": "8.3.0" + }, + "bin": { + "copy-avm-public": "dist/tools/copyAvmPublic.js" + } + }, + "node_modules/@fluencelabs/fluence/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==", + "dev": true, + "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/@fluencelabs/fluence/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==", + "dev": true, + "dependencies": { + "bl": "^5.0.0", + "buffer": "^6.0.3", + "varint": "^6.0.0" + } + }, + "node_modules/@fluencelabs/fluence/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==", + "dev": true + }, + "node_modules/@fluencelabs/fluence/node_modules/interface-datastore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-5.2.0.tgz", + "integrity": "sha512-nthO4C4BMJM2j9x/mT2KFa/g/sbcY8yf9j/kOBgli3u5mq9ZdPvQyDxi0OhKzr4JmoM81OYh5xcFjyebquqwvA==", + "dev": true, + "dependencies": { + "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" + } + }, + "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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/@fluencelabs/fluence/node_modules/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==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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-websockets": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/libp2p-websockets/-/libp2p-websockets-0.16.1.tgz", + "integrity": "sha512-HXaCdlAkG5RDZCehEnkoVzQjT1C6NIaCKLERkkZ1ArKG77K7Y7uy+8y81uNZhy4OLQ8jGUMyOvKnjw6EjKJPmw==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "bl": "^5.0.0", + "buffer": "^6.0.3", + "varint": "^6.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==", + "dev": true, + "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/peer-id": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.3.tgz", + "integrity": "sha512-pass5tk6Fbaz7PTD/3fJg2KWqaproHY0B0Ki8GQMEuMjkoLRcS2Vqt9yy6ob/+8uGBmWjRLtbMhaLV4HTyMDfw==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -965,6 +1301,12 @@ "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==", + "dev": true + }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -1037,6 +1379,15 @@ "@sinonjs/commons": "^1.7.0" } }, + "node_modules/@sovpro/delimited-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sovpro/delimited-stream/-/delimited-stream-1.1.0.tgz", + "integrity": "sha512-kQpk267uxB19X3X2T1mvNMjyvIEonpNSHrMlK5ZaBU6aZxw7wPbpgKJOjHN3+/GPVpXgAV9soVT2oyHpLkLtyw==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/@stablelib/aead": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", @@ -1332,9 +1683,9 @@ } }, "node_modules/abortable-iterator": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz", - "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==", + "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" } @@ -1473,9 +1824,13 @@ } }, "node_modules/any-signal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.0.tgz", - "integrity": "sha512-l1H1GEkGGIXVGfCtvq8N68YI7gHajmfzRdKhmb8sGyAQpLCblirLa8eB09j4uKaiwe7vodAChocUf7AT3mYq5g==" + "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/anymatch": { "version": "3.1.2", @@ -1542,9 +1897,9 @@ } }, "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "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" } @@ -1838,11 +2193,50 @@ "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==", + "dev": true + }, + "node_modules/blob-to-it": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.4.tgz", + "integrity": "sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA==", + "dev": true, + "dependencies": { + "browser-readablestream-to-it": "^1.0.3" + } + }, "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/borc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/borc/-/borc-3.0.0.tgz", + "integrity": "sha512-ec4JmVC46kE0+layfnwM3l15O70MlFiEbmQHY/vpqIKiUtPVntv4BY4NVnz3N4vb21edV3mY97XVckFvYHWF9g==", + "dev": true, + "dependencies": { + "bignumber.js": "^9.0.0", + "buffer": "^6.0.3", + "commander": "^2.15.0", + "ieee754": "^1.1.13", + "iso-url": "^1.1.5", + "json-text-sequence": "~0.3.0", + "readable-stream": "^3.6.0" + }, + "bin": { + "cbor2comment": "bin/cbor2comment.js", + "cbor2diag": "bin/cbor2diag.js", + "cbor2json": "bin/cbor2json.js", + "json2cbor": "bin/json2cbor.js" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1880,6 +2274,12 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, + "node_modules/browser-readablestream-to-it": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz", + "integrity": "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==", + "dev": true + }, "node_modules/browserslist": { "version": "4.16.8", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.8.tgz", @@ -2217,6 +2617,12 @@ "node": ">= 0.8" } }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -2683,11 +3089,6 @@ "node": ">=6" } }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -3034,20 +3435,6 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -3473,6 +3860,98 @@ "uint8arrays": "^3.0.0" } }, + "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/interface-ipld-format": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/interface-ipld-format/-/interface-ipld-format-1.0.1.tgz", + "integrity": "sha512-WV/ar+KQJVoQpqRDYdo7YPGYIUHJxCuOEhdvsRpzLqoOIVCqPKdMMYmsLL1nCRsF3yYNio+PAJbCKiv6drrEAg==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "cids": "^1.1.6", + "multicodec": "^3.0.1", + "multihashes": "^4.0.2" + } + }, + "node_modules/interface-ipld-format/node_modules/cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^3.0.0" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/interface-ipld-format/node_modules/multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "@multiformats/base-x": "^4.0.1" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/interface-ipld-format/node_modules/multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + } + }, + "node_modules/interface-ipld-format/node_modules/multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/interface-ipld-format/node_modules/multihashes/node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + }, + "node_modules/interface-ipld-format/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, "node_modules/interface-store": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-2.0.2.tgz", @@ -3503,27 +3982,872 @@ "node": ">=8" } }, - "node_modules/ipfs-utils": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.4.tgz", - "integrity": "sha512-cfLKk004KLoEWJhBx4zg3mCro6mkiNhyGIlT7OZX9zxO1UqvLWpvW7cSZ1b1fbUIZ8qI7X2B7PeKlXC7jSfZ7g==", + "node_modules/ipfs-core-types": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.5.2.tgz", + "integrity": "sha512-DOQeL+GFGYMTlnbdtMeBzvfVnyAalSgCfPr8XUCI+FVBZZWwzkt5jZZzGDmF87HVRrMR3FuVyBKZj772mcXKyQ==", + "dev": true, "dependencies": { - "any-signal": "^3.0.0", + "cids": "^1.1.6", + "interface-datastore": "^4.0.0", + "ipld-block": "^0.11.1", + "multiaddr": "^9.0.1", + "multibase": "^4.0.2" + } + }, + "node_modules/ipfs-core-types/node_modules/cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^3.0.0" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipfs-core-types/node_modules/cids/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipfs-core-types/node_modules/interface-datastore": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-4.0.2.tgz", + "integrity": "sha512-/XRmD7oagZMTaK25rV3WFrejLoUwxZcpgE+eNyZNYvb2jlB5P3MwJCIbetJSlVYK7yvaFmJi8s3f9VLcxJjdog==", + "dev": true, + "dependencies": { + "err-code": "^3.0.1", + "interface-store": "^0.0.2", + "ipfs-utils": "^8.1.2", + "iso-random-stream": "^2.0.0", + "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": "^2.1.5" + } + }, + "node_modules/ipfs-core-types/node_modules/interface-store": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-0.0.2.tgz", + "integrity": "sha512-t4c9GKXH1Vi/WxmppGyIi6iedbGo92YmLneopHmbIEIp27ep7VnrYGA6lM/rLsFo5Tj6TJgIqr3FOk8mvPgIWQ==", + "dev": true + }, + "node_modules/ipfs-core-types/node_modules/multiaddr": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", + "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", + "dev": true, + "dependencies": { + "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" + } + }, + "node_modules/ipfs-core-types/node_modules/multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "@multiformats/base-x": "^4.0.1" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipfs-core-types/node_modules/multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + } + }, + "node_modules/ipfs-core-types/node_modules/multicodec/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipfs-core-types/node_modules/multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipfs-core-types/node_modules/multihashes/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipfs-core-types/node_modules/multihashes/node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + }, + "node_modules/ipfs-core-utils": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.8.3.tgz", + "integrity": "sha512-PY7PkCgCtVYtNOe1C3ew1+5D9NqXqizb886R/lyGWe+KsmWtBQkQIk0ZIDwKyHGvG2KA2QQeIDzdOmzBQBJtHQ==", + "dev": true, + "dependencies": { + "any-signal": "^2.1.2", + "blob-to-it": "^1.0.1", + "browser-readablestream-to-it": "^1.0.1", + "cids": "^1.1.6", + "err-code": "^3.0.1", + "ipfs-core-types": "^0.5.2", + "ipfs-unixfs": "^4.0.3", + "ipfs-utils": "^8.1.2", + "it-all": "^1.0.4", + "it-map": "^1.0.4", + "it-peekable": "^1.0.1", + "multiaddr": "^9.0.1", + "multiaddr-to-uri": "^7.0.0", + "parse-duration": "^1.0.0", + "timeout-abort-controller": "^1.1.1", + "uint8arrays": "^2.1.3" + } + }, + "node_modules/ipfs-core-utils/node_modules/cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^3.0.0" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipfs-core-utils/node_modules/cids/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipfs-core-utils/node_modules/multiaddr": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", + "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", + "dev": true, + "dependencies": { + "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" + } + }, + "node_modules/ipfs-core-utils/node_modules/multiaddr-to-uri": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-7.0.0.tgz", + "integrity": "sha512-VbscDpLcbV0m25tJqfnZSfbjVUuNlPa4BbD5l/7me1t0lc3SWI0XAoO5E/PNJF0e1qUlbdq7yjVFEQjUT+9r0g==", + "dev": true, + "dependencies": { + "multiaddr": "^9.0.1" + } + }, + "node_modules/ipfs-core-utils/node_modules/multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "@multiformats/base-x": "^4.0.1" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipfs-core-utils/node_modules/multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + } + }, + "node_modules/ipfs-core-utils/node_modules/multicodec/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipfs-core-utils/node_modules/multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipfs-core-utils/node_modules/multihashes/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipfs-core-utils/node_modules/multihashes/node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + }, + "node_modules/ipfs-http-client": { + "version": "50.1.2", + "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-50.1.2.tgz", + "integrity": "sha512-ZbJlED4wqwFXQFVB9FQDs20ygdq7O/zSq4AvO9KRAmkqUj2TsCWCteUz2fBMnGWLh2tExxeSl/rQbHbJptb8JQ==", + "dev": true, + "dependencies": { + "abort-controller": "^3.0.0", + "any-signal": "^2.1.2", + "cids": "^1.1.6", + "debug": "^4.1.1", + "form-data": "^4.0.0", + "ipfs-core-types": "^0.5.2", + "ipfs-core-utils": "^0.8.3", + "ipfs-unixfs": "^4.0.3", + "ipfs-utils": "^8.1.2", + "ipld-block": "^0.11.0", + "ipld-dag-cbor": "^1.0.0", + "ipld-dag-pb": "^0.22.1", + "ipld-raw": "^7.0.0", + "it-last": "^1.0.4", + "it-map": "^1.0.4", + "it-tar": "^3.0.0", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "multiaddr": "^9.0.1", + "multibase": "^4.0.2", + "multicodec": "^3.0.1", + "multihashes": "^4.0.2", + "nanoid": "^3.1.12", + "native-abort-controller": "^1.0.3", + "parse-duration": "^1.0.0", + "stream-to-it": "^0.2.2", + "uint8arrays": "^2.1.3" + }, + "engines": { + "node": ">=14.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipfs-http-client/node_modules/cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^3.0.0" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipfs-http-client/node_modules/cids/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipfs-http-client/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ipfs-http-client/node_modules/multiaddr": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", + "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", + "dev": true, + "dependencies": { + "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" + } + }, + "node_modules/ipfs-http-client/node_modules/multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "@multiformats/base-x": "^4.0.1" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipfs-http-client/node_modules/multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + } + }, + "node_modules/ipfs-http-client/node_modules/multicodec/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipfs-http-client/node_modules/multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipfs-http-client/node_modules/multihashes/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipfs-http-client/node_modules/multihashes/node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + }, + "node_modules/ipfs-unixfs": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-4.0.3.tgz", + "integrity": "sha512-hzJ3X4vlKT8FQ3Xc4M1szaFVjsc1ZydN+E4VQ91aXxfpjFn9G2wsMo1EFdAXNq/BUnN5dgqIOMP5zRYr3DTsAw==", + "dev": true, + "dependencies": { + "err-code": "^3.0.1", + "protobufjs": "^6.10.2" + }, + "engines": { + "node": ">=14.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/ipfs-utils": { + "version": "8.1.6", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-8.1.6.tgz", + "integrity": "sha512-V/cwb6113DrDhrjDTWImA6+zmJbpdbUkxdxmEQO7it8ykV76bBmzU1ZXSM0QR0qxGy9VW8dkUlPAC2K10VgSmw==", + "dev": true, + "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": "^1.0.1", + "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" } }, + "node_modules/ipld-block": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/ipld-block/-/ipld-block-0.11.1.tgz", + "integrity": "sha512-sDqqLqD5qh4QzGq6ssxLHUCnH4emCf/8F8IwjQM2cjEEIEHMUj57XhNYgmGbemdYPznUhffxFGEHsruh5+HQRw==", + "dev": true, + "dependencies": { + "cids": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipld-block/node_modules/cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^3.0.0" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipld-block/node_modules/multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "@multiformats/base-x": "^4.0.1" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipld-block/node_modules/multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + } + }, + "node_modules/ipld-block/node_modules/multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipld-block/node_modules/multihashes/node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + }, + "node_modules/ipld-block/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipld-dag-cbor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-1.0.1.tgz", + "integrity": "sha512-PZh8rHnRETX5bj60i73W2oq6BXoZnIvYCBDwIffYVJgxMr7BEVd5PycAARBiT6daORJ/4zbqEFR5CcrjeCtm/A==", + "deprecated": "This module has been superseded by @ipld/dag-cbor and multiformats", + "dev": true, + "dependencies": { + "borc": "^3.0.0", + "cids": "^1.0.0", + "interface-ipld-format": "^1.0.0", + "is-circular": "^1.0.2", + "multicodec": "^3.0.1", + "multihashing-async": "^2.0.0", + "uint8arrays": "^2.1.3" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipld-dag-cbor/node_modules/cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^3.0.0" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipld-dag-cbor/node_modules/cids/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipld-dag-cbor/node_modules/multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "@multiformats/base-x": "^4.0.1" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipld-dag-cbor/node_modules/multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + } + }, + "node_modules/ipld-dag-cbor/node_modules/multicodec/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipld-dag-cbor/node_modules/multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipld-dag-cbor/node_modules/multihashes/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipld-dag-cbor/node_modules/multihashes/node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + }, + "node_modules/ipld-dag-pb": { + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.22.3.tgz", + "integrity": "sha512-dfG5C5OVAR4FEP7Al2CrHWvAyIM7UhAQrjnOYOIxXGQz5NlEj6wGX0XQf6Ru6or1na6upvV3NQfstapQG8X2rg==", + "deprecated": "This module has been superseded by @ipld/dag-pb and multiformats", + "dev": true, + "dependencies": { + "cids": "^1.0.0", + "interface-ipld-format": "^1.0.0", + "multicodec": "^3.0.1", + "multihashing-async": "^2.0.0", + "protobufjs": "^6.10.2", + "stable": "^0.1.8", + "uint8arrays": "^2.0.5" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipld-dag-pb/node_modules/cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^3.0.0" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipld-dag-pb/node_modules/cids/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipld-dag-pb/node_modules/multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "@multiformats/base-x": "^4.0.1" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipld-dag-pb/node_modules/multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + } + }, + "node_modules/ipld-dag-pb/node_modules/multicodec/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipld-dag-pb/node_modules/multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipld-dag-pb/node_modules/multihashes/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/ipld-dag-pb/node_modules/multihashes/node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + }, + "node_modules/ipld-raw": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-7.0.1.tgz", + "integrity": "sha512-oaiy0Ot23NCnoBA7sLvPL9qFRC6JDB0IsdZL6rUeZJxzxabQuBLNGYXcqjQ8jlF0UPLEUSO+h8OJh2DZPzL2aQ==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "cids": "^1.1.6", + "interface-ipld-format": "^1.0.0", + "multicodec": "^3.0.1", + "multihashing-async": "^2.1.2" + } + }, + "node_modules/ipld-raw/node_modules/cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^3.0.0" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipld-raw/node_modules/multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "@multiformats/base-x": "^4.0.1" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipld-raw/node_modules/multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "dependencies": { + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + } + }, + "node_modules/ipld-raw/node_modules/multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipld-raw/node_modules/multihashes/node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + }, + "node_modules/ipld-raw/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, "node_modules/is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -3594,6 +4918,12 @@ "is-ci": "bin.js" } }, + "node_modules/is-circular": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-circular/-/is-circular-1.0.2.tgz", + "integrity": "sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA==", + "dev": true + }, "node_modules/is-core-module": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", @@ -3818,6 +5148,16 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, + "node_modules/iso-constants": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz", + "integrity": "sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==", + "dev": true, + "hasInstallScript": true, + "engines": { + "node": ">=10" + } + }, "node_modules/iso-random-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.0.tgz", @@ -3918,9 +5258,9 @@ } }, "node_modules/it-all": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", - "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" + "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", @@ -3931,25 +5271,35 @@ "buffer": "^6.0.3" } }, + "node_modules/it-concat": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-2.0.0.tgz", + "integrity": "sha512-jchrEB3fHlUENWkVJRmbFJ1A7gcjJDmwiolQsHhVC14DpUIbX8fgr3SOC7XNE5OoUUQNL6/RaMCPChkPemyQUw==", + "dev": true, + "dependencies": { + "bl": "^5.0.0" + } + }, "node_modules/it-drain": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz", - "integrity": "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg==" + "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.3", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz", - "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" + "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.7", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", - "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" + "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": "1.0.2", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz", - "integrity": "sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==", + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.13.tgz", + "integrity": "sha512-0Hcd5BraJUPzL28NWiFbdNrcdyNxNTKKdU3sjdFiYynNTQpwlG2UKW31X7bp+XhJwux/oPzIquo5ioztVmc2RQ==", + "dev": true, "dependencies": { "@types/minimatch": "^3.0.4", "minimatch": "^3.0.4" @@ -3965,6 +5315,12 @@ "p-defer": "^3.0.0" } }, + "node_modules/it-last": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz", + "integrity": "sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==", + "dev": true + }, "node_modules/it-length-prefixed": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-3.0.1.tgz", @@ -4014,14 +5370,14 @@ "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" }, "node_modules/it-map": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", - "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" + "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.4", - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.4.tgz", - "integrity": "sha512-DcL6GksTD2HQ7+5/q3JznXaLNfwjyG3/bObaF98da+oHfUiPmdo64oJlT9J8R8G5sJRU7thwaY5zxoAKCn7FJw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.2.tgz", + "integrity": "sha512-bp+h4X3tQ83/a2MvaeP4nRi+52z2AO2y8tf2OzDdaSXKMC0n0gVtHrJUDaE+kiIkBiUtTt1hp7vJHMM0VtCfGA==", "dependencies": { "it-pushable": "^1.4.0" } @@ -4035,15 +5391,25 @@ } }, "node_modules/it-pb-rpc": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.1.13.tgz", - "integrity": "sha512-aZ4FNJsDgNepVVTmYXgXbQabIiOQyqYWUhdfovaHDcPSM5KjegwJihJEWMJjMyj+oLSKcZl0vmHgHxXWJ9/ufw==", + "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/it-length-prefixed": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", @@ -4054,6 +5420,12 @@ "varint": "^6.0.0" } }, + "node_modules/it-peekable": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz", + "integrity": "sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ==", + "dev": true + }, "node_modules/it-pipe": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", @@ -4076,9 +5448,23 @@ } }, "node_modules/it-take": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", - "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.1.tgz", + "integrity": "sha512-6H6JAWYcyumKSpcIPLs6tHN4xnibphmyU79WQaYVCBtaBOzf4fn75wzvSH8fH8fcMlPBTWY1RlmOWleQxBt2Ug==" + }, + "node_modules/it-tar": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/it-tar/-/it-tar-3.0.0.tgz", + "integrity": "sha512-VhD1Hnx4IXDcQgYJnJgltkn+w5F8kiJaB46lqovh+YWfty2JGW7i40QQjWbSvcg1QfaU8is8AVX8xwx/Db9oOg==", + "dev": true, + "dependencies": { + "bl": "^5.0.0", + "buffer": "^6.0.3", + "iso-constants": "^0.1.2", + "it-concat": "^2.0.0", + "it-reader": "^3.0.0", + "p-defer": "^3.0.0" + } }, "node_modules/it-to-stream": { "version": "1.0.0", @@ -4720,6 +6106,12 @@ "integrity": "sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==", "dev": true }, + "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==", + "dev": true + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4837,9 +6229,9 @@ "dev": true }, "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + "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", @@ -4851,6 +6243,18 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, + "node_modules/json-text-sequence": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.3.0.tgz", + "integrity": "sha512-7khKIYPKwXQem4lWXfpIN/FEnhztCeRPSxH4qm3fVlqulwujrRDD54xAwDDn/qVKpFtV550+QAkcWJcufzqQuA==", + "dev": true, + "dependencies": { + "@sovpro/delimited-stream": "^1.1.0" + }, + "engines": { + "node": ">=10.18.0" + } + }, "node_modules/json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", @@ -4867,17 +6271,17 @@ } }, "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "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.4.0", + "json-schema": "0.2.3", "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" } }, "node_modules/keypair": { @@ -5007,10 +6411,18 @@ "node": ">=12.0.0" } }, + "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/libp2p-interfaces": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-1.3.1.tgz", - "integrity": "sha512-Bh991Nv2KT/jZ7DjPd/zqhk8cCtkHl6OWw8lyK7wBX7Aj3/ezGwjoDABJzKgt1lbvcgCeQIbzPiIbaKj4DUI4w==", + "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", @@ -5019,11 +6431,10 @@ "it-length-prefixed": "^5.0.2", "it-pipe": "^1.1.0", "it-pushable": "^1.4.2", - "libp2p-crypto": "^0.20.0", + "libp2p-crypto": "^0.19.5", "multiaddr": "^10.0.0", "multiformats": "^9.1.2", - "p-queue": "^6.6.2", - "peer-id": "^0.15.4", + "peer-id": "^0.15.0", "protobufjs": "^6.10.2", "uint8arrays": "^3.0.0" } @@ -5038,6 +6449,35 @@ "varint": "^6.0.0" } }, + "node_modules/libp2p-interfaces/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/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/libp2p-mplex": { "version": "0.10.2", "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.2.tgz", @@ -5124,13 +6564,39 @@ "p-timeout": "^4.1.0" } }, - "node_modules/libp2p/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==", + "node_modules/libp2p-websockets/node_modules/any-signal": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.0.tgz", + "integrity": "sha512-l1H1GEkGGIXVGfCtvq8N68YI7gHajmfzRdKhmb8sGyAQpLCblirLa8eB09j4uKaiwe7vodAChocUf7AT3mYq5g==" + }, + "node_modules/libp2p-websockets/node_modules/ipfs-utils": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.4.tgz", + "integrity": "sha512-cfLKk004KLoEWJhBx4zg3mCro6mkiNhyGIlT7OZX9zxO1UqvLWpvW7cSZ1b1fbUIZ8qI7X2B7PeKlXC7jSfZ7g==", "dependencies": { - "abort-controller": "^3.0.0", - "native-abort-controller": "^1.0.3" + "any-signal": "^3.0.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": "^1.0.1", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "nanoid": "^3.1.20", + "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" + } + }, + "node_modules/libp2p-websockets/node_modules/it-glob": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz", + "integrity": "sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==", + "dependencies": { + "@types/minimatch": "^3.0.4", + "minimatch": "^3.0.4" } }, "node_modules/libp2p/node_modules/it-length-prefixed": { @@ -5164,6 +6630,14 @@ "node": ">=12.0.0" } }, + "node_modules/libp2p/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/lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", @@ -5439,6 +6913,14 @@ "multiaddr": "^10.0.0" } }, + "node_modules/multiaddr/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/multibase": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/multibase/-/multibase-0.7.0.tgz", @@ -5553,6 +7035,68 @@ "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" }, + "node_modules/multihashing-async": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-2.1.4.tgz", + "integrity": "sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg==", + "dev": true, + "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": "^3.0.0" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/multihashing-async/node_modules/multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "deprecated": "This module has been superseded by the multiformats module", + "dev": true, + "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.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "dev": true, + "dependencies": { + "multibase": "^4.0.1", + "uint8arrays": "^3.0.0", + "varint": "^5.0.2" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/multihashing-async/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==", + "dev": true, + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/multihashing-async/node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + }, "node_modules/multistream-select": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/multistream-select/-/multistream-select-2.0.1.tgz", @@ -5580,6 +7124,23 @@ "varint": "^6.0.0" } }, + "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/murmurhash3js-revisited": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", + "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==", + "dev": true, + "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", @@ -5628,9 +7189,9 @@ } }, "node_modules/native-abort-controller": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz", - "integrity": "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==", + "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": "*" } @@ -6013,6 +7574,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, "engines": { "node": ">=4" } @@ -6043,32 +7605,6 @@ "node": ">=8" } }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-queue/node_modules/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==", - "dependencies": { - "p-finally": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/p-reflect": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", @@ -6135,6 +7671,12 @@ "node": ">=6" } }, + "node_modules/parse-duration": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.2.tgz", + "integrity": "sha512-Dg27N6mfok+ow1a2rj/nRjtCfaKrHUZV2SJpEn/s8GaVUSlf4GGRCRP1c13Hj+wfPKVMrFDqLMLITkYKgKxyyg==", + "dev": true + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -6219,6 +7761,14 @@ "node": ">=14.0.0" } }, + "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/pem-jwk": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz", @@ -6387,9 +7937,9 @@ } }, "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "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" } @@ -7373,9 +8923,9 @@ "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" }, "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "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", @@ -7387,15 +8937,16 @@ "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/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, "node_modules/stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", @@ -7920,9 +9471,10 @@ } }, "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==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", + "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", + "dev": true, "dependencies": { "multiformats": "^9.4.2" } @@ -8854,6 +10406,14 @@ "uint8arrays": "^3.0.0", "ursa-optional": "^0.10.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" + } } } }, @@ -8867,6 +10427,49 @@ "minimist": "^1.2.0" } }, + "@fluencelabs/aqua": { + "version": "0.5.3-258", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua/-/aqua-0.5.3-258.tgz", + "integrity": "sha512-OM//lyc+xzvvm73/LD8ZoFmcvfNH/Ks/oRrHVAy40B3DwmXh1Y1YsaCYnzzC7Banc5ckW2JZDQsV1kZk+6pT3A==", + "dev": true, + "requires": { + "@fluencelabs/aqua-ipfs": "0.5.2", + "@fluencelabs/aqua-lib": "0.3.2", + "@fluencelabs/fluence": "0.18.0", + "ipfs-http-client": "50.1.2" + }, + "dependencies": { + "@fluencelabs/aqua-lib": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.3.2.tgz", + "integrity": "sha512-8+NKFwRg9SFzpbac1SvvTWcOgHhMoYZwRyb93qJRcNFaN7xjRcA8v0i6CF7Mkjno1zH3xixC9J44+LKQd8uvzA==", + "dev": true + } + } + }, + "@fluencelabs/aqua-ipfs": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-ipfs/-/aqua-ipfs-0.5.2.tgz", + "integrity": "sha512-vSZYH6mjCGly7Cifts1c84icAzeq6pQf3aspEW3ttA0AFVQTjDWlr86Imseg+p3I9oaNUykv/W+VqWX1ouj9Vg==", + "dev": true, + "requires": { + "@fluencelabs/aqua-lib": "^0.1.14" + }, + "dependencies": { + "@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/aqua-lib": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@fluencelabs/aqua-lib/-/aqua-lib-0.3.4.tgz", + "integrity": "sha512-DH7TZgflTJDxK18URlELnHI65jYtZf7b5e25gjRL9AiT/nvdodQqSvCcdVKK/jvhPy9q3RXM/rOcHfqh5mmpSQ==", + "dev": true + }, "@fluencelabs/avm": { "version": "0.20.0", "resolved": "https://registry.npmjs.org/@fluencelabs/avm/-/avm-0.20.0.tgz", @@ -8887,6 +10490,286 @@ "resolved": "https://registry.npmjs.org/@fluencelabs/avm-runner-interface/-/avm-runner-interface-0.2.0.tgz", "integrity": "sha512-Y41pL+UwZZVdormxju8cJQsNRp6tdER0VqJ9Kg9gH2wd1KJAaYTJkyVbn8NB7fEFRUbqfbb1BXHi9wWBYOgGYQ==" }, + "@fluencelabs/fluence": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@fluencelabs/fluence/-/fluence-0.18.0.tgz", + "integrity": "sha512-YmDgpyu3ffFYkWrzILyfJH8hvca11QpeY0TZiN0ptHTRGxOeFThw5Ikcf68kErPTT7OQUhsjSKHGHT0Yopb3mg==", + "dev": true, + "requires": { + "@chainsafe/libp2p-noise": "4.0.0", + "@fluencelabs/avm": "0.20.0", + "@fluencelabs/avm-runner-background": "0.1.2", + "@fluencelabs/avm-runner-interface": "^0.2.0", + "async": "3.2.0", + "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", + "rxjs": "^7.3.0", + "ts-pattern": "^3.3.3", + "uuid": "8.3.0" + }, + "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==", + "dev": true, + "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": { + "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==", + "dev": true, + "requires": { + "bl": "^5.0.0", + "buffer": "^6.0.3", + "varint": "^6.0.0" + } + } + } + }, + "es6-promisify": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz", + "integrity": "sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==", + "dev": true + }, + "interface-datastore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-5.2.0.tgz", + "integrity": "sha512-nthO4C4BMJM2j9x/mT2KFa/g/sbcY8yf9j/kOBgli3u5mq9ZdPvQyDxi0OhKzr4JmoM81OYh5xcFjyebquqwvA==", + "dev": true, + "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": { + "uint8arrays": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", + "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "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==", + "dev": true + }, + "libp2p": { + "version": "0.32.3", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-0.32.3.tgz", + "integrity": "sha512-FD1cweUmWgI510JIRfr80yCD/SugAawZPUQXPKPtOtaFeAynpEj7DEIE6iiVpc6Ed56nnyUivVikY7C8L50f9g==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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-websockets": { + "version": "0.16.1", + "resolved": "https://registry.npmjs.org/libp2p-websockets/-/libp2p-websockets-0.16.1.tgz", + "integrity": "sha512-HXaCdlAkG5RDZCehEnkoVzQjT1C6NIaCKLERkkZ1ArKG77K7Y7uy+8y81uNZhy4OLQ8jGUMyOvKnjw6EjKJPmw==", + "dev": true, + "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" + } + }, + "multiaddr": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-10.0.0.tgz", + "integrity": "sha512-yP3LzFkM0GORZHNenS8Ok2spsaICRBhxLEohAfKKwwrgHIEWrDUhMRIkh/MONDBThNqaiGl7Ch1H7qblRDNHyg==", + "dev": true, + "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" + } + }, + "peer-id": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.3.tgz", + "integrity": "sha512-pass5tk6Fbaz7PTD/3fJg2KWqaproHY0B0Ki8GQMEuMjkoLRcS2Vqt9yy6ob/+8uGBmWjRLtbMhaLV4HTyMDfw==", + "dev": true, + "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==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + } + } + } + } + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -9111,6 +10994,12 @@ "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==", + "dev": true + }, "@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -9183,6 +11072,12 @@ "@sinonjs/commons": "^1.7.0" } }, + "@sovpro/delimited-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sovpro/delimited-stream/-/delimited-stream-1.1.0.tgz", + "integrity": "sha512-kQpk267uxB19X3X2T1mvNMjyvIEonpNSHrMlK5ZaBU6aZxw7wPbpgKJOjHN3+/GPVpXgAV9soVT2oyHpLkLtyw==", + "dev": true + }, "@stablelib/aead": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", @@ -9472,9 +11367,9 @@ } }, "abortable-iterator": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz", - "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==", + "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" } @@ -9571,9 +11466,13 @@ } }, "any-signal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.0.tgz", - "integrity": "sha512-l1H1GEkGGIXVGfCtvq8N68YI7gHajmfzRdKhmb8sGyAQpLCblirLa8eB09j4uKaiwe7vodAChocUf7AT3mYq5g==" + "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" + } }, "anymatch": { "version": "3.1.2", @@ -9627,9 +11526,9 @@ "dev": true }, "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "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" } @@ -9857,11 +11756,41 @@ "readable-stream": "^3.4.0" } }, + "blakejs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz", + "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg==", + "dev": true + }, + "blob-to-it": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.4.tgz", + "integrity": "sha512-iCmk0W4NdbrWgRRuxOriU8aM5ijeVLI61Zulsmg/lUHNr7pYjoj+U77opLefNagevtrrbMt3JQ5Qip7ar178kA==", + "dev": true, + "requires": { + "browser-readablestream-to-it": "^1.0.3" + } + }, "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==" }, + "borc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/borc/-/borc-3.0.0.tgz", + "integrity": "sha512-ec4JmVC46kE0+layfnwM3l15O70MlFiEbmQHY/vpqIKiUtPVntv4BY4NVnz3N4vb21edV3mY97XVckFvYHWF9g==", + "dev": true, + "requires": { + "bignumber.js": "^9.0.0", + "buffer": "^6.0.3", + "commander": "^2.15.0", + "ieee754": "^1.1.13", + "iso-url": "^1.1.5", + "json-text-sequence": "~0.3.0", + "readable-stream": "^3.6.0" + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -9896,6 +11825,12 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, + "browser-readablestream-to-it": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.3.tgz", + "integrity": "sha512-+12sHB+Br8HIh6VAMVEG5r3UXCyESIgDW7kzk3BjIXa43DVqVwL7GC5TW3jeh+72dtcH99pPVpw0X8i0jt+/kw==", + "dev": true + }, "browserslist": { "version": "4.16.8", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.8.tgz", @@ -10144,6 +12079,12 @@ "delayed-stream": "~1.0.0" } }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -10510,11 +12451,6 @@ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, "events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -10798,13 +12734,6 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -11124,6 +13053,88 @@ "interface-store": "^2.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" + } + } + } + }, + "interface-ipld-format": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/interface-ipld-format/-/interface-ipld-format-1.0.1.tgz", + "integrity": "sha512-WV/ar+KQJVoQpqRDYdo7YPGYIUHJxCuOEhdvsRpzLqoOIVCqPKdMMYmsLL1nCRsF3yYNio+PAJbCKiv6drrEAg==", + "dev": true, + "requires": { + "cids": "^1.1.6", + "multicodec": "^3.0.1", + "multihashes": "^4.0.2" + }, + "dependencies": { + "cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "dev": true, + "requires": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^3.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==", + "dev": true, + "requires": { + "@multiformats/base-x": "^4.0.1" + } + }, + "multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "dev": true, + "requires": { + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + } + }, + "multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "dev": true, + "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==", + "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==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + } } }, "interface-store": { @@ -11152,27 +13163,789 @@ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" }, - "ipfs-utils": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.4.tgz", - "integrity": "sha512-cfLKk004KLoEWJhBx4zg3mCro6mkiNhyGIlT7OZX9zxO1UqvLWpvW7cSZ1b1fbUIZ8qI7X2B7PeKlXC7jSfZ7g==", + "ipfs-core-types": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.5.2.tgz", + "integrity": "sha512-DOQeL+GFGYMTlnbdtMeBzvfVnyAalSgCfPr8XUCI+FVBZZWwzkt5jZZzGDmF87HVRrMR3FuVyBKZj772mcXKyQ==", + "dev": true, "requires": { - "any-signal": "^3.0.0", + "cids": "^1.1.6", + "interface-datastore": "^4.0.0", + "ipld-block": "^0.11.1", + "multiaddr": "^9.0.1", + "multibase": "^4.0.2" + }, + "dependencies": { + "cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "dev": true, + "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==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "interface-datastore": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-4.0.2.tgz", + "integrity": "sha512-/XRmD7oagZMTaK25rV3WFrejLoUwxZcpgE+eNyZNYvb2jlB5P3MwJCIbetJSlVYK7yvaFmJi8s3f9VLcxJjdog==", + "dev": true, + "requires": { + "err-code": "^3.0.1", + "interface-store": "^0.0.2", + "ipfs-utils": "^8.1.2", + "iso-random-stream": "^2.0.0", + "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": "^2.1.5" + } + }, + "interface-store": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-0.0.2.tgz", + "integrity": "sha512-t4c9GKXH1Vi/WxmppGyIi6iedbGo92YmLneopHmbIEIp27ep7VnrYGA6lM/rLsFo5Tj6TJgIqr3FOk8mvPgIWQ==", + "dev": true + }, + "multiaddr": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", + "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", + "dev": true, + "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==", + "dev": true, + "requires": { + "@multiformats/base-x": "^4.0.1" + } + }, + "multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + } + } + } + } + }, + "ipfs-core-utils": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.8.3.tgz", + "integrity": "sha512-PY7PkCgCtVYtNOe1C3ew1+5D9NqXqizb886R/lyGWe+KsmWtBQkQIk0ZIDwKyHGvG2KA2QQeIDzdOmzBQBJtHQ==", + "dev": true, + "requires": { + "any-signal": "^2.1.2", + "blob-to-it": "^1.0.1", + "browser-readablestream-to-it": "^1.0.1", + "cids": "^1.1.6", + "err-code": "^3.0.1", + "ipfs-core-types": "^0.5.2", + "ipfs-unixfs": "^4.0.3", + "ipfs-utils": "^8.1.2", + "it-all": "^1.0.4", + "it-map": "^1.0.4", + "it-peekable": "^1.0.1", + "multiaddr": "^9.0.1", + "multiaddr-to-uri": "^7.0.0", + "parse-duration": "^1.0.0", + "timeout-abort-controller": "^1.1.1", + "uint8arrays": "^2.1.3" + }, + "dependencies": { + "cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "dev": true, + "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==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "multiaddr": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", + "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", + "dev": true, + "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" + } + }, + "multiaddr-to-uri": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-7.0.0.tgz", + "integrity": "sha512-VbscDpLcbV0m25tJqfnZSfbjVUuNlPa4BbD5l/7me1t0lc3SWI0XAoO5E/PNJF0e1qUlbdq7yjVFEQjUT+9r0g==", + "dev": true, + "requires": { + "multiaddr": "^9.0.1" + } + }, + "multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "dev": true, + "requires": { + "@multiformats/base-x": "^4.0.1" + } + }, + "multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + } + } + } + } + }, + "ipfs-http-client": { + "version": "50.1.2", + "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-50.1.2.tgz", + "integrity": "sha512-ZbJlED4wqwFXQFVB9FQDs20ygdq7O/zSq4AvO9KRAmkqUj2TsCWCteUz2fBMnGWLh2tExxeSl/rQbHbJptb8JQ==", + "dev": true, + "requires": { + "abort-controller": "^3.0.0", + "any-signal": "^2.1.2", + "cids": "^1.1.6", + "debug": "^4.1.1", + "form-data": "^4.0.0", + "ipfs-core-types": "^0.5.2", + "ipfs-core-utils": "^0.8.3", + "ipfs-unixfs": "^4.0.3", + "ipfs-utils": "^8.1.2", + "ipld-block": "^0.11.0", + "ipld-dag-cbor": "^1.0.0", + "ipld-dag-pb": "^0.22.1", + "ipld-raw": "^7.0.0", + "it-last": "^1.0.4", + "it-map": "^1.0.4", + "it-tar": "^3.0.0", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "multiaddr": "^9.0.1", + "multibase": "^4.0.2", + "multicodec": "^3.0.1", + "multihashes": "^4.0.2", + "nanoid": "^3.1.12", + "native-abort-controller": "^1.0.3", + "parse-duration": "^1.0.0", + "stream-to-it": "^0.2.2", + "uint8arrays": "^2.1.3" + }, + "dependencies": { + "cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "dev": true, + "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==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "multiaddr": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-9.0.2.tgz", + "integrity": "sha512-YFaEb9t4yXSbaGksSEdg+Kn2U02s7w4wXUgyEMQmPxFJj7CfVHY10WOsScAX/rK6Soa15S1zXYadqH9TtlVreQ==", + "dev": true, + "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==", + "dev": true, + "requires": { + "@multiformats/base-x": "^4.0.1" + } + }, + "multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + } + } + } + } + }, + "ipfs-unixfs": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-4.0.3.tgz", + "integrity": "sha512-hzJ3X4vlKT8FQ3Xc4M1szaFVjsc1ZydN+E4VQ91aXxfpjFn9G2wsMo1EFdAXNq/BUnN5dgqIOMP5zRYr3DTsAw==", + "dev": true, + "requires": { + "err-code": "^3.0.1", + "protobufjs": "^6.10.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==", + "dev": true, + "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": "^1.0.1", + "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" } }, + "ipld-block": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/ipld-block/-/ipld-block-0.11.1.tgz", + "integrity": "sha512-sDqqLqD5qh4QzGq6ssxLHUCnH4emCf/8F8IwjQM2cjEEIEHMUj57XhNYgmGbemdYPznUhffxFGEHsruh5+HQRw==", + "dev": true, + "requires": { + "cids": "^1.0.0" + }, + "dependencies": { + "cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "dev": true, + "requires": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^3.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==", + "dev": true, + "requires": { + "@multiformats/base-x": "^4.0.1" + } + }, + "multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "dev": true, + "requires": { + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + } + }, + "multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "dev": true, + "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==", + "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==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "ipld-dag-cbor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-1.0.1.tgz", + "integrity": "sha512-PZh8rHnRETX5bj60i73W2oq6BXoZnIvYCBDwIffYVJgxMr7BEVd5PycAARBiT6daORJ/4zbqEFR5CcrjeCtm/A==", + "dev": true, + "requires": { + "borc": "^3.0.0", + "cids": "^1.0.0", + "interface-ipld-format": "^1.0.0", + "is-circular": "^1.0.2", + "multicodec": "^3.0.1", + "multihashing-async": "^2.0.0", + "uint8arrays": "^2.1.3" + }, + "dependencies": { + "cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "dev": true, + "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==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "dev": true, + "requires": { + "@multiformats/base-x": "^4.0.1" + } + }, + "multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + } + } + } + } + }, + "ipld-dag-pb": { + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.22.3.tgz", + "integrity": "sha512-dfG5C5OVAR4FEP7Al2CrHWvAyIM7UhAQrjnOYOIxXGQz5NlEj6wGX0XQf6Ru6or1na6upvV3NQfstapQG8X2rg==", + "dev": true, + "requires": { + "cids": "^1.0.0", + "interface-ipld-format": "^1.0.0", + "multicodec": "^3.0.1", + "multihashing-async": "^2.0.0", + "protobufjs": "^6.10.2", + "stable": "^0.1.8", + "uint8arrays": "^2.0.5" + }, + "dependencies": { + "cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "dev": true, + "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==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, + "multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "dev": true, + "requires": { + "@multiformats/base-x": "^4.0.1" + } + }, + "multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + } + } + } + } + }, + "ipld-raw": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-7.0.1.tgz", + "integrity": "sha512-oaiy0Ot23NCnoBA7sLvPL9qFRC6JDB0IsdZL6rUeZJxzxabQuBLNGYXcqjQ8jlF0UPLEUSO+h8OJh2DZPzL2aQ==", + "dev": true, + "requires": { + "cids": "^1.1.6", + "interface-ipld-format": "^1.0.0", + "multicodec": "^3.0.1", + "multihashing-async": "^2.1.2" + }, + "dependencies": { + "cids": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.9.tgz", + "integrity": "sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg==", + "dev": true, + "requires": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^3.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==", + "dev": true, + "requires": { + "@multiformats/base-x": "^4.0.1" + } + }, + "multicodec": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.2.1.tgz", + "integrity": "sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw==", + "dev": true, + "requires": { + "uint8arrays": "^3.0.0", + "varint": "^6.0.0" + } + }, + "multihashes": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.3.tgz", + "integrity": "sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA==", + "dev": true, + "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==", + "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==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + } + } + }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -11219,6 +13992,12 @@ "ci-info": "^2.0.0" } }, + "is-circular": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-circular/-/is-circular-1.0.2.tgz", + "integrity": "sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA==", + "dev": true + }, "is-core-module": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", @@ -11384,6 +14163,12 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, + "iso-constants": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz", + "integrity": "sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==", + "dev": true + }, "iso-random-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-2.0.0.tgz", @@ -11460,9 +14245,9 @@ } }, "it-all": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.6.tgz", - "integrity": "sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A==" + "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", @@ -11473,25 +14258,35 @@ "buffer": "^6.0.3" } }, + "it-concat": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-2.0.0.tgz", + "integrity": "sha512-jchrEB3fHlUENWkVJRmbFJ1A7gcjJDmwiolQsHhVC14DpUIbX8fgr3SOC7XNE5OoUUQNL6/RaMCPChkPemyQUw==", + "dev": true, + "requires": { + "bl": "^5.0.0" + } + }, "it-drain": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-1.0.5.tgz", - "integrity": "sha512-r/GjkiW1bZswC04TNmUnLxa6uovme7KKwPhc+cb1hHU65E3AByypHH6Pm91WHuvqfFsm+9ws0kPtDBV3/8vmIg==" + "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.3", - "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-1.0.3.tgz", - "integrity": "sha512-EI3HpzUrKjTH01miLHWmhNWy3Xpbx4OXMXltgrNprL5lDpF3giVpHIouFpr5l+evXw6aOfxhnt01BIB+4VQA+w==" + "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.7", - "resolved": "https://registry.npmjs.org/it-first/-/it-first-1.0.7.tgz", - "integrity": "sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g==" + "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": "1.0.2", - "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz", - "integrity": "sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==", + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.13.tgz", + "integrity": "sha512-0Hcd5BraJUPzL28NWiFbdNrcdyNxNTKKdU3sjdFiYynNTQpwlG2UKW31X7bp+XhJwux/oPzIquo5ioztVmc2RQ==", + "dev": true, "requires": { "@types/minimatch": "^3.0.4", "minimatch": "^3.0.4" @@ -11507,6 +14302,12 @@ "p-defer": "^3.0.0" } }, + "it-last": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.6.tgz", + "integrity": "sha512-aFGeibeiX/lM4bX3JY0OkVCFkAw8+n9lkukkLNivbJRvNz8lI3YXv5xcqhFUV2lDJiraEK3OXRDbGuevnnR67Q==", + "dev": true + }, "it-length-prefixed": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-3.0.1.tgz", @@ -11544,14 +14345,14 @@ } }, "it-map": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.6.tgz", - "integrity": "sha512-XT4/RM6UHIFG9IobGlQPFQUrlEKkU4eBUFG3qhWhfAdh1JfF2x11ShCrKCdmZ0OiZppPfoLuzcfA4cey6q3UAQ==" + "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.4", - "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.4.tgz", - "integrity": "sha512-DcL6GksTD2HQ7+5/q3JznXaLNfwjyG3/bObaF98da+oHfUiPmdo64oJlT9J8R8G5sJRU7thwaY5zxoAKCn7FJw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-1.0.2.tgz", + "integrity": "sha512-bp+h4X3tQ83/a2MvaeP4nRi+52z2AO2y8tf2OzDdaSXKMC0n0gVtHrJUDaE+kiIkBiUtTt1hp7vJHMM0VtCfGA==", "requires": { "it-pushable": "^1.4.0" } @@ -11565,15 +14366,25 @@ } }, "it-pb-rpc": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/it-pb-rpc/-/it-pb-rpc-0.1.13.tgz", - "integrity": "sha512-aZ4FNJsDgNepVVTmYXgXbQabIiOQyqYWUhdfovaHDcPSM5KjegwJihJEWMJjMyj+oLSKcZl0vmHgHxXWJ9/ufw==", + "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" + } + }, "it-length-prefixed": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", @@ -11586,6 +14397,12 @@ } } }, + "it-peekable": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.3.tgz", + "integrity": "sha512-5+8zemFS+wSfIkSZyf0Zh5kNN+iGyccN02914BY4w/Dj+uoFEoPSvj5vaWn8pNZJNSxzjW0zHRxC3LUb2KWJTQ==", + "dev": true + }, "it-pipe": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-1.1.0.tgz", @@ -11608,9 +14425,23 @@ } }, "it-take": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.2.tgz", - "integrity": "sha512-u7I6qhhxH7pSevcYNaMECtkvZW365ARqAIt9K+xjdK1B2WUDEjQSfETkOCT8bxFq/59LqrN3cMLUtTgmDBaygw==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/it-take/-/it-take-1.0.1.tgz", + "integrity": "sha512-6H6JAWYcyumKSpcIPLs6tHN4xnibphmyU79WQaYVCBtaBOzf4fn75wzvSH8fH8fcMlPBTWY1RlmOWleQxBt2Ug==" + }, + "it-tar": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/it-tar/-/it-tar-3.0.0.tgz", + "integrity": "sha512-VhD1Hnx4IXDcQgYJnJgltkn+w5F8kiJaB46lqovh+YWfty2JGW7i40QQjWbSvcg1QfaU8is8AVX8xwx/Db9oOg==", + "dev": true, + "requires": { + "bl": "^5.0.0", + "buffer": "^6.0.3", + "iso-constants": "^0.1.2", + "it-concat": "^2.0.0", + "it-reader": "^3.0.0", + "p-defer": "^3.0.0" + } }, "it-to-stream": { "version": "1.0.0", @@ -12123,6 +14954,12 @@ "integrity": "sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==", "dev": true }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -12216,9 +15053,9 @@ "dev": true }, "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + "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", @@ -12230,6 +15067,15 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, + "json-text-sequence": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.3.0.tgz", + "integrity": "sha512-7khKIYPKwXQem4lWXfpIN/FEnhztCeRPSxH4qm3fVlqulwujrRDD54xAwDDn/qVKpFtV550+QAkcWJcufzqQuA==", + "dev": true, + "requires": { + "@sovpro/delimited-stream": "^1.1.0" + } + }, "json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", @@ -12240,13 +15086,13 @@ } }, "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "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.4.0", + "json-schema": "0.2.3", "verror": "1.10.0" } }, @@ -12341,15 +15187,6 @@ "xsalsa20": "^1.1.0" }, "dependencies": { - "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" - } - }, "it-length-prefixed": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-5.0.3.tgz", @@ -12377,6 +15214,14 @@ "uint8arrays": "^3.0.0", "ursa-optional": "^0.10.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" + } } } }, @@ -12396,12 +15241,22 @@ "protobufjs": "^6.11.2", "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.3.1", - "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-1.3.1.tgz", - "integrity": "sha512-Bh991Nv2KT/jZ7DjPd/zqhk8cCtkHl6OWw8lyK7wBX7Aj3/ezGwjoDABJzKgt1lbvcgCeQIbzPiIbaKj4DUI4w==", + "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", @@ -12410,11 +15265,10 @@ "it-length-prefixed": "^5.0.2", "it-pipe": "^1.1.0", "it-pushable": "^1.4.2", - "libp2p-crypto": "^0.20.0", + "libp2p-crypto": "^0.19.5", "multiaddr": "^10.0.0", "multiformats": "^9.1.2", - "p-queue": "^6.6.2", - "peer-id": "^0.15.4", + "peer-id": "^0.15.0", "protobufjs": "^6.10.2", "uint8arrays": "^3.0.0" }, @@ -12428,6 +15282,32 @@ "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" + } + }, + "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" + } } } }, @@ -12503,6 +15383,43 @@ "multiaddr-to-uri": "^8.0.0", "p-defer": "^3.0.0", "p-timeout": "^4.1.0" + }, + "dependencies": { + "any-signal": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-3.0.0.tgz", + "integrity": "sha512-l1H1GEkGGIXVGfCtvq8N68YI7gHajmfzRdKhmb8sGyAQpLCblirLa8eB09j4uKaiwe7vodAChocUf7AT3mYq5g==" + }, + "ipfs-utils": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-9.0.4.tgz", + "integrity": "sha512-cfLKk004KLoEWJhBx4zg3mCro6mkiNhyGIlT7OZX9zxO1UqvLWpvW7cSZ1b1fbUIZ8qI7X2B7PeKlXC7jSfZ7g==", + "requires": { + "any-signal": "^3.0.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": "^1.0.1", + "it-to-stream": "^1.0.0", + "merge-options": "^3.0.4", + "nanoid": "^3.1.20", + "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-glob": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-1.0.2.tgz", + "integrity": "sha512-Ch2Dzhw4URfB9L/0ZHyY+uqOnKvBNeS/SMcRiPmJfpHiM0TsUZn+GkpcZxAoF3dJVdPm/PuIk3A4wlV7SUo23Q==", + "requires": { + "@types/minimatch": "^3.0.4", + "minimatch": "^3.0.4" + } + } } }, "lines-and-columns": { @@ -12711,6 +15628,16 @@ "multiformats": "^9.4.5", "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" + } + } } }, "multiaddr-to-uri": { @@ -12797,6 +15724,57 @@ } } }, + "multihashing-async": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-2.1.4.tgz", + "integrity": "sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg==", + "dev": true, + "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": { + "multibase": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", + "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "requires": { + "multiformats": "^9.4.2" + } + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==", + "dev": true + } + } + }, "multistream-select": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/multistream-select/-/multistream-select-2.0.1.tgz", @@ -12823,9 +15801,23 @@ "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" + } } } }, + "murmurhash3js-revisited": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", + "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==", + "dev": true + }, "mutable-proxy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/mutable-proxy/-/mutable-proxy-1.0.0.tgz", @@ -12861,9 +15853,9 @@ } }, "native-abort-controller": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.4.tgz", - "integrity": "sha512-zp8yev7nxczDJMoP6pDxyD20IU0T22eX8VwN2ztDccKvSZhRaV33yP1BGwKSZfXuqWUzsXopVFjBdau9OOAwMQ==", + "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": { @@ -13168,7 +16160,8 @@ "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true }, "p-limit": { "version": "2.3.0", @@ -13187,25 +16180,6 @@ "p-limit": "^2.2.0" } }, - "p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "requires": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" - }, - "dependencies": { - "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-reflect": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", @@ -13248,6 +16222,12 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, + "parse-duration": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-1.0.2.tgz", + "integrity": "sha512-Dg27N6mfok+ow1a2rj/nRjtCfaKrHUZV2SJpEn/s8GaVUSlf4GGRCRP1c13Hj+wfPKVMrFDqLMLITkYKgKxyyg==", + "dev": true + }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -13306,6 +16286,16 @@ "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" + } + } } }, "pem-jwk": { @@ -13435,9 +16425,9 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "react-is": { "version": "17.0.2", @@ -14236,9 +17226,9 @@ "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" }, "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "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", @@ -14251,6 +17241,12 @@ "tweetnacl": "~0.14.0" } }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, "stack-utils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", @@ -14655,9 +17651,10 @@ "optional": true }, "uint8arrays": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.0.0.tgz", - "integrity": "sha512-HRCx0q6O9Bfbp+HHSfQQKD7wU70+lydKVt4EghkdOvlK/NlrF90z+eXV34mUd48rNvVJXwkrMSPpCATkct8fJA==", + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.10.tgz", + "integrity": "sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A==", + "dev": true, "requires": { "multiformats": "^9.4.2" } diff --git a/package.json b/package.json index 3d1a6742..b709fb63 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,9 @@ "main": "./dist/index.js", "typings": "./dist/index.d.ts", "scripts": { + "compile-aqua": "npm run compile-aqua:src && npm run compile-aqua:test", + "compile-aqua:src": "aqua -i ./aqua/src/ -o ./src/internal/_aqua", + "compile-aqua:test": "aqua -i ./aqua/tests/ -o ./src/__test__/_aqua", "test": "jest --watch", "test:all": "jest", "test:unit": "jest --testPathPattern=src/__test__/unit", @@ -40,6 +43,8 @@ "uuid": "8.3.0" }, "devDependencies": { + "@fluencelabs/aqua": "^0.5.3-258", + "@fluencelabs/aqua-lib": "^0.3.4", "@types/jest": "^26.0.22", "jest": "^26.6.3", "js-base64": "^3.7.2", diff --git a/src/__test__/_aqua/sig-tests.ts b/src/__test__/_aqua/sig-tests.ts new file mode 100644 index 00000000..6c449cc7 --- /dev/null +++ b/src/__test__/_aqua/sig-tests.ts @@ -0,0 +1,161 @@ +/** + * + * 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.5.3-258 + * + */ +import { Fluence, FluencePeer } from '../../'; +import { CallParams, callFunction, registerService } from '../../internal/compilerSupport/v2'; + +// Services + +export interface DataProviderDef { + provide_data: (callParams: CallParams) => number[] | Promise; +} +export function registerDataProvider(service: DataProviderDef): void; +export function registerDataProvider(serviceId: string, service: DataProviderDef): void; +export function registerDataProvider(peer: FluencePeer, service: DataProviderDef): void; +export function registerDataProvider(peer: FluencePeer, serviceId: string, service: DataProviderDef): void; + +export function registerDataProvider(...args: any) { + registerService(args, { + defaultServiceId: 'data', + functions: [ + { + functionName: 'provide_data', + argDefs: [], + returnType: { + tag: 'primitive', + }, + }, + ], + }); +} + +export interface SigDef { + get_pub_key: (callParams: CallParams) => string | Promise; + sign: ( + data: number[], + callParams: CallParams<'data'>, + ) => + | { error: string | null; signature: number[] | null; success: boolean } + | Promise<{ error: string | null; signature: number[] | null; success: boolean }>; + verify: ( + signature: number[], + data: number[], + callParams: CallParams<'signature' | 'data'>, + ) => boolean | Promise; +} +export function registerSig(service: SigDef): void; +export function registerSig(serviceId: string, service: SigDef): void; +export function registerSig(peer: FluencePeer, service: SigDef): void; +export function registerSig(peer: FluencePeer, serviceId: string, service: SigDef): void; + +export function registerSig(...args: any) { + registerService(args, { + defaultServiceId: 'sig', + functions: [ + { + functionName: 'get_pub_key', + argDefs: [], + returnType: { + tag: 'primitive', + }, + }, + { + functionName: 'sign', + argDefs: [ + { + name: 'data', + argType: { + tag: 'primitive', + }, + }, + ], + returnType: { + tag: 'primitive', + }, + }, + { + functionName: 'verify', + argDefs: [ + { + name: 'signature', + argType: { + tag: 'primitive', + }, + }, + { + name: 'data', + argType: { + tag: 'primitive', + }, + }, + ], + returnType: { + tag: 'primitive', + }, + }, + ], + }); +} + +// Functions + +export type CallSigResult = { error: string | null; signature: number[] | null; success: boolean }; +export function callSig(sigId: string, config?: { ttl?: number }): Promise; + +export function callSig(peer: FluencePeer, sigId: string, config?: { ttl?: number }): Promise; + +export function callSig(...args: any) { + let script = ` + (xor + (seq + (seq + (seq + (seq + (call %init_peer_id% ("getDataSrv" "-relay-") [] -relay-) + (call %init_peer_id% ("getDataSrv" "sigId") [] sigId) + ) + (call %init_peer_id% ("data" "provide_data") [] data) + ) + (call %init_peer_id% (sigId "sign") [data] signature) + ) + (xor + (call %init_peer_id% ("callbackSrv" "response") [signature]) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 1]) + ) + ) + (call %init_peer_id% ("errorHandlingSrv" "error") [%last_error% 2]) + ) + `; + return callFunction( + args, + { + functionName: 'callSig', + returnType: { + tag: 'primitive', + }, + argDefs: [ + { + name: 'sigId', + argType: { + tag: 'primitive', + }, + }, + ], + names: { + relay: '-relay-', + getDataSrv: 'getDataSrv', + callbackSrv: 'callbackSrv', + responseSrv: 'callbackSrv', + responseFnName: 'response', + errorHandlingSrv: 'errorHandlingSrv', + errorFnName: 'error', + }, + }, + script, + ); +} diff --git a/src/__test__/integration/sigService.spec.ts b/src/__test__/integration/sigService.spec.ts new file mode 100644 index 00000000..b02aee9c --- /dev/null +++ b/src/__test__/integration/sigService.spec.ts @@ -0,0 +1,87 @@ +import { Fluence, FluencePeer, KeyPair, setLogLevel } from '../../index'; +import { allowServiceFn, Sig } from '../../services'; +import { registerSig, registerDataProvider, callSig } from '../_aqua/sig-tests'; + +let peer: FluencePeer; + +describe('Sig service test suite', () => { + afterEach(async () => { + if (peer) { + await peer.stop(); + } + }); + + beforeEach(async () => { + peer = new FluencePeer(); + await peer.start(); + }); + + it('Use custom sig service, success path', async () => { + const customKeyPair = await KeyPair.randomEd25519(); + const customSig = new Sig(customKeyPair); + const data = [1, 2, 3, 4, 5]; + + registerSig(peer, 'CustomSig', customSig); + + registerDataProvider(peer, { + provide_data: () => { + return data; + }, + }); + + customSig.securityGuard = allowServiceFn('data', 'provide_data'); + + const result = await callSig(peer, 'CustomSig'); + + expect(result.success).toBe(true); + const isSigCorrect = await customSig.verify(result.signature, data); + expect(isSigCorrect).toBe(true); + }); + + it('Use custom sig service, fail path', async () => { + const customKeyPair = await KeyPair.randomEd25519(); + const customSig = new Sig(customKeyPair); + const data = [1, 2, 3, 4, 5]; + + registerSig(peer, 'CustomSig', customSig); + + registerDataProvider(peer, { + provide_data: () => { + return data; + }, + }); + + customSig.securityGuard = allowServiceFn('wrong', 'wrong'); + + const result = await callSig(peer, 'CustomSig'); + }); + + it('Default sig service should be resolvable by peer id', async () => { + const sig = peer.getServices().sig; + + const data = [1, 2, 3, 4, 5]; + registerDataProvider(peer, { + provide_data: () => { + return data; + }, + }); + + const callAsSigRes = await callSig(peer, 'sig'); + const callAsPeerIdRes = await callSig(peer, peer.getStatus().peerId); + + expect(callAsSigRes.success).toBe(false); + expect(callAsPeerIdRes.success).toBe(false); + + sig.securityGuard = () => true; + + const callAsSigResAfterGuardChange = await callSig(peer, 'sig'); + const callAsPeerIdResAfterGuardChange = await callSig(peer, peer.getStatus().peerId); + + expect(callAsSigResAfterGuardChange.success).toBe(true); + expect(callAsPeerIdResAfterGuardChange.success).toBe(true); + + const isValid = await sig.verify(callAsSigResAfterGuardChange.signature, data); + + expect(isValid).toBe(true); + }); +}); diff --git a/src/__test__/unit/builtInHandler.spec.ts b/src/__test__/unit/builtInHandler.spec.ts index a8fe5ce1..db06212f 100644 --- a/src/__test__/unit/builtInHandler.spec.ts +++ b/src/__test__/unit/builtInHandler.spec.ts @@ -1,37 +1,10 @@ -import { CallServiceData } from '../../internal/commonTypes'; +import { CallParams, CallServiceData } from '../../internal/commonTypes'; import each from 'jest-each'; -import { BuiltInServiceContext, builtInServices } from '../../internal/builtInServices'; +import { builtInServices } from '../../internal/builtins/common'; import { KeyPair } from '../../internal/KeyPair'; +import { Sig, defaultSigGuard, allowServiceFn } from '../../internal/builtins/Sig'; import { toUint8Array } from 'js-base64'; -const key = '+cmeYlZKj+MfSa9dpHV+BmLPm6wq4inGlsPlQ1GvtPk='; - -const context = (async () => { - const keyBytes = toUint8Array(key); - const kp = await KeyPair.fromEd25519SK(keyBytes); - const res: BuiltInServiceContext = { - peerKeyPair: kp, - peerId: kp.Libp2pPeerId.toB58String(), - }; - return res; -})(); - -const testData = [1, 2, 3, 4, 5, 6, 7, 9, 10]; - -// signature produced by KeyPair created from key above (`key` variable) -const testDataSig = [ - 224, 104, 245, 206, 140, 248, 27, 72, 68, 133, 111, 10, 164, 197, 242, 132, 107, 77, 224, 67, 99, 106, 76, 29, 144, - 121, 122, 169, 36, 173, 58, 80, 170, 102, 137, 253, 157, 247, 168, 87, 162, 223, 188, 214, 203, 220, 52, 246, 29, - 86, 77, 71, 224, 248, 16, 213, 254, 75, 78, 239, 243, 222, 241, 15, -]; - -// signature produced by KeyPair created from some random KeyPair -const testDataWrongSig = [ - 116, 247, 189, 118, 236, 53, 147, 123, 219, 75, 176, 105, 101, 108, 233, 137, 97, 14, 146, 132, 252, 70, 51, 153, - 237, 167, 156, 150, 36, 90, 229, 108, 166, 231, 255, 137, 8, 246, 125, 0, 213, 150, 83, 196, 237, 221, 131, 159, - 157, 159, 25, 109, 95, 160, 181, 65, 254, 238, 47, 156, 240, 151, 58, 14, -]; - describe('Tests for default handler', () => { // prettier-ignore each` @@ -65,11 +38,7 @@ describe('Tests for default handler', () => { ${'peer'} | ${'timeout'} | ${[200, ['test']]} | ${0} | ${['test']}} ${'peer'} | ${'timeout'} | ${[]} | ${1} | ${'timeout accepts exactly two arguments: timeout duration in ms and a message string'}} ${'peer'} | ${'timeout'} | ${[200, 'test', 1]} | ${1} | ${'timeout accepts exactly two arguments: timeout duration in ms and a message string'}} - - ${'sig'} | ${'verify'} | ${[testData, testDataSig]} | ${0} | ${true}} - ${'sig'} | ${'verify'} | ${[testData, testDataWrongSig]} | ${0} | ${false}} - ${'sig'} | ${'sign'} | ${[]} | ${1} | ${'sign accepts exactly one argument: data be signed in format of u8 array of bytes'}} - ${'sig'} | ${'verify'} | ${[testData]} | ${1} | ${'verify accepts exactly two arguments: data and signature, both in format of u8 array of bytes'}} + `.test( // '$fnName with $args expected retcode: $retCode and result: $result', @@ -90,7 +59,7 @@ describe('Tests for default handler', () => { }; // act - const fn = builtInServices(await context)[req.serviceId][req.fnName]; + const fn = builtInServices[req.serviceId][req.fnName]; const res = await fn(req); // assert @@ -118,7 +87,7 @@ describe('Tests for default handler', () => { }; // act - const fn = builtInServices(await context)[req.serviceId][req.fnName]; + const fn = builtInServices[req.serviceId][req.fnName]; const res = await fn(req); // assert @@ -127,166 +96,140 @@ describe('Tests for default handler', () => { result: 'The JS implementation of Peer does not support identify', }); }); +}); - it('sig.sign should create the correct signature', async () => { - // arrange - const ctx = await context; - const req: CallServiceData = { - serviceId: 'sig', - fnName: 'sign', - args: [testData], - tetraplets: [ - [ - { - function_name: 'get_trust_bytes', - json_path: '', - peer_pk: '', - service_id: 'trust-graph', - }, - ], +const key = '+cmeYlZKj+MfSa9dpHV+BmLPm6wq4inGlsPlQ1GvtPk='; + +const context = (async () => { + const keyBytes = toUint8Array(key); + const kp = await KeyPair.fromEd25519SK(keyBytes); + const res = { + peerKeyPair: kp, + peerId: kp.Libp2pPeerId.toB58String(), + }; + return res; +})(); + +const testData = [1, 2, 3, 4, 5, 6, 7, 9, 10]; + +// signature produced by KeyPair created from key above (`key` variable) +const testDataSig = [ + 224, 104, 245, 206, 140, 248, 27, 72, 68, 133, 111, 10, 164, 197, 242, 132, 107, 77, 224, 67, 99, 106, 76, 29, 144, + 121, 122, 169, 36, 173, 58, 80, 170, 102, 137, 253, 157, 247, 168, 87, 162, 223, 188, 214, 203, 220, 52, 246, 29, + 86, 77, 71, 224, 248, 16, 213, 254, 75, 78, 239, 243, 222, 241, 15, +]; + +// signature produced by KeyPair created from some random KeyPair +const testDataWrongSig = [ + 116, 247, 189, 118, 236, 53, 147, 123, 219, 75, 176, 105, 101, 108, 233, 137, 97, 14, 146, 132, 252, 70, 51, 153, + 237, 167, 156, 150, 36, 90, 229, 108, 166, 231, 255, 137, 8, 246, 125, 0, 213, 150, 83, 196, 237, 221, 131, 159, + 157, 159, 25, 109, 95, 160, 181, 65, 254, 238, 47, 156, 240, 151, 58, 14, +]; + +const makeTetraplet = (initPeerId: string, serviceId?: string, fnName?: string): CallParams<'data'> => { + return { + initPeerId: initPeerId, + tetraplets: { + data: [ + { + function_name: fnName, + service_id: serviceId, + }, ], - particleContext: { - particleId: 'some', - initPeerId: ctx.peerId, - timestamp: 595951200, - ttl: 595961200, - signature: 'sig', - }, - }; + }, + } as any; +}; - // act - const fn = builtInServices(ctx)[req.serviceId][req.fnName]; - const res = await fn(req); +describe('Sig service tests', () => { + it('sig.sign should create the correct signature', async () => { + const ctx = await context; + const sig = new Sig(ctx.peerKeyPair); - // assert - expect(res).toMatchObject({ - retCode: 0, - result: testDataSig, - }); + const res = await sig.sign(testData, makeTetraplet(ctx.peerId)); + + expect(res.success).toBe(true); + expect(res.signature).toStrictEqual(testDataSig); + }); + + it('sig.verify should return true for the correct signature', async () => { + const ctx = await context; + const sig = new Sig(ctx.peerKeyPair); + + const res = await sig.verify(testDataSig, testData); + + expect(res).toBe(true); + }); + + it('sig.verify should return false for the incorrect signature', async () => { + const ctx = await context; + const sig = new Sig(ctx.peerKeyPair); + + const res = await sig.verify(testDataWrongSig, testData); + + expect(res).toBe(false); }); it('sign-verify call chain should work', async () => { const ctx = await context; - const signReq: CallServiceData = { - serviceId: 'sig', - fnName: 'sign', - args: [testData], - tetraplets: [ - [ - { - function_name: 'get_trust_bytes', - json_path: '', - peer_pk: '', - service_id: 'trust-graph', - }, - ], - ], - particleContext: { - particleId: 'some', - initPeerId: ctx.peerId, - timestamp: 595951200, - ttl: 595961200, - signature: 'sig', - }, - }; + const sig = new Sig(ctx.peerKeyPair); - const signFn = builtInServices(ctx)[signReq.serviceId][signReq.fnName]; - const signRes = await signFn(signReq); + const signature = await sig.sign(testData, makeTetraplet(ctx.peerId)); + const res = await sig.verify(signature.signature, testData); - const verifyReq: CallServiceData = { - serviceId: 'sig', - fnName: 'verify', - args: [testData, signRes.result], - tetraplets: [], - particleContext: { - particleId: 'some', - initPeerId: ctx.peerId, - timestamp: 595951200, - ttl: 595961200, - signature: 'sig', - }, - }; - - const verifyFn = builtInServices(ctx)[verifyReq.serviceId][verifyReq.fnName]; - const verifyRes = await verifyFn(verifyReq); - - expect(verifyRes).toMatchObject({ - retCode: 0, - result: true, - }); + expect(res).toBe(true); }); - it('sig.sign should not allow data from incorrect services', async () => { - // arrange + it('sig.sign with defaultSigGuard should work for correct callParams', async () => { const ctx = await context; - const req: CallServiceData = { - serviceId: 'sig', - fnName: 'sign', - args: [testData], - tetraplets: [ - [ - { - function_name: 'some-other-fn', - json_path: '', - peer_pk: '', - service_id: 'cool-service', - }, - ], - ], - particleContext: { - particleId: 'some', - initPeerId: ctx.peerId, - timestamp: 595951200, - ttl: 595961200, - signature: 'sig', - }, - }; + const sig = new Sig(ctx.peerKeyPair); + sig.securityGuard = defaultSigGuard(ctx.peerId); - // act - const fn = builtInServices(ctx)[req.serviceId][req.fnName]; - const res = await fn(req); + const signature = await sig.sign(testData, makeTetraplet(ctx.peerId, 'registry', 'get_key_bytes')); - // assert - expect(res).toMatchObject({ - retCode: 1, - result: expect.stringContaining("Only data from the following services is allowed to be signed:"), - }); + await expect(signature).toBeDefined(); }); - it('sig.sign should not allow particles initiated from other peers', async () => { - // arrange + it('sig.sign with defaultSigGuard should not allow particles initiated from incorrect service', async () => { const ctx = await context; - const req: CallServiceData = { - serviceId: 'sig', - fnName: 'sign', - args: [testData], - tetraplets: [ - [ - { - function_name: 'some-other-fn', - json_path: '', - peer_pk: '', - service_id: 'cool-service', - }, - ], - ], - particleContext: { - particleId: 'some', - initPeerId: (await KeyPair.randomEd25519()).Libp2pPeerId.toB58String(), - timestamp: 595951200, - ttl: 595961200, - signature: 'sig', - }, - }; + const sig = new Sig(ctx.peerKeyPair); + sig.securityGuard = defaultSigGuard(ctx.peerId); - // act - const fn = builtInServices(ctx)[req.serviceId][req.fnName]; - const res = await fn(req); + const res = await sig.sign(testData, makeTetraplet(ctx.peerId, 'other_service', 'other_fn')); - // assert - expect(res).toMatchObject({ - retCode: 1, - result: 'sign is only allowed to be called on the same peer the particle was initiated from', - }); + await expect(res.success).toBe(false); + await expect(res.error).toBe('Security guard validation failed'); + }); + + it('sig.sign with defaultSigGuard should not allow particles initiated from other peers', async () => { + const ctx = await context; + const sig = new Sig(ctx.peerKeyPair); + sig.securityGuard = defaultSigGuard(ctx.peerId); + + const res = await sig.sign( + testData, + makeTetraplet((await KeyPair.randomEd25519()).toB58String(), 'registry', 'get_key_bytes'), + ); + + await expect(res.success).toBe(false); + await expect(res.error).toBe('Security guard validation failed'); + }); + + it('changing securityGuard should work', async () => { + const ctx = await context; + const sig = new Sig(ctx.peerKeyPair); + sig.securityGuard = allowServiceFn('test', 'test'); + + const successful1 = await sig.sign(testData, makeTetraplet(ctx.peerId, 'test', 'test')); + const unSuccessful1 = await sig.sign(testData, makeTetraplet(ctx.peerId, 'wrong', 'wrong')); + + sig.securityGuard = allowServiceFn('wrong', 'wrong'); + + const successful2 = await sig.sign(testData, makeTetraplet(ctx.peerId, 'wrong', 'wrong')); + const unSuccessful2 = await sig.sign(testData, makeTetraplet(ctx.peerId, 'test', 'test')); + + expect(successful1.success).toBe(true); + expect(successful2.success).toBe(true); + expect(unSuccessful1.success).toBe(false); + expect(unSuccessful2.success).toBe(false); }); }); diff --git a/src/internal/FluencePeer.ts b/src/internal/FluencePeer.ts index a5a9029a..23ee016b 100644 --- a/src/internal/FluencePeer.ts +++ b/src/internal/FluencePeer.ts @@ -25,9 +25,11 @@ import { dataToString, jsonify } from './utils'; import { concatMap, filter, pipe, Subject, tap } from 'rxjs'; import { RequestFlow } from './compilerSupport/v1'; import log from 'loglevel'; -import { BuiltInServiceContext, builtInServices } from './builtInServices'; +import { builtInServices } from './builtins/common'; import { AvmRunner, InterpreterResult, LogLevel } from '@fluencelabs/avm-runner-interface'; import { AvmRunnerBackground } from '@fluencelabs/avm-runner-background'; +import { defaultSigGuard, Sig } from './builtins/Sig'; +import { registerSig } from './_aqua/services'; /** * Node of the Fluence network specified as a pair of node's multiaddr and it's peer id @@ -210,14 +212,24 @@ export class FluencePeer { } this._legacyCallServiceHandler = new LegacyCallServiceHandler(); - registerDefaultServices(this, { - peerKeyPair: this._keyPair, - peerId: this.getStatus().peerId, - }); + registerDefaultServices(this); + + this._classServices = { + sig: new Sig(this._keyPair), + }; + this._classServices.sig.securityGuard = defaultSigGuard(this.getStatus().peerId); + registerSig(this, this._classServices.sig); + registerSig(this, this.getStatus().peerId, this._classServices.sig); this._startParticleProcessing(); } + getServices() { + return { + ...this._classServices, + }; + } + /** * Un-initializes the peer: stops all the underlying workflows, stops the Aqua VM * and disconnects from the Fluence network @@ -358,6 +370,10 @@ export class FluencePeer { private _particleSpecificHandlers = new Map>(); private _commonHandlers = new Map(); + private _classServices: { + sig: Sig; + }; + // Internal peer state private _defaultTTL: number; @@ -615,11 +631,10 @@ function serviceFnKey(serviceId: string, fnName: string) { return `${serviceId}/${fnName}`; } -function registerDefaultServices(peer: FluencePeer, context: BuiltInServiceContext) { - const ctx = builtInServices(context); - for (let serviceId in ctx) { - for (let fnName in ctx[serviceId]) { - const h = ctx[serviceId][fnName]; +function registerDefaultServices(peer: FluencePeer) { + for (let serviceId in builtInServices) { + for (let fnName in builtInServices[serviceId]) { + const h = builtInServices[serviceId][fnName]; peer.internals.regHandler.common(serviceId, fnName, h); } } diff --git a/src/internal/KeyPair.ts b/src/internal/KeyPair.ts index c97f5655..0f71943b 100644 --- a/src/internal/KeyPair.ts +++ b/src/internal/KeyPair.ts @@ -48,6 +48,10 @@ export class KeyPair { return new KeyPair(lib2p2Pid); } + toB58String(): string { + return this.Libp2pPeerId.toB58String(); + } + /** * @returns 32 byte private key */ diff --git a/src/internal/_aqua/services.ts b/src/internal/_aqua/services.ts new file mode 100644 index 00000000..4662ed93 --- /dev/null +++ b/src/internal/_aqua/services.ts @@ -0,0 +1,82 @@ +/** + * + * 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.5.3-258 + * + */ +import { Fluence, FluencePeer } from '../../'; +import { CallParams, callFunction, registerService } from '../../internal/compilerSupport/v2'; + +// Services + +export interface SigDef { + get_pub_key: (callParams: CallParams) => string | Promise; + sign: ( + data: number[], + callParams: CallParams<'data'>, + ) => + | { error: string | null; signature: number[] | null; success: boolean } + | Promise<{ error: string | null; signature: number[] | null; success: boolean }>; + verify: ( + signature: number[], + data: number[], + callParams: CallParams<'signature' | 'data'>, + ) => boolean | Promise; +} +export function registerSig(service: SigDef): void; +export function registerSig(serviceId: string, service: SigDef): void; +export function registerSig(peer: FluencePeer, service: SigDef): void; +export function registerSig(peer: FluencePeer, serviceId: string, service: SigDef): void; + +export function registerSig(...args: any) { + registerService(args, { + defaultServiceId: 'sig', + functions: [ + { + functionName: 'get_pub_key', + argDefs: [], + returnType: { + tag: 'primitive', + }, + }, + { + functionName: 'sign', + argDefs: [ + { + name: 'data', + argType: { + tag: 'primitive', + }, + }, + ], + returnType: { + tag: 'primitive', + }, + }, + { + functionName: 'verify', + argDefs: [ + { + name: 'signature', + argType: { + tag: 'primitive', + }, + }, + { + name: 'data', + argType: { + tag: 'primitive', + }, + }, + ], + returnType: { + tag: 'primitive', + }, + }, + ], + }); +} + +// Functions diff --git a/src/internal/builtInServices.ts b/src/internal/builtInServices.ts deleted file mode 100644 index 6422d1e9..00000000 --- a/src/internal/builtInServices.ts +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Copyright 2021 Fluence Labs Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import { CallServiceResult } from '@fluencelabs/avm-runner-interface'; -import { encode, decode } from 'bs58'; -import { PeerIdB58 } from 'src'; -import { GenericCallServiceHandler, ResultCodes } from './commonTypes'; -import { KeyPair } from './KeyPair'; - -const success = (result: any): CallServiceResult => { - return { - result: result, - retCode: ResultCodes.success, - }; -}; - -const error = (error: string): CallServiceResult => { - return { - result: error, - retCode: ResultCodes.error, - }; -}; - -export interface BuiltInServiceContext { - peerKeyPair: KeyPair; - peerId: PeerIdB58; -} - -export function builtInServices(context: BuiltInServiceContext): { - [serviceId in string]: { [fnName in string]: GenericCallServiceHandler }; -} { - return { - op: { - noop: (req) => { - return success({}); - }, - - array: (req) => { - return success(req.args); - }, - - identity: (req) => { - if (req.args.length > 1) { - return error(`identity accepts up to 1 arguments, received ${req.args.length} arguments`); - } else { - return success(req.args.length === 0 ? {} : req.args[0]); - } - }, - - concat: (req) => { - const incorrectArgIndices = req.args // - .map((x, i) => [Array.isArray(x), i]) - .filter(([isArray, _]) => !isArray) - .map(([_, index]) => index); - - if (incorrectArgIndices.length > 0) { - const str = incorrectArgIndices.join(', '); - return error(`All arguments of 'concat' must be arrays: arguments ${str} are not`); - } else { - return success([].concat.apply([], req.args)); - } - }, - - string_to_b58: (req) => { - if (req.args.length !== 1) { - return error('string_to_b58 accepts only one string argument'); - } else { - return success(encode(new TextEncoder().encode(req.args[0]))); - } - }, - - string_from_b58: (req) => { - if (req.args.length !== 1) { - return error('string_from_b58 accepts only one string argument'); - } else { - return success(new TextDecoder().decode(decode(req.args[0]))); - } - }, - - bytes_to_b58: (req) => { - if (req.args.length !== 1 || !Array.isArray(req.args[0])) { - return error('bytes_to_b58 accepts only single argument: array of numbers'); - } else { - const argumentArray = req.args[0] as number[]; - return success(encode(new Uint8Array(argumentArray))); - } - }, - - bytes_from_b58: (req) => { - if (req.args.length !== 1) { - return error('bytes_from_b58 accepts only one string argument'); - } else { - return success(Array.from(decode(req.args[0]))); - } - }, - }, - - peer: { - timeout: (req) => { - if (req.args.length !== 2) { - return error('timeout accepts exactly two arguments: timeout duration in ms and a message string'); - } - const durationMs = req.args[0]; - const message = req.args[1]; - - return new Promise((resolve) => { - setTimeout(() => { - const res = success(message); - resolve(res); - }, durationMs); - }); - }, - - identify: (req) => { - return error('The JS implementation of Peer does not support identify'); - }, - }, - - sig: { - sign: async (req) => { - if (req.args.length !== 1) { - return error('sign accepts exactly one argument: data be signed in format of u8 array of bytes'); - } - - if (req.particleContext.initPeerId !== context.peerId) { - return error('sign is only allowed to be called on the same peer the particle was initiated from'); - } - - const t = req.tetraplets[0][0]; - const serviceFnPair = `${t.service_id}.${t.function_name}`; - - const allowedServices = [ - 'trust-graph.get_trust_bytes', - 'trust-graph.get_revocation_bytes', - 'registry.get_key_bytes', - 'registry.get_record_bytes', - ]; - - if (allowedServices.indexOf(serviceFnPair) === -1) { - return error( - 'Only data from the following services is allowed to be signed: ' + allowedServices.join(', '), - ); - } - - const [data] = req.args; - const signedData = await context.peerKeyPair.signBytes(Uint8Array.from(data)); - return success(Array.from(signedData)); - }, - - verify: async (req) => { - if (req.args.length !== 2) { - return error( - 'verify accepts exactly two arguments: data and signature, both in format of u8 array of bytes', - ); - } - const [data, signature] = req.args; - const result = await context.peerKeyPair.verify(Uint8Array.from(data), Uint8Array.from(signature)); - return success(result); - }, - }, - }; -} diff --git a/src/internal/builtins/Sig.ts b/src/internal/builtins/Sig.ts new file mode 100644 index 00000000..d8c5026e --- /dev/null +++ b/src/internal/builtins/Sig.ts @@ -0,0 +1,128 @@ +import { SecurityTetraplet } from '@fluencelabs/avm-runner-interface'; +import { CallParams, PeerIdB58 } from '../commonTypes'; +import { KeyPair } from '../KeyPair'; +import { SigDef } from '../_aqua/services'; + +/** + * A predicate of call params for sig service's sign method which determines whether signing operation is allowed or not + */ +export type SigSecurityGuard = (params: CallParams<'data'>) => boolean; + +/** + * Only allow calls when tetraplet for 'data' argument satisfies the predicate + */ +export const allowTetraplet = (pred: (tetraplet: SecurityTetraplet) => boolean): SigSecurityGuard => { + return (params) => { + const t = params.tetraplets.data[0]; + return pred(t); + }; +}; + +/** + * Only allow data which comes from the specified serviceId and fnName + */ +export const allowServiceFn = (serviceId: string, fnName: string): SigSecurityGuard => { + return allowTetraplet((t) => { + return t.service_id === serviceId && t.function_name === fnName; + }); +}; + +/** + * Only allow data originated from the specified json_path + */ +export const allowExactJsonPath = (jsonPath: string): SigSecurityGuard => { + return allowTetraplet((t) => { + return t.json_path === jsonPath; + }); +}; + +/** + * Only allow signing when particle is initiated at the specified peer + */ +export const allowOnlyParticleOriginatedAt = (peerId: PeerIdB58): SigSecurityGuard => { + return (params) => { + return params.initPeerId === peerId; + }; +}; + +/** + * Only allow signing when all of the predicates are satisfied. + * Useful for predicates reuse + */ +export const and = (...predicates: SigSecurityGuard[]): SigSecurityGuard => { + return (params) => predicates.every((x) => x(params)); +}; + +/** + * Only allow signing when any of the predicates are satisfied. + * Useful for predicates reuse + */ +export const or = (...predicates: SigSecurityGuard[]): SigSecurityGuard => { + return (params) => predicates.some((x) => x(params)); +}; + +export const defaultSigGuard = (peerId: PeerIdB58) => { + return and( + allowOnlyParticleOriginatedAt(peerId), + or( + allowServiceFn('trust-graph', 'get_trust_bytes'), + allowServiceFn('trust-graph', 'get_revocation_bytes'), + allowServiceFn('registry', 'get_key_bytes'), + allowServiceFn('registry', 'get_record_bytes'), + allowServiceFn('registry', 'get_host_record_bytes'), + ), + ); +}; + +export class Sig implements SigDef { + private _keyPair: KeyPair; + + constructor(keyPair: KeyPair) { + this._keyPair = keyPair; + } + + /** + * + */ + securityGuard: SigSecurityGuard = (params) => { + return true; + }; + + /** + * Gets the public key of KeyPair. Required by aqua + */ + get_pub_key() { + return this._keyPair.toB58String(); + } + + /** + * Signs the data using key pair's private key. Required by aqua + */ + async sign( + data: number[], + callParams: CallParams<'data'>, + ): Promise<{ error: string | null; signature: number[] | null; success: boolean }> { + if (!this.securityGuard(callParams)) { + return { + success: false, + error: 'Security guard validation failed', + signature: null, + }; + } + + const signedData = await this._keyPair.signBytes(Uint8Array.from(data)); + + return { + success: true, + error: null, + signature: Array.from(signedData), + }; + } + + /** + * Verifies the signature. Required by aqua + */ + verify(signature: number[], data: number[]): Promise { + return this._keyPair.verify(Uint8Array.from(data), Uint8Array.from(signature)); + } +} diff --git a/src/internal/builtins/common.ts b/src/internal/builtins/common.ts new file mode 100644 index 00000000..4d021be2 --- /dev/null +++ b/src/internal/builtins/common.ts @@ -0,0 +1,123 @@ +/* + * Copyright 2021 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { CallServiceResult } from '@fluencelabs/avm-runner-interface'; +import { encode, decode } from 'bs58'; +import { PeerIdB58 } from 'src'; +import { GenericCallServiceHandler, ResultCodes } from '../commonTypes'; +import { KeyPair } from '../KeyPair'; + +const success = (result: any): CallServiceResult => { + return { + result: result, + retCode: ResultCodes.success, + }; +}; + +const error = (error: string): CallServiceResult => { + return { + result: error, + retCode: ResultCodes.error, + }; +}; + +export const builtInServices = { + op: { + noop: (req) => { + return success({}); + }, + + array: (req) => { + return success(req.args); + }, + + identity: (req) => { + if (req.args.length > 1) { + return error(`identity accepts up to 1 arguments, received ${req.args.length} arguments`); + } else { + return success(req.args.length === 0 ? {} : req.args[0]); + } + }, + + concat: (req) => { + const incorrectArgIndices = req.args // + .map((x, i) => [Array.isArray(x), i]) + .filter(([isArray, _]) => !isArray) + .map(([_, index]) => index); + + if (incorrectArgIndices.length > 0) { + const str = incorrectArgIndices.join(', '); + return error(`All arguments of 'concat' must be arrays: arguments ${str} are not`); + } else { + return success([].concat.apply([], req.args)); + } + }, + + string_to_b58: (req) => { + if (req.args.length !== 1) { + return error('string_to_b58 accepts only one string argument'); + } else { + return success(encode(new TextEncoder().encode(req.args[0]))); + } + }, + + string_from_b58: (req) => { + if (req.args.length !== 1) { + return error('string_from_b58 accepts only one string argument'); + } else { + return success(new TextDecoder().decode(decode(req.args[0]))); + } + }, + + bytes_to_b58: (req) => { + if (req.args.length !== 1 || !Array.isArray(req.args[0])) { + return error('bytes_to_b58 accepts only single argument: array of numbers'); + } else { + const argumentArray = req.args[0] as number[]; + return success(encode(new Uint8Array(argumentArray))); + } + }, + + bytes_from_b58: (req) => { + if (req.args.length !== 1) { + return error('bytes_from_b58 accepts only one string argument'); + } else { + return success(Array.from(decode(req.args[0]))); + } + }, + }, + + peer: { + timeout: (req) => { + if (req.args.length !== 2) { + return error('timeout accepts exactly two arguments: timeout duration in ms and a message string'); + } + const durationMs = req.args[0]; + const message = req.args[1]; + + return new Promise((resolve) => { + setTimeout(() => { + const res = success(message); + resolve(res); + }, durationMs); + }); + }, + + identify: (req) => { + return error('The JS implementation of Peer does not support identify'); + }, + }, +}; diff --git a/src/services.ts b/src/services.ts new file mode 100644 index 00000000..74101cd0 --- /dev/null +++ b/src/services.ts @@ -0,0 +1,2 @@ +export * from './internal/builtins/Sig'; +export { registerSig } from './internal/_aqua/services';