diff --git a/Makefile b/Makefile index ac779971..c3fd0816 100644 --- a/Makefile +++ b/Makefile @@ -110,8 +110,9 @@ gents: $(PROTOWRAP) node_modules --ts_proto_opt=forceLong=long \ --ts_proto_opt=oneof=unions \ --ts_proto_opt=outputServices=default,outputServices=generic-definitions \ - --ts_proto_opt=useDate=true \ + --ts_proto_opt=useAbortSignal=true \ --ts_proto_opt=useAsyncIterable=true \ + --ts_proto_opt=useDate=true \ --proto_path $$(pwd)/vendor \ --print_structure \ --only_specified_files \ diff --git a/e2e/mock/mock.pb.ts b/e2e/mock/mock.pb.ts index 8bde5444..4f98fcb2 100644 --- a/e2e/mock/mock.pb.ts +++ b/e2e/mock/mock.pb.ts @@ -96,7 +96,7 @@ export const MockMsg = { /** Mock service mocks some RPCs for the e2e tests. */ export interface Mock { /** MockRequest runs a mock unary request. */ - MockRequest(request: MockMsg): Promise + MockRequest(request: MockMsg, abortSignal?: AbortSignal): Promise } export class MockClientImpl implements Mock { @@ -107,9 +107,14 @@ export class MockClientImpl implements Mock { this.rpc = rpc this.MockRequest = this.MockRequest.bind(this) } - MockRequest(request: MockMsg): Promise { + MockRequest(request: MockMsg, abortSignal?: AbortSignal): Promise { const data = MockMsg.encode(request).finish() - const promise = this.rpc.request(this.service, 'MockRequest', data) + const promise = this.rpc.request( + this.service, + 'MockRequest', + data, + abortSignal || undefined + ) return promise.then((data) => MockMsg.decode(new _m0.Reader(data))) } } @@ -136,7 +141,8 @@ interface Rpc { request( service: string, method: string, - data: Uint8Array + data: Uint8Array, + abortSignal?: AbortSignal ): Promise } diff --git a/e2e/mock/mock_srpc.pb.go b/e2e/mock/mock_srpc.pb.go index b6cf2dff..ec0dd88c 100644 --- a/e2e/mock/mock_srpc.pb.go +++ b/e2e/mock/mock_srpc.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-srpc. DO NOT EDIT. -// protoc-gen-srpc version: v0.15.1 +// protoc-gen-srpc version: v0.15.2 // source: github.com/aperturerobotics/starpc/e2e/mock/mock.proto package e2e_mock diff --git a/echo/client-test.ts b/echo/client-test.ts index 2f0739df..fcd0b408 100644 --- a/echo/client-test.ts +++ b/echo/client-test.ts @@ -1,4 +1,4 @@ -import { Client } from '../srpc/index.js' +import { Client, ERR_RPC_ABORT } from '../srpc/index.js' import { EchoerClientImpl, EchoMsg } from './echo.pb.js' import { pushable } from 'it-pushable' import { buildRpcStreamOpenStream } from '../rpcstream/rpcstream.js' @@ -30,6 +30,34 @@ export async function runClientTest(client: Client) { } } +// runAbortControllerTest tests aborting a RPC call. +export async function runAbortControllerTest(client: Client) { + const demoServiceClient = new EchoerClientImpl(client) + + console.log('Testing EchoClientStream with AbortController...') + let errorReturned = false + const clientAbort = new AbortController() + const clientNoopStream = pushable({ objectMode: true }) + new Promise((resolve) => setTimeout(resolve, 1000)).then(() => { + clientAbort.abort() + }) + try { + await demoServiceClient.EchoClientStream( + clientNoopStream, + clientAbort.signal + ) + } catch (err) { + const errMsg = (err as Error).message + errorReturned = true + if (errMsg !== ERR_RPC_ABORT) { + throw new Error('unexpected error: ' + errMsg) + } + } + if (!errorReturned) { + throw new Error('expected aborted rpc to throw error') + } +} + // runRpcStreamTest tests a RPCStream. export async function runRpcStreamTest(client: Client) { console.log('Calling RpcStream to open a RPC stream client...') diff --git a/echo/echo.pb.ts b/echo/echo.pb.ts index 17749a6c..a53f4c0f 100644 --- a/echo/echo.pb.ts +++ b/echo/echo.pb.ts @@ -97,16 +97,26 @@ export const EchoMsg = { /** Echoer service returns the given message. */ export interface Echoer { /** Echo returns the given message. */ - Echo(request: EchoMsg): Promise + Echo(request: EchoMsg, abortSignal?: AbortSignal): Promise /** EchoServerStream is an example of a server -> client one-way stream. */ - EchoServerStream(request: EchoMsg): AsyncIterable + EchoServerStream( + request: EchoMsg, + abortSignal?: AbortSignal + ): AsyncIterable /** EchoClientStream is an example of client->server one-way stream. */ - EchoClientStream(request: AsyncIterable): Promise + EchoClientStream( + request: AsyncIterable, + abortSignal?: AbortSignal + ): Promise /** EchoBidiStream is an example of a two-way stream. */ - EchoBidiStream(request: AsyncIterable): AsyncIterable + EchoBidiStream( + request: AsyncIterable, + abortSignal?: AbortSignal + ): AsyncIterable /** RpcStream opens a nested rpc call stream. */ RpcStream( - request: AsyncIterable + request: AsyncIterable, + abortSignal?: AbortSignal ): AsyncIterable } @@ -122,50 +132,69 @@ export class EchoerClientImpl implements Echoer { this.EchoBidiStream = this.EchoBidiStream.bind(this) this.RpcStream = this.RpcStream.bind(this) } - Echo(request: EchoMsg): Promise { + Echo(request: EchoMsg, abortSignal?: AbortSignal): Promise { const data = EchoMsg.encode(request).finish() - const promise = this.rpc.request(this.service, 'Echo', data) + const promise = this.rpc.request( + this.service, + 'Echo', + data, + abortSignal || undefined + ) return promise.then((data) => EchoMsg.decode(new _m0.Reader(data))) } - EchoServerStream(request: EchoMsg): AsyncIterable { + EchoServerStream( + request: EchoMsg, + abortSignal?: AbortSignal + ): AsyncIterable { const data = EchoMsg.encode(request).finish() const result = this.rpc.serverStreamingRequest( this.service, 'EchoServerStream', - data + data, + abortSignal || undefined ) return EchoMsg.decodeTransform(result) } - EchoClientStream(request: AsyncIterable): Promise { + EchoClientStream( + request: AsyncIterable, + abortSignal?: AbortSignal + ): Promise { const data = EchoMsg.encodeTransform(request) const promise = this.rpc.clientStreamingRequest( this.service, 'EchoClientStream', - data + data, + abortSignal || undefined ) return promise.then((data) => EchoMsg.decode(new _m0.Reader(data))) } - EchoBidiStream(request: AsyncIterable): AsyncIterable { + EchoBidiStream( + request: AsyncIterable, + abortSignal?: AbortSignal + ): AsyncIterable { const data = EchoMsg.encodeTransform(request) const result = this.rpc.bidirectionalStreamingRequest( this.service, 'EchoBidiStream', - data + data, + abortSignal || undefined ) return EchoMsg.decodeTransform(result) } RpcStream( - request: AsyncIterable + request: AsyncIterable, + abortSignal?: AbortSignal ): AsyncIterable { const data = RpcStreamPacket.encodeTransform(request) const result = this.rpc.bidirectionalStreamingRequest( this.service, 'RpcStream', - data + data, + abortSignal || undefined ) return RpcStreamPacket.decodeTransform(result) } @@ -229,22 +258,26 @@ interface Rpc { request( service: string, method: string, - data: Uint8Array + data: Uint8Array, + abortSignal?: AbortSignal ): Promise clientStreamingRequest( service: string, method: string, - data: AsyncIterable + data: AsyncIterable, + abortSignal?: AbortSignal ): Promise serverStreamingRequest( service: string, method: string, - data: Uint8Array + data: Uint8Array, + abortSignal?: AbortSignal ): AsyncIterable bidirectionalStreamingRequest( service: string, method: string, - data: AsyncIterable + data: AsyncIterable, + abortSignal?: AbortSignal ): AsyncIterable } diff --git a/echo/echo_srpc.pb.go b/echo/echo_srpc.pb.go index 7f4a3c0e..f0c4d1c6 100644 --- a/echo/echo_srpc.pb.go +++ b/echo/echo_srpc.pb.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-srpc. DO NOT EDIT. -// protoc-gen-srpc version: v0.15.1 +// protoc-gen-srpc version: v0.15.2 // source: github.com/aperturerobotics/starpc/echo/echo.proto package echo diff --git a/go.mod b/go.mod index b63e9d2e..68694f12 100644 --- a/go.mod +++ b/go.mod @@ -9,8 +9,8 @@ require ( ) require ( - github.com/aperturerobotics/util v0.0.0-20221202094321-2fde40039383 - github.com/libp2p/go-libp2p v0.24.0-dev.0.20221202071826-2cc4de512664 + github.com/aperturerobotics/util v0.0.0-20221205090205-f776a34d2d0d + github.com/libp2p/go-libp2p v0.24.1 github.com/libp2p/go-yamux/v4 v4.0.1-0.20220919134236-1c09f2ab3ec1 github.com/sirupsen/logrus v1.9.0 ) @@ -19,23 +19,23 @@ require ( github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/ipfs/go-cid v0.3.2 // indirect - github.com/klauspost/compress v1.15.10 // indirect - github.com/klauspost/cpuid/v2 v2.1.1 // indirect + github.com/klauspost/compress v1.15.12 // indirect + github.com/klauspost/cpuid/v2 v2.2.1 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/libp2p/go-openssl v0.1.0 // indirect github.com/mattn/go-pointer v0.0.1 // indirect github.com/minio/sha256-simd v1.0.0 // indirect github.com/mr-tron/base58 v1.2.0 // indirect github.com/multiformats/go-base32 v0.1.0 // indirect - github.com/multiformats/go-base36 v0.1.1-0.20220823151017-f5af2eed4d9c // indirect + github.com/multiformats/go-base36 v0.2.0 // indirect github.com/multiformats/go-multiaddr v0.8.0 // indirect github.com/multiformats/go-multibase v0.1.2-0.20220823162309-7160a7347ed1 // indirect github.com/multiformats/go-multicodec v0.7.1-0.20221017174837-a2baec7ca709 // indirect github.com/multiformats/go-multihash v0.2.2-0.20221030163302-608669da49b6 // indirect - github.com/multiformats/go-varint v0.0.7-0.20220823162201-881f9a52d5d2 // indirect + github.com/multiformats/go-varint v0.0.7 // indirect github.com/spacemonkeygo/spacelog v0.0.0-20180420211403-2296661a0572 // indirect github.com/spaolacci/murmur3 v1.1.1-0.20190317074736-539464a789e9 // indirect - golang.org/x/crypto v0.2.1-0.20221109165004-21d60a152191 // indirect - golang.org/x/sys v0.2.0 // indirect + golang.org/x/crypto v0.3.0 // indirect + golang.org/x/sys v0.3.0 // indirect lukechampine.com/blake3 v1.1.8-0.20220321170924-7afca5966e5e // indirect ) diff --git a/go.sum b/go.sum index db3b0123..fd26f6a3 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -github.com/aperturerobotics/util v0.0.0-20221202094321-2fde40039383 h1:r0TEmQAFN1Ji+1iMqBW1ymiofevQaUb3uOQTje2wp3Q= -github.com/aperturerobotics/util v0.0.0-20221202094321-2fde40039383/go.mod h1:up2AYcp62UgmFVTm7QhM4USXAKGv73gpb5dHraKmzxQ= +github.com/aperturerobotics/util v0.0.0-20221205090205-f776a34d2d0d h1:nYXEY4LHTW7a7Vf+Lt+7icxoc02wIyLCa12xPbFuIxo= +github.com/aperturerobotics/util v0.0.0-20221205090205-f776a34d2d0d/go.mod h1:up2AYcp62UgmFVTm7QhM4USXAKGv73gpb5dHraKmzxQ= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -42,18 +42,18 @@ github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.15.10 h1:Ai8UzuomSCDw90e1qNMtb15msBXsNpH6gzkkENQNcJo= -github.com/klauspost/compress v1.15.10/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= +github.com/klauspost/compress v1.15.12 h1:YClS/PImqYbn+UILDnqxQCZ3RehC9N318SU3kElDUEM= +github.com/klauspost/compress v1.15.12/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.1.1 h1:t0wUqjowdm8ezddV5k0tLWVklVuvLJpoHeb4WBdydm0= -github.com/klauspost/cpuid/v2 v2.1.1/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/klauspost/cpuid/v2 v2.2.1 h1:U33DW0aiEj633gHYw3LoDNfkDiYnE5Q8M/TKJn2f2jI= +github.com/klauspost/cpuid/v2 v2.2.1/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= -github.com/libp2p/go-libp2p v0.24.0-dev.0.20221202071826-2cc4de512664 h1:pv+MuIVoXKlPfxZ/dGjK+aDK3fFmfuo7ombAjrBN7z0= -github.com/libp2p/go-libp2p v0.24.0-dev.0.20221202071826-2cc4de512664/go.mod h1:WVV1V9SPcZ0uV/sBB5X3zsKZW/EikukrgTp1ABOcqWk= +github.com/libp2p/go-libp2p v0.24.1 h1:+lS4fqj7RF9egcPq9Yo3iqdRTcDMApzoBbQMhxtwOVw= +github.com/libp2p/go-libp2p v0.24.1/go.mod h1:5LJqbrqFsUzWrq70JHCYqjATlX4ey8Klpct3OEe8hSI= github.com/libp2p/go-libp2p-testing v0.12.0 h1:EPvBb4kKMWO29qP4mZGyhVzUyR25dvfUIK5WDu6iPUA= github.com/libp2p/go-openssl v0.1.0 h1:LBkKEcUv6vtZIQLVTegAil8jbNpJErQ9AnT+bWV+Ooo= github.com/libp2p/go-openssl v0.1.0/go.mod h1:OiOxwPpL3n4xlenjx2h7AwSGaFSC/KZvf6gNdOBQMtc= @@ -73,8 +73,8 @@ github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/multiformats/go-base32 v0.1.0 h1:pVx9xoSPqEIQG8o+UbAe7DNi51oej1NtK+aGkbLYxPE= github.com/multiformats/go-base32 v0.1.0/go.mod h1:Kj3tFY6zNr+ABYMqeUNeGvkIC/UYgtWibDcT0rExnbI= -github.com/multiformats/go-base36 v0.1.1-0.20220823151017-f5af2eed4d9c h1:3eLctj5+2JpWf0E8PICebevkyD0KcZUhye8ggScrnEQ= -github.com/multiformats/go-base36 v0.1.1-0.20220823151017-f5af2eed4d9c/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4= +github.com/multiformats/go-base36 v0.2.0 h1:lFsAbNOGeKtuKozrtBsAkSVhv1p9D0/qedU9rQyccr0= +github.com/multiformats/go-base36 v0.2.0/go.mod h1:qvnKE++v+2MWCfePClUEjE78Z7P2a1UV0xHgWc0hkp4= github.com/multiformats/go-multiaddr v0.8.0 h1:aqjksEcqK+iD/Foe1RRFsGZh8+XFiGo7FgUCZlpv3LU= github.com/multiformats/go-multiaddr v0.8.0/go.mod h1:Fs50eBDWvZu+l3/9S6xAE7ZYj6yhxlvaVZjakWN7xRs= github.com/multiformats/go-multibase v0.1.2-0.20220823162309-7160a7347ed1 h1:fts9VGSGzcENj3XnQ3iz9LGMAJAqT46fUGyaUDGFuxQ= @@ -83,8 +83,8 @@ github.com/multiformats/go-multicodec v0.7.1-0.20221017174837-a2baec7ca709 h1:Xw github.com/multiformats/go-multicodec v0.7.1-0.20221017174837-a2baec7ca709/go.mod h1:GUC8upxSBE4oG+q3kWZRw/+6yC1BqO550bjhWsJbZlw= github.com/multiformats/go-multihash v0.2.2-0.20221030163302-608669da49b6 h1:qLF997Rz0X1WvdcZ2r5CUkLZ2rvdiXwG1JRSrJZEAuE= github.com/multiformats/go-multihash v0.2.2-0.20221030163302-608669da49b6/go.mod h1:kaHxr8TfO1cxIR/tYxgZ7e59HraJq8arEQQR8E/YNvI= -github.com/multiformats/go-varint v0.0.7-0.20220823162201-881f9a52d5d2 h1:zsa4CR/QUzyyNdyaotjJrqFzKbzCsWzhQWcUSamGWr8= -github.com/multiformats/go-varint v0.0.7-0.20220823162201-881f9a52d5d2/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= +github.com/multiformats/go-varint v0.0.7 h1:sWSGR+f/eu5ABZA2ZpYKBILXTTs9JWpdEM/nEGOHFS8= +github.com/multiformats/go-varint v0.0.7/go.mod h1:r8PUYw/fD/SjBCiKOoDlGF6QawOELpZAu9eioSos/OU= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -99,7 +99,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= @@ -109,8 +109,8 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.2.1-0.20221109165004-21d60a152191 h1:mPxyLskqfKMEHYEIa1kKmcNC8ZSiJLYbMaXyUpW+ooY= -golang.org/x/crypto v0.2.1-0.20221109165004-21d60a152191/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +golang.org/x/crypto v0.3.0 h1:a06MkbcxBrEFc0w0QIZWXrH/9cCX6KJyWbBOIwAn+7A= +golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -126,8 +126,8 @@ golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= diff --git a/integration/integration.ts b/integration/integration.ts index d1397c78..71dee8fa 100644 --- a/integration/integration.ts +++ b/integration/integration.ts @@ -1,5 +1,9 @@ import { WebSocketConn } from '../srpc/websocket.js' -import { runClientTest, runRpcStreamTest } from '../echo/client-test.js' +import { + runClientTest, + runRpcStreamTest, + runAbortControllerTest, +} from '../echo/client-test.js' import WebSocket from 'isomorphic-ws' async function runRPC() { @@ -9,18 +13,26 @@ async function runRPC() { const channel = new WebSocketConn(ws, 'outbound') const client = channel.buildClient() + console.log('Running RpcStream test via WebSocket..') + await runRpcStreamTest(client) + console.log('Running client test via WebSocket..') await runClientTest(client) - console.log('Running RpcStream test via WebSocket..') - await runRpcStreamTest(client) + console.log('Running abort controller test via WebSocket..') + await runAbortControllerTest(client) } +process.on('unhandledRejection', (ev) => { + console.error('Unhandled rejection', ev) + throw ev +}) + runRPC() .then(() => { process.exit(0) }) .catch((err) => { - console.error(err) + console.error('runRPC threw error', err) process.exit(1) }) diff --git a/package.json b/package.json index 3da210cd..3878ee07 100644 --- a/package.json +++ b/package.json @@ -60,33 +60,33 @@ "singleQuote": true }, "devDependencies": { - "@aperturerobotics/ts-common": "^0.2.6", - "@typescript-eslint/eslint-plugin": "^5.45.0", - "@typescript-eslint/parser": "^5.45.0", + "@aperturerobotics/ts-common": "^0.3.1", + "@typescript-eslint/eslint-plugin": "^5.46.1", + "@typescript-eslint/parser": "^5.46.1", "bufferutil": "^4.0.7", "depcheck": "^1.4.3", - "esbuild": "^0.15.16", - "eslint": "^8.28.0", + "esbuild": "^0.16.7", + "eslint": "^8.29.0", "eslint-config-prettier": "^8.5.0", - "prettier": "^2.8.0", + "prettier": "^2.8.1", "rimraf": "^3.0.2", - "ts-proto": "^1.135.0", - "typescript": "^4.9.3", + "ts-proto": "^1.136.0", + "typescript": "^4.9.4", "utf-8-validate": "^5.0.10" }, "dependencies": { "@chainsafe/libp2p-yamux": "^3.0.3", - "@libp2p/interface-connection": "^3.0.3", - "@libp2p/interface-stream-muxer": "^3.0.1", + "@libp2p/interface-connection": "^3.0.4", + "@libp2p/interface-stream-muxer": "^3.0.2", "event-iterator": "^2.0.0", "is-promise": "^4.0.0", "isomorphic-ws": "^5.0.0", "it-first": "^2.0.0", "it-length-prefixed": "^8.0.3", - "it-pipe": "^2.0.4", + "it-pipe": "^2.0.5", "it-pushable": "^3.1.0", "it-stream-types": "^1.0.4", - "it-ws": "^5.0.3", + "it-ws": "^5.0.6", "long": "^5.2.1", "patch-package": "^6.5.0", "protobufjs": "^7.1.2", diff --git a/rpcstream/rpcstream.ts b/rpcstream/rpcstream.ts index 3d6db799..54d1d340 100644 --- a/rpcstream/rpcstream.ts +++ b/rpcstream/rpcstream.ts @@ -121,11 +121,9 @@ export async function* handleRpcStream( // build the outgoing packet sink & the packet source const packetSink: Pushable = pushable({ objectMode: true }) - // handle the stream in the next event queue tick. + // start the handler const rpcStream = new RpcStream(packetSink, packetStream) - setTimeout(() => { - handler!(rpcStream) - }, 1) + handler!(rpcStream) // process packets for await (const packet of packetSink) { diff --git a/srpc/client.ts b/srpc/client.ts index f8576682..465e3916 100644 --- a/srpc/client.ts +++ b/srpc/client.ts @@ -1,6 +1,7 @@ import { pipe } from 'it-pipe' import { pushable, Pushable } from 'it-pushable' +import { ERR_RPC_ABORT } from './errors.js' import type { TsProtoRpc } from './ts-proto-rpc.js' import type { OpenStreamFunc } from './stream.js' import { ClientRPC } from './client-rpc.js' @@ -32,9 +33,10 @@ export class Client implements TsProtoRpc { public async request( service: string, method: string, - data: Uint8Array + data: Uint8Array, + abortSignal?: AbortSignal ): Promise { - const call = await this.startRpc(service, method, data) + const call = await this.startRpc(service, method, data, abortSignal) for await (const data of call.rpcDataSource) { call.close() return data @@ -48,9 +50,10 @@ export class Client implements TsProtoRpc { public async clientStreamingRequest( service: string, method: string, - data: AsyncIterable + data: AsyncIterable, + abortSignal?: AbortSignal ): Promise { - const call = await this.startRpc(service, method, null) + const call = await this.startRpc(service, method, null, abortSignal) call.writeCallDataFromSource(data) for await (const data of call.rpcDataSource) { call.close() @@ -65,10 +68,11 @@ export class Client implements TsProtoRpc { public serverStreamingRequest( service: string, method: string, - data: Uint8Array + data: Uint8Array, + abortSignal?: AbortSignal ): AsyncIterable { const serverData: Pushable = pushable({ objectMode: true }) - this.startRpc(service, method, data) + this.startRpc(service, method, data, abortSignal) .then(async (call) => { return writeToPushable(call.rpcDataSource, serverData) }) @@ -80,10 +84,11 @@ export class Client implements TsProtoRpc { public bidirectionalStreamingRequest( service: string, method: string, - data: AsyncIterable + data: AsyncIterable, + abortSignal?: AbortSignal ): AsyncIterable { const serverData: Pushable = pushable({ objectMode: true }) - this.startRpc(service, method, null) + this.startRpc(service, method, null, abortSignal) .then(async (call) => { call.writeCallDataFromSource(data) try { @@ -105,11 +110,18 @@ export class Client implements TsProtoRpc { private async startRpc( rpcService: string, rpcMethod: string, - data: Uint8Array | null + data: Uint8Array | null, + abortSignal?: AbortSignal ): Promise { + if (abortSignal?.aborted) { + throw new Error(ERR_RPC_ABORT) + } const openStreamFn = await this.openStreamCtr.wait() const conn = await openStreamFn() const call = new ClientRPC(rpcService, rpcMethod) + abortSignal?.addEventListener('abort', () => { + call.close(new Error(ERR_RPC_ABORT)) + }) pipe( conn, parseLengthPrefixTransform(), diff --git a/srpc/common-rpc.ts b/srpc/common-rpc.ts index fe337426..ccb7a9b4 100644 --- a/srpc/common-rpc.ts +++ b/srpc/common-rpc.ts @@ -74,9 +74,9 @@ export class CommonRPC { public async writeCallDataFromSource(dataSource: AsyncIterable) { try { for await (const data of dataSource) { - this.writeCallData(data) + await this.writeCallData(data) } - this.writeCallData(undefined, true) + await this.writeCallData(undefined, true) } catch (err) { this.close(err as Error) } @@ -160,7 +160,8 @@ export class CommonRPC { await this.writeCallCancel() } finally { this._rpcDataSource.end(err) - this._source.end(err) + // note: don't pass error to _source here. + this._source.end() } } diff --git a/srpc/errors.ts b/srpc/errors.ts new file mode 100644 index 00000000..9b212af8 --- /dev/null +++ b/srpc/errors.ts @@ -0,0 +1,11 @@ +// ERR_RPC_ABORT is returned if the RPC was aborted. +export const ERR_RPC_ABORT = 'ERR_RPC_ABORT' + +// isAbortError checks if the error object is ERR_RPC_ABORT. +export function isAbortError(err: unknown): boolean { + if (typeof err !== 'object') { + return false + } + const message = (err as Error).message + return message === ERR_RPC_ABORT +} diff --git a/srpc/index.ts b/srpc/index.ts index 0720023e..a09c89d0 100644 --- a/srpc/index.ts +++ b/srpc/index.ts @@ -1,4 +1,5 @@ export type { PacketHandler, Stream, OpenStreamFunc } from './stream.js' +export { ERR_RPC_ABORT, isAbortError } from './errors.js' export { Client } from './client.js' export { Server } from './server.js' export { Conn, ConnParams } from './conn.js' diff --git a/srpc/ts-proto-rpc.ts b/srpc/ts-proto-rpc.ts index 617532f8..a640d321 100644 --- a/srpc/ts-proto-rpc.ts +++ b/srpc/ts-proto-rpc.ts @@ -4,24 +4,28 @@ export interface TsProtoRpc { request( service: string, method: string, - data: Uint8Array + data: Uint8Array, + abortSignal?: AbortSignal ): Promise // clientStreamingRequest fires a one-way client->server streaming request. clientStreamingRequest( service: string, method: string, - data: AsyncIterable + data: AsyncIterable, + abortSignal?: AbortSignal ): Promise // serverStreamingRequest fires a one-way server->client streaming request. serverStreamingRequest( service: string, method: string, - data: Uint8Array + data: Uint8Array, + abortSignal?: AbortSignal ): AsyncIterable // bidirectionalStreamingRequest implements a two-way streaming request. bidirectionalStreamingRequest( service: string, method: string, - data: AsyncIterable + data: AsyncIterable, + abortSignal?: AbortSignal ): AsyncIterable } diff --git a/yarn.lock b/yarn.lock index a6a19ab8..ceaaf845 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,14 +2,14 @@ # yarn lockfile v1 -"@aperturerobotics/ts-common@^0.2.6": - version "0.2.6" - resolved "https://registry.yarnpkg.com/@aperturerobotics/ts-common/-/ts-common-0.2.6.tgz#112b93c827e11e1fad55cc921eed0926d5cd7e06" - integrity sha512-q0Btwf0b6JAiwo90dtRc+rpsGpm8szVCLd0KT11UlqHFxupL3szvPs7t7vD8Qb5yzqyTtri05Utpo4QFq2Lw2g== +"@aperturerobotics/ts-common@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@aperturerobotics/ts-common/-/ts-common-0.3.1.tgz#6ab32c979c5ac2b6d08acfe305badb6c9ac278bd" + integrity sha512-tf/p/scabemmkmH1EAlVsdlSnM/o5lYAss72ZBvTYosLeFCBQJpMQJi7S0w5IJ7MlMF+L7yZCdFNZP/x2bpoJQ== dependencies: bufferutil "^4.0.7" long "^5.2.1" - starpc "^0.15.2" + starpc "^0.15.4" utf-8-validate "^5.0.10" "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6": @@ -141,15 +141,115 @@ uint8arraylist "^2.3.2" uint8arrays "^4.0.2" -"@esbuild/android-arm@0.15.16": - version "0.15.16" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.16.tgz#0642926178b15e3d1545efae6eee05c4f3451d15" - integrity sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ== - -"@esbuild/linux-loong64@0.15.16": - version "0.15.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.16.tgz#284522de76abe951e4ed2bd24a467e8d49c67933" - integrity sha512-SDLfP1uoB0HZ14CdVYgagllgrG7Mdxhkt4jDJOKl/MldKrkQ6vDJMZKl2+5XsEY/Lzz37fjgLQoJBGuAw/x8kQ== +"@esbuild/android-arm64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.7.tgz#2df472016c77dba3e79596a84da74c541698910f" + integrity sha512-tYFw0lBJSEvLoGzzYh1kXuzoX1iPkbOk3O29VqzQb0HbOy7t/yw1hGkvwoJhXHwzQUPsShyYcTgRf6bDBcfnTw== + +"@esbuild/android-arm@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.7.tgz#15f1a9b27b1637c38377b3e1f2d90b9782cdc141" + integrity sha512-yhzDbiVcmq6T1/XEvdcJIVcXHdLjDJ5cQ0Dp9R9p9ERMBTeO1dR5tc8YYv8zwDeBw1xZm+Eo3MRo8cwclhBS0g== + +"@esbuild/android-x64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.7.tgz#cb34b7d666bf52266061cfb1a19c1d788b6c5ac1" + integrity sha512-3P2OuTxwAtM3k/yEWTNUJRjMPG1ce8rXs51GTtvEC5z1j8fC1plHeVVczdeHECU7aM2/Buc0MwZ6ciM/zysnWg== + +"@esbuild/darwin-arm64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.7.tgz#be1fabd0c2f6af111c16e9e9b18bf336c1e11634" + integrity sha512-VUb9GK23z8jkosHU9yJNUgQpsfJn+7ZyBm6adi2Ec5/U241eR1tAn82QicnUzaFDaffeixiHwikjmnec/YXEZg== + +"@esbuild/darwin-x64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.7.tgz#2206042ac4396bb18dd53b379df83bec47eeb5fb" + integrity sha512-duterlv3tit3HI9vhzMWnSVaB1B6YsXpFq1Ntd6Fou82BB1l4tucYy3FI9dHv3tvtDuS0NiGf/k6XsdBqPZ01w== + +"@esbuild/freebsd-arm64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.7.tgz#ca52bd64b0bba69ae4063245366f25838357c332" + integrity sha512-9kkycpBFes/vhi7B7o0cf+q2WdJi+EpVzpVTqtWFNiutARWDFFLcB93J8PR1cG228sucsl3B+7Ts27izE6qiaQ== + +"@esbuild/freebsd-x64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.7.tgz#bc01c146e6af5430c5eb325844de43f01e0264c4" + integrity sha512-5Ahf6jzWXJ4J2uh9dpy5DKOO+PeRUE/9DMys6VuYfwgQzd6n5+pVFm58L2Z2gRe611RX6SdydnNaiIKM3svY7g== + +"@esbuild/linux-arm64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.7.tgz#23267ff1cdd2a8f150d5aca1d6d2a4dfd4be7909" + integrity sha512-2wv0xYDskk2+MzIm/AEprDip39a23Chptc4mL7hsHg26P0gD8RUhzmDu0KCH2vMThUI1sChXXoK9uH0KYQKaDg== + +"@esbuild/linux-arm@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.7.tgz#2c7cf7244e4b8a6f757a87a113d83d8a0c1f5297" + integrity sha512-QqJnyCfu5OF78Olt7JJSZ7OSv/B4Hf+ZJWp4kkq9xwMsgu7yWq3crIic8gGOpDYTqVKKMDAVDgRXy5Wd/nWZyQ== + +"@esbuild/linux-ia32@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.7.tgz#a15dc3edf6953c5414add4264fd8335f48775490" + integrity sha512-APVYbEilKbD5ptmKdnIcXej2/+GdV65TfTjxR2Uk8t1EsOk49t6HapZW6DS/Bwlvh5hDwtLapdSumIVNGxgqLg== + +"@esbuild/linux-loong64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.7.tgz#b3ce8539cf307b543796530839cf62507d9c7e84" + integrity sha512-5wPUAGclplQrAW7EFr3F84Y/d++7G0KykohaF4p54+iNWhUnMVU8Bh2sxiEOXUy4zKIdpHByMgJ5/Ko6QhtTUw== + +"@esbuild/linux-mips64el@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.7.tgz#7c1c8f3de254b4e975ac2580bba187b87b959256" + integrity sha512-hxzlXtWF6yWfkE/SMTscNiVqLOAn7fOuIF3q/kiZaXxftz1DhZW/HpnTmTTWrzrS7zJWQxHHT4QSxyAj33COmA== + +"@esbuild/linux-ppc64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.7.tgz#72a00c9788f3ca5df56ecec060d5b92f945c9a2d" + integrity sha512-WM83Dac0LdXty5xPhlOuCD5Egfk1xLND/oRLYeB7Jb/tY4kzFSDgLlq91wYbHua/s03tQGA9iXvyjgymMw62Vw== + +"@esbuild/linux-riscv64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.7.tgz#545fd57e44dc3331a86956889f2a5b42bd116c9b" + integrity sha512-3nkNnNg4Ax6MS/l8O8Ynq2lGEVJYyJ2EoY3PHjNJ4PuZ80EYLMrFTFZ4L/Hc16AxgtXKwmNP9TM0YKNiBzBiJQ== + +"@esbuild/linux-s390x@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.7.tgz#a36fd4605904c49310616dd648c0c25a267a19c0" + integrity sha512-3SA/2VJuv0o1uD7zuqxEP+RrAyRxnkGddq0bwHQ98v1KNlzXD/JvxwTO3T6GM5RH6JUd29RTVQTOJfyzMkkppA== + +"@esbuild/linux-x64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.7.tgz#104f3f8f3f25f1f26b70cee05470974861ca5a5e" + integrity sha512-xi/tbqCqvPIzU+zJVyrpz12xqciTAPMi2fXEWGnapZymoGhuL2GIWIRXg4O2v5BXaYA5TSaiKYE14L0QhUTuQg== + +"@esbuild/netbsd-x64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.7.tgz#0fd59fea5e6b94ee82e81b3b389e561efe77b347" + integrity sha512-NUsYbq3B+JdNKn8SXkItFvdes9qTwEoS3aLALtiWciW/ystiCKM20Fgv9XQBOXfhUHyh5CLEeZDXzLOrwBXuCQ== + +"@esbuild/openbsd-x64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.7.tgz#c04072a70f31be1bd47204955d2c71ca393c9eb4" + integrity sha512-qjwzsgeve9I8Tbsko2FEkdSk2iiezuNGFgipQxY/736NePXDaDZRodIejYGWOlbYXugdxb0nif5yvypH6lKBmA== + +"@esbuild/sunos-x64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.7.tgz#11c4cd341be1de93cb5e3bf096f3b63ae1497626" + integrity sha512-mFWDz4RoBTzPphTCkM7Kc7Qpa0o/Z01acajR+Ai7LdfKgcP/C6jYOaKwv7nKzD0+MjOT20j7You9g4ozYy1dKQ== + +"@esbuild/win32-arm64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.7.tgz#95091269394f16352e318124790a3906bf370141" + integrity sha512-m39UmX19RvEIuC8sYZ0M+eQtdXw4IePDSZ78ZQmYyFaXY9krq4YzQCK2XWIJomNLtg4q+W5aXr8bW3AbqWNoVg== + +"@esbuild/win32-ia32@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.7.tgz#2bda285a0b7084a93417472c460b0209bef0c39d" + integrity sha512-1cbzSEZA1fANwmT6rjJ4G1qQXHxCxGIcNYFYR9ctI82/prT38lnwSRZ0i5p/MVXksw9eMlHlet6pGu2/qkXFCg== + +"@esbuild/win32-x64@0.16.7": + version "0.16.7" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.7.tgz#966ac3fc41758e6843cbd5844b2466bbdc34dada" + integrity sha512-QaQ8IH0JLacfGf5cf0HCCPnQuCTd/dAI257vXBgb/cccKGbH/6pVtI1gwhdAQ0Y48QSpTIFrh9etVyNdZY+zzw== "@eslint/eslintrc@^1.3.3": version "1.3.3" @@ -167,9 +267,9 @@ strip-json-comments "^3.1.1" "@humanwhocodes/config-array@^0.11.6": - version "0.11.7" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.7.tgz#38aec044c6c828f6ed51d5d7ae3d9b9faf6dbb0f" - integrity sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw== + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -217,10 +317,10 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@libp2p/interface-connection@^3.0.0", "@libp2p/interface-connection@^3.0.1", "@libp2p/interface-connection@^3.0.3": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@libp2p/interface-connection/-/interface-connection-3.0.3.tgz#cba3d59801ca905a92cf5aba78f1c7b489f64a57" - integrity sha512-bJRTu/e+sTl3XPApYXEq+SlnYZ6e5CnHah+sBGv2XHU20n+t3CKCkfGFtAyLSHasTZoHSaRLGHVpuV6Uovobtg== +"@libp2p/interface-connection@^3.0.0", "@libp2p/interface-connection@^3.0.1", "@libp2p/interface-connection@^3.0.3", "@libp2p/interface-connection@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@libp2p/interface-connection/-/interface-connection-3.0.4.tgz#a94cb338f40bf648ae98d9935287f4bfae54b7f8" + integrity sha512-JDxr5rjdQtAgtO3JjRdykqSADEkg2WKQSaBhPk/Wh4V9a9K07TKJdmCFuOx0Eag4wrudOxFPBs7jEQMhLCUhtA== dependencies: "@libp2p/interface-peer-id" "^1.0.0" "@libp2p/interfaces" "^3.0.0" @@ -229,25 +329,25 @@ uint8arraylist "^2.1.2" "@libp2p/interface-peer-id@^1.0.0", "@libp2p/interface-peer-id@^1.0.2": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-id/-/interface-peer-id-1.0.6.tgz#fe8f81337dd3989220a4fe2c30d852d6451c37b6" - integrity sha512-3iMoAnXq/F+t/JWbNPb9UePvwgmm5rFUCEwNgAiDOUtXUZsXZO0Ko3eF9O1gpLe1KNH5wK7g2Wf46YW1vRAS8A== + version "1.1.1" + resolved "https://registry.yarnpkg.com/@libp2p/interface-peer-id/-/interface-peer-id-1.1.1.tgz#745e667a3f642924bcdb3f30a0bc715fde096a9e" + integrity sha512-iNbM3ZnEkYheNIB/jXmN/zrVlTc1E/DZpVGHtGiXYbHXpQS17kAo4Y3zZF3Act5rLq6lJeZ0f1lpZO0GWTC3vw== dependencies: multiformats "^10.0.0" -"@libp2p/interface-stream-muxer@^3.0.0", "@libp2p/interface-stream-muxer@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@libp2p/interface-stream-muxer/-/interface-stream-muxer-3.0.1.tgz#d7724cb38800dc4843c476118ee0ce24a190526f" - integrity sha512-HlIZFMMSYTKOKn5VBw8UHQ5qya6oWSqpP2ygtSoB/nbBcC/3mv/4cbvozJUAGrOrDz01YY3QOB2LJ6R1b0EWCQ== +"@libp2p/interface-stream-muxer@^3.0.0", "@libp2p/interface-stream-muxer@^3.0.1", "@libp2p/interface-stream-muxer@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@libp2p/interface-stream-muxer/-/interface-stream-muxer-3.0.2.tgz#781256c48a326b138df4969a157ac7fdf39ebc46" + integrity sha512-mvR8g7Ja8vbj8IbwMiBhoY+s4jw7CZ+OMWYOE3KrU9jG+aYewsHDQgsCkjd9u0uSLKmHOfFmfXRyZ5eu2BVwsA== dependencies: "@libp2p/interface-connection" "^3.0.0" "@libp2p/interfaces" "^3.0.0" it-stream-types "^1.0.4" "@libp2p/interfaces@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@libp2p/interfaces/-/interfaces-3.0.4.tgz#12405f03831e0ae416cc15925f82602031d2d118" - integrity sha512-e8GZAgr72bT2qfDsIVb9lKDA2itLLGfXnaC18VXsToFUd4kCAe6ggUsRFpCBjrX3aWZ16pRiGy4afprOCfgyIg== + version "3.0.5" + resolved "https://registry.yarnpkg.com/@libp2p/interfaces/-/interfaces-3.0.5.tgz#2fb5da4519a4201cf2120e27b95da584847fdf25" + integrity sha512-nGFHlCazeM7Btd3ORHwpG6RMkMos5j2UreDR+1+IaL+NTF9H3RUDpVBZKfMx++wuRkMfadiXBNPBLbsb8oh0oA== "@libp2p/logger@^2.0.1": version "2.0.2" @@ -260,9 +360,9 @@ multiformats "^10.0.0" "@multiformats/multiaddr@^11.0.0": - version "11.0.7" - resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-11.0.7.tgz#1151e474e4a097657e4f18fd01a64a273d178a46" - integrity sha512-rCqYS3Qz/dm4H/1Lvda11OBZf1tH8rst69GWK9jDy8AY+3n+NBBdErA/SRtdcRx6hPtQ8lAB5UhHlzIVbViv1Q== + version "11.1.3" + resolved "https://registry.yarnpkg.com/@multiformats/multiaddr/-/multiaddr-11.1.3.tgz#44983ed9f1583d5a41cb56f3475a22b2a6621e5d" + integrity sha512-Wky0iVtOhyTVGI5IKgLVKpKwB4Ef3cHTT3vyK4Ce+wYQ1W/+T1APtNoBbjcEOE4HC5QmJKr/WZ9V7le3zwhbxQ== dependencies: "@chainsafe/is-ip" "^2.0.1" dns-over-http-resolver "^2.1.0" @@ -361,9 +461,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/node@>=13.7.0": - version "18.11.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.10.tgz#4c64759f3c2343b7e6c4b9caf761c7a3a05cee34" - integrity sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ== + version "18.11.15" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.15.tgz#de0e1fbd2b22b962d45971431e2ae696643d3f5d" + integrity sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw== "@types/object-hash@^1.3.0": version "1.3.4" @@ -380,14 +480,14 @@ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== -"@typescript-eslint/eslint-plugin@^5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.45.0.tgz#ffa505cf961d4844d38cfa19dcec4973a6039e41" - integrity sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA== +"@typescript-eslint/eslint-plugin@^5.46.1": + version "5.46.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.1.tgz#098abb4c9354e19f460d57ab18bff1f676a6cff0" + integrity sha512-YpzNv3aayRBwjs4J3oz65eVLXc9xx0PDbIRisHj+dYhvBn02MjYOD96P8YGiWEIFBrojaUjxvkaUpakD82phsA== dependencies: - "@typescript-eslint/scope-manager" "5.45.0" - "@typescript-eslint/type-utils" "5.45.0" - "@typescript-eslint/utils" "5.45.0" + "@typescript-eslint/scope-manager" "5.46.1" + "@typescript-eslint/type-utils" "5.46.1" + "@typescript-eslint/utils" "5.46.1" debug "^4.3.4" ignore "^5.2.0" natural-compare-lite "^1.4.0" @@ -395,72 +495,72 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.45.0.tgz#b18a5f6b3cf1c2b3e399e9d2df4be40d6b0ddd0e" - integrity sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ== +"@typescript-eslint/parser@^5.46.1": + version "5.46.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.46.1.tgz#1fc8e7102c1141eb64276c3b89d70da8c0ba5699" + integrity sha512-RelQ5cGypPh4ySAtfIMBzBGyrNerQcmfA1oJvPj5f+H4jI59rl9xxpn4bonC0tQvUKOEN7eGBFWxFLK3Xepneg== dependencies: - "@typescript-eslint/scope-manager" "5.45.0" - "@typescript-eslint/types" "5.45.0" - "@typescript-eslint/typescript-estree" "5.45.0" + "@typescript-eslint/scope-manager" "5.46.1" + "@typescript-eslint/types" "5.46.1" + "@typescript-eslint/typescript-estree" "5.46.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.45.0.tgz#7a4ac1bfa9544bff3f620ab85947945938319a96" - integrity sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw== +"@typescript-eslint/scope-manager@5.46.1": + version "5.46.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.46.1.tgz#70af8425c79bbc1178b5a63fb51102ddf48e104a" + integrity sha512-iOChVivo4jpwUdrJZyXSMrEIM/PvsbbDOX1y3UCKjSgWn+W89skxWaYXACQfxmIGhPVpRWK/VWPYc+bad6smIA== dependencies: - "@typescript-eslint/types" "5.45.0" - "@typescript-eslint/visitor-keys" "5.45.0" + "@typescript-eslint/types" "5.46.1" + "@typescript-eslint/visitor-keys" "5.46.1" -"@typescript-eslint/type-utils@5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.45.0.tgz#aefbc954c40878fcebeabfb77d20d84a3da3a8b2" - integrity sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q== +"@typescript-eslint/type-utils@5.46.1": + version "5.46.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.46.1.tgz#195033e4b30b51b870dfcf2828e88d57b04a11cc" + integrity sha512-V/zMyfI+jDmL1ADxfDxjZ0EMbtiVqj8LUGPAGyBkXXStWmCUErMpW873zEHsyguWCuq2iN4BrlWUkmuVj84yng== dependencies: - "@typescript-eslint/typescript-estree" "5.45.0" - "@typescript-eslint/utils" "5.45.0" + "@typescript-eslint/typescript-estree" "5.46.1" + "@typescript-eslint/utils" "5.46.1" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.45.0.tgz#794760b9037ee4154c09549ef5a96599621109c5" - integrity sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA== +"@typescript-eslint/types@5.46.1": + version "5.46.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.46.1.tgz#4e9db2107b9a88441c4d5ecacde3bb7a5ebbd47e" + integrity sha512-Z5pvlCaZgU+93ryiYUwGwLl9AQVB/PQ1TsJ9NZ/gHzZjN7g9IAn6RSDkpCV8hqTwAiaj6fmCcKSQeBPlIpW28w== -"@typescript-eslint/typescript-estree@5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.45.0.tgz#f70a0d646d7f38c0dfd6936a5e171a77f1e5291d" - integrity sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ== +"@typescript-eslint/typescript-estree@5.46.1": + version "5.46.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.1.tgz#5358088f98a8f9939355e0996f9c8f41c25eced2" + integrity sha512-j9W4t67QiNp90kh5Nbr1w92wzt+toiIsaVPnEblB2Ih2U9fqBTyqV9T3pYWZBRt6QoMh/zVWP59EpuCjc4VRBg== dependencies: - "@typescript-eslint/types" "5.45.0" - "@typescript-eslint/visitor-keys" "5.45.0" + "@typescript-eslint/types" "5.46.1" + "@typescript-eslint/visitor-keys" "5.46.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.45.0.tgz#9cca2996eee1b8615485a6918a5c763629c7acf5" - integrity sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA== +"@typescript-eslint/utils@5.46.1": + version "5.46.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.46.1.tgz#7da3c934d9fd0eb4002a6bb3429f33298b469b4a" + integrity sha512-RBdBAGv3oEpFojaCYT4Ghn4775pdjvwfDOfQ2P6qzNVgQOVrnSPe5/Pb88kv7xzYQjoio0eKHKB9GJ16ieSxvA== dependencies: "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.45.0" - "@typescript-eslint/types" "5.45.0" - "@typescript-eslint/typescript-estree" "5.45.0" + "@typescript-eslint/scope-manager" "5.46.1" + "@typescript-eslint/types" "5.46.1" + "@typescript-eslint/typescript-estree" "5.46.1" eslint-scope "^5.1.1" eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.45.0": - version "5.45.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.45.0.tgz#e0d160e9e7fdb7f8da697a5b78e7a14a22a70528" - integrity sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg== +"@typescript-eslint/visitor-keys@5.46.1": + version "5.46.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.1.tgz#126cc6fe3c0f83608b2b125c5d9daced61394242" + integrity sha512-jczZ9noovXwy59KjRTk1OftT78pwygdcmCuBf8yMoWt/8O8l+6x2LSEze0E4TeepXK4MezW3zGSyoDRZK7Y9cg== dependencies: - "@typescript-eslint/types" "5.45.0" + "@typescript-eslint/types" "5.46.1" eslint-visitor-keys "^3.3.0" "@vue/compiler-core@3.2.45": @@ -669,6 +769,11 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== +case-anything@^2.1.10: + version "2.1.10" + resolved "https://registry.yarnpkg.com/case-anything/-/case-anything-2.1.10.tgz#d18a6ca968d54ec3421df71e3e190f3bced23410" + integrity sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ== + chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -879,133 +984,33 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -esbuild-android-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.16.tgz#0d6a16fa1bea441d5183976f1633183c25a764d5" - integrity sha512-Vwkv/sT0zMSgPSVO3Jlt1pUbnZuOgtOQJkJkyyJFAlLe7BiT8e9ESzo0zQSx4c3wW4T6kGChmKDPMbWTgtliQA== - -esbuild-android-arm64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.16.tgz#78643bbbf396d26d20ba1f2fcdff3618c7c033e9" - integrity sha512-lqfKuofMExL5niNV3gnhMUYacSXfsvzTa/58sDlBET/hCOG99Zmeh+lz6kvdgvGOsImeo6J9SW21rFCogNPLxg== - -esbuild-darwin-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.16.tgz#de3e91809dcd1ffb64409e2f990bb86e33e4ffd8" - integrity sha512-wo2VWk/n/9V2TmqUZ/KpzRjCEcr00n7yahEdmtzlrfQ3lfMCf3Wa+0sqHAbjk3C6CKkR3WKK/whkMq5Gj4Da9g== - -esbuild-darwin-arm64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.16.tgz#bc9cc8d51109d8e9db4ffe2c064dd53d1eb5a2a6" - integrity sha512-fMXaUr5ou0M4WnewBKsspMtX++C1yIa3nJ5R2LSbLCfJT3uFdcRoU/NZjoM4kOMKyOD9Sa/2vlgN8G07K3SJnw== - -esbuild-freebsd-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.16.tgz#f8c54c679c16e9b20a1bf860ca91ba700d6c9c5d" - integrity sha512-UzIc0xlRx5x9kRuMr+E3+hlSOxa/aRqfuMfiYBXu2jJ8Mzej4lGL7+o6F5hzhLqWfWm1GWHNakIdlqg1ayaTNQ== - -esbuild-freebsd-arm64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.16.tgz#dd28a55df0f062e2c1628266008434c32ddc7adf" - integrity sha512-8xyiYuGc0DLZphFQIiYaLHlfoP+hAN9RHbE+Ibh8EUcDNHAqbQgUrQg7pE7Bo00rXmQ5Ap6KFgcR0b4ALZls1g== - -esbuild-linux-32@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.16.tgz#41eb0b9b49b3430b9cc4577f1ad3d414ef70f806" - integrity sha512-iGijUTV+0kIMyUVoynK0v+32Oi8yyp0xwMzX69GX+5+AniNy/C/AL1MjFTsozRp/3xQPl7jVux/PLe2ds10/2w== - -esbuild-linux-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.16.tgz#b2fb0c7d49b7a579b2de26fbf4c7afb1835f2073" - integrity sha512-tuSOjXdLw7VzaUj89fIdAaQT7zFGbKBcz4YxbWrOiXkwscYgE7HtTxUavreBbnRkGxKwr9iT/gmeJWNm4djy/g== - -esbuild-linux-arm64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.16.tgz#78fed3745b20251fc3bdc8db35ea0781e9b0e7c6" - integrity sha512-mPYksnfHnemNrvjrDhZyixL/AfbJN0Xn9S34ZOHYdh6/jJcNd8iTsv3JwJoEvTJqjMggjMhGUPJAdjnFBHoH8A== - -esbuild-linux-arm@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.16.tgz#6963f061a2b778aad7df2bfb6fa32d1904313f7f" - integrity sha512-XKcrxCEXDTOuoRj5l12tJnkvuxXBMKwEC5j0JISw3ziLf0j4zIwXbKbTmUrKFWbo6ZgvNpa7Y5dnbsjVvH39bQ== - -esbuild-linux-mips64le@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.16.tgz#e2aed3527e551f8182c6b0fc8a045726fd98ad87" - integrity sha512-kSJO2PXaxfm0pWY39+YX+QtpFqyyrcp0ZeI8QPTrcFVQoWEPiPVtOfTZeS3ZKedfH+Ga38c4DSzmKMQJocQv6A== - -esbuild-linux-ppc64le@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.16.tgz#fa3095b24950f63408f46f34b6d9a073ed88d53f" - integrity sha512-NimPikwkBY0yGABw6SlhKrtT35sU4O23xkhlrTT/O6lSxv3Pm5iSc6OYaqVAHWkLdVf31bF4UDVFO+D990WpAA== - -esbuild-linux-riscv64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.16.tgz#19c012dcc55c9d6d2a3855aa77c2c5217182cd1e" - integrity sha512-ty2YUHZlwFOwp7pR+J87M4CVrXJIf5ZZtU/umpxgVJBXvWjhziSLEQxvl30SYfUPq0nzeWKBGw5i/DieiHeKfw== - -esbuild-linux-s390x@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.16.tgz#aa61f64740e5b983cc3ebb4183a03df4b435a873" - integrity sha512-VkZaGssvPDQtx4fvVdZ9czezmyWyzpQhEbSNsHZZN0BHvxRLOYAQ7sjay8nMQwYswP6O2KlZluRMNPYefFRs+w== - -esbuild-netbsd-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.16.tgz#dffdc104c1f2bafc42be3faa21376c0a092f5702" - integrity sha512-ElQ9rhdY51et6MJTWrCPbqOd/YuPowD7Cxx3ee8wlmXQQVW7UvQI6nSprJ9uVFQISqSF5e5EWpwWqXZsECLvXg== - -esbuild-openbsd-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.16.tgz#e5987f8eda55ea5f6ef6258afb1a838158f890bb" - integrity sha512-KgxMHyxMCT+NdLQE1zVJEsLSt2QQBAvJfmUGDmgEq8Fvjrf6vSKB00dVHUEDKcJwMID6CdgCpvYNt999tIYhqA== - -esbuild-sunos-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.16.tgz#60a085aa4b74d900e4de8c00a9fce207937320a2" - integrity sha512-exSAx8Phj7QylXHlMfIyEfNrmqnLxFqLxdQF6MBHPdHAjT7fsKaX6XIJn+aQEFiOcE4X8e7VvdMCJ+WDZxjSRQ== - -esbuild-windows-32@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.16.tgz#24f94e5fb243d211c7db9a12985fd2880ba98ca3" - integrity sha512-zQgWpY5pUCSTOwqKQ6/vOCJfRssTvxFuEkpB4f2VUGPBpdddZfdj8hbZuFRdZRPIVHvN7juGcpgCA/XCF37mAQ== - -esbuild-windows-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.16.tgz#71d24d68d8b652bf5a93a6c7453c334584fa2211" - integrity sha512-HjW1hHRLSncnM3MBCP7iquatHVJq9l0S2xxsHHj4yzf4nm9TU4Z7k4NkeMlD/dHQ4jPlQQhwcMvwbJiOefSuZw== - -esbuild-windows-arm64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.16.tgz#77e804d60dec0390fe8f21401e39b435d5d1b863" - integrity sha512-oCcUKrJaMn04Vxy9Ekd8x23O8LoU01+4NOkQ2iBToKgnGj5eo1vU9i27NQZ9qC8NFZgnQQZg5oZWAejmbsppNA== - -esbuild@^0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.16.tgz#59324e5667985bf6aee8a91ea576baef6872cf21" - integrity sha512-o6iS9zxdHrrojjlj6pNGC2NAg86ECZqIETswTM5KmJitq+R1YmahhWtMumeQp9lHqJaROGnsBi2RLawGnfo5ZQ== +esbuild@^0.16.7: + version "0.16.7" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.7.tgz#3288f685a83c6097dea8ddf1759ca30d6e06535b" + integrity sha512-P6OBFYFSQOGzfApqCeYKqfKRRbCIRsdppTXFo4aAvtiW3o8TTyiIplBvHJI171saPAiy3WlawJHCveJVIOIx1A== optionalDependencies: - "@esbuild/android-arm" "0.15.16" - "@esbuild/linux-loong64" "0.15.16" - esbuild-android-64 "0.15.16" - esbuild-android-arm64 "0.15.16" - esbuild-darwin-64 "0.15.16" - esbuild-darwin-arm64 "0.15.16" - esbuild-freebsd-64 "0.15.16" - esbuild-freebsd-arm64 "0.15.16" - esbuild-linux-32 "0.15.16" - esbuild-linux-64 "0.15.16" - esbuild-linux-arm "0.15.16" - esbuild-linux-arm64 "0.15.16" - esbuild-linux-mips64le "0.15.16" - esbuild-linux-ppc64le "0.15.16" - esbuild-linux-riscv64 "0.15.16" - esbuild-linux-s390x "0.15.16" - esbuild-netbsd-64 "0.15.16" - esbuild-openbsd-64 "0.15.16" - esbuild-sunos-64 "0.15.16" - esbuild-windows-32 "0.15.16" - esbuild-windows-64 "0.15.16" - esbuild-windows-arm64 "0.15.16" + "@esbuild/android-arm" "0.16.7" + "@esbuild/android-arm64" "0.16.7" + "@esbuild/android-x64" "0.16.7" + "@esbuild/darwin-arm64" "0.16.7" + "@esbuild/darwin-x64" "0.16.7" + "@esbuild/freebsd-arm64" "0.16.7" + "@esbuild/freebsd-x64" "0.16.7" + "@esbuild/linux-arm" "0.16.7" + "@esbuild/linux-arm64" "0.16.7" + "@esbuild/linux-ia32" "0.16.7" + "@esbuild/linux-loong64" "0.16.7" + "@esbuild/linux-mips64el" "0.16.7" + "@esbuild/linux-ppc64" "0.16.7" + "@esbuild/linux-riscv64" "0.16.7" + "@esbuild/linux-s390x" "0.16.7" + "@esbuild/linux-x64" "0.16.7" + "@esbuild/netbsd-x64" "0.16.7" + "@esbuild/openbsd-x64" "0.16.7" + "@esbuild/sunos-x64" "0.16.7" + "@esbuild/win32-arm64" "0.16.7" + "@esbuild/win32-ia32" "0.16.7" + "@esbuild/win32-x64" "0.16.7" escalade@^3.1.1: version "3.1.1" @@ -1060,10 +1065,10 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.28.0: - version "8.28.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.28.0.tgz#81a680732634677cc890134bcdd9fdfea8e63d6e" - integrity sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ== +eslint@^8.29.0: + version "8.29.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.29.0.tgz#d74a88a20fb44d59c51851625bc4ee8d0ec43f87" + integrity sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg== dependencies: "@eslint/eslintrc" "^1.3.3" "@humanwhocodes/config-array" "^0.11.6" @@ -1168,11 +1173,6 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-fifo@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.1.0.tgz#17d1a3646880b9891dfa0c54e69c5fef33cad779" - integrity sha512-Kl29QoNbNvn4nhDsLYjyIAaIqaJB6rBx5p3sL9VjaefJ+eMFBWVZiaoguaoZfzEKr5RhAti0UgM8703akGPJ6g== - fast-glob@^3.2.9: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" @@ -1195,9 +1195,9 @@ fast-levenshtein@^2.0.6: integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.14.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce" + integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== dependencies: reusify "^1.0.4" @@ -1309,9 +1309,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.15.0: - version "13.18.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.18.0.tgz#fb224daeeb2bb7d254cd2c640f003528b8d0c1dc" - integrity sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A== + version "13.19.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" + integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== dependencies: type-fest "^0.20.2" @@ -1520,29 +1520,22 @@ it-length-prefixed@^8.0.3: uint8arraylist "^2.0.0" uint8arrays "^4.0.2" -it-merge@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/it-merge/-/it-merge-1.0.4.tgz#81c8d427b389b1cd039c25015edb804cd1a60545" - integrity sha512-DcL6GksTD2HQ7+5/q3JznXaLNfwjyG3/bObaF98da+oHfUiPmdo64oJlT9J8R8G5sJRU7thwaY5zxoAKCn7FJw== +it-merge@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/it-merge/-/it-merge-2.0.0.tgz#adfcd33199995a503cb37ac73548f65d8a0742db" + integrity sha512-mH4bo/ZrMoU+Wlu7ZuYPNNh9oWZ/GvYbeXZ0zll97+Rp6H4jFu98iu6v9qqXDz//RUjdO9zGh8awzMfOElsjpA== dependencies: - it-pushable "^1.4.0" + it-pushable "^3.1.0" -it-pipe@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/it-pipe/-/it-pipe-2.0.4.tgz#fa72c2fdb3c7a467ff21d109e746ebfadfe9c749" - integrity sha512-lK0BV0egwfc64DFJva+0Jh1z8UxwmYBpAHDwq21s0OenRCaEDIntx/iOyWH/jg5efBU6Xa8igzmOqm2CPPNDgg== +it-pipe@^2.0.4, it-pipe@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/it-pipe/-/it-pipe-2.0.5.tgz#9caf7993dcbbc3824bc6ef64ee8b94574f65afa7" + integrity sha512-y85nW1N6zoiTnkidr2EAyC+ZVzc7Mwt2p+xt2a2ooG1ThFakSpNw1Kxm+7F13Aivru96brJhjQVRQNU+w0yozw== dependencies: - it-merge "^1.0.4" + it-merge "^2.0.0" it-pushable "^3.1.0" it-stream-types "^1.0.3" -it-pushable@^1.4.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/it-pushable/-/it-pushable-1.4.2.tgz#fb127a53ec99b35a3a455a775abc85ab193c220b" - integrity sha512-vVPu0CGRsTI8eCfhMknA7KIBqqGFolbRx+1mbQ6XuZ7YCz995Qj7L4XUviwClFunisDq96FdxzF5FnAbw15afg== - dependencies: - fast-fifo "^1.0.0" - it-pushable@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/it-pushable/-/it-pushable-3.1.0.tgz#2fba7aaca189595e64e042ac947c6748ece2eb6b" @@ -1553,10 +1546,10 @@ it-stream-types@^1.0.2, it-stream-types@^1.0.3, it-stream-types@^1.0.4: resolved "https://registry.yarnpkg.com/it-stream-types/-/it-stream-types-1.0.4.tgz#6e66a11abfd98abab4894c30da15829a0a56bb43" integrity sha512-0F3CqTIcIHwtnmIgqd03a7sw8BegAmE32N2w7anIGdALea4oAN4ltqPgDMZ7zn4XPLZifXEZlBXSzgg64L1Ebw== -it-ws@^5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/it-ws/-/it-ws-5.0.3.tgz#7859641a964981116c2e9a567b5d8ef6424c29e9" - integrity sha512-xdkVWNOY41Qfw3zggqQX+JoQxtb6AHmt/ns26nJfBZaDFnYno6KAeU7E+hiHyvtheuE2IXRxVaF+w63Jmfhl5g== +it-ws@^5.0.3, it-ws@^5.0.6: + version "5.0.6" + resolved "https://registry.yarnpkg.com/it-ws/-/it-ws-5.0.6.tgz#9b69ff2ef9d08fda18ef2db604acf972d0fedded" + integrity sha512-TEEJQaGtkxgP/nGVq8dq48nPT85Afu8kwwvtDFLj4rQLWRhZcb26RWdXLdn9qhXkWPiWbK5H7JWBW1Bebj/SuQ== dependencies: event-iterator "^2.0.0" iso-url "^1.1.2" @@ -1653,7 +1646,7 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.17.20: +lodash@4.17.21, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -1924,9 +1917,9 @@ please-upgrade-node@^3.2.0: semver-compare "^1.0.0" postcss@^8.1.10: - version "8.4.19" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.19.tgz#61178e2add236b17351897c8bcc0b4c8ecab56fc" - integrity sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA== + version "8.4.20" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" + integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -1937,10 +1930,10 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.0.tgz#c7df58393c9ba77d6fba3921ae01faf994fb9dc9" - integrity sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA== +prettier@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc" + integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg== protobufjs@^6.11.3, protobufjs@^6.8.8: version "6.11.3" @@ -1985,11 +1978,12 @@ punycode@^2.1.0: integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== query-ast@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/query-ast/-/query-ast-1.0.4.tgz#efa832e1270cc3e0ab42291716f73a7de1928c2a" - integrity sha512-KFJFSvODCBjIH5HbHvITj9EEZKYUU6VX0T5CuB1ayvjUoUaZkKMi6eeby5Tf8DMukyZHlJQOE1+f3vevKUe6eg== + version "1.0.5" + resolved "https://registry.yarnpkg.com/query-ast/-/query-ast-1.0.5.tgz#60f60593e8ea085082aaf9f316631a5cc070074a" + integrity sha512-JK+1ma4YDuLjvKKcz9JZ70G+CM9qEOs/l1cZzstMMfwKUabTJ9sud5jvDGrUNuv03yKUgs82bLkHXJkDyhRmBw== dependencies: invariant "2.2.4" + lodash "^4.17.21" queue-microtask@^1.2.2: version "1.2.3" @@ -2080,20 +2074,21 @@ safe-buffer@~5.2.0: integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== sass@^1.29.0: - version "1.56.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.56.1.tgz#94d3910cd468fd075fa87f5bb17437a0b617d8a7" - integrity sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ== + version "1.56.2" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.56.2.tgz#9433b345ab3872996c82a53a58c014fd244fd095" + integrity sha512-ciEJhnyCRwzlBCB+h5cCPM6ie/6f8HrhZMQOf5vlU60Y1bI1rx5Zb0vlDZvaycHsg/MqFfF1Eq2eokAa32iw8w== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" source-map-js ">=0.6.2 <2.0.0" scss-parser@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/scss-parser/-/scss-parser-1.0.5.tgz#2297d688a4c300e94552f72c41fd7de092d19c4b" - integrity sha512-RZOtvCmCnwkDo7kdcYBi807Y5EoTIxJ34AgEgJNDmOH1jl0/xG0FyYZFbH6Ga3Iwu7q8LSdxJ4C5UkzNXjQxKQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/scss-parser/-/scss-parser-1.0.6.tgz#cd1ba01ee32db19322c8df2badd26da8f166b1c1" + integrity sha512-SH3TaoaJFzfAtqs3eG1j5IuHJkeEW5rKUPIjIN+ZorLAyJLHItQGnsgwHk76v25GtLtpT9IqfAcqK4vFWdiw+w== dependencies: invariant "2.2.4" + lodash "4.17.21" semver-compare@^1.0.0: version "1.0.0" @@ -2166,10 +2161,10 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -starpc@^0.15.2: - version "0.15.2" - resolved "https://registry.yarnpkg.com/starpc/-/starpc-0.15.2.tgz#bfe906c32d2570ba21a9ff96119c548bef5be80a" - integrity sha512-RH2QGzEE/c+ovf4KF2isO2HLeOfmYn4JLL6Ekv4X4eYWjW3jD13AKsk7UvSHKxwOexLoWjnVOmuYte0wuqgU/Q== +starpc@^0.15.4: + version "0.15.4" + resolved "https://registry.yarnpkg.com/starpc/-/starpc-0.15.4.tgz#3dca44bc7eefd4e9d641cce5f9c13a2fdf725bc2" + integrity sha512-d/EcmDpHjATPxXLcJSrAY9M0w1X0umYXXzb7LVPWxex/18gFbGOYCRIxdU/aIXw4wrk+1L86FaHsiZmYZHed2w== dependencies: "@chainsafe/libp2p-yamux" "^3.0.3" "@libp2p/interface-connection" "^3.0.3" @@ -2280,12 +2275,13 @@ ts-proto-descriptors@1.7.1: long "^4.0.0" protobufjs "^6.8.8" -ts-proto@^1.135.0: - version "1.135.0" - resolved "https://registry.yarnpkg.com/ts-proto/-/ts-proto-1.135.0.tgz#9e6ebb8fff42325d4ae475d2cd763068a8485846" - integrity sha512-NwK+PcSiWZBzO8GFVID2Ig71vIZRCApTG8XDZIlQ3WabbJlbUx9zsrHcYNojcUENtqkiYywTp3uTP6dketiCpw== +ts-proto@^1.136.0: + version "1.136.0" + resolved "https://registry.yarnpkg.com/ts-proto/-/ts-proto-1.136.0.tgz#bc96978ab721f034a277dcbeda283d7782d11976" + integrity sha512-u0uoQ8wSpjdxTYbk8wt62MMgjQej39l4pf3rCsowVlOw4AgL1rpbS3Gwbl0pl1WBUqBiXcHMlueLDMTV++1kwA== dependencies: "@types/object-hash" "^1.3.0" + case-anything "^2.1.10" dataloader "^1.4.0" object-hash "^1.3.1" protobufjs "^6.11.3" @@ -2316,10 +2312,10 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -typescript@^4.9.3: - version "4.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" - integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA== +typescript@^4.9.4: + version "4.9.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" + integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== uint8-varint@^1.0.1: version "1.0.4" @@ -2346,9 +2342,9 @@ uint8arrays@^4.0.2: multiformats "^10.0.0" undici@^5.12.0: - version "5.13.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.13.0.tgz#56772fba89d8b25e39bddc8c26a438bd73ea69bb" - integrity sha512-UDZKtwb2k7KRsK4SdXWG7ErXiL7yTGgLWvk2AXO1JMjgjh404nFo6tWSCM2xMpJwMPx3J8i/vfqEh1zOqvj82Q== + version "5.14.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.14.0.tgz#1169d0cdee06a4ffdd30810f6228d57998884d00" + integrity sha512-yJlHYw6yXPPsuOH0x2Ib1Km61vu4hLiRRQoafs+WUgX1vO64vgnxiCEN9dpIrhZyHFsai3F0AEj4P9zy19enEQ== dependencies: busboy "^1.6.0"