diff --git a/modules/chronik-client/README.md b/modules/chronik-client/README.md --- a/modules/chronik-client/README.md +++ b/modules/chronik-client/README.md @@ -11,58 +11,58 @@ ## Usage ```js -import { ChronikClient } from "chronik-client" +import { ChronikClient } from 'chronik-client'; // For XEC, eCash chain: -const chronik = new ChronikClient("https://chronik.be.cash/xec") +const chronik = new ChronikClient('https://chronik.be.cash/xec'); // For XPI, Lotus chain: -const chronik = new ChronikClient("https://chronik.be.cash/xpi") +const chronik = new ChronikClient('https://chronik.be.cash/xpi'); // Get Genesis block (on eCash): const block = await chronik.block( - "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", -) + '000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f', +); // Get the first 11 blocks of the chain: -const blocks = await chronik.blocks(0, 10) +const blocks = await chronik.blocks(0, 10); // Get SLP tx details on eCash: const tx = await chronik.tx( - "0f3c3908a2ddec8dea91d2fe1f77295bbbb158af869bff345d44ae800f0a5498", -) + '0f3c3908a2ddec8dea91d2fe1f77295bbbb158af869bff345d44ae800f0a5498', +); // Validate Genesis UTXO (considered 'unspent' by Chronik): const validationResult = await chronik.validateUtxos([ - { - txid: "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b", - outIdx: 0, - }, -]) + { + txid: '4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b', + outIdx: 0, + }, +]); const GENESIS_PK = - "04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc" + - "3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f" + '04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc' + + '3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f'; // Get first page of tx history of the Genesis pubkey, most recent first: const history = await chronik - .script("p2pk", GENESIS_PK) - .history(/*page=*/ 0, /*page_size=*/ 10) + .script('p2pk', GENESIS_PK) + .history(/*page=*/ 0, /*page_size=*/ 10); // Get all UTXOs of the Genesis pubkey: -const utxos = await chronik.script("p2pk", GENESIS_PK).utxos() +const utxos = await chronik.script('p2pk', GENESIS_PK).utxos(); // Listen to updates on scripts: const ws = chronik.ws({ - onMessage: msg => { - console.log("Got update: ", msg) - }, - onReconnect: e => { - // Fired before a reconnect attempt is made: - console.log("Reconnecting websocket, disconnection cause: ", e) - }, -}) + onMessage: msg => { + console.log('Got update: ', msg); + }, + onReconnect: e => { + // Fired before a reconnect attempt is made: + console.log('Reconnecting websocket, disconnection cause: ', e); + }, +}); // Wait for WS to be connected: -await ws.waitForOpen() +await ws.waitForOpen(); // Subscribe to scripts (on Lotus, current ABC payout address): // Will give a message on avg every 2 minutes -ws.subscribe("p2pkh", "b8ae1c47effb58f72f7bca819fe7fc252f9e852e") +ws.subscribe('p2pkh', 'b8ae1c47effb58f72f7bca819fe7fc252f9e852e'); // Unsubscribe: -ws.unsubscribe("p2pkh", "b8ae1c47effb58f72f7bca819fe7fc252f9e852e") +ws.unsubscribe('p2pkh', 'b8ae1c47effb58f72f7bca819fe7fc252f9e852e'); ``` diff --git a/modules/chronik-client/chronik.ts b/modules/chronik-client/chronik.ts --- a/modules/chronik-client/chronik.ts +++ b/modules/chronik-client/chronik.ts @@ -1,3797 +1,4037 @@ /* eslint-disable */ -import Long from "long" -import * as _m0 from "protobufjs/minimal" +import Long from 'long'; +import * as _m0 from 'protobufjs/minimal'; -export const protobufPackage = "chronik" +export const protobufPackage = 'chronik'; export enum SlpTokenType { - FUNGIBLE = 0, - NFT1_GROUP = 1, - NFT1_CHILD = 2, - UNKNOWN_TOKEN_TYPE = 3, - UNRECOGNIZED = -1, + FUNGIBLE = 0, + NFT1_GROUP = 1, + NFT1_CHILD = 2, + UNKNOWN_TOKEN_TYPE = 3, + UNRECOGNIZED = -1, } export function slpTokenTypeFromJSON(object: any): SlpTokenType { - switch (object) { - case 0: - case "FUNGIBLE": - return SlpTokenType.FUNGIBLE - case 1: - case "NFT1_GROUP": - return SlpTokenType.NFT1_GROUP - case 2: - case "NFT1_CHILD": - return SlpTokenType.NFT1_CHILD - case 3: - case "UNKNOWN_TOKEN_TYPE": - return SlpTokenType.UNKNOWN_TOKEN_TYPE - case -1: - case "UNRECOGNIZED": - default: - return SlpTokenType.UNRECOGNIZED - } + switch (object) { + case 0: + case 'FUNGIBLE': + return SlpTokenType.FUNGIBLE; + case 1: + case 'NFT1_GROUP': + return SlpTokenType.NFT1_GROUP; + case 2: + case 'NFT1_CHILD': + return SlpTokenType.NFT1_CHILD; + case 3: + case 'UNKNOWN_TOKEN_TYPE': + return SlpTokenType.UNKNOWN_TOKEN_TYPE; + case -1: + case 'UNRECOGNIZED': + default: + return SlpTokenType.UNRECOGNIZED; + } } export function slpTokenTypeToJSON(object: SlpTokenType): string { - switch (object) { - case SlpTokenType.FUNGIBLE: - return "FUNGIBLE" - case SlpTokenType.NFT1_GROUP: - return "NFT1_GROUP" - case SlpTokenType.NFT1_CHILD: - return "NFT1_CHILD" - case SlpTokenType.UNKNOWN_TOKEN_TYPE: - return "UNKNOWN_TOKEN_TYPE" - default: - return "UNKNOWN" - } + switch (object) { + case SlpTokenType.FUNGIBLE: + return 'FUNGIBLE'; + case SlpTokenType.NFT1_GROUP: + return 'NFT1_GROUP'; + case SlpTokenType.NFT1_CHILD: + return 'NFT1_CHILD'; + case SlpTokenType.UNKNOWN_TOKEN_TYPE: + return 'UNKNOWN_TOKEN_TYPE'; + default: + return 'UNKNOWN'; + } } export enum SlpTxType { - GENESIS = 0, - SEND = 1, - MINT = 2, - BURN = 4, - UNKNOWN_TX_TYPE = 3, - UNRECOGNIZED = -1, + GENESIS = 0, + SEND = 1, + MINT = 2, + BURN = 4, + UNKNOWN_TX_TYPE = 3, + UNRECOGNIZED = -1, } export function slpTxTypeFromJSON(object: any): SlpTxType { - switch (object) { - case 0: - case "GENESIS": - return SlpTxType.GENESIS - case 1: - case "SEND": - return SlpTxType.SEND - case 2: - case "MINT": - return SlpTxType.MINT - case 4: - case "BURN": - return SlpTxType.BURN - case 3: - case "UNKNOWN_TX_TYPE": - return SlpTxType.UNKNOWN_TX_TYPE - case -1: - case "UNRECOGNIZED": - default: - return SlpTxType.UNRECOGNIZED - } + switch (object) { + case 0: + case 'GENESIS': + return SlpTxType.GENESIS; + case 1: + case 'SEND': + return SlpTxType.SEND; + case 2: + case 'MINT': + return SlpTxType.MINT; + case 4: + case 'BURN': + return SlpTxType.BURN; + case 3: + case 'UNKNOWN_TX_TYPE': + return SlpTxType.UNKNOWN_TX_TYPE; + case -1: + case 'UNRECOGNIZED': + default: + return SlpTxType.UNRECOGNIZED; + } } export function slpTxTypeToJSON(object: SlpTxType): string { - switch (object) { - case SlpTxType.GENESIS: - return "GENESIS" - case SlpTxType.SEND: - return "SEND" - case SlpTxType.MINT: - return "MINT" - case SlpTxType.BURN: - return "BURN" - case SlpTxType.UNKNOWN_TX_TYPE: - return "UNKNOWN_TX_TYPE" - default: - return "UNKNOWN" - } + switch (object) { + case SlpTxType.GENESIS: + return 'GENESIS'; + case SlpTxType.SEND: + return 'SEND'; + case SlpTxType.MINT: + return 'MINT'; + case SlpTxType.BURN: + return 'BURN'; + case SlpTxType.UNKNOWN_TX_TYPE: + return 'UNKNOWN_TX_TYPE'; + default: + return 'UNKNOWN'; + } } export enum Network { - BCH = 0, - XEC = 1, - XPI = 2, - XRG = 3, - UNRECOGNIZED = -1, + BCH = 0, + XEC = 1, + XPI = 2, + XRG = 3, + UNRECOGNIZED = -1, } export function networkFromJSON(object: any): Network { - switch (object) { - case 0: - case "BCH": - return Network.BCH - case 1: - case "XEC": - return Network.XEC - case 2: - case "XPI": - return Network.XPI - case 3: - case "XRG": - return Network.XRG - case -1: - case "UNRECOGNIZED": - default: - return Network.UNRECOGNIZED - } + switch (object) { + case 0: + case 'BCH': + return Network.BCH; + case 1: + case 'XEC': + return Network.XEC; + case 2: + case 'XPI': + return Network.XPI; + case 3: + case 'XRG': + return Network.XRG; + case -1: + case 'UNRECOGNIZED': + default: + return Network.UNRECOGNIZED; + } } export function networkToJSON(object: Network): string { - switch (object) { - case Network.BCH: - return "BCH" - case Network.XEC: - return "XEC" - case Network.XPI: - return "XPI" - case Network.XRG: - return "XRG" - default: - return "UNKNOWN" - } + switch (object) { + case Network.BCH: + return 'BCH'; + case Network.XEC: + return 'XEC'; + case Network.XPI: + return 'XPI'; + case Network.XRG: + return 'XRG'; + default: + return 'UNKNOWN'; + } } export enum UtxoStateVariant { - UNSPENT = 0, - SPENT = 1, - NO_SUCH_TX = 2, - NO_SUCH_OUTPUT = 3, - UNRECOGNIZED = -1, + UNSPENT = 0, + SPENT = 1, + NO_SUCH_TX = 2, + NO_SUCH_OUTPUT = 3, + UNRECOGNIZED = -1, } export function utxoStateVariantFromJSON(object: any): UtxoStateVariant { - switch (object) { - case 0: - case "UNSPENT": - return UtxoStateVariant.UNSPENT - case 1: - case "SPENT": - return UtxoStateVariant.SPENT - case 2: - case "NO_SUCH_TX": - return UtxoStateVariant.NO_SUCH_TX - case 3: - case "NO_SUCH_OUTPUT": - return UtxoStateVariant.NO_SUCH_OUTPUT - case -1: - case "UNRECOGNIZED": - default: - return UtxoStateVariant.UNRECOGNIZED - } + switch (object) { + case 0: + case 'UNSPENT': + return UtxoStateVariant.UNSPENT; + case 1: + case 'SPENT': + return UtxoStateVariant.SPENT; + case 2: + case 'NO_SUCH_TX': + return UtxoStateVariant.NO_SUCH_TX; + case 3: + case 'NO_SUCH_OUTPUT': + return UtxoStateVariant.NO_SUCH_OUTPUT; + case -1: + case 'UNRECOGNIZED': + default: + return UtxoStateVariant.UNRECOGNIZED; + } } export function utxoStateVariantToJSON(object: UtxoStateVariant): string { - switch (object) { - case UtxoStateVariant.UNSPENT: - return "UNSPENT" - case UtxoStateVariant.SPENT: - return "SPENT" - case UtxoStateVariant.NO_SUCH_TX: - return "NO_SUCH_TX" - case UtxoStateVariant.NO_SUCH_OUTPUT: - return "NO_SUCH_OUTPUT" - default: - return "UNKNOWN" - } + switch (object) { + case UtxoStateVariant.UNSPENT: + return 'UNSPENT'; + case UtxoStateVariant.SPENT: + return 'SPENT'; + case UtxoStateVariant.NO_SUCH_TX: + return 'NO_SUCH_TX'; + case UtxoStateVariant.NO_SUCH_OUTPUT: + return 'NO_SUCH_OUTPUT'; + default: + return 'UNKNOWN'; + } } export interface ValidateUtxoRequest { - outpoints: OutPoint[] + outpoints: OutPoint[]; } export interface ValidateUtxoResponse { - utxoStates: UtxoState[] + utxoStates: UtxoState[]; } export interface BroadcastTxRequest { - rawTx: Uint8Array - skipSlpCheck: boolean + rawTx: Uint8Array; + skipSlpCheck: boolean; } export interface BroadcastTxResponse { - txid: Uint8Array + txid: Uint8Array; } export interface BroadcastTxsRequest { - rawTxs: Uint8Array[] - skipSlpCheck: boolean + rawTxs: Uint8Array[]; + skipSlpCheck: boolean; } export interface BroadcastTxsResponse { - txids: Uint8Array[] + txids: Uint8Array[]; } export interface BlockchainInfo { - tipHash: Uint8Array - tipHeight: number + tipHash: Uint8Array; + tipHeight: number; } export interface Tx { - txid: Uint8Array - version: number - inputs: TxInput[] - outputs: TxOutput[] - lockTime: number - slpTxData: SlpTxData | undefined - slpErrorMsg: string - block: BlockMetadata | undefined - timeFirstSeen: string - size: number - isCoinbase: boolean - network: Network + txid: Uint8Array; + version: number; + inputs: TxInput[]; + outputs: TxOutput[]; + lockTime: number; + slpTxData: SlpTxData | undefined; + slpErrorMsg: string; + block: BlockMetadata | undefined; + timeFirstSeen: string; + size: number; + isCoinbase: boolean; + network: Network; } export interface Utxo { - outpoint: OutPoint | undefined - blockHeight: number - isCoinbase: boolean - value: string - slpMeta: SlpMeta | undefined - slpToken: SlpToken | undefined - network: Network + outpoint: OutPoint | undefined; + blockHeight: number; + isCoinbase: boolean; + value: string; + slpMeta: SlpMeta | undefined; + slpToken: SlpToken | undefined; + network: Network; } export interface Token { - slpTxData: SlpTxData | undefined - tokenStats: TokenStats | undefined - block: BlockMetadata | undefined - timeFirstSeen: string - initialTokenQuantity: string - containsBaton: boolean - network: Network + slpTxData: SlpTxData | undefined; + tokenStats: TokenStats | undefined; + block: BlockMetadata | undefined; + timeFirstSeen: string; + initialTokenQuantity: string; + containsBaton: boolean; + network: Network; } export interface BlockInfo { - hash: Uint8Array - prevHash: Uint8Array - height: number - nBits: number - timestamp: string - /** Block size of this block in bytes (including headers etc.) */ - blockSize: string - /** Number of txs in this block */ - numTxs: string - /** Total number of tx inputs in block (including coinbase) */ - numInputs: string - /** Total number of tx output in block (including coinbase) */ - numOutputs: string - /** Total number of satoshis spent by tx inputs */ - sumInputSats: string - /** Block reward for this block */ - sumCoinbaseOutputSats: string - /** Total number of satoshis in non-coinbase tx outputs */ - sumNormalOutputSats: string - /** Total number of satoshis burned using OP_RETURN */ - sumBurnedSats: string + hash: Uint8Array; + prevHash: Uint8Array; + height: number; + nBits: number; + timestamp: string; + /** Block size of this block in bytes (including headers etc.) */ + blockSize: string; + /** Number of txs in this block */ + numTxs: string; + /** Total number of tx inputs in block (including coinbase) */ + numInputs: string; + /** Total number of tx output in block (including coinbase) */ + numOutputs: string; + /** Total number of satoshis spent by tx inputs */ + sumInputSats: string; + /** Block reward for this block */ + sumCoinbaseOutputSats: string; + /** Total number of satoshis in non-coinbase tx outputs */ + sumNormalOutputSats: string; + /** Total number of satoshis burned using OP_RETURN */ + sumBurnedSats: string; } export interface BlockDetails { - version: number - merkleRoot: Uint8Array - nonce: string - medianTimestamp: string + version: number; + merkleRoot: Uint8Array; + nonce: string; + medianTimestamp: string; } export interface Block { - blockInfo: BlockInfo | undefined - blockDetails: BlockDetails | undefined - rawHeader: Uint8Array - txs: Tx[] + blockInfo: BlockInfo | undefined; + blockDetails: BlockDetails | undefined; + rawHeader: Uint8Array; + txs: Tx[]; } export interface ScriptUtxos { - outputScript: Uint8Array - utxos: Utxo[] + outputScript: Uint8Array; + utxos: Utxo[]; } export interface TxHistoryPage { - txs: Tx[] - numPages: number + txs: Tx[]; + numPages: number; } export interface Utxos { - scriptUtxos: ScriptUtxos[] + scriptUtxos: ScriptUtxos[]; } export interface Blocks { - blocks: BlockInfo[] + blocks: BlockInfo[]; } export interface SlpTxData { - slpMeta: SlpMeta | undefined - genesisInfo: SlpGenesisInfo | undefined + slpMeta: SlpMeta | undefined; + genesisInfo: SlpGenesisInfo | undefined; } export interface SlpMeta { - tokenType: SlpTokenType - txType: SlpTxType - tokenId: Uint8Array - groupTokenId: Uint8Array + tokenType: SlpTokenType; + txType: SlpTxType; + tokenId: Uint8Array; + groupTokenId: Uint8Array; } export interface TokenStats { - /** - * This doesn't fit into uint64, so we use a string with the decimal - * representation. If available, use i128 to parse, otherwise some - * BigNumber library. - */ - totalMinted: string - totalBurned: string + /** + * This doesn't fit into uint64, so we use a string with the decimal + * representation. If available, use i128 to parse, otherwise some + * BigNumber library. + */ + totalMinted: string; + totalBurned: string; } export interface TxInput { - prevOut: OutPoint | undefined - inputScript: Uint8Array - outputScript: Uint8Array - value: string - sequenceNo: number - slpBurn: SlpBurn | undefined - slpToken: SlpToken | undefined + prevOut: OutPoint | undefined; + inputScript: Uint8Array; + outputScript: Uint8Array; + value: string; + sequenceNo: number; + slpBurn: SlpBurn | undefined; + slpToken: SlpToken | undefined; } export interface TxOutput { - value: string - outputScript: Uint8Array - slpToken: SlpToken | undefined - spentBy: OutPoint | undefined + value: string; + outputScript: Uint8Array; + slpToken: SlpToken | undefined; + spentBy: OutPoint | undefined; } export interface BlockMetadata { - height: number - hash: Uint8Array - timestamp: string + height: number; + hash: Uint8Array; + timestamp: string; } export interface OutPoint { - txid: Uint8Array - outIdx: number + txid: Uint8Array; + outIdx: number; } export interface SlpToken { - amount: string - isMintBaton: boolean + amount: string; + isMintBaton: boolean; } export interface SlpBurn { - token: SlpToken | undefined - tokenId: Uint8Array + token: SlpToken | undefined; + tokenId: Uint8Array; } export interface SlpGenesisInfo { - tokenTicker: Uint8Array - tokenName: Uint8Array - tokenDocumentUrl: Uint8Array - tokenDocumentHash: Uint8Array - decimals: number + tokenTicker: Uint8Array; + tokenName: Uint8Array; + tokenDocumentUrl: Uint8Array; + tokenDocumentHash: Uint8Array; + decimals: number; } export interface UtxoState { - height: number - isConfirmed: boolean - state: UtxoStateVariant + height: number; + isConfirmed: boolean; + state: UtxoStateVariant; } export interface Subscription { - scriptType: string - payload: Uint8Array - isSubscribe: boolean + scriptType: string; + payload: Uint8Array; + isSubscribe: boolean; } export interface SubscribeMsg { - error: Error | undefined - AddedToMempool: MsgAddedToMempool | undefined - RemovedFromMempool: MsgRemovedFromMempool | undefined - Confirmed: MsgConfirmed | undefined - Reorg: MsgReorg | undefined - BlockConnected: MsgBlockConnected | undefined - BlockDisconnected: MsgBlockDisconnected | undefined + error: Error | undefined; + AddedToMempool: MsgAddedToMempool | undefined; + RemovedFromMempool: MsgRemovedFromMempool | undefined; + Confirmed: MsgConfirmed | undefined; + Reorg: MsgReorg | undefined; + BlockConnected: MsgBlockConnected | undefined; + BlockDisconnected: MsgBlockDisconnected | undefined; } export interface MsgAddedToMempool { - txid: Uint8Array + txid: Uint8Array; } export interface MsgRemovedFromMempool { - txid: Uint8Array + txid: Uint8Array; } export interface MsgConfirmed { - txid: Uint8Array + txid: Uint8Array; } export interface MsgReorg { - txid: Uint8Array + txid: Uint8Array; } export interface MsgBlockConnected { - blockHash: Uint8Array + blockHash: Uint8Array; } export interface MsgBlockDisconnected { - blockHash: Uint8Array + blockHash: Uint8Array; } export interface Error { - errorCode: string - msg: string - isUserError: boolean + errorCode: string; + msg: string; + isUserError: boolean; } function createBaseValidateUtxoRequest(): ValidateUtxoRequest { - return { outpoints: [] } + return { outpoints: [] }; } export const ValidateUtxoRequest = { - encode( - message: ValidateUtxoRequest, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - for (const v of message.outpoints) { - OutPoint.encode(v!, writer.uint32(10).fork()).ldelim() - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ValidateUtxoRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseValidateUtxoRequest() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.outpoints.push(OutPoint.decode(reader, reader.uint32())) - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): ValidateUtxoRequest { - return { - outpoints: Array.isArray(object?.outpoints) - ? object.outpoints.map((e: any) => OutPoint.fromJSON(e)) - : [], - } - }, - - toJSON(message: ValidateUtxoRequest): unknown { - const obj: any = {} - if (message.outpoints) { - obj.outpoints = message.outpoints.map(e => - e ? OutPoint.toJSON(e) : undefined, - ) - } else { - obj.outpoints = [] - } - return obj - }, - - fromPartial, I>>( - object: I, - ): ValidateUtxoRequest { - const message = createBaseValidateUtxoRequest() - message.outpoints = - object.outpoints?.map(e => OutPoint.fromPartial(e)) || [] - return message - }, -} + encode( + message: ValidateUtxoRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + for (const v of message.outpoints) { + OutPoint.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): ValidateUtxoRequest { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseValidateUtxoRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.outpoints.push( + OutPoint.decode(reader, reader.uint32()), + ); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ValidateUtxoRequest { + return { + outpoints: Array.isArray(object?.outpoints) + ? object.outpoints.map((e: any) => OutPoint.fromJSON(e)) + : [], + }; + }, + + toJSON(message: ValidateUtxoRequest): unknown { + const obj: any = {}; + if (message.outpoints) { + obj.outpoints = message.outpoints.map(e => + e ? OutPoint.toJSON(e) : undefined, + ); + } else { + obj.outpoints = []; + } + return obj; + }, + + fromPartial, I>>( + object: I, + ): ValidateUtxoRequest { + const message = createBaseValidateUtxoRequest(); + message.outpoints = + object.outpoints?.map(e => OutPoint.fromPartial(e)) || []; + return message; + }, +}; function createBaseValidateUtxoResponse(): ValidateUtxoResponse { - return { utxoStates: [] } + return { utxoStates: [] }; } export const ValidateUtxoResponse = { - encode( - message: ValidateUtxoResponse, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - for (const v of message.utxoStates) { - UtxoState.encode(v!, writer.uint32(10).fork()).ldelim() - } - return writer - }, - - decode( - input: _m0.Reader | Uint8Array, - length?: number, - ): ValidateUtxoResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseValidateUtxoResponse() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.utxoStates.push(UtxoState.decode(reader, reader.uint32())) - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): ValidateUtxoResponse { - return { - utxoStates: Array.isArray(object?.utxoStates) - ? object.utxoStates.map((e: any) => UtxoState.fromJSON(e)) - : [], - } - }, - - toJSON(message: ValidateUtxoResponse): unknown { - const obj: any = {} - if (message.utxoStates) { - obj.utxoStates = message.utxoStates.map(e => - e ? UtxoState.toJSON(e) : undefined, - ) - } else { - obj.utxoStates = [] - } - return obj - }, - - fromPartial, I>>( - object: I, - ): ValidateUtxoResponse { - const message = createBaseValidateUtxoResponse() - message.utxoStates = - object.utxoStates?.map(e => UtxoState.fromPartial(e)) || [] - return message - }, -} + encode( + message: ValidateUtxoResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + for (const v of message.utxoStates) { + UtxoState.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): ValidateUtxoResponse { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseValidateUtxoResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.utxoStates.push( + UtxoState.decode(reader, reader.uint32()), + ); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ValidateUtxoResponse { + return { + utxoStates: Array.isArray(object?.utxoStates) + ? object.utxoStates.map((e: any) => UtxoState.fromJSON(e)) + : [], + }; + }, + + toJSON(message: ValidateUtxoResponse): unknown { + const obj: any = {}; + if (message.utxoStates) { + obj.utxoStates = message.utxoStates.map(e => + e ? UtxoState.toJSON(e) : undefined, + ); + } else { + obj.utxoStates = []; + } + return obj; + }, + + fromPartial, I>>( + object: I, + ): ValidateUtxoResponse { + const message = createBaseValidateUtxoResponse(); + message.utxoStates = + object.utxoStates?.map(e => UtxoState.fromPartial(e)) || []; + return message; + }, +}; function createBaseBroadcastTxRequest(): BroadcastTxRequest { - return { rawTx: new Uint8Array(), skipSlpCheck: false } + return { rawTx: new Uint8Array(), skipSlpCheck: false }; } export const BroadcastTxRequest = { - encode( - message: BroadcastTxRequest, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.rawTx.length !== 0) { - writer.uint32(10).bytes(message.rawTx) - } - if (message.skipSlpCheck === true) { - writer.uint32(16).bool(message.skipSlpCheck) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BroadcastTxRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseBroadcastTxRequest() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.rawTx = reader.bytes() - break - case 2: - message.skipSlpCheck = reader.bool() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): BroadcastTxRequest { - return { - rawTx: isSet(object.rawTx) - ? bytesFromBase64(object.rawTx) - : new Uint8Array(), - skipSlpCheck: isSet(object.skipSlpCheck) - ? Boolean(object.skipSlpCheck) - : false, - } - }, - - toJSON(message: BroadcastTxRequest): unknown { - const obj: any = {} - message.rawTx !== undefined && - (obj.rawTx = base64FromBytes( - message.rawTx !== undefined ? message.rawTx : new Uint8Array(), - )) - message.skipSlpCheck !== undefined && - (obj.skipSlpCheck = message.skipSlpCheck) - return obj - }, - - fromPartial, I>>( - object: I, - ): BroadcastTxRequest { - const message = createBaseBroadcastTxRequest() - message.rawTx = object.rawTx ?? new Uint8Array() - message.skipSlpCheck = object.skipSlpCheck ?? false - return message - }, -} + encode( + message: BroadcastTxRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.rawTx.length !== 0) { + writer.uint32(10).bytes(message.rawTx); + } + if (message.skipSlpCheck === true) { + writer.uint32(16).bool(message.skipSlpCheck); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): BroadcastTxRequest { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBroadcastTxRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.rawTx = reader.bytes(); + break; + case 2: + message.skipSlpCheck = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BroadcastTxRequest { + return { + rawTx: isSet(object.rawTx) + ? bytesFromBase64(object.rawTx) + : new Uint8Array(), + skipSlpCheck: isSet(object.skipSlpCheck) + ? Boolean(object.skipSlpCheck) + : false, + }; + }, + + toJSON(message: BroadcastTxRequest): unknown { + const obj: any = {}; + message.rawTx !== undefined && + (obj.rawTx = base64FromBytes( + message.rawTx !== undefined ? message.rawTx : new Uint8Array(), + )); + message.skipSlpCheck !== undefined && + (obj.skipSlpCheck = message.skipSlpCheck); + return obj; + }, + + fromPartial, I>>( + object: I, + ): BroadcastTxRequest { + const message = createBaseBroadcastTxRequest(); + message.rawTx = object.rawTx ?? new Uint8Array(); + message.skipSlpCheck = object.skipSlpCheck ?? false; + return message; + }, +}; function createBaseBroadcastTxResponse(): BroadcastTxResponse { - return { txid: new Uint8Array() } + return { txid: new Uint8Array() }; } export const BroadcastTxResponse = { - encode( - message: BroadcastTxResponse, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.txid.length !== 0) { - writer.uint32(10).bytes(message.txid) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BroadcastTxResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseBroadcastTxResponse() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.txid = reader.bytes() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): BroadcastTxResponse { - return { - txid: isSet(object.txid) - ? bytesFromBase64(object.txid) - : new Uint8Array(), - } - }, - - toJSON(message: BroadcastTxResponse): unknown { - const obj: any = {} - message.txid !== undefined && - (obj.txid = base64FromBytes( - message.txid !== undefined ? message.txid : new Uint8Array(), - )) - return obj - }, - - fromPartial, I>>( - object: I, - ): BroadcastTxResponse { - const message = createBaseBroadcastTxResponse() - message.txid = object.txid ?? new Uint8Array() - return message - }, -} + encode( + message: BroadcastTxResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.txid.length !== 0) { + writer.uint32(10).bytes(message.txid); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): BroadcastTxResponse { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBroadcastTxResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txid = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BroadcastTxResponse { + return { + txid: isSet(object.txid) + ? bytesFromBase64(object.txid) + : new Uint8Array(), + }; + }, + + toJSON(message: BroadcastTxResponse): unknown { + const obj: any = {}; + message.txid !== undefined && + (obj.txid = base64FromBytes( + message.txid !== undefined ? message.txid : new Uint8Array(), + )); + return obj; + }, + + fromPartial, I>>( + object: I, + ): BroadcastTxResponse { + const message = createBaseBroadcastTxResponse(); + message.txid = object.txid ?? new Uint8Array(); + return message; + }, +}; function createBaseBroadcastTxsRequest(): BroadcastTxsRequest { - return { rawTxs: [], skipSlpCheck: false } + return { rawTxs: [], skipSlpCheck: false }; } export const BroadcastTxsRequest = { - encode( - message: BroadcastTxsRequest, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - for (const v of message.rawTxs) { - writer.uint32(10).bytes(v!) - } - if (message.skipSlpCheck === true) { - writer.uint32(16).bool(message.skipSlpCheck) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BroadcastTxsRequest { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseBroadcastTxsRequest() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.rawTxs.push(reader.bytes()) - break - case 2: - message.skipSlpCheck = reader.bool() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): BroadcastTxsRequest { - return { - rawTxs: Array.isArray(object?.rawTxs) - ? object.rawTxs.map((e: any) => bytesFromBase64(e)) - : [], - skipSlpCheck: isSet(object.skipSlpCheck) - ? Boolean(object.skipSlpCheck) - : false, - } - }, - - toJSON(message: BroadcastTxsRequest): unknown { - const obj: any = {} - if (message.rawTxs) { - obj.rawTxs = message.rawTxs.map(e => - base64FromBytes(e !== undefined ? e : new Uint8Array()), - ) - } else { - obj.rawTxs = [] - } - message.skipSlpCheck !== undefined && - (obj.skipSlpCheck = message.skipSlpCheck) - return obj - }, - - fromPartial, I>>( - object: I, - ): BroadcastTxsRequest { - const message = createBaseBroadcastTxsRequest() - message.rawTxs = object.rawTxs?.map(e => e) || [] - message.skipSlpCheck = object.skipSlpCheck ?? false - return message - }, -} + encode( + message: BroadcastTxsRequest, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + for (const v of message.rawTxs) { + writer.uint32(10).bytes(v!); + } + if (message.skipSlpCheck === true) { + writer.uint32(16).bool(message.skipSlpCheck); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): BroadcastTxsRequest { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBroadcastTxsRequest(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.rawTxs.push(reader.bytes()); + break; + case 2: + message.skipSlpCheck = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BroadcastTxsRequest { + return { + rawTxs: Array.isArray(object?.rawTxs) + ? object.rawTxs.map((e: any) => bytesFromBase64(e)) + : [], + skipSlpCheck: isSet(object.skipSlpCheck) + ? Boolean(object.skipSlpCheck) + : false, + }; + }, + + toJSON(message: BroadcastTxsRequest): unknown { + const obj: any = {}; + if (message.rawTxs) { + obj.rawTxs = message.rawTxs.map(e => + base64FromBytes(e !== undefined ? e : new Uint8Array()), + ); + } else { + obj.rawTxs = []; + } + message.skipSlpCheck !== undefined && + (obj.skipSlpCheck = message.skipSlpCheck); + return obj; + }, + + fromPartial, I>>( + object: I, + ): BroadcastTxsRequest { + const message = createBaseBroadcastTxsRequest(); + message.rawTxs = object.rawTxs?.map(e => e) || []; + message.skipSlpCheck = object.skipSlpCheck ?? false; + return message; + }, +}; function createBaseBroadcastTxsResponse(): BroadcastTxsResponse { - return { txids: [] } + return { txids: [] }; } export const BroadcastTxsResponse = { - encode( - message: BroadcastTxsResponse, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - for (const v of message.txids) { - writer.uint32(10).bytes(v!) - } - return writer - }, - - decode( - input: _m0.Reader | Uint8Array, - length?: number, - ): BroadcastTxsResponse { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseBroadcastTxsResponse() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.txids.push(reader.bytes()) - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): BroadcastTxsResponse { - return { - txids: Array.isArray(object?.txids) - ? object.txids.map((e: any) => bytesFromBase64(e)) - : [], - } - }, - - toJSON(message: BroadcastTxsResponse): unknown { - const obj: any = {} - if (message.txids) { - obj.txids = message.txids.map(e => - base64FromBytes(e !== undefined ? e : new Uint8Array()), - ) - } else { - obj.txids = [] - } - return obj - }, - - fromPartial, I>>( - object: I, - ): BroadcastTxsResponse { - const message = createBaseBroadcastTxsResponse() - message.txids = object.txids?.map(e => e) || [] - return message - }, -} + encode( + message: BroadcastTxsResponse, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + for (const v of message.txids) { + writer.uint32(10).bytes(v!); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): BroadcastTxsResponse { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBroadcastTxsResponse(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txids.push(reader.bytes()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BroadcastTxsResponse { + return { + txids: Array.isArray(object?.txids) + ? object.txids.map((e: any) => bytesFromBase64(e)) + : [], + }; + }, + + toJSON(message: BroadcastTxsResponse): unknown { + const obj: any = {}; + if (message.txids) { + obj.txids = message.txids.map(e => + base64FromBytes(e !== undefined ? e : new Uint8Array()), + ); + } else { + obj.txids = []; + } + return obj; + }, + + fromPartial, I>>( + object: I, + ): BroadcastTxsResponse { + const message = createBaseBroadcastTxsResponse(); + message.txids = object.txids?.map(e => e) || []; + return message; + }, +}; function createBaseBlockchainInfo(): BlockchainInfo { - return { tipHash: new Uint8Array(), tipHeight: 0 } + return { tipHash: new Uint8Array(), tipHeight: 0 }; } export const BlockchainInfo = { - encode( - message: BlockchainInfo, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.tipHash.length !== 0) { - writer.uint32(10).bytes(message.tipHash) - } - if (message.tipHeight !== 0) { - writer.uint32(16).int32(message.tipHeight) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BlockchainInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseBlockchainInfo() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.tipHash = reader.bytes() - break - case 2: - message.tipHeight = reader.int32() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): BlockchainInfo { - return { - tipHash: isSet(object.tipHash) - ? bytesFromBase64(object.tipHash) - : new Uint8Array(), - tipHeight: isSet(object.tipHeight) ? Number(object.tipHeight) : 0, - } - }, - - toJSON(message: BlockchainInfo): unknown { - const obj: any = {} - message.tipHash !== undefined && - (obj.tipHash = base64FromBytes( - message.tipHash !== undefined ? message.tipHash : new Uint8Array(), - )) - message.tipHeight !== undefined && - (obj.tipHeight = Math.round(message.tipHeight)) - return obj - }, - - fromPartial, I>>( - object: I, - ): BlockchainInfo { - const message = createBaseBlockchainInfo() - message.tipHash = object.tipHash ?? new Uint8Array() - message.tipHeight = object.tipHeight ?? 0 - return message - }, -} + encode( + message: BlockchainInfo, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.tipHash.length !== 0) { + writer.uint32(10).bytes(message.tipHash); + } + if (message.tipHeight !== 0) { + writer.uint32(16).int32(message.tipHeight); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BlockchainInfo { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBlockchainInfo(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.tipHash = reader.bytes(); + break; + case 2: + message.tipHeight = reader.int32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BlockchainInfo { + return { + tipHash: isSet(object.tipHash) + ? bytesFromBase64(object.tipHash) + : new Uint8Array(), + tipHeight: isSet(object.tipHeight) ? Number(object.tipHeight) : 0, + }; + }, + + toJSON(message: BlockchainInfo): unknown { + const obj: any = {}; + message.tipHash !== undefined && + (obj.tipHash = base64FromBytes( + message.tipHash !== undefined + ? message.tipHash + : new Uint8Array(), + )); + message.tipHeight !== undefined && + (obj.tipHeight = Math.round(message.tipHeight)); + return obj; + }, + + fromPartial, I>>( + object: I, + ): BlockchainInfo { + const message = createBaseBlockchainInfo(); + message.tipHash = object.tipHash ?? new Uint8Array(); + message.tipHeight = object.tipHeight ?? 0; + return message; + }, +}; function createBaseTx(): Tx { - return { - txid: new Uint8Array(), - version: 0, - inputs: [], - outputs: [], - lockTime: 0, - slpTxData: undefined, - slpErrorMsg: "", - block: undefined, - timeFirstSeen: "0", - size: 0, - isCoinbase: false, - network: 0, - } + return { + txid: new Uint8Array(), + version: 0, + inputs: [], + outputs: [], + lockTime: 0, + slpTxData: undefined, + slpErrorMsg: '', + block: undefined, + timeFirstSeen: '0', + size: 0, + isCoinbase: false, + network: 0, + }; } export const Tx = { - encode(message: Tx, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.txid.length !== 0) { - writer.uint32(10).bytes(message.txid) - } - if (message.version !== 0) { - writer.uint32(16).int32(message.version) - } - for (const v of message.inputs) { - TxInput.encode(v!, writer.uint32(26).fork()).ldelim() - } - for (const v of message.outputs) { - TxOutput.encode(v!, writer.uint32(34).fork()).ldelim() - } - if (message.lockTime !== 0) { - writer.uint32(40).uint32(message.lockTime) - } - if (message.slpTxData !== undefined) { - SlpTxData.encode(message.slpTxData, writer.uint32(50).fork()).ldelim() - } - if (message.slpErrorMsg !== "") { - writer.uint32(58).string(message.slpErrorMsg) - } - if (message.block !== undefined) { - BlockMetadata.encode(message.block, writer.uint32(66).fork()).ldelim() - } - if (message.timeFirstSeen !== "0") { - writer.uint32(72).int64(message.timeFirstSeen) - } - if (message.size !== 0) { - writer.uint32(88).uint32(message.size) - } - if (message.isCoinbase === true) { - writer.uint32(96).bool(message.isCoinbase) - } - if (message.network !== 0) { - writer.uint32(80).int32(message.network) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Tx { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseTx() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.txid = reader.bytes() - break - case 2: - message.version = reader.int32() - break - case 3: - message.inputs.push(TxInput.decode(reader, reader.uint32())) - break - case 4: - message.outputs.push(TxOutput.decode(reader, reader.uint32())) - break - case 5: - message.lockTime = reader.uint32() - break - case 6: - message.slpTxData = SlpTxData.decode(reader, reader.uint32()) - break - case 7: - message.slpErrorMsg = reader.string() - break - case 8: - message.block = BlockMetadata.decode(reader, reader.uint32()) - break - case 9: - message.timeFirstSeen = longToString(reader.int64() as Long) - break - case 11: - message.size = reader.uint32() - break - case 12: - message.isCoinbase = reader.bool() - break - case 10: - message.network = reader.int32() as any - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): Tx { - return { - txid: isSet(object.txid) - ? bytesFromBase64(object.txid) - : new Uint8Array(), - version: isSet(object.version) ? Number(object.version) : 0, - inputs: Array.isArray(object?.inputs) - ? object.inputs.map((e: any) => TxInput.fromJSON(e)) - : [], - outputs: Array.isArray(object?.outputs) - ? object.outputs.map((e: any) => TxOutput.fromJSON(e)) - : [], - lockTime: isSet(object.lockTime) ? Number(object.lockTime) : 0, - slpTxData: isSet(object.slpTxData) - ? SlpTxData.fromJSON(object.slpTxData) - : undefined, - slpErrorMsg: isSet(object.slpErrorMsg) ? String(object.slpErrorMsg) : "", - block: isSet(object.block) - ? BlockMetadata.fromJSON(object.block) - : undefined, - timeFirstSeen: isSet(object.timeFirstSeen) - ? String(object.timeFirstSeen) - : "0", - size: isSet(object.size) ? Number(object.size) : 0, - isCoinbase: isSet(object.isCoinbase) ? Boolean(object.isCoinbase) : false, - network: isSet(object.network) ? networkFromJSON(object.network) : 0, - } - }, - - toJSON(message: Tx): unknown { - const obj: any = {} - message.txid !== undefined && - (obj.txid = base64FromBytes( - message.txid !== undefined ? message.txid : new Uint8Array(), - )) - message.version !== undefined && (obj.version = Math.round(message.version)) - if (message.inputs) { - obj.inputs = message.inputs.map(e => (e ? TxInput.toJSON(e) : undefined)) - } else { - obj.inputs = [] - } - if (message.outputs) { - obj.outputs = message.outputs.map(e => - e ? TxOutput.toJSON(e) : undefined, - ) - } else { - obj.outputs = [] - } - message.lockTime !== undefined && - (obj.lockTime = Math.round(message.lockTime)) - message.slpTxData !== undefined && - (obj.slpTxData = message.slpTxData - ? SlpTxData.toJSON(message.slpTxData) - : undefined) - message.slpErrorMsg !== undefined && (obj.slpErrorMsg = message.slpErrorMsg) - message.block !== undefined && - (obj.block = message.block - ? BlockMetadata.toJSON(message.block) - : undefined) - message.timeFirstSeen !== undefined && - (obj.timeFirstSeen = message.timeFirstSeen) - message.size !== undefined && (obj.size = Math.round(message.size)) - message.isCoinbase !== undefined && (obj.isCoinbase = message.isCoinbase) - message.network !== undefined && - (obj.network = networkToJSON(message.network)) - return obj - }, - - fromPartial, I>>(object: I): Tx { - const message = createBaseTx() - message.txid = object.txid ?? new Uint8Array() - message.version = object.version ?? 0 - message.inputs = object.inputs?.map(e => TxInput.fromPartial(e)) || [] - message.outputs = object.outputs?.map(e => TxOutput.fromPartial(e)) || [] - message.lockTime = object.lockTime ?? 0 - message.slpTxData = - object.slpTxData !== undefined && object.slpTxData !== null - ? SlpTxData.fromPartial(object.slpTxData) - : undefined - message.slpErrorMsg = object.slpErrorMsg ?? "" - message.block = - object.block !== undefined && object.block !== null - ? BlockMetadata.fromPartial(object.block) - : undefined - message.timeFirstSeen = object.timeFirstSeen ?? "0" - message.size = object.size ?? 0 - message.isCoinbase = object.isCoinbase ?? false - message.network = object.network ?? 0 - return message - }, -} + encode(message: Tx, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { + if (message.txid.length !== 0) { + writer.uint32(10).bytes(message.txid); + } + if (message.version !== 0) { + writer.uint32(16).int32(message.version); + } + for (const v of message.inputs) { + TxInput.encode(v!, writer.uint32(26).fork()).ldelim(); + } + for (const v of message.outputs) { + TxOutput.encode(v!, writer.uint32(34).fork()).ldelim(); + } + if (message.lockTime !== 0) { + writer.uint32(40).uint32(message.lockTime); + } + if (message.slpTxData !== undefined) { + SlpTxData.encode( + message.slpTxData, + writer.uint32(50).fork(), + ).ldelim(); + } + if (message.slpErrorMsg !== '') { + writer.uint32(58).string(message.slpErrorMsg); + } + if (message.block !== undefined) { + BlockMetadata.encode( + message.block, + writer.uint32(66).fork(), + ).ldelim(); + } + if (message.timeFirstSeen !== '0') { + writer.uint32(72).int64(message.timeFirstSeen); + } + if (message.size !== 0) { + writer.uint32(88).uint32(message.size); + } + if (message.isCoinbase === true) { + writer.uint32(96).bool(message.isCoinbase); + } + if (message.network !== 0) { + writer.uint32(80).int32(message.network); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Tx { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTx(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txid = reader.bytes(); + break; + case 2: + message.version = reader.int32(); + break; + case 3: + message.inputs.push( + TxInput.decode(reader, reader.uint32()), + ); + break; + case 4: + message.outputs.push( + TxOutput.decode(reader, reader.uint32()), + ); + break; + case 5: + message.lockTime = reader.uint32(); + break; + case 6: + message.slpTxData = SlpTxData.decode( + reader, + reader.uint32(), + ); + break; + case 7: + message.slpErrorMsg = reader.string(); + break; + case 8: + message.block = BlockMetadata.decode( + reader, + reader.uint32(), + ); + break; + case 9: + message.timeFirstSeen = longToString( + reader.int64() as Long, + ); + break; + case 11: + message.size = reader.uint32(); + break; + case 12: + message.isCoinbase = reader.bool(); + break; + case 10: + message.network = reader.int32() as any; + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Tx { + return { + txid: isSet(object.txid) + ? bytesFromBase64(object.txid) + : new Uint8Array(), + version: isSet(object.version) ? Number(object.version) : 0, + inputs: Array.isArray(object?.inputs) + ? object.inputs.map((e: any) => TxInput.fromJSON(e)) + : [], + outputs: Array.isArray(object?.outputs) + ? object.outputs.map((e: any) => TxOutput.fromJSON(e)) + : [], + lockTime: isSet(object.lockTime) ? Number(object.lockTime) : 0, + slpTxData: isSet(object.slpTxData) + ? SlpTxData.fromJSON(object.slpTxData) + : undefined, + slpErrorMsg: isSet(object.slpErrorMsg) + ? String(object.slpErrorMsg) + : '', + block: isSet(object.block) + ? BlockMetadata.fromJSON(object.block) + : undefined, + timeFirstSeen: isSet(object.timeFirstSeen) + ? String(object.timeFirstSeen) + : '0', + size: isSet(object.size) ? Number(object.size) : 0, + isCoinbase: isSet(object.isCoinbase) + ? Boolean(object.isCoinbase) + : false, + network: isSet(object.network) + ? networkFromJSON(object.network) + : 0, + }; + }, + + toJSON(message: Tx): unknown { + const obj: any = {}; + message.txid !== undefined && + (obj.txid = base64FromBytes( + message.txid !== undefined ? message.txid : new Uint8Array(), + )); + message.version !== undefined && + (obj.version = Math.round(message.version)); + if (message.inputs) { + obj.inputs = message.inputs.map(e => + e ? TxInput.toJSON(e) : undefined, + ); + } else { + obj.inputs = []; + } + if (message.outputs) { + obj.outputs = message.outputs.map(e => + e ? TxOutput.toJSON(e) : undefined, + ); + } else { + obj.outputs = []; + } + message.lockTime !== undefined && + (obj.lockTime = Math.round(message.lockTime)); + message.slpTxData !== undefined && + (obj.slpTxData = message.slpTxData + ? SlpTxData.toJSON(message.slpTxData) + : undefined); + message.slpErrorMsg !== undefined && + (obj.slpErrorMsg = message.slpErrorMsg); + message.block !== undefined && + (obj.block = message.block + ? BlockMetadata.toJSON(message.block) + : undefined); + message.timeFirstSeen !== undefined && + (obj.timeFirstSeen = message.timeFirstSeen); + message.size !== undefined && (obj.size = Math.round(message.size)); + message.isCoinbase !== undefined && + (obj.isCoinbase = message.isCoinbase); + message.network !== undefined && + (obj.network = networkToJSON(message.network)); + return obj; + }, + + fromPartial, I>>(object: I): Tx { + const message = createBaseTx(); + message.txid = object.txid ?? new Uint8Array(); + message.version = object.version ?? 0; + message.inputs = object.inputs?.map(e => TxInput.fromPartial(e)) || []; + message.outputs = + object.outputs?.map(e => TxOutput.fromPartial(e)) || []; + message.lockTime = object.lockTime ?? 0; + message.slpTxData = + object.slpTxData !== undefined && object.slpTxData !== null + ? SlpTxData.fromPartial(object.slpTxData) + : undefined; + message.slpErrorMsg = object.slpErrorMsg ?? ''; + message.block = + object.block !== undefined && object.block !== null + ? BlockMetadata.fromPartial(object.block) + : undefined; + message.timeFirstSeen = object.timeFirstSeen ?? '0'; + message.size = object.size ?? 0; + message.isCoinbase = object.isCoinbase ?? false; + message.network = object.network ?? 0; + return message; + }, +}; function createBaseUtxo(): Utxo { - return { - outpoint: undefined, - blockHeight: 0, - isCoinbase: false, - value: "0", - slpMeta: undefined, - slpToken: undefined, - network: 0, - } + return { + outpoint: undefined, + blockHeight: 0, + isCoinbase: false, + value: '0', + slpMeta: undefined, + slpToken: undefined, + network: 0, + }; } export const Utxo = { - encode(message: Utxo, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.outpoint !== undefined) { - OutPoint.encode(message.outpoint, writer.uint32(10).fork()).ldelim() - } - if (message.blockHeight !== 0) { - writer.uint32(16).int32(message.blockHeight) - } - if (message.isCoinbase === true) { - writer.uint32(24).bool(message.isCoinbase) - } - if (message.value !== "0") { - writer.uint32(40).int64(message.value) - } - if (message.slpMeta !== undefined) { - SlpMeta.encode(message.slpMeta, writer.uint32(50).fork()).ldelim() - } - if (message.slpToken !== undefined) { - SlpToken.encode(message.slpToken, writer.uint32(58).fork()).ldelim() - } - if (message.network !== 0) { - writer.uint32(72).int32(message.network) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Utxo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseUtxo() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.outpoint = OutPoint.decode(reader, reader.uint32()) - break - case 2: - message.blockHeight = reader.int32() - break - case 3: - message.isCoinbase = reader.bool() - break - case 5: - message.value = longToString(reader.int64() as Long) - break - case 6: - message.slpMeta = SlpMeta.decode(reader, reader.uint32()) - break - case 7: - message.slpToken = SlpToken.decode(reader, reader.uint32()) - break - case 9: - message.network = reader.int32() as any - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): Utxo { - return { - outpoint: isSet(object.outpoint) - ? OutPoint.fromJSON(object.outpoint) - : undefined, - blockHeight: isSet(object.blockHeight) ? Number(object.blockHeight) : 0, - isCoinbase: isSet(object.isCoinbase) ? Boolean(object.isCoinbase) : false, - value: isSet(object.value) ? String(object.value) : "0", - slpMeta: isSet(object.slpMeta) - ? SlpMeta.fromJSON(object.slpMeta) - : undefined, - slpToken: isSet(object.slpToken) - ? SlpToken.fromJSON(object.slpToken) - : undefined, - network: isSet(object.network) ? networkFromJSON(object.network) : 0, - } - }, - - toJSON(message: Utxo): unknown { - const obj: any = {} - message.outpoint !== undefined && - (obj.outpoint = message.outpoint - ? OutPoint.toJSON(message.outpoint) - : undefined) - message.blockHeight !== undefined && - (obj.blockHeight = Math.round(message.blockHeight)) - message.isCoinbase !== undefined && (obj.isCoinbase = message.isCoinbase) - message.value !== undefined && (obj.value = message.value) - message.slpMeta !== undefined && - (obj.slpMeta = message.slpMeta - ? SlpMeta.toJSON(message.slpMeta) - : undefined) - message.slpToken !== undefined && - (obj.slpToken = message.slpToken - ? SlpToken.toJSON(message.slpToken) - : undefined) - message.network !== undefined && - (obj.network = networkToJSON(message.network)) - return obj - }, - - fromPartial, I>>(object: I): Utxo { - const message = createBaseUtxo() - message.outpoint = - object.outpoint !== undefined && object.outpoint !== null - ? OutPoint.fromPartial(object.outpoint) - : undefined - message.blockHeight = object.blockHeight ?? 0 - message.isCoinbase = object.isCoinbase ?? false - message.value = object.value ?? "0" - message.slpMeta = - object.slpMeta !== undefined && object.slpMeta !== null - ? SlpMeta.fromPartial(object.slpMeta) - : undefined - message.slpToken = - object.slpToken !== undefined && object.slpToken !== null - ? SlpToken.fromPartial(object.slpToken) - : undefined - message.network = object.network ?? 0 - return message - }, -} + encode( + message: Utxo, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.outpoint !== undefined) { + OutPoint.encode( + message.outpoint, + writer.uint32(10).fork(), + ).ldelim(); + } + if (message.blockHeight !== 0) { + writer.uint32(16).int32(message.blockHeight); + } + if (message.isCoinbase === true) { + writer.uint32(24).bool(message.isCoinbase); + } + if (message.value !== '0') { + writer.uint32(40).int64(message.value); + } + if (message.slpMeta !== undefined) { + SlpMeta.encode(message.slpMeta, writer.uint32(50).fork()).ldelim(); + } + if (message.slpToken !== undefined) { + SlpToken.encode( + message.slpToken, + writer.uint32(58).fork(), + ).ldelim(); + } + if (message.network !== 0) { + writer.uint32(72).int32(message.network); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Utxo { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUtxo(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.outpoint = OutPoint.decode(reader, reader.uint32()); + break; + case 2: + message.blockHeight = reader.int32(); + break; + case 3: + message.isCoinbase = reader.bool(); + break; + case 5: + message.value = longToString(reader.int64() as Long); + break; + case 6: + message.slpMeta = SlpMeta.decode(reader, reader.uint32()); + break; + case 7: + message.slpToken = SlpToken.decode(reader, reader.uint32()); + break; + case 9: + message.network = reader.int32() as any; + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Utxo { + return { + outpoint: isSet(object.outpoint) + ? OutPoint.fromJSON(object.outpoint) + : undefined, + blockHeight: isSet(object.blockHeight) + ? Number(object.blockHeight) + : 0, + isCoinbase: isSet(object.isCoinbase) + ? Boolean(object.isCoinbase) + : false, + value: isSet(object.value) ? String(object.value) : '0', + slpMeta: isSet(object.slpMeta) + ? SlpMeta.fromJSON(object.slpMeta) + : undefined, + slpToken: isSet(object.slpToken) + ? SlpToken.fromJSON(object.slpToken) + : undefined, + network: isSet(object.network) + ? networkFromJSON(object.network) + : 0, + }; + }, + + toJSON(message: Utxo): unknown { + const obj: any = {}; + message.outpoint !== undefined && + (obj.outpoint = message.outpoint + ? OutPoint.toJSON(message.outpoint) + : undefined); + message.blockHeight !== undefined && + (obj.blockHeight = Math.round(message.blockHeight)); + message.isCoinbase !== undefined && + (obj.isCoinbase = message.isCoinbase); + message.value !== undefined && (obj.value = message.value); + message.slpMeta !== undefined && + (obj.slpMeta = message.slpMeta + ? SlpMeta.toJSON(message.slpMeta) + : undefined); + message.slpToken !== undefined && + (obj.slpToken = message.slpToken + ? SlpToken.toJSON(message.slpToken) + : undefined); + message.network !== undefined && + (obj.network = networkToJSON(message.network)); + return obj; + }, + + fromPartial, I>>(object: I): Utxo { + const message = createBaseUtxo(); + message.outpoint = + object.outpoint !== undefined && object.outpoint !== null + ? OutPoint.fromPartial(object.outpoint) + : undefined; + message.blockHeight = object.blockHeight ?? 0; + message.isCoinbase = object.isCoinbase ?? false; + message.value = object.value ?? '0'; + message.slpMeta = + object.slpMeta !== undefined && object.slpMeta !== null + ? SlpMeta.fromPartial(object.slpMeta) + : undefined; + message.slpToken = + object.slpToken !== undefined && object.slpToken !== null + ? SlpToken.fromPartial(object.slpToken) + : undefined; + message.network = object.network ?? 0; + return message; + }, +}; function createBaseToken(): Token { - return { - slpTxData: undefined, - tokenStats: undefined, - block: undefined, - timeFirstSeen: "0", - initialTokenQuantity: "0", - containsBaton: false, - network: 0, - } + return { + slpTxData: undefined, + tokenStats: undefined, + block: undefined, + timeFirstSeen: '0', + initialTokenQuantity: '0', + containsBaton: false, + network: 0, + }; } export const Token = { - encode(message: Token, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.slpTxData !== undefined) { - SlpTxData.encode(message.slpTxData, writer.uint32(10).fork()).ldelim() - } - if (message.tokenStats !== undefined) { - TokenStats.encode(message.tokenStats, writer.uint32(18).fork()).ldelim() - } - if (message.block !== undefined) { - BlockMetadata.encode(message.block, writer.uint32(26).fork()).ldelim() - } - if (message.timeFirstSeen !== "0") { - writer.uint32(32).int64(message.timeFirstSeen) - } - if (message.initialTokenQuantity !== "0") { - writer.uint32(40).uint64(message.initialTokenQuantity) - } - if (message.containsBaton === true) { - writer.uint32(48).bool(message.containsBaton) - } - if (message.network !== 0) { - writer.uint32(56).int32(message.network) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Token { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseToken() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.slpTxData = SlpTxData.decode(reader, reader.uint32()) - break - case 2: - message.tokenStats = TokenStats.decode(reader, reader.uint32()) - break - case 3: - message.block = BlockMetadata.decode(reader, reader.uint32()) - break - case 4: - message.timeFirstSeen = longToString(reader.int64() as Long) - break - case 5: - message.initialTokenQuantity = longToString(reader.uint64() as Long) - break - case 6: - message.containsBaton = reader.bool() - break - case 7: - message.network = reader.int32() as any - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): Token { - return { - slpTxData: isSet(object.slpTxData) - ? SlpTxData.fromJSON(object.slpTxData) - : undefined, - tokenStats: isSet(object.tokenStats) - ? TokenStats.fromJSON(object.tokenStats) - : undefined, - block: isSet(object.block) - ? BlockMetadata.fromJSON(object.block) - : undefined, - timeFirstSeen: isSet(object.timeFirstSeen) - ? String(object.timeFirstSeen) - : "0", - initialTokenQuantity: isSet(object.initialTokenQuantity) - ? String(object.initialTokenQuantity) - : "0", - containsBaton: isSet(object.containsBaton) - ? Boolean(object.containsBaton) - : false, - network: isSet(object.network) ? networkFromJSON(object.network) : 0, - } - }, - - toJSON(message: Token): unknown { - const obj: any = {} - message.slpTxData !== undefined && - (obj.slpTxData = message.slpTxData - ? SlpTxData.toJSON(message.slpTxData) - : undefined) - message.tokenStats !== undefined && - (obj.tokenStats = message.tokenStats - ? TokenStats.toJSON(message.tokenStats) - : undefined) - message.block !== undefined && - (obj.block = message.block - ? BlockMetadata.toJSON(message.block) - : undefined) - message.timeFirstSeen !== undefined && - (obj.timeFirstSeen = message.timeFirstSeen) - message.initialTokenQuantity !== undefined && - (obj.initialTokenQuantity = message.initialTokenQuantity) - message.containsBaton !== undefined && - (obj.containsBaton = message.containsBaton) - message.network !== undefined && - (obj.network = networkToJSON(message.network)) - return obj - }, - - fromPartial, I>>(object: I): Token { - const message = createBaseToken() - message.slpTxData = - object.slpTxData !== undefined && object.slpTxData !== null - ? SlpTxData.fromPartial(object.slpTxData) - : undefined - message.tokenStats = - object.tokenStats !== undefined && object.tokenStats !== null - ? TokenStats.fromPartial(object.tokenStats) - : undefined - message.block = - object.block !== undefined && object.block !== null - ? BlockMetadata.fromPartial(object.block) - : undefined - message.timeFirstSeen = object.timeFirstSeen ?? "0" - message.initialTokenQuantity = object.initialTokenQuantity ?? "0" - message.containsBaton = object.containsBaton ?? false - message.network = object.network ?? 0 - return message - }, -} + encode( + message: Token, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.slpTxData !== undefined) { + SlpTxData.encode( + message.slpTxData, + writer.uint32(10).fork(), + ).ldelim(); + } + if (message.tokenStats !== undefined) { + TokenStats.encode( + message.tokenStats, + writer.uint32(18).fork(), + ).ldelim(); + } + if (message.block !== undefined) { + BlockMetadata.encode( + message.block, + writer.uint32(26).fork(), + ).ldelim(); + } + if (message.timeFirstSeen !== '0') { + writer.uint32(32).int64(message.timeFirstSeen); + } + if (message.initialTokenQuantity !== '0') { + writer.uint32(40).uint64(message.initialTokenQuantity); + } + if (message.containsBaton === true) { + writer.uint32(48).bool(message.containsBaton); + } + if (message.network !== 0) { + writer.uint32(56).int32(message.network); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Token { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseToken(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.slpTxData = SlpTxData.decode( + reader, + reader.uint32(), + ); + break; + case 2: + message.tokenStats = TokenStats.decode( + reader, + reader.uint32(), + ); + break; + case 3: + message.block = BlockMetadata.decode( + reader, + reader.uint32(), + ); + break; + case 4: + message.timeFirstSeen = longToString( + reader.int64() as Long, + ); + break; + case 5: + message.initialTokenQuantity = longToString( + reader.uint64() as Long, + ); + break; + case 6: + message.containsBaton = reader.bool(); + break; + case 7: + message.network = reader.int32() as any; + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Token { + return { + slpTxData: isSet(object.slpTxData) + ? SlpTxData.fromJSON(object.slpTxData) + : undefined, + tokenStats: isSet(object.tokenStats) + ? TokenStats.fromJSON(object.tokenStats) + : undefined, + block: isSet(object.block) + ? BlockMetadata.fromJSON(object.block) + : undefined, + timeFirstSeen: isSet(object.timeFirstSeen) + ? String(object.timeFirstSeen) + : '0', + initialTokenQuantity: isSet(object.initialTokenQuantity) + ? String(object.initialTokenQuantity) + : '0', + containsBaton: isSet(object.containsBaton) + ? Boolean(object.containsBaton) + : false, + network: isSet(object.network) + ? networkFromJSON(object.network) + : 0, + }; + }, + + toJSON(message: Token): unknown { + const obj: any = {}; + message.slpTxData !== undefined && + (obj.slpTxData = message.slpTxData + ? SlpTxData.toJSON(message.slpTxData) + : undefined); + message.tokenStats !== undefined && + (obj.tokenStats = message.tokenStats + ? TokenStats.toJSON(message.tokenStats) + : undefined); + message.block !== undefined && + (obj.block = message.block + ? BlockMetadata.toJSON(message.block) + : undefined); + message.timeFirstSeen !== undefined && + (obj.timeFirstSeen = message.timeFirstSeen); + message.initialTokenQuantity !== undefined && + (obj.initialTokenQuantity = message.initialTokenQuantity); + message.containsBaton !== undefined && + (obj.containsBaton = message.containsBaton); + message.network !== undefined && + (obj.network = networkToJSON(message.network)); + return obj; + }, + + fromPartial, I>>(object: I): Token { + const message = createBaseToken(); + message.slpTxData = + object.slpTxData !== undefined && object.slpTxData !== null + ? SlpTxData.fromPartial(object.slpTxData) + : undefined; + message.tokenStats = + object.tokenStats !== undefined && object.tokenStats !== null + ? TokenStats.fromPartial(object.tokenStats) + : undefined; + message.block = + object.block !== undefined && object.block !== null + ? BlockMetadata.fromPartial(object.block) + : undefined; + message.timeFirstSeen = object.timeFirstSeen ?? '0'; + message.initialTokenQuantity = object.initialTokenQuantity ?? '0'; + message.containsBaton = object.containsBaton ?? false; + message.network = object.network ?? 0; + return message; + }, +}; function createBaseBlockInfo(): BlockInfo { - return { - hash: new Uint8Array(), - prevHash: new Uint8Array(), - height: 0, - nBits: 0, - timestamp: "0", - blockSize: "0", - numTxs: "0", - numInputs: "0", - numOutputs: "0", - sumInputSats: "0", - sumCoinbaseOutputSats: "0", - sumNormalOutputSats: "0", - sumBurnedSats: "0", - } + return { + hash: new Uint8Array(), + prevHash: new Uint8Array(), + height: 0, + nBits: 0, + timestamp: '0', + blockSize: '0', + numTxs: '0', + numInputs: '0', + numOutputs: '0', + sumInputSats: '0', + sumCoinbaseOutputSats: '0', + sumNormalOutputSats: '0', + sumBurnedSats: '0', + }; } export const BlockInfo = { - encode( - message: BlockInfo, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.hash.length !== 0) { - writer.uint32(10).bytes(message.hash) - } - if (message.prevHash.length !== 0) { - writer.uint32(18).bytes(message.prevHash) - } - if (message.height !== 0) { - writer.uint32(24).int32(message.height) - } - if (message.nBits !== 0) { - writer.uint32(32).uint32(message.nBits) - } - if (message.timestamp !== "0") { - writer.uint32(40).int64(message.timestamp) - } - if (message.blockSize !== "0") { - writer.uint32(48).uint64(message.blockSize) - } - if (message.numTxs !== "0") { - writer.uint32(56).uint64(message.numTxs) - } - if (message.numInputs !== "0") { - writer.uint32(64).uint64(message.numInputs) - } - if (message.numOutputs !== "0") { - writer.uint32(72).uint64(message.numOutputs) - } - if (message.sumInputSats !== "0") { - writer.uint32(80).int64(message.sumInputSats) - } - if (message.sumCoinbaseOutputSats !== "0") { - writer.uint32(88).int64(message.sumCoinbaseOutputSats) - } - if (message.sumNormalOutputSats !== "0") { - writer.uint32(96).int64(message.sumNormalOutputSats) - } - if (message.sumBurnedSats !== "0") { - writer.uint32(104).int64(message.sumBurnedSats) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BlockInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseBlockInfo() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.hash = reader.bytes() - break - case 2: - message.prevHash = reader.bytes() - break - case 3: - message.height = reader.int32() - break - case 4: - message.nBits = reader.uint32() - break - case 5: - message.timestamp = longToString(reader.int64() as Long) - break - case 6: - message.blockSize = longToString(reader.uint64() as Long) - break - case 7: - message.numTxs = longToString(reader.uint64() as Long) - break - case 8: - message.numInputs = longToString(reader.uint64() as Long) - break - case 9: - message.numOutputs = longToString(reader.uint64() as Long) - break - case 10: - message.sumInputSats = longToString(reader.int64() as Long) - break - case 11: - message.sumCoinbaseOutputSats = longToString(reader.int64() as Long) - break - case 12: - message.sumNormalOutputSats = longToString(reader.int64() as Long) - break - case 13: - message.sumBurnedSats = longToString(reader.int64() as Long) - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): BlockInfo { - return { - hash: isSet(object.hash) - ? bytesFromBase64(object.hash) - : new Uint8Array(), - prevHash: isSet(object.prevHash) - ? bytesFromBase64(object.prevHash) - : new Uint8Array(), - height: isSet(object.height) ? Number(object.height) : 0, - nBits: isSet(object.nBits) ? Number(object.nBits) : 0, - timestamp: isSet(object.timestamp) ? String(object.timestamp) : "0", - blockSize: isSet(object.blockSize) ? String(object.blockSize) : "0", - numTxs: isSet(object.numTxs) ? String(object.numTxs) : "0", - numInputs: isSet(object.numInputs) ? String(object.numInputs) : "0", - numOutputs: isSet(object.numOutputs) ? String(object.numOutputs) : "0", - sumInputSats: isSet(object.sumInputSats) - ? String(object.sumInputSats) - : "0", - sumCoinbaseOutputSats: isSet(object.sumCoinbaseOutputSats) - ? String(object.sumCoinbaseOutputSats) - : "0", - sumNormalOutputSats: isSet(object.sumNormalOutputSats) - ? String(object.sumNormalOutputSats) - : "0", - sumBurnedSats: isSet(object.sumBurnedSats) - ? String(object.sumBurnedSats) - : "0", - } - }, - - toJSON(message: BlockInfo): unknown { - const obj: any = {} - message.hash !== undefined && - (obj.hash = base64FromBytes( - message.hash !== undefined ? message.hash : new Uint8Array(), - )) - message.prevHash !== undefined && - (obj.prevHash = base64FromBytes( - message.prevHash !== undefined ? message.prevHash : new Uint8Array(), - )) - message.height !== undefined && (obj.height = Math.round(message.height)) - message.nBits !== undefined && (obj.nBits = Math.round(message.nBits)) - message.timestamp !== undefined && (obj.timestamp = message.timestamp) - message.blockSize !== undefined && (obj.blockSize = message.blockSize) - message.numTxs !== undefined && (obj.numTxs = message.numTxs) - message.numInputs !== undefined && (obj.numInputs = message.numInputs) - message.numOutputs !== undefined && (obj.numOutputs = message.numOutputs) - message.sumInputSats !== undefined && - (obj.sumInputSats = message.sumInputSats) - message.sumCoinbaseOutputSats !== undefined && - (obj.sumCoinbaseOutputSats = message.sumCoinbaseOutputSats) - message.sumNormalOutputSats !== undefined && - (obj.sumNormalOutputSats = message.sumNormalOutputSats) - message.sumBurnedSats !== undefined && - (obj.sumBurnedSats = message.sumBurnedSats) - return obj - }, - - fromPartial, I>>( - object: I, - ): BlockInfo { - const message = createBaseBlockInfo() - message.hash = object.hash ?? new Uint8Array() - message.prevHash = object.prevHash ?? new Uint8Array() - message.height = object.height ?? 0 - message.nBits = object.nBits ?? 0 - message.timestamp = object.timestamp ?? "0" - message.blockSize = object.blockSize ?? "0" - message.numTxs = object.numTxs ?? "0" - message.numInputs = object.numInputs ?? "0" - message.numOutputs = object.numOutputs ?? "0" - message.sumInputSats = object.sumInputSats ?? "0" - message.sumCoinbaseOutputSats = object.sumCoinbaseOutputSats ?? "0" - message.sumNormalOutputSats = object.sumNormalOutputSats ?? "0" - message.sumBurnedSats = object.sumBurnedSats ?? "0" - return message - }, -} + encode( + message: BlockInfo, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.hash.length !== 0) { + writer.uint32(10).bytes(message.hash); + } + if (message.prevHash.length !== 0) { + writer.uint32(18).bytes(message.prevHash); + } + if (message.height !== 0) { + writer.uint32(24).int32(message.height); + } + if (message.nBits !== 0) { + writer.uint32(32).uint32(message.nBits); + } + if (message.timestamp !== '0') { + writer.uint32(40).int64(message.timestamp); + } + if (message.blockSize !== '0') { + writer.uint32(48).uint64(message.blockSize); + } + if (message.numTxs !== '0') { + writer.uint32(56).uint64(message.numTxs); + } + if (message.numInputs !== '0') { + writer.uint32(64).uint64(message.numInputs); + } + if (message.numOutputs !== '0') { + writer.uint32(72).uint64(message.numOutputs); + } + if (message.sumInputSats !== '0') { + writer.uint32(80).int64(message.sumInputSats); + } + if (message.sumCoinbaseOutputSats !== '0') { + writer.uint32(88).int64(message.sumCoinbaseOutputSats); + } + if (message.sumNormalOutputSats !== '0') { + writer.uint32(96).int64(message.sumNormalOutputSats); + } + if (message.sumBurnedSats !== '0') { + writer.uint32(104).int64(message.sumBurnedSats); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BlockInfo { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBlockInfo(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.hash = reader.bytes(); + break; + case 2: + message.prevHash = reader.bytes(); + break; + case 3: + message.height = reader.int32(); + break; + case 4: + message.nBits = reader.uint32(); + break; + case 5: + message.timestamp = longToString(reader.int64() as Long); + break; + case 6: + message.blockSize = longToString(reader.uint64() as Long); + break; + case 7: + message.numTxs = longToString(reader.uint64() as Long); + break; + case 8: + message.numInputs = longToString(reader.uint64() as Long); + break; + case 9: + message.numOutputs = longToString(reader.uint64() as Long); + break; + case 10: + message.sumInputSats = longToString(reader.int64() as Long); + break; + case 11: + message.sumCoinbaseOutputSats = longToString( + reader.int64() as Long, + ); + break; + case 12: + message.sumNormalOutputSats = longToString( + reader.int64() as Long, + ); + break; + case 13: + message.sumBurnedSats = longToString( + reader.int64() as Long, + ); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BlockInfo { + return { + hash: isSet(object.hash) + ? bytesFromBase64(object.hash) + : new Uint8Array(), + prevHash: isSet(object.prevHash) + ? bytesFromBase64(object.prevHash) + : new Uint8Array(), + height: isSet(object.height) ? Number(object.height) : 0, + nBits: isSet(object.nBits) ? Number(object.nBits) : 0, + timestamp: isSet(object.timestamp) ? String(object.timestamp) : '0', + blockSize: isSet(object.blockSize) ? String(object.blockSize) : '0', + numTxs: isSet(object.numTxs) ? String(object.numTxs) : '0', + numInputs: isSet(object.numInputs) ? String(object.numInputs) : '0', + numOutputs: isSet(object.numOutputs) + ? String(object.numOutputs) + : '0', + sumInputSats: isSet(object.sumInputSats) + ? String(object.sumInputSats) + : '0', + sumCoinbaseOutputSats: isSet(object.sumCoinbaseOutputSats) + ? String(object.sumCoinbaseOutputSats) + : '0', + sumNormalOutputSats: isSet(object.sumNormalOutputSats) + ? String(object.sumNormalOutputSats) + : '0', + sumBurnedSats: isSet(object.sumBurnedSats) + ? String(object.sumBurnedSats) + : '0', + }; + }, + + toJSON(message: BlockInfo): unknown { + const obj: any = {}; + message.hash !== undefined && + (obj.hash = base64FromBytes( + message.hash !== undefined ? message.hash : new Uint8Array(), + )); + message.prevHash !== undefined && + (obj.prevHash = base64FromBytes( + message.prevHash !== undefined + ? message.prevHash + : new Uint8Array(), + )); + message.height !== undefined && + (obj.height = Math.round(message.height)); + message.nBits !== undefined && (obj.nBits = Math.round(message.nBits)); + message.timestamp !== undefined && (obj.timestamp = message.timestamp); + message.blockSize !== undefined && (obj.blockSize = message.blockSize); + message.numTxs !== undefined && (obj.numTxs = message.numTxs); + message.numInputs !== undefined && (obj.numInputs = message.numInputs); + message.numOutputs !== undefined && + (obj.numOutputs = message.numOutputs); + message.sumInputSats !== undefined && + (obj.sumInputSats = message.sumInputSats); + message.sumCoinbaseOutputSats !== undefined && + (obj.sumCoinbaseOutputSats = message.sumCoinbaseOutputSats); + message.sumNormalOutputSats !== undefined && + (obj.sumNormalOutputSats = message.sumNormalOutputSats); + message.sumBurnedSats !== undefined && + (obj.sumBurnedSats = message.sumBurnedSats); + return obj; + }, + + fromPartial, I>>( + object: I, + ): BlockInfo { + const message = createBaseBlockInfo(); + message.hash = object.hash ?? new Uint8Array(); + message.prevHash = object.prevHash ?? new Uint8Array(); + message.height = object.height ?? 0; + message.nBits = object.nBits ?? 0; + message.timestamp = object.timestamp ?? '0'; + message.blockSize = object.blockSize ?? '0'; + message.numTxs = object.numTxs ?? '0'; + message.numInputs = object.numInputs ?? '0'; + message.numOutputs = object.numOutputs ?? '0'; + message.sumInputSats = object.sumInputSats ?? '0'; + message.sumCoinbaseOutputSats = object.sumCoinbaseOutputSats ?? '0'; + message.sumNormalOutputSats = object.sumNormalOutputSats ?? '0'; + message.sumBurnedSats = object.sumBurnedSats ?? '0'; + return message; + }, +}; function createBaseBlockDetails(): BlockDetails { - return { - version: 0, - merkleRoot: new Uint8Array(), - nonce: "0", - medianTimestamp: "0", - } + return { + version: 0, + merkleRoot: new Uint8Array(), + nonce: '0', + medianTimestamp: '0', + }; } export const BlockDetails = { - encode( - message: BlockDetails, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.version !== 0) { - writer.uint32(8).int32(message.version) - } - if (message.merkleRoot.length !== 0) { - writer.uint32(18).bytes(message.merkleRoot) - } - if (message.nonce !== "0") { - writer.uint32(24).uint64(message.nonce) - } - if (message.medianTimestamp !== "0") { - writer.uint32(32).int64(message.medianTimestamp) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BlockDetails { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseBlockDetails() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.version = reader.int32() - break - case 2: - message.merkleRoot = reader.bytes() - break - case 3: - message.nonce = longToString(reader.uint64() as Long) - break - case 4: - message.medianTimestamp = longToString(reader.int64() as Long) - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): BlockDetails { - return { - version: isSet(object.version) ? Number(object.version) : 0, - merkleRoot: isSet(object.merkleRoot) - ? bytesFromBase64(object.merkleRoot) - : new Uint8Array(), - nonce: isSet(object.nonce) ? String(object.nonce) : "0", - medianTimestamp: isSet(object.medianTimestamp) - ? String(object.medianTimestamp) - : "0", - } - }, - - toJSON(message: BlockDetails): unknown { - const obj: any = {} - message.version !== undefined && (obj.version = Math.round(message.version)) - message.merkleRoot !== undefined && - (obj.merkleRoot = base64FromBytes( - message.merkleRoot !== undefined - ? message.merkleRoot - : new Uint8Array(), - )) - message.nonce !== undefined && (obj.nonce = message.nonce) - message.medianTimestamp !== undefined && - (obj.medianTimestamp = message.medianTimestamp) - return obj - }, - - fromPartial, I>>( - object: I, - ): BlockDetails { - const message = createBaseBlockDetails() - message.version = object.version ?? 0 - message.merkleRoot = object.merkleRoot ?? new Uint8Array() - message.nonce = object.nonce ?? "0" - message.medianTimestamp = object.medianTimestamp ?? "0" - return message - }, -} + encode( + message: BlockDetails, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.version !== 0) { + writer.uint32(8).int32(message.version); + } + if (message.merkleRoot.length !== 0) { + writer.uint32(18).bytes(message.merkleRoot); + } + if (message.nonce !== '0') { + writer.uint32(24).uint64(message.nonce); + } + if (message.medianTimestamp !== '0') { + writer.uint32(32).int64(message.medianTimestamp); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BlockDetails { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBlockDetails(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.version = reader.int32(); + break; + case 2: + message.merkleRoot = reader.bytes(); + break; + case 3: + message.nonce = longToString(reader.uint64() as Long); + break; + case 4: + message.medianTimestamp = longToString( + reader.int64() as Long, + ); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BlockDetails { + return { + version: isSet(object.version) ? Number(object.version) : 0, + merkleRoot: isSet(object.merkleRoot) + ? bytesFromBase64(object.merkleRoot) + : new Uint8Array(), + nonce: isSet(object.nonce) ? String(object.nonce) : '0', + medianTimestamp: isSet(object.medianTimestamp) + ? String(object.medianTimestamp) + : '0', + }; + }, + + toJSON(message: BlockDetails): unknown { + const obj: any = {}; + message.version !== undefined && + (obj.version = Math.round(message.version)); + message.merkleRoot !== undefined && + (obj.merkleRoot = base64FromBytes( + message.merkleRoot !== undefined + ? message.merkleRoot + : new Uint8Array(), + )); + message.nonce !== undefined && (obj.nonce = message.nonce); + message.medianTimestamp !== undefined && + (obj.medianTimestamp = message.medianTimestamp); + return obj; + }, + + fromPartial, I>>( + object: I, + ): BlockDetails { + const message = createBaseBlockDetails(); + message.version = object.version ?? 0; + message.merkleRoot = object.merkleRoot ?? new Uint8Array(); + message.nonce = object.nonce ?? '0'; + message.medianTimestamp = object.medianTimestamp ?? '0'; + return message; + }, +}; function createBaseBlock(): Block { - return { - blockInfo: undefined, - blockDetails: undefined, - rawHeader: new Uint8Array(), - txs: [], - } + return { + blockInfo: undefined, + blockDetails: undefined, + rawHeader: new Uint8Array(), + txs: [], + }; } export const Block = { - encode(message: Block, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.blockInfo !== undefined) { - BlockInfo.encode(message.blockInfo, writer.uint32(10).fork()).ldelim() - } - if (message.blockDetails !== undefined) { - BlockDetails.encode( - message.blockDetails, - writer.uint32(26).fork(), - ).ldelim() - } - if (message.rawHeader.length !== 0) { - writer.uint32(34).bytes(message.rawHeader) - } - for (const v of message.txs) { - Tx.encode(v!, writer.uint32(18).fork()).ldelim() - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Block { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseBlock() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.blockInfo = BlockInfo.decode(reader, reader.uint32()) - break - case 3: - message.blockDetails = BlockDetails.decode(reader, reader.uint32()) - break - case 4: - message.rawHeader = reader.bytes() - break - case 2: - message.txs.push(Tx.decode(reader, reader.uint32())) - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): Block { - return { - blockInfo: isSet(object.blockInfo) - ? BlockInfo.fromJSON(object.blockInfo) - : undefined, - blockDetails: isSet(object.blockDetails) - ? BlockDetails.fromJSON(object.blockDetails) - : undefined, - rawHeader: isSet(object.rawHeader) - ? bytesFromBase64(object.rawHeader) - : new Uint8Array(), - txs: Array.isArray(object?.txs) - ? object.txs.map((e: any) => Tx.fromJSON(e)) - : [], - } - }, - - toJSON(message: Block): unknown { - const obj: any = {} - message.blockInfo !== undefined && - (obj.blockInfo = message.blockInfo - ? BlockInfo.toJSON(message.blockInfo) - : undefined) - message.blockDetails !== undefined && - (obj.blockDetails = message.blockDetails - ? BlockDetails.toJSON(message.blockDetails) - : undefined) - message.rawHeader !== undefined && - (obj.rawHeader = base64FromBytes( - message.rawHeader !== undefined ? message.rawHeader : new Uint8Array(), - )) - if (message.txs) { - obj.txs = message.txs.map(e => (e ? Tx.toJSON(e) : undefined)) - } else { - obj.txs = [] - } - return obj - }, - - fromPartial, I>>(object: I): Block { - const message = createBaseBlock() - message.blockInfo = - object.blockInfo !== undefined && object.blockInfo !== null - ? BlockInfo.fromPartial(object.blockInfo) - : undefined - message.blockDetails = - object.blockDetails !== undefined && object.blockDetails !== null - ? BlockDetails.fromPartial(object.blockDetails) - : undefined - message.rawHeader = object.rawHeader ?? new Uint8Array() - message.txs = object.txs?.map(e => Tx.fromPartial(e)) || [] - return message - }, -} + encode( + message: Block, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.blockInfo !== undefined) { + BlockInfo.encode( + message.blockInfo, + writer.uint32(10).fork(), + ).ldelim(); + } + if (message.blockDetails !== undefined) { + BlockDetails.encode( + message.blockDetails, + writer.uint32(26).fork(), + ).ldelim(); + } + if (message.rawHeader.length !== 0) { + writer.uint32(34).bytes(message.rawHeader); + } + for (const v of message.txs) { + Tx.encode(v!, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Block { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBlock(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.blockInfo = BlockInfo.decode( + reader, + reader.uint32(), + ); + break; + case 3: + message.blockDetails = BlockDetails.decode( + reader, + reader.uint32(), + ); + break; + case 4: + message.rawHeader = reader.bytes(); + break; + case 2: + message.txs.push(Tx.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Block { + return { + blockInfo: isSet(object.blockInfo) + ? BlockInfo.fromJSON(object.blockInfo) + : undefined, + blockDetails: isSet(object.blockDetails) + ? BlockDetails.fromJSON(object.blockDetails) + : undefined, + rawHeader: isSet(object.rawHeader) + ? bytesFromBase64(object.rawHeader) + : new Uint8Array(), + txs: Array.isArray(object?.txs) + ? object.txs.map((e: any) => Tx.fromJSON(e)) + : [], + }; + }, + + toJSON(message: Block): unknown { + const obj: any = {}; + message.blockInfo !== undefined && + (obj.blockInfo = message.blockInfo + ? BlockInfo.toJSON(message.blockInfo) + : undefined); + message.blockDetails !== undefined && + (obj.blockDetails = message.blockDetails + ? BlockDetails.toJSON(message.blockDetails) + : undefined); + message.rawHeader !== undefined && + (obj.rawHeader = base64FromBytes( + message.rawHeader !== undefined + ? message.rawHeader + : new Uint8Array(), + )); + if (message.txs) { + obj.txs = message.txs.map(e => (e ? Tx.toJSON(e) : undefined)); + } else { + obj.txs = []; + } + return obj; + }, + + fromPartial, I>>(object: I): Block { + const message = createBaseBlock(); + message.blockInfo = + object.blockInfo !== undefined && object.blockInfo !== null + ? BlockInfo.fromPartial(object.blockInfo) + : undefined; + message.blockDetails = + object.blockDetails !== undefined && object.blockDetails !== null + ? BlockDetails.fromPartial(object.blockDetails) + : undefined; + message.rawHeader = object.rawHeader ?? new Uint8Array(); + message.txs = object.txs?.map(e => Tx.fromPartial(e)) || []; + return message; + }, +}; function createBaseScriptUtxos(): ScriptUtxos { - return { outputScript: new Uint8Array(), utxos: [] } + return { outputScript: new Uint8Array(), utxos: [] }; } export const ScriptUtxos = { - encode( - message: ScriptUtxos, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.outputScript.length !== 0) { - writer.uint32(10).bytes(message.outputScript) - } - for (const v of message.utxos) { - Utxo.encode(v!, writer.uint32(18).fork()).ldelim() - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): ScriptUtxos { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseScriptUtxos() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.outputScript = reader.bytes() - break - case 2: - message.utxos.push(Utxo.decode(reader, reader.uint32())) - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): ScriptUtxos { - return { - outputScript: isSet(object.outputScript) - ? bytesFromBase64(object.outputScript) - : new Uint8Array(), - utxos: Array.isArray(object?.utxos) - ? object.utxos.map((e: any) => Utxo.fromJSON(e)) - : [], - } - }, - - toJSON(message: ScriptUtxos): unknown { - const obj: any = {} - message.outputScript !== undefined && - (obj.outputScript = base64FromBytes( - message.outputScript !== undefined - ? message.outputScript - : new Uint8Array(), - )) - if (message.utxos) { - obj.utxos = message.utxos.map(e => (e ? Utxo.toJSON(e) : undefined)) - } else { - obj.utxos = [] - } - return obj - }, - - fromPartial, I>>( - object: I, - ): ScriptUtxos { - const message = createBaseScriptUtxos() - message.outputScript = object.outputScript ?? new Uint8Array() - message.utxos = object.utxos?.map(e => Utxo.fromPartial(e)) || [] - return message - }, -} + encode( + message: ScriptUtxos, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.outputScript.length !== 0) { + writer.uint32(10).bytes(message.outputScript); + } + for (const v of message.utxos) { + Utxo.encode(v!, writer.uint32(18).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): ScriptUtxos { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseScriptUtxos(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.outputScript = reader.bytes(); + break; + case 2: + message.utxos.push(Utxo.decode(reader, reader.uint32())); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): ScriptUtxos { + return { + outputScript: isSet(object.outputScript) + ? bytesFromBase64(object.outputScript) + : new Uint8Array(), + utxos: Array.isArray(object?.utxos) + ? object.utxos.map((e: any) => Utxo.fromJSON(e)) + : [], + }; + }, + + toJSON(message: ScriptUtxos): unknown { + const obj: any = {}; + message.outputScript !== undefined && + (obj.outputScript = base64FromBytes( + message.outputScript !== undefined + ? message.outputScript + : new Uint8Array(), + )); + if (message.utxos) { + obj.utxos = message.utxos.map(e => + e ? Utxo.toJSON(e) : undefined, + ); + } else { + obj.utxos = []; + } + return obj; + }, + + fromPartial, I>>( + object: I, + ): ScriptUtxos { + const message = createBaseScriptUtxos(); + message.outputScript = object.outputScript ?? new Uint8Array(); + message.utxos = object.utxos?.map(e => Utxo.fromPartial(e)) || []; + return message; + }, +}; function createBaseTxHistoryPage(): TxHistoryPage { - return { txs: [], numPages: 0 } + return { txs: [], numPages: 0 }; } export const TxHistoryPage = { - encode( - message: TxHistoryPage, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - for (const v of message.txs) { - Tx.encode(v!, writer.uint32(10).fork()).ldelim() - } - if (message.numPages !== 0) { - writer.uint32(16).uint32(message.numPages) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TxHistoryPage { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseTxHistoryPage() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.txs.push(Tx.decode(reader, reader.uint32())) - break - case 2: - message.numPages = reader.uint32() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): TxHistoryPage { - return { - txs: Array.isArray(object?.txs) - ? object.txs.map((e: any) => Tx.fromJSON(e)) - : [], - numPages: isSet(object.numPages) ? Number(object.numPages) : 0, - } - }, - - toJSON(message: TxHistoryPage): unknown { - const obj: any = {} - if (message.txs) { - obj.txs = message.txs.map(e => (e ? Tx.toJSON(e) : undefined)) - } else { - obj.txs = [] - } - message.numPages !== undefined && - (obj.numPages = Math.round(message.numPages)) - return obj - }, - - fromPartial, I>>( - object: I, - ): TxHistoryPage { - const message = createBaseTxHistoryPage() - message.txs = object.txs?.map(e => Tx.fromPartial(e)) || [] - message.numPages = object.numPages ?? 0 - return message - }, -} + encode( + message: TxHistoryPage, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + for (const v of message.txs) { + Tx.encode(v!, writer.uint32(10).fork()).ldelim(); + } + if (message.numPages !== 0) { + writer.uint32(16).uint32(message.numPages); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): TxHistoryPage { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxHistoryPage(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txs.push(Tx.decode(reader, reader.uint32())); + break; + case 2: + message.numPages = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): TxHistoryPage { + return { + txs: Array.isArray(object?.txs) + ? object.txs.map((e: any) => Tx.fromJSON(e)) + : [], + numPages: isSet(object.numPages) ? Number(object.numPages) : 0, + }; + }, + + toJSON(message: TxHistoryPage): unknown { + const obj: any = {}; + if (message.txs) { + obj.txs = message.txs.map(e => (e ? Tx.toJSON(e) : undefined)); + } else { + obj.txs = []; + } + message.numPages !== undefined && + (obj.numPages = Math.round(message.numPages)); + return obj; + }, + + fromPartial, I>>( + object: I, + ): TxHistoryPage { + const message = createBaseTxHistoryPage(); + message.txs = object.txs?.map(e => Tx.fromPartial(e)) || []; + message.numPages = object.numPages ?? 0; + return message; + }, +}; function createBaseUtxos(): Utxos { - return { scriptUtxos: [] } + return { scriptUtxos: [] }; } export const Utxos = { - encode(message: Utxos, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - for (const v of message.scriptUtxos) { - ScriptUtxos.encode(v!, writer.uint32(10).fork()).ldelim() - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Utxos { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseUtxos() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.scriptUtxos.push(ScriptUtxos.decode(reader, reader.uint32())) - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): Utxos { - return { - scriptUtxos: Array.isArray(object?.scriptUtxos) - ? object.scriptUtxos.map((e: any) => ScriptUtxos.fromJSON(e)) - : [], - } - }, - - toJSON(message: Utxos): unknown { - const obj: any = {} - if (message.scriptUtxos) { - obj.scriptUtxos = message.scriptUtxos.map(e => - e ? ScriptUtxos.toJSON(e) : undefined, - ) - } else { - obj.scriptUtxos = [] - } - return obj - }, - - fromPartial, I>>(object: I): Utxos { - const message = createBaseUtxos() - message.scriptUtxos = - object.scriptUtxos?.map(e => ScriptUtxos.fromPartial(e)) || [] - return message - }, -} + encode( + message: Utxos, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + for (const v of message.scriptUtxos) { + ScriptUtxos.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Utxos { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUtxos(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.scriptUtxos.push( + ScriptUtxos.decode(reader, reader.uint32()), + ); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Utxos { + return { + scriptUtxos: Array.isArray(object?.scriptUtxos) + ? object.scriptUtxos.map((e: any) => ScriptUtxos.fromJSON(e)) + : [], + }; + }, + + toJSON(message: Utxos): unknown { + const obj: any = {}; + if (message.scriptUtxos) { + obj.scriptUtxos = message.scriptUtxos.map(e => + e ? ScriptUtxos.toJSON(e) : undefined, + ); + } else { + obj.scriptUtxos = []; + } + return obj; + }, + + fromPartial, I>>(object: I): Utxos { + const message = createBaseUtxos(); + message.scriptUtxos = + object.scriptUtxos?.map(e => ScriptUtxos.fromPartial(e)) || []; + return message; + }, +}; function createBaseBlocks(): Blocks { - return { blocks: [] } + return { blocks: [] }; } export const Blocks = { - encode( - message: Blocks, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - for (const v of message.blocks) { - BlockInfo.encode(v!, writer.uint32(10).fork()).ldelim() - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Blocks { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseBlocks() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.blocks.push(BlockInfo.decode(reader, reader.uint32())) - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): Blocks { - return { - blocks: Array.isArray(object?.blocks) - ? object.blocks.map((e: any) => BlockInfo.fromJSON(e)) - : [], - } - }, - - toJSON(message: Blocks): unknown { - const obj: any = {} - if (message.blocks) { - obj.blocks = message.blocks.map(e => - e ? BlockInfo.toJSON(e) : undefined, - ) - } else { - obj.blocks = [] - } - return obj - }, - - fromPartial, I>>(object: I): Blocks { - const message = createBaseBlocks() - message.blocks = object.blocks?.map(e => BlockInfo.fromPartial(e)) || [] - return message - }, -} + encode( + message: Blocks, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + for (const v of message.blocks) { + BlockInfo.encode(v!, writer.uint32(10).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Blocks { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBlocks(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.blocks.push( + BlockInfo.decode(reader, reader.uint32()), + ); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Blocks { + return { + blocks: Array.isArray(object?.blocks) + ? object.blocks.map((e: any) => BlockInfo.fromJSON(e)) + : [], + }; + }, + + toJSON(message: Blocks): unknown { + const obj: any = {}; + if (message.blocks) { + obj.blocks = message.blocks.map(e => + e ? BlockInfo.toJSON(e) : undefined, + ); + } else { + obj.blocks = []; + } + return obj; + }, + + fromPartial, I>>(object: I): Blocks { + const message = createBaseBlocks(); + message.blocks = + object.blocks?.map(e => BlockInfo.fromPartial(e)) || []; + return message; + }, +}; function createBaseSlpTxData(): SlpTxData { - return { slpMeta: undefined, genesisInfo: undefined } + return { slpMeta: undefined, genesisInfo: undefined }; } export const SlpTxData = { - encode( - message: SlpTxData, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.slpMeta !== undefined) { - SlpMeta.encode(message.slpMeta, writer.uint32(10).fork()).ldelim() - } - if (message.genesisInfo !== undefined) { - SlpGenesisInfo.encode( - message.genesisInfo, - writer.uint32(18).fork(), - ).ldelim() - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SlpTxData { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseSlpTxData() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.slpMeta = SlpMeta.decode(reader, reader.uint32()) - break - case 2: - message.genesisInfo = SlpGenesisInfo.decode(reader, reader.uint32()) - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): SlpTxData { - return { - slpMeta: isSet(object.slpMeta) - ? SlpMeta.fromJSON(object.slpMeta) - : undefined, - genesisInfo: isSet(object.genesisInfo) - ? SlpGenesisInfo.fromJSON(object.genesisInfo) - : undefined, - } - }, - - toJSON(message: SlpTxData): unknown { - const obj: any = {} - message.slpMeta !== undefined && - (obj.slpMeta = message.slpMeta - ? SlpMeta.toJSON(message.slpMeta) - : undefined) - message.genesisInfo !== undefined && - (obj.genesisInfo = message.genesisInfo - ? SlpGenesisInfo.toJSON(message.genesisInfo) - : undefined) - return obj - }, - - fromPartial, I>>( - object: I, - ): SlpTxData { - const message = createBaseSlpTxData() - message.slpMeta = - object.slpMeta !== undefined && object.slpMeta !== null - ? SlpMeta.fromPartial(object.slpMeta) - : undefined - message.genesisInfo = - object.genesisInfo !== undefined && object.genesisInfo !== null - ? SlpGenesisInfo.fromPartial(object.genesisInfo) - : undefined - return message - }, -} + encode( + message: SlpTxData, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.slpMeta !== undefined) { + SlpMeta.encode(message.slpMeta, writer.uint32(10).fork()).ldelim(); + } + if (message.genesisInfo !== undefined) { + SlpGenesisInfo.encode( + message.genesisInfo, + writer.uint32(18).fork(), + ).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SlpTxData { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSlpTxData(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.slpMeta = SlpMeta.decode(reader, reader.uint32()); + break; + case 2: + message.genesisInfo = SlpGenesisInfo.decode( + reader, + reader.uint32(), + ); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): SlpTxData { + return { + slpMeta: isSet(object.slpMeta) + ? SlpMeta.fromJSON(object.slpMeta) + : undefined, + genesisInfo: isSet(object.genesisInfo) + ? SlpGenesisInfo.fromJSON(object.genesisInfo) + : undefined, + }; + }, + + toJSON(message: SlpTxData): unknown { + const obj: any = {}; + message.slpMeta !== undefined && + (obj.slpMeta = message.slpMeta + ? SlpMeta.toJSON(message.slpMeta) + : undefined); + message.genesisInfo !== undefined && + (obj.genesisInfo = message.genesisInfo + ? SlpGenesisInfo.toJSON(message.genesisInfo) + : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): SlpTxData { + const message = createBaseSlpTxData(); + message.slpMeta = + object.slpMeta !== undefined && object.slpMeta !== null + ? SlpMeta.fromPartial(object.slpMeta) + : undefined; + message.genesisInfo = + object.genesisInfo !== undefined && object.genesisInfo !== null + ? SlpGenesisInfo.fromPartial(object.genesisInfo) + : undefined; + return message; + }, +}; function createBaseSlpMeta(): SlpMeta { - return { - tokenType: 0, - txType: 0, - tokenId: new Uint8Array(), - groupTokenId: new Uint8Array(), - } + return { + tokenType: 0, + txType: 0, + tokenId: new Uint8Array(), + groupTokenId: new Uint8Array(), + }; } export const SlpMeta = { - encode( - message: SlpMeta, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.tokenType !== 0) { - writer.uint32(8).int32(message.tokenType) - } - if (message.txType !== 0) { - writer.uint32(16).int32(message.txType) - } - if (message.tokenId.length !== 0) { - writer.uint32(26).bytes(message.tokenId) - } - if (message.groupTokenId.length !== 0) { - writer.uint32(34).bytes(message.groupTokenId) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SlpMeta { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseSlpMeta() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.tokenType = reader.int32() as any - break - case 2: - message.txType = reader.int32() as any - break - case 3: - message.tokenId = reader.bytes() - break - case 4: - message.groupTokenId = reader.bytes() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): SlpMeta { - return { - tokenType: isSet(object.tokenType) - ? slpTokenTypeFromJSON(object.tokenType) - : 0, - txType: isSet(object.txType) ? slpTxTypeFromJSON(object.txType) : 0, - tokenId: isSet(object.tokenId) - ? bytesFromBase64(object.tokenId) - : new Uint8Array(), - groupTokenId: isSet(object.groupTokenId) - ? bytesFromBase64(object.groupTokenId) - : new Uint8Array(), - } - }, - - toJSON(message: SlpMeta): unknown { - const obj: any = {} - message.tokenType !== undefined && - (obj.tokenType = slpTokenTypeToJSON(message.tokenType)) - message.txType !== undefined && - (obj.txType = slpTxTypeToJSON(message.txType)) - message.tokenId !== undefined && - (obj.tokenId = base64FromBytes( - message.tokenId !== undefined ? message.tokenId : new Uint8Array(), - )) - message.groupTokenId !== undefined && - (obj.groupTokenId = base64FromBytes( - message.groupTokenId !== undefined - ? message.groupTokenId - : new Uint8Array(), - )) - return obj - }, - - fromPartial, I>>(object: I): SlpMeta { - const message = createBaseSlpMeta() - message.tokenType = object.tokenType ?? 0 - message.txType = object.txType ?? 0 - message.tokenId = object.tokenId ?? new Uint8Array() - message.groupTokenId = object.groupTokenId ?? new Uint8Array() - return message - }, -} + encode( + message: SlpMeta, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.tokenType !== 0) { + writer.uint32(8).int32(message.tokenType); + } + if (message.txType !== 0) { + writer.uint32(16).int32(message.txType); + } + if (message.tokenId.length !== 0) { + writer.uint32(26).bytes(message.tokenId); + } + if (message.groupTokenId.length !== 0) { + writer.uint32(34).bytes(message.groupTokenId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SlpMeta { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSlpMeta(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.tokenType = reader.int32() as any; + break; + case 2: + message.txType = reader.int32() as any; + break; + case 3: + message.tokenId = reader.bytes(); + break; + case 4: + message.groupTokenId = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): SlpMeta { + return { + tokenType: isSet(object.tokenType) + ? slpTokenTypeFromJSON(object.tokenType) + : 0, + txType: isSet(object.txType) ? slpTxTypeFromJSON(object.txType) : 0, + tokenId: isSet(object.tokenId) + ? bytesFromBase64(object.tokenId) + : new Uint8Array(), + groupTokenId: isSet(object.groupTokenId) + ? bytesFromBase64(object.groupTokenId) + : new Uint8Array(), + }; + }, + + toJSON(message: SlpMeta): unknown { + const obj: any = {}; + message.tokenType !== undefined && + (obj.tokenType = slpTokenTypeToJSON(message.tokenType)); + message.txType !== undefined && + (obj.txType = slpTxTypeToJSON(message.txType)); + message.tokenId !== undefined && + (obj.tokenId = base64FromBytes( + message.tokenId !== undefined + ? message.tokenId + : new Uint8Array(), + )); + message.groupTokenId !== undefined && + (obj.groupTokenId = base64FromBytes( + message.groupTokenId !== undefined + ? message.groupTokenId + : new Uint8Array(), + )); + return obj; + }, + + fromPartial, I>>(object: I): SlpMeta { + const message = createBaseSlpMeta(); + message.tokenType = object.tokenType ?? 0; + message.txType = object.txType ?? 0; + message.tokenId = object.tokenId ?? new Uint8Array(); + message.groupTokenId = object.groupTokenId ?? new Uint8Array(); + return message; + }, +}; function createBaseTokenStats(): TokenStats { - return { totalMinted: "", totalBurned: "" } + return { totalMinted: '', totalBurned: '' }; } export const TokenStats = { - encode( - message: TokenStats, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.totalMinted !== "") { - writer.uint32(10).string(message.totalMinted) - } - if (message.totalBurned !== "") { - writer.uint32(18).string(message.totalBurned) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TokenStats { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseTokenStats() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.totalMinted = reader.string() - break - case 2: - message.totalBurned = reader.string() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): TokenStats { - return { - totalMinted: isSet(object.totalMinted) ? String(object.totalMinted) : "", - totalBurned: isSet(object.totalBurned) ? String(object.totalBurned) : "", - } - }, - - toJSON(message: TokenStats): unknown { - const obj: any = {} - message.totalMinted !== undefined && (obj.totalMinted = message.totalMinted) - message.totalBurned !== undefined && (obj.totalBurned = message.totalBurned) - return obj - }, - - fromPartial, I>>( - object: I, - ): TokenStats { - const message = createBaseTokenStats() - message.totalMinted = object.totalMinted ?? "" - message.totalBurned = object.totalBurned ?? "" - return message - }, -} + encode( + message: TokenStats, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.totalMinted !== '') { + writer.uint32(10).string(message.totalMinted); + } + if (message.totalBurned !== '') { + writer.uint32(18).string(message.totalBurned); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): TokenStats { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTokenStats(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.totalMinted = reader.string(); + break; + case 2: + message.totalBurned = reader.string(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): TokenStats { + return { + totalMinted: isSet(object.totalMinted) + ? String(object.totalMinted) + : '', + totalBurned: isSet(object.totalBurned) + ? String(object.totalBurned) + : '', + }; + }, + + toJSON(message: TokenStats): unknown { + const obj: any = {}; + message.totalMinted !== undefined && + (obj.totalMinted = message.totalMinted); + message.totalBurned !== undefined && + (obj.totalBurned = message.totalBurned); + return obj; + }, + + fromPartial, I>>( + object: I, + ): TokenStats { + const message = createBaseTokenStats(); + message.totalMinted = object.totalMinted ?? ''; + message.totalBurned = object.totalBurned ?? ''; + return message; + }, +}; function createBaseTxInput(): TxInput { - return { - prevOut: undefined, - inputScript: new Uint8Array(), - outputScript: new Uint8Array(), - value: "0", - sequenceNo: 0, - slpBurn: undefined, - slpToken: undefined, - } + return { + prevOut: undefined, + inputScript: new Uint8Array(), + outputScript: new Uint8Array(), + value: '0', + sequenceNo: 0, + slpBurn: undefined, + slpToken: undefined, + }; } export const TxInput = { - encode( - message: TxInput, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.prevOut !== undefined) { - OutPoint.encode(message.prevOut, writer.uint32(10).fork()).ldelim() - } - if (message.inputScript.length !== 0) { - writer.uint32(18).bytes(message.inputScript) - } - if (message.outputScript.length !== 0) { - writer.uint32(26).bytes(message.outputScript) - } - if (message.value !== "0") { - writer.uint32(32).int64(message.value) - } - if (message.sequenceNo !== 0) { - writer.uint32(40).uint32(message.sequenceNo) - } - if (message.slpBurn !== undefined) { - SlpBurn.encode(message.slpBurn, writer.uint32(50).fork()).ldelim() - } - if (message.slpToken !== undefined) { - SlpToken.encode(message.slpToken, writer.uint32(58).fork()).ldelim() - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TxInput { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseTxInput() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.prevOut = OutPoint.decode(reader, reader.uint32()) - break - case 2: - message.inputScript = reader.bytes() - break - case 3: - message.outputScript = reader.bytes() - break - case 4: - message.value = longToString(reader.int64() as Long) - break - case 5: - message.sequenceNo = reader.uint32() - break - case 6: - message.slpBurn = SlpBurn.decode(reader, reader.uint32()) - break - case 7: - message.slpToken = SlpToken.decode(reader, reader.uint32()) - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): TxInput { - return { - prevOut: isSet(object.prevOut) - ? OutPoint.fromJSON(object.prevOut) - : undefined, - inputScript: isSet(object.inputScript) - ? bytesFromBase64(object.inputScript) - : new Uint8Array(), - outputScript: isSet(object.outputScript) - ? bytesFromBase64(object.outputScript) - : new Uint8Array(), - value: isSet(object.value) ? String(object.value) : "0", - sequenceNo: isSet(object.sequenceNo) ? Number(object.sequenceNo) : 0, - slpBurn: isSet(object.slpBurn) - ? SlpBurn.fromJSON(object.slpBurn) - : undefined, - slpToken: isSet(object.slpToken) - ? SlpToken.fromJSON(object.slpToken) - : undefined, - } - }, - - toJSON(message: TxInput): unknown { - const obj: any = {} - message.prevOut !== undefined && - (obj.prevOut = message.prevOut - ? OutPoint.toJSON(message.prevOut) - : undefined) - message.inputScript !== undefined && - (obj.inputScript = base64FromBytes( - message.inputScript !== undefined - ? message.inputScript - : new Uint8Array(), - )) - message.outputScript !== undefined && - (obj.outputScript = base64FromBytes( - message.outputScript !== undefined - ? message.outputScript - : new Uint8Array(), - )) - message.value !== undefined && (obj.value = message.value) - message.sequenceNo !== undefined && - (obj.sequenceNo = Math.round(message.sequenceNo)) - message.slpBurn !== undefined && - (obj.slpBurn = message.slpBurn - ? SlpBurn.toJSON(message.slpBurn) - : undefined) - message.slpToken !== undefined && - (obj.slpToken = message.slpToken - ? SlpToken.toJSON(message.slpToken) - : undefined) - return obj - }, - - fromPartial, I>>(object: I): TxInput { - const message = createBaseTxInput() - message.prevOut = - object.prevOut !== undefined && object.prevOut !== null - ? OutPoint.fromPartial(object.prevOut) - : undefined - message.inputScript = object.inputScript ?? new Uint8Array() - message.outputScript = object.outputScript ?? new Uint8Array() - message.value = object.value ?? "0" - message.sequenceNo = object.sequenceNo ?? 0 - message.slpBurn = - object.slpBurn !== undefined && object.slpBurn !== null - ? SlpBurn.fromPartial(object.slpBurn) - : undefined - message.slpToken = - object.slpToken !== undefined && object.slpToken !== null - ? SlpToken.fromPartial(object.slpToken) - : undefined - return message - }, -} + encode( + message: TxInput, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.prevOut !== undefined) { + OutPoint.encode(message.prevOut, writer.uint32(10).fork()).ldelim(); + } + if (message.inputScript.length !== 0) { + writer.uint32(18).bytes(message.inputScript); + } + if (message.outputScript.length !== 0) { + writer.uint32(26).bytes(message.outputScript); + } + if (message.value !== '0') { + writer.uint32(32).int64(message.value); + } + if (message.sequenceNo !== 0) { + writer.uint32(40).uint32(message.sequenceNo); + } + if (message.slpBurn !== undefined) { + SlpBurn.encode(message.slpBurn, writer.uint32(50).fork()).ldelim(); + } + if (message.slpToken !== undefined) { + SlpToken.encode( + message.slpToken, + writer.uint32(58).fork(), + ).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): TxInput { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxInput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.prevOut = OutPoint.decode(reader, reader.uint32()); + break; + case 2: + message.inputScript = reader.bytes(); + break; + case 3: + message.outputScript = reader.bytes(); + break; + case 4: + message.value = longToString(reader.int64() as Long); + break; + case 5: + message.sequenceNo = reader.uint32(); + break; + case 6: + message.slpBurn = SlpBurn.decode(reader, reader.uint32()); + break; + case 7: + message.slpToken = SlpToken.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): TxInput { + return { + prevOut: isSet(object.prevOut) + ? OutPoint.fromJSON(object.prevOut) + : undefined, + inputScript: isSet(object.inputScript) + ? bytesFromBase64(object.inputScript) + : new Uint8Array(), + outputScript: isSet(object.outputScript) + ? bytesFromBase64(object.outputScript) + : new Uint8Array(), + value: isSet(object.value) ? String(object.value) : '0', + sequenceNo: isSet(object.sequenceNo) + ? Number(object.sequenceNo) + : 0, + slpBurn: isSet(object.slpBurn) + ? SlpBurn.fromJSON(object.slpBurn) + : undefined, + slpToken: isSet(object.slpToken) + ? SlpToken.fromJSON(object.slpToken) + : undefined, + }; + }, + + toJSON(message: TxInput): unknown { + const obj: any = {}; + message.prevOut !== undefined && + (obj.prevOut = message.prevOut + ? OutPoint.toJSON(message.prevOut) + : undefined); + message.inputScript !== undefined && + (obj.inputScript = base64FromBytes( + message.inputScript !== undefined + ? message.inputScript + : new Uint8Array(), + )); + message.outputScript !== undefined && + (obj.outputScript = base64FromBytes( + message.outputScript !== undefined + ? message.outputScript + : new Uint8Array(), + )); + message.value !== undefined && (obj.value = message.value); + message.sequenceNo !== undefined && + (obj.sequenceNo = Math.round(message.sequenceNo)); + message.slpBurn !== undefined && + (obj.slpBurn = message.slpBurn + ? SlpBurn.toJSON(message.slpBurn) + : undefined); + message.slpToken !== undefined && + (obj.slpToken = message.slpToken + ? SlpToken.toJSON(message.slpToken) + : undefined); + return obj; + }, + + fromPartial, I>>(object: I): TxInput { + const message = createBaseTxInput(); + message.prevOut = + object.prevOut !== undefined && object.prevOut !== null + ? OutPoint.fromPartial(object.prevOut) + : undefined; + message.inputScript = object.inputScript ?? new Uint8Array(); + message.outputScript = object.outputScript ?? new Uint8Array(); + message.value = object.value ?? '0'; + message.sequenceNo = object.sequenceNo ?? 0; + message.slpBurn = + object.slpBurn !== undefined && object.slpBurn !== null + ? SlpBurn.fromPartial(object.slpBurn) + : undefined; + message.slpToken = + object.slpToken !== undefined && object.slpToken !== null + ? SlpToken.fromPartial(object.slpToken) + : undefined; + return message; + }, +}; function createBaseTxOutput(): TxOutput { - return { - value: "0", - outputScript: new Uint8Array(), - slpToken: undefined, - spentBy: undefined, - } + return { + value: '0', + outputScript: new Uint8Array(), + slpToken: undefined, + spentBy: undefined, + }; } export const TxOutput = { - encode( - message: TxOutput, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.value !== "0") { - writer.uint32(8).int64(message.value) - } - if (message.outputScript.length !== 0) { - writer.uint32(18).bytes(message.outputScript) - } - if (message.slpToken !== undefined) { - SlpToken.encode(message.slpToken, writer.uint32(26).fork()).ldelim() - } - if (message.spentBy !== undefined) { - OutPoint.encode(message.spentBy, writer.uint32(34).fork()).ldelim() - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): TxOutput { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseTxOutput() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.value = longToString(reader.int64() as Long) - break - case 2: - message.outputScript = reader.bytes() - break - case 3: - message.slpToken = SlpToken.decode(reader, reader.uint32()) - break - case 4: - message.spentBy = OutPoint.decode(reader, reader.uint32()) - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): TxOutput { - return { - value: isSet(object.value) ? String(object.value) : "0", - outputScript: isSet(object.outputScript) - ? bytesFromBase64(object.outputScript) - : new Uint8Array(), - slpToken: isSet(object.slpToken) - ? SlpToken.fromJSON(object.slpToken) - : undefined, - spentBy: isSet(object.spentBy) - ? OutPoint.fromJSON(object.spentBy) - : undefined, - } - }, - - toJSON(message: TxOutput): unknown { - const obj: any = {} - message.value !== undefined && (obj.value = message.value) - message.outputScript !== undefined && - (obj.outputScript = base64FromBytes( - message.outputScript !== undefined - ? message.outputScript - : new Uint8Array(), - )) - message.slpToken !== undefined && - (obj.slpToken = message.slpToken - ? SlpToken.toJSON(message.slpToken) - : undefined) - message.spentBy !== undefined && - (obj.spentBy = message.spentBy - ? OutPoint.toJSON(message.spentBy) - : undefined) - return obj - }, - - fromPartial, I>>(object: I): TxOutput { - const message = createBaseTxOutput() - message.value = object.value ?? "0" - message.outputScript = object.outputScript ?? new Uint8Array() - message.slpToken = - object.slpToken !== undefined && object.slpToken !== null - ? SlpToken.fromPartial(object.slpToken) - : undefined - message.spentBy = - object.spentBy !== undefined && object.spentBy !== null - ? OutPoint.fromPartial(object.spentBy) - : undefined - return message - }, -} + encode( + message: TxOutput, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.value !== '0') { + writer.uint32(8).int64(message.value); + } + if (message.outputScript.length !== 0) { + writer.uint32(18).bytes(message.outputScript); + } + if (message.slpToken !== undefined) { + SlpToken.encode( + message.slpToken, + writer.uint32(26).fork(), + ).ldelim(); + } + if (message.spentBy !== undefined) { + OutPoint.encode(message.spentBy, writer.uint32(34).fork()).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): TxOutput { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseTxOutput(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.value = longToString(reader.int64() as Long); + break; + case 2: + message.outputScript = reader.bytes(); + break; + case 3: + message.slpToken = SlpToken.decode(reader, reader.uint32()); + break; + case 4: + message.spentBy = OutPoint.decode(reader, reader.uint32()); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): TxOutput { + return { + value: isSet(object.value) ? String(object.value) : '0', + outputScript: isSet(object.outputScript) + ? bytesFromBase64(object.outputScript) + : new Uint8Array(), + slpToken: isSet(object.slpToken) + ? SlpToken.fromJSON(object.slpToken) + : undefined, + spentBy: isSet(object.spentBy) + ? OutPoint.fromJSON(object.spentBy) + : undefined, + }; + }, + + toJSON(message: TxOutput): unknown { + const obj: any = {}; + message.value !== undefined && (obj.value = message.value); + message.outputScript !== undefined && + (obj.outputScript = base64FromBytes( + message.outputScript !== undefined + ? message.outputScript + : new Uint8Array(), + )); + message.slpToken !== undefined && + (obj.slpToken = message.slpToken + ? SlpToken.toJSON(message.slpToken) + : undefined); + message.spentBy !== undefined && + (obj.spentBy = message.spentBy + ? OutPoint.toJSON(message.spentBy) + : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): TxOutput { + const message = createBaseTxOutput(); + message.value = object.value ?? '0'; + message.outputScript = object.outputScript ?? new Uint8Array(); + message.slpToken = + object.slpToken !== undefined && object.slpToken !== null + ? SlpToken.fromPartial(object.slpToken) + : undefined; + message.spentBy = + object.spentBy !== undefined && object.spentBy !== null + ? OutPoint.fromPartial(object.spentBy) + : undefined; + return message; + }, +}; function createBaseBlockMetadata(): BlockMetadata { - return { height: 0, hash: new Uint8Array(), timestamp: "0" } + return { height: 0, hash: new Uint8Array(), timestamp: '0' }; } export const BlockMetadata = { - encode( - message: BlockMetadata, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.height !== 0) { - writer.uint32(8).int32(message.height) - } - if (message.hash.length !== 0) { - writer.uint32(18).bytes(message.hash) - } - if (message.timestamp !== "0") { - writer.uint32(24).int64(message.timestamp) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): BlockMetadata { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseBlockMetadata() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.height = reader.int32() - break - case 2: - message.hash = reader.bytes() - break - case 3: - message.timestamp = longToString(reader.int64() as Long) - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): BlockMetadata { - return { - height: isSet(object.height) ? Number(object.height) : 0, - hash: isSet(object.hash) - ? bytesFromBase64(object.hash) - : new Uint8Array(), - timestamp: isSet(object.timestamp) ? String(object.timestamp) : "0", - } - }, - - toJSON(message: BlockMetadata): unknown { - const obj: any = {} - message.height !== undefined && (obj.height = Math.round(message.height)) - message.hash !== undefined && - (obj.hash = base64FromBytes( - message.hash !== undefined ? message.hash : new Uint8Array(), - )) - message.timestamp !== undefined && (obj.timestamp = message.timestamp) - return obj - }, - - fromPartial, I>>( - object: I, - ): BlockMetadata { - const message = createBaseBlockMetadata() - message.height = object.height ?? 0 - message.hash = object.hash ?? new Uint8Array() - message.timestamp = object.timestamp ?? "0" - return message - }, -} + encode( + message: BlockMetadata, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.height !== 0) { + writer.uint32(8).int32(message.height); + } + if (message.hash.length !== 0) { + writer.uint32(18).bytes(message.hash); + } + if (message.timestamp !== '0') { + writer.uint32(24).int64(message.timestamp); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): BlockMetadata { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseBlockMetadata(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.height = reader.int32(); + break; + case 2: + message.hash = reader.bytes(); + break; + case 3: + message.timestamp = longToString(reader.int64() as Long); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): BlockMetadata { + return { + height: isSet(object.height) ? Number(object.height) : 0, + hash: isSet(object.hash) + ? bytesFromBase64(object.hash) + : new Uint8Array(), + timestamp: isSet(object.timestamp) ? String(object.timestamp) : '0', + }; + }, + + toJSON(message: BlockMetadata): unknown { + const obj: any = {}; + message.height !== undefined && + (obj.height = Math.round(message.height)); + message.hash !== undefined && + (obj.hash = base64FromBytes( + message.hash !== undefined ? message.hash : new Uint8Array(), + )); + message.timestamp !== undefined && (obj.timestamp = message.timestamp); + return obj; + }, + + fromPartial, I>>( + object: I, + ): BlockMetadata { + const message = createBaseBlockMetadata(); + message.height = object.height ?? 0; + message.hash = object.hash ?? new Uint8Array(); + message.timestamp = object.timestamp ?? '0'; + return message; + }, +}; function createBaseOutPoint(): OutPoint { - return { txid: new Uint8Array(), outIdx: 0 } + return { txid: new Uint8Array(), outIdx: 0 }; } export const OutPoint = { - encode( - message: OutPoint, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.txid.length !== 0) { - writer.uint32(10).bytes(message.txid) - } - if (message.outIdx !== 0) { - writer.uint32(16).uint32(message.outIdx) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): OutPoint { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseOutPoint() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.txid = reader.bytes() - break - case 2: - message.outIdx = reader.uint32() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): OutPoint { - return { - txid: isSet(object.txid) - ? bytesFromBase64(object.txid) - : new Uint8Array(), - outIdx: isSet(object.outIdx) ? Number(object.outIdx) : 0, - } - }, - - toJSON(message: OutPoint): unknown { - const obj: any = {} - message.txid !== undefined && - (obj.txid = base64FromBytes( - message.txid !== undefined ? message.txid : new Uint8Array(), - )) - message.outIdx !== undefined && (obj.outIdx = Math.round(message.outIdx)) - return obj - }, - - fromPartial, I>>(object: I): OutPoint { - const message = createBaseOutPoint() - message.txid = object.txid ?? new Uint8Array() - message.outIdx = object.outIdx ?? 0 - return message - }, -} + encode( + message: OutPoint, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.txid.length !== 0) { + writer.uint32(10).bytes(message.txid); + } + if (message.outIdx !== 0) { + writer.uint32(16).uint32(message.outIdx); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): OutPoint { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseOutPoint(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txid = reader.bytes(); + break; + case 2: + message.outIdx = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): OutPoint { + return { + txid: isSet(object.txid) + ? bytesFromBase64(object.txid) + : new Uint8Array(), + outIdx: isSet(object.outIdx) ? Number(object.outIdx) : 0, + }; + }, + + toJSON(message: OutPoint): unknown { + const obj: any = {}; + message.txid !== undefined && + (obj.txid = base64FromBytes( + message.txid !== undefined ? message.txid : new Uint8Array(), + )); + message.outIdx !== undefined && + (obj.outIdx = Math.round(message.outIdx)); + return obj; + }, + + fromPartial, I>>( + object: I, + ): OutPoint { + const message = createBaseOutPoint(); + message.txid = object.txid ?? new Uint8Array(); + message.outIdx = object.outIdx ?? 0; + return message; + }, +}; function createBaseSlpToken(): SlpToken { - return { amount: "0", isMintBaton: false } + return { amount: '0', isMintBaton: false }; } export const SlpToken = { - encode( - message: SlpToken, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.amount !== "0") { - writer.uint32(8).uint64(message.amount) - } - if (message.isMintBaton === true) { - writer.uint32(16).bool(message.isMintBaton) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SlpToken { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseSlpToken() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.amount = longToString(reader.uint64() as Long) - break - case 2: - message.isMintBaton = reader.bool() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): SlpToken { - return { - amount: isSet(object.amount) ? String(object.amount) : "0", - isMintBaton: isSet(object.isMintBaton) - ? Boolean(object.isMintBaton) - : false, - } - }, - - toJSON(message: SlpToken): unknown { - const obj: any = {} - message.amount !== undefined && (obj.amount = message.amount) - message.isMintBaton !== undefined && (obj.isMintBaton = message.isMintBaton) - return obj - }, - - fromPartial, I>>(object: I): SlpToken { - const message = createBaseSlpToken() - message.amount = object.amount ?? "0" - message.isMintBaton = object.isMintBaton ?? false - return message - }, -} + encode( + message: SlpToken, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.amount !== '0') { + writer.uint32(8).uint64(message.amount); + } + if (message.isMintBaton === true) { + writer.uint32(16).bool(message.isMintBaton); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SlpToken { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSlpToken(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.amount = longToString(reader.uint64() as Long); + break; + case 2: + message.isMintBaton = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): SlpToken { + return { + amount: isSet(object.amount) ? String(object.amount) : '0', + isMintBaton: isSet(object.isMintBaton) + ? Boolean(object.isMintBaton) + : false, + }; + }, + + toJSON(message: SlpToken): unknown { + const obj: any = {}; + message.amount !== undefined && (obj.amount = message.amount); + message.isMintBaton !== undefined && + (obj.isMintBaton = message.isMintBaton); + return obj; + }, + + fromPartial, I>>( + object: I, + ): SlpToken { + const message = createBaseSlpToken(); + message.amount = object.amount ?? '0'; + message.isMintBaton = object.isMintBaton ?? false; + return message; + }, +}; function createBaseSlpBurn(): SlpBurn { - return { token: undefined, tokenId: new Uint8Array() } + return { token: undefined, tokenId: new Uint8Array() }; } export const SlpBurn = { - encode( - message: SlpBurn, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.token !== undefined) { - SlpToken.encode(message.token, writer.uint32(10).fork()).ldelim() - } - if (message.tokenId.length !== 0) { - writer.uint32(18).bytes(message.tokenId) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SlpBurn { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseSlpBurn() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.token = SlpToken.decode(reader, reader.uint32()) - break - case 2: - message.tokenId = reader.bytes() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): SlpBurn { - return { - token: isSet(object.token) ? SlpToken.fromJSON(object.token) : undefined, - tokenId: isSet(object.tokenId) - ? bytesFromBase64(object.tokenId) - : new Uint8Array(), - } - }, - - toJSON(message: SlpBurn): unknown { - const obj: any = {} - message.token !== undefined && - (obj.token = message.token ? SlpToken.toJSON(message.token) : undefined) - message.tokenId !== undefined && - (obj.tokenId = base64FromBytes( - message.tokenId !== undefined ? message.tokenId : new Uint8Array(), - )) - return obj - }, - - fromPartial, I>>(object: I): SlpBurn { - const message = createBaseSlpBurn() - message.token = - object.token !== undefined && object.token !== null - ? SlpToken.fromPartial(object.token) - : undefined - message.tokenId = object.tokenId ?? new Uint8Array() - return message - }, -} + encode( + message: SlpBurn, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.token !== undefined) { + SlpToken.encode(message.token, writer.uint32(10).fork()).ldelim(); + } + if (message.tokenId.length !== 0) { + writer.uint32(18).bytes(message.tokenId); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SlpBurn { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSlpBurn(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.token = SlpToken.decode(reader, reader.uint32()); + break; + case 2: + message.tokenId = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): SlpBurn { + return { + token: isSet(object.token) + ? SlpToken.fromJSON(object.token) + : undefined, + tokenId: isSet(object.tokenId) + ? bytesFromBase64(object.tokenId) + : new Uint8Array(), + }; + }, + + toJSON(message: SlpBurn): unknown { + const obj: any = {}; + message.token !== undefined && + (obj.token = message.token + ? SlpToken.toJSON(message.token) + : undefined); + message.tokenId !== undefined && + (obj.tokenId = base64FromBytes( + message.tokenId !== undefined + ? message.tokenId + : new Uint8Array(), + )); + return obj; + }, + + fromPartial, I>>(object: I): SlpBurn { + const message = createBaseSlpBurn(); + message.token = + object.token !== undefined && object.token !== null + ? SlpToken.fromPartial(object.token) + : undefined; + message.tokenId = object.tokenId ?? new Uint8Array(); + return message; + }, +}; function createBaseSlpGenesisInfo(): SlpGenesisInfo { - return { - tokenTicker: new Uint8Array(), - tokenName: new Uint8Array(), - tokenDocumentUrl: new Uint8Array(), - tokenDocumentHash: new Uint8Array(), - decimals: 0, - } + return { + tokenTicker: new Uint8Array(), + tokenName: new Uint8Array(), + tokenDocumentUrl: new Uint8Array(), + tokenDocumentHash: new Uint8Array(), + decimals: 0, + }; } export const SlpGenesisInfo = { - encode( - message: SlpGenesisInfo, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.tokenTicker.length !== 0) { - writer.uint32(10).bytes(message.tokenTicker) - } - if (message.tokenName.length !== 0) { - writer.uint32(18).bytes(message.tokenName) - } - if (message.tokenDocumentUrl.length !== 0) { - writer.uint32(26).bytes(message.tokenDocumentUrl) - } - if (message.tokenDocumentHash.length !== 0) { - writer.uint32(34).bytes(message.tokenDocumentHash) - } - if (message.decimals !== 0) { - writer.uint32(40).uint32(message.decimals) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SlpGenesisInfo { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseSlpGenesisInfo() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.tokenTicker = reader.bytes() - break - case 2: - message.tokenName = reader.bytes() - break - case 3: - message.tokenDocumentUrl = reader.bytes() - break - case 4: - message.tokenDocumentHash = reader.bytes() - break - case 5: - message.decimals = reader.uint32() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): SlpGenesisInfo { - return { - tokenTicker: isSet(object.tokenTicker) - ? bytesFromBase64(object.tokenTicker) - : new Uint8Array(), - tokenName: isSet(object.tokenName) - ? bytesFromBase64(object.tokenName) - : new Uint8Array(), - tokenDocumentUrl: isSet(object.tokenDocumentUrl) - ? bytesFromBase64(object.tokenDocumentUrl) - : new Uint8Array(), - tokenDocumentHash: isSet(object.tokenDocumentHash) - ? bytesFromBase64(object.tokenDocumentHash) - : new Uint8Array(), - decimals: isSet(object.decimals) ? Number(object.decimals) : 0, - } - }, - - toJSON(message: SlpGenesisInfo): unknown { - const obj: any = {} - message.tokenTicker !== undefined && - (obj.tokenTicker = base64FromBytes( - message.tokenTicker !== undefined - ? message.tokenTicker - : new Uint8Array(), - )) - message.tokenName !== undefined && - (obj.tokenName = base64FromBytes( - message.tokenName !== undefined ? message.tokenName : new Uint8Array(), - )) - message.tokenDocumentUrl !== undefined && - (obj.tokenDocumentUrl = base64FromBytes( - message.tokenDocumentUrl !== undefined - ? message.tokenDocumentUrl - : new Uint8Array(), - )) - message.tokenDocumentHash !== undefined && - (obj.tokenDocumentHash = base64FromBytes( - message.tokenDocumentHash !== undefined - ? message.tokenDocumentHash - : new Uint8Array(), - )) - message.decimals !== undefined && - (obj.decimals = Math.round(message.decimals)) - return obj - }, - - fromPartial, I>>( - object: I, - ): SlpGenesisInfo { - const message = createBaseSlpGenesisInfo() - message.tokenTicker = object.tokenTicker ?? new Uint8Array() - message.tokenName = object.tokenName ?? new Uint8Array() - message.tokenDocumentUrl = object.tokenDocumentUrl ?? new Uint8Array() - message.tokenDocumentHash = object.tokenDocumentHash ?? new Uint8Array() - message.decimals = object.decimals ?? 0 - return message - }, -} + encode( + message: SlpGenesisInfo, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.tokenTicker.length !== 0) { + writer.uint32(10).bytes(message.tokenTicker); + } + if (message.tokenName.length !== 0) { + writer.uint32(18).bytes(message.tokenName); + } + if (message.tokenDocumentUrl.length !== 0) { + writer.uint32(26).bytes(message.tokenDocumentUrl); + } + if (message.tokenDocumentHash.length !== 0) { + writer.uint32(34).bytes(message.tokenDocumentHash); + } + if (message.decimals !== 0) { + writer.uint32(40).uint32(message.decimals); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SlpGenesisInfo { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSlpGenesisInfo(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.tokenTicker = reader.bytes(); + break; + case 2: + message.tokenName = reader.bytes(); + break; + case 3: + message.tokenDocumentUrl = reader.bytes(); + break; + case 4: + message.tokenDocumentHash = reader.bytes(); + break; + case 5: + message.decimals = reader.uint32(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): SlpGenesisInfo { + return { + tokenTicker: isSet(object.tokenTicker) + ? bytesFromBase64(object.tokenTicker) + : new Uint8Array(), + tokenName: isSet(object.tokenName) + ? bytesFromBase64(object.tokenName) + : new Uint8Array(), + tokenDocumentUrl: isSet(object.tokenDocumentUrl) + ? bytesFromBase64(object.tokenDocumentUrl) + : new Uint8Array(), + tokenDocumentHash: isSet(object.tokenDocumentHash) + ? bytesFromBase64(object.tokenDocumentHash) + : new Uint8Array(), + decimals: isSet(object.decimals) ? Number(object.decimals) : 0, + }; + }, + + toJSON(message: SlpGenesisInfo): unknown { + const obj: any = {}; + message.tokenTicker !== undefined && + (obj.tokenTicker = base64FromBytes( + message.tokenTicker !== undefined + ? message.tokenTicker + : new Uint8Array(), + )); + message.tokenName !== undefined && + (obj.tokenName = base64FromBytes( + message.tokenName !== undefined + ? message.tokenName + : new Uint8Array(), + )); + message.tokenDocumentUrl !== undefined && + (obj.tokenDocumentUrl = base64FromBytes( + message.tokenDocumentUrl !== undefined + ? message.tokenDocumentUrl + : new Uint8Array(), + )); + message.tokenDocumentHash !== undefined && + (obj.tokenDocumentHash = base64FromBytes( + message.tokenDocumentHash !== undefined + ? message.tokenDocumentHash + : new Uint8Array(), + )); + message.decimals !== undefined && + (obj.decimals = Math.round(message.decimals)); + return obj; + }, + + fromPartial, I>>( + object: I, + ): SlpGenesisInfo { + const message = createBaseSlpGenesisInfo(); + message.tokenTicker = object.tokenTicker ?? new Uint8Array(); + message.tokenName = object.tokenName ?? new Uint8Array(); + message.tokenDocumentUrl = object.tokenDocumentUrl ?? new Uint8Array(); + message.tokenDocumentHash = + object.tokenDocumentHash ?? new Uint8Array(); + message.decimals = object.decimals ?? 0; + return message; + }, +}; function createBaseUtxoState(): UtxoState { - return { height: 0, isConfirmed: false, state: 0 } + return { height: 0, isConfirmed: false, state: 0 }; } export const UtxoState = { - encode( - message: UtxoState, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.height !== 0) { - writer.uint32(8).int32(message.height) - } - if (message.isConfirmed === true) { - writer.uint32(16).bool(message.isConfirmed) - } - if (message.state !== 0) { - writer.uint32(24).int32(message.state) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): UtxoState { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseUtxoState() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.height = reader.int32() - break - case 2: - message.isConfirmed = reader.bool() - break - case 3: - message.state = reader.int32() as any - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): UtxoState { - return { - height: isSet(object.height) ? Number(object.height) : 0, - isConfirmed: isSet(object.isConfirmed) - ? Boolean(object.isConfirmed) - : false, - state: isSet(object.state) ? utxoStateVariantFromJSON(object.state) : 0, - } - }, - - toJSON(message: UtxoState): unknown { - const obj: any = {} - message.height !== undefined && (obj.height = Math.round(message.height)) - message.isConfirmed !== undefined && (obj.isConfirmed = message.isConfirmed) - message.state !== undefined && - (obj.state = utxoStateVariantToJSON(message.state)) - return obj - }, - - fromPartial, I>>( - object: I, - ): UtxoState { - const message = createBaseUtxoState() - message.height = object.height ?? 0 - message.isConfirmed = object.isConfirmed ?? false - message.state = object.state ?? 0 - return message - }, -} + encode( + message: UtxoState, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.height !== 0) { + writer.uint32(8).int32(message.height); + } + if (message.isConfirmed === true) { + writer.uint32(16).bool(message.isConfirmed); + } + if (message.state !== 0) { + writer.uint32(24).int32(message.state); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): UtxoState { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseUtxoState(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.height = reader.int32(); + break; + case 2: + message.isConfirmed = reader.bool(); + break; + case 3: + message.state = reader.int32() as any; + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): UtxoState { + return { + height: isSet(object.height) ? Number(object.height) : 0, + isConfirmed: isSet(object.isConfirmed) + ? Boolean(object.isConfirmed) + : false, + state: isSet(object.state) + ? utxoStateVariantFromJSON(object.state) + : 0, + }; + }, + + toJSON(message: UtxoState): unknown { + const obj: any = {}; + message.height !== undefined && + (obj.height = Math.round(message.height)); + message.isConfirmed !== undefined && + (obj.isConfirmed = message.isConfirmed); + message.state !== undefined && + (obj.state = utxoStateVariantToJSON(message.state)); + return obj; + }, + + fromPartial, I>>( + object: I, + ): UtxoState { + const message = createBaseUtxoState(); + message.height = object.height ?? 0; + message.isConfirmed = object.isConfirmed ?? false; + message.state = object.state ?? 0; + return message; + }, +}; function createBaseSubscription(): Subscription { - return { scriptType: "", payload: new Uint8Array(), isSubscribe: false } + return { scriptType: '', payload: new Uint8Array(), isSubscribe: false }; } export const Subscription = { - encode( - message: Subscription, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.scriptType !== "") { - writer.uint32(10).string(message.scriptType) - } - if (message.payload.length !== 0) { - writer.uint32(18).bytes(message.payload) - } - if (message.isSubscribe === true) { - writer.uint32(24).bool(message.isSubscribe) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Subscription { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseSubscription() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.scriptType = reader.string() - break - case 2: - message.payload = reader.bytes() - break - case 3: - message.isSubscribe = reader.bool() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): Subscription { - return { - scriptType: isSet(object.scriptType) ? String(object.scriptType) : "", - payload: isSet(object.payload) - ? bytesFromBase64(object.payload) - : new Uint8Array(), - isSubscribe: isSet(object.isSubscribe) - ? Boolean(object.isSubscribe) - : false, - } - }, - - toJSON(message: Subscription): unknown { - const obj: any = {} - message.scriptType !== undefined && (obj.scriptType = message.scriptType) - message.payload !== undefined && - (obj.payload = base64FromBytes( - message.payload !== undefined ? message.payload : new Uint8Array(), - )) - message.isSubscribe !== undefined && (obj.isSubscribe = message.isSubscribe) - return obj - }, - - fromPartial, I>>( - object: I, - ): Subscription { - const message = createBaseSubscription() - message.scriptType = object.scriptType ?? "" - message.payload = object.payload ?? new Uint8Array() - message.isSubscribe = object.isSubscribe ?? false - return message - }, -} + encode( + message: Subscription, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.scriptType !== '') { + writer.uint32(10).string(message.scriptType); + } + if (message.payload.length !== 0) { + writer.uint32(18).bytes(message.payload); + } + if (message.isSubscribe === true) { + writer.uint32(24).bool(message.isSubscribe); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Subscription { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSubscription(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.scriptType = reader.string(); + break; + case 2: + message.payload = reader.bytes(); + break; + case 3: + message.isSubscribe = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Subscription { + return { + scriptType: isSet(object.scriptType) + ? String(object.scriptType) + : '', + payload: isSet(object.payload) + ? bytesFromBase64(object.payload) + : new Uint8Array(), + isSubscribe: isSet(object.isSubscribe) + ? Boolean(object.isSubscribe) + : false, + }; + }, + + toJSON(message: Subscription): unknown { + const obj: any = {}; + message.scriptType !== undefined && + (obj.scriptType = message.scriptType); + message.payload !== undefined && + (obj.payload = base64FromBytes( + message.payload !== undefined + ? message.payload + : new Uint8Array(), + )); + message.isSubscribe !== undefined && + (obj.isSubscribe = message.isSubscribe); + return obj; + }, + + fromPartial, I>>( + object: I, + ): Subscription { + const message = createBaseSubscription(); + message.scriptType = object.scriptType ?? ''; + message.payload = object.payload ?? new Uint8Array(); + message.isSubscribe = object.isSubscribe ?? false; + return message; + }, +}; function createBaseSubscribeMsg(): SubscribeMsg { - return { - error: undefined, - AddedToMempool: undefined, - RemovedFromMempool: undefined, - Confirmed: undefined, - Reorg: undefined, - BlockConnected: undefined, - BlockDisconnected: undefined, - } + return { + error: undefined, + AddedToMempool: undefined, + RemovedFromMempool: undefined, + Confirmed: undefined, + Reorg: undefined, + BlockConnected: undefined, + BlockDisconnected: undefined, + }; } export const SubscribeMsg = { - encode( - message: SubscribeMsg, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.error !== undefined) { - Error.encode(message.error, writer.uint32(10).fork()).ldelim() - } - if (message.AddedToMempool !== undefined) { - MsgAddedToMempool.encode( - message.AddedToMempool, - writer.uint32(18).fork(), - ).ldelim() - } - if (message.RemovedFromMempool !== undefined) { - MsgRemovedFromMempool.encode( - message.RemovedFromMempool, - writer.uint32(26).fork(), - ).ldelim() - } - if (message.Confirmed !== undefined) { - MsgConfirmed.encode(message.Confirmed, writer.uint32(34).fork()).ldelim() - } - if (message.Reorg !== undefined) { - MsgReorg.encode(message.Reorg, writer.uint32(42).fork()).ldelim() - } - if (message.BlockConnected !== undefined) { - MsgBlockConnected.encode( - message.BlockConnected, - writer.uint32(50).fork(), - ).ldelim() - } - if (message.BlockDisconnected !== undefined) { - MsgBlockDisconnected.encode( - message.BlockDisconnected, - writer.uint32(58).fork(), - ).ldelim() - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): SubscribeMsg { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseSubscribeMsg() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.error = Error.decode(reader, reader.uint32()) - break - case 2: - message.AddedToMempool = MsgAddedToMempool.decode( - reader, - reader.uint32(), - ) - break - case 3: - message.RemovedFromMempool = MsgRemovedFromMempool.decode( - reader, - reader.uint32(), - ) - break - case 4: - message.Confirmed = MsgConfirmed.decode(reader, reader.uint32()) - break - case 5: - message.Reorg = MsgReorg.decode(reader, reader.uint32()) - break - case 6: - message.BlockConnected = MsgBlockConnected.decode( - reader, - reader.uint32(), - ) - break - case 7: - message.BlockDisconnected = MsgBlockDisconnected.decode( - reader, - reader.uint32(), - ) - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): SubscribeMsg { - return { - error: isSet(object.error) ? Error.fromJSON(object.error) : undefined, - AddedToMempool: isSet(object.AddedToMempool) - ? MsgAddedToMempool.fromJSON(object.AddedToMempool) - : undefined, - RemovedFromMempool: isSet(object.RemovedFromMempool) - ? MsgRemovedFromMempool.fromJSON(object.RemovedFromMempool) - : undefined, - Confirmed: isSet(object.Confirmed) - ? MsgConfirmed.fromJSON(object.Confirmed) - : undefined, - Reorg: isSet(object.Reorg) ? MsgReorg.fromJSON(object.Reorg) : undefined, - BlockConnected: isSet(object.BlockConnected) - ? MsgBlockConnected.fromJSON(object.BlockConnected) - : undefined, - BlockDisconnected: isSet(object.BlockDisconnected) - ? MsgBlockDisconnected.fromJSON(object.BlockDisconnected) - : undefined, - } - }, - - toJSON(message: SubscribeMsg): unknown { - const obj: any = {} - message.error !== undefined && - (obj.error = message.error ? Error.toJSON(message.error) : undefined) - message.AddedToMempool !== undefined && - (obj.AddedToMempool = message.AddedToMempool - ? MsgAddedToMempool.toJSON(message.AddedToMempool) - : undefined) - message.RemovedFromMempool !== undefined && - (obj.RemovedFromMempool = message.RemovedFromMempool - ? MsgRemovedFromMempool.toJSON(message.RemovedFromMempool) - : undefined) - message.Confirmed !== undefined && - (obj.Confirmed = message.Confirmed - ? MsgConfirmed.toJSON(message.Confirmed) - : undefined) - message.Reorg !== undefined && - (obj.Reorg = message.Reorg ? MsgReorg.toJSON(message.Reorg) : undefined) - message.BlockConnected !== undefined && - (obj.BlockConnected = message.BlockConnected - ? MsgBlockConnected.toJSON(message.BlockConnected) - : undefined) - message.BlockDisconnected !== undefined && - (obj.BlockDisconnected = message.BlockDisconnected - ? MsgBlockDisconnected.toJSON(message.BlockDisconnected) - : undefined) - return obj - }, - - fromPartial, I>>( - object: I, - ): SubscribeMsg { - const message = createBaseSubscribeMsg() - message.error = - object.error !== undefined && object.error !== null - ? Error.fromPartial(object.error) - : undefined - message.AddedToMempool = - object.AddedToMempool !== undefined && object.AddedToMempool !== null - ? MsgAddedToMempool.fromPartial(object.AddedToMempool) - : undefined - message.RemovedFromMempool = - object.RemovedFromMempool !== undefined && - object.RemovedFromMempool !== null - ? MsgRemovedFromMempool.fromPartial(object.RemovedFromMempool) - : undefined - message.Confirmed = - object.Confirmed !== undefined && object.Confirmed !== null - ? MsgConfirmed.fromPartial(object.Confirmed) - : undefined - message.Reorg = - object.Reorg !== undefined && object.Reorg !== null - ? MsgReorg.fromPartial(object.Reorg) - : undefined - message.BlockConnected = - object.BlockConnected !== undefined && object.BlockConnected !== null - ? MsgBlockConnected.fromPartial(object.BlockConnected) - : undefined - message.BlockDisconnected = - object.BlockDisconnected !== undefined && - object.BlockDisconnected !== null - ? MsgBlockDisconnected.fromPartial(object.BlockDisconnected) - : undefined - return message - }, -} + encode( + message: SubscribeMsg, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.error !== undefined) { + Error.encode(message.error, writer.uint32(10).fork()).ldelim(); + } + if (message.AddedToMempool !== undefined) { + MsgAddedToMempool.encode( + message.AddedToMempool, + writer.uint32(18).fork(), + ).ldelim(); + } + if (message.RemovedFromMempool !== undefined) { + MsgRemovedFromMempool.encode( + message.RemovedFromMempool, + writer.uint32(26).fork(), + ).ldelim(); + } + if (message.Confirmed !== undefined) { + MsgConfirmed.encode( + message.Confirmed, + writer.uint32(34).fork(), + ).ldelim(); + } + if (message.Reorg !== undefined) { + MsgReorg.encode(message.Reorg, writer.uint32(42).fork()).ldelim(); + } + if (message.BlockConnected !== undefined) { + MsgBlockConnected.encode( + message.BlockConnected, + writer.uint32(50).fork(), + ).ldelim(); + } + if (message.BlockDisconnected !== undefined) { + MsgBlockDisconnected.encode( + message.BlockDisconnected, + writer.uint32(58).fork(), + ).ldelim(); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): SubscribeMsg { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseSubscribeMsg(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.error = Error.decode(reader, reader.uint32()); + break; + case 2: + message.AddedToMempool = MsgAddedToMempool.decode( + reader, + reader.uint32(), + ); + break; + case 3: + message.RemovedFromMempool = MsgRemovedFromMempool.decode( + reader, + reader.uint32(), + ); + break; + case 4: + message.Confirmed = MsgConfirmed.decode( + reader, + reader.uint32(), + ); + break; + case 5: + message.Reorg = MsgReorg.decode(reader, reader.uint32()); + break; + case 6: + message.BlockConnected = MsgBlockConnected.decode( + reader, + reader.uint32(), + ); + break; + case 7: + message.BlockDisconnected = MsgBlockDisconnected.decode( + reader, + reader.uint32(), + ); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): SubscribeMsg { + return { + error: isSet(object.error) + ? Error.fromJSON(object.error) + : undefined, + AddedToMempool: isSet(object.AddedToMempool) + ? MsgAddedToMempool.fromJSON(object.AddedToMempool) + : undefined, + RemovedFromMempool: isSet(object.RemovedFromMempool) + ? MsgRemovedFromMempool.fromJSON(object.RemovedFromMempool) + : undefined, + Confirmed: isSet(object.Confirmed) + ? MsgConfirmed.fromJSON(object.Confirmed) + : undefined, + Reorg: isSet(object.Reorg) + ? MsgReorg.fromJSON(object.Reorg) + : undefined, + BlockConnected: isSet(object.BlockConnected) + ? MsgBlockConnected.fromJSON(object.BlockConnected) + : undefined, + BlockDisconnected: isSet(object.BlockDisconnected) + ? MsgBlockDisconnected.fromJSON(object.BlockDisconnected) + : undefined, + }; + }, + + toJSON(message: SubscribeMsg): unknown { + const obj: any = {}; + message.error !== undefined && + (obj.error = message.error + ? Error.toJSON(message.error) + : undefined); + message.AddedToMempool !== undefined && + (obj.AddedToMempool = message.AddedToMempool + ? MsgAddedToMempool.toJSON(message.AddedToMempool) + : undefined); + message.RemovedFromMempool !== undefined && + (obj.RemovedFromMempool = message.RemovedFromMempool + ? MsgRemovedFromMempool.toJSON(message.RemovedFromMempool) + : undefined); + message.Confirmed !== undefined && + (obj.Confirmed = message.Confirmed + ? MsgConfirmed.toJSON(message.Confirmed) + : undefined); + message.Reorg !== undefined && + (obj.Reorg = message.Reorg + ? MsgReorg.toJSON(message.Reorg) + : undefined); + message.BlockConnected !== undefined && + (obj.BlockConnected = message.BlockConnected + ? MsgBlockConnected.toJSON(message.BlockConnected) + : undefined); + message.BlockDisconnected !== undefined && + (obj.BlockDisconnected = message.BlockDisconnected + ? MsgBlockDisconnected.toJSON(message.BlockDisconnected) + : undefined); + return obj; + }, + + fromPartial, I>>( + object: I, + ): SubscribeMsg { + const message = createBaseSubscribeMsg(); + message.error = + object.error !== undefined && object.error !== null + ? Error.fromPartial(object.error) + : undefined; + message.AddedToMempool = + object.AddedToMempool !== undefined && + object.AddedToMempool !== null + ? MsgAddedToMempool.fromPartial(object.AddedToMempool) + : undefined; + message.RemovedFromMempool = + object.RemovedFromMempool !== undefined && + object.RemovedFromMempool !== null + ? MsgRemovedFromMempool.fromPartial(object.RemovedFromMempool) + : undefined; + message.Confirmed = + object.Confirmed !== undefined && object.Confirmed !== null + ? MsgConfirmed.fromPartial(object.Confirmed) + : undefined; + message.Reorg = + object.Reorg !== undefined && object.Reorg !== null + ? MsgReorg.fromPartial(object.Reorg) + : undefined; + message.BlockConnected = + object.BlockConnected !== undefined && + object.BlockConnected !== null + ? MsgBlockConnected.fromPartial(object.BlockConnected) + : undefined; + message.BlockDisconnected = + object.BlockDisconnected !== undefined && + object.BlockDisconnected !== null + ? MsgBlockDisconnected.fromPartial(object.BlockDisconnected) + : undefined; + return message; + }, +}; function createBaseMsgAddedToMempool(): MsgAddedToMempool { - return { txid: new Uint8Array() } + return { txid: new Uint8Array() }; } export const MsgAddedToMempool = { - encode( - message: MsgAddedToMempool, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.txid.length !== 0) { - writer.uint32(10).bytes(message.txid) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgAddedToMempool { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseMsgAddedToMempool() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.txid = reader.bytes() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): MsgAddedToMempool { - return { - txid: isSet(object.txid) - ? bytesFromBase64(object.txid) - : new Uint8Array(), - } - }, - - toJSON(message: MsgAddedToMempool): unknown { - const obj: any = {} - message.txid !== undefined && - (obj.txid = base64FromBytes( - message.txid !== undefined ? message.txid : new Uint8Array(), - )) - return obj - }, - - fromPartial, I>>( - object: I, - ): MsgAddedToMempool { - const message = createBaseMsgAddedToMempool() - message.txid = object.txid ?? new Uint8Array() - return message - }, -} + encode( + message: MsgAddedToMempool, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.txid.length !== 0) { + writer.uint32(10).bytes(message.txid); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgAddedToMempool { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgAddedToMempool(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txid = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgAddedToMempool { + return { + txid: isSet(object.txid) + ? bytesFromBase64(object.txid) + : new Uint8Array(), + }; + }, + + toJSON(message: MsgAddedToMempool): unknown { + const obj: any = {}; + message.txid !== undefined && + (obj.txid = base64FromBytes( + message.txid !== undefined ? message.txid : new Uint8Array(), + )); + return obj; + }, + + fromPartial, I>>( + object: I, + ): MsgAddedToMempool { + const message = createBaseMsgAddedToMempool(); + message.txid = object.txid ?? new Uint8Array(); + return message; + }, +}; function createBaseMsgRemovedFromMempool(): MsgRemovedFromMempool { - return { txid: new Uint8Array() } + return { txid: new Uint8Array() }; } export const MsgRemovedFromMempool = { - encode( - message: MsgRemovedFromMempool, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.txid.length !== 0) { - writer.uint32(10).bytes(message.txid) - } - return writer - }, - - decode( - input: _m0.Reader | Uint8Array, - length?: number, - ): MsgRemovedFromMempool { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseMsgRemovedFromMempool() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.txid = reader.bytes() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): MsgRemovedFromMempool { - return { - txid: isSet(object.txid) - ? bytesFromBase64(object.txid) - : new Uint8Array(), - } - }, - - toJSON(message: MsgRemovedFromMempool): unknown { - const obj: any = {} - message.txid !== undefined && - (obj.txid = base64FromBytes( - message.txid !== undefined ? message.txid : new Uint8Array(), - )) - return obj - }, - - fromPartial, I>>( - object: I, - ): MsgRemovedFromMempool { - const message = createBaseMsgRemovedFromMempool() - message.txid = object.txid ?? new Uint8Array() - return message - }, -} + encode( + message: MsgRemovedFromMempool, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.txid.length !== 0) { + writer.uint32(10).bytes(message.txid); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): MsgRemovedFromMempool { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgRemovedFromMempool(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txid = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgRemovedFromMempool { + return { + txid: isSet(object.txid) + ? bytesFromBase64(object.txid) + : new Uint8Array(), + }; + }, + + toJSON(message: MsgRemovedFromMempool): unknown { + const obj: any = {}; + message.txid !== undefined && + (obj.txid = base64FromBytes( + message.txid !== undefined ? message.txid : new Uint8Array(), + )); + return obj; + }, + + fromPartial, I>>( + object: I, + ): MsgRemovedFromMempool { + const message = createBaseMsgRemovedFromMempool(); + message.txid = object.txid ?? new Uint8Array(); + return message; + }, +}; function createBaseMsgConfirmed(): MsgConfirmed { - return { txid: new Uint8Array() } + return { txid: new Uint8Array() }; } export const MsgConfirmed = { - encode( - message: MsgConfirmed, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.txid.length !== 0) { - writer.uint32(10).bytes(message.txid) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgConfirmed { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseMsgConfirmed() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.txid = reader.bytes() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): MsgConfirmed { - return { - txid: isSet(object.txid) - ? bytesFromBase64(object.txid) - : new Uint8Array(), - } - }, - - toJSON(message: MsgConfirmed): unknown { - const obj: any = {} - message.txid !== undefined && - (obj.txid = base64FromBytes( - message.txid !== undefined ? message.txid : new Uint8Array(), - )) - return obj - }, - - fromPartial, I>>( - object: I, - ): MsgConfirmed { - const message = createBaseMsgConfirmed() - message.txid = object.txid ?? new Uint8Array() - return message - }, -} + encode( + message: MsgConfirmed, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.txid.length !== 0) { + writer.uint32(10).bytes(message.txid); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgConfirmed { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgConfirmed(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txid = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgConfirmed { + return { + txid: isSet(object.txid) + ? bytesFromBase64(object.txid) + : new Uint8Array(), + }; + }, + + toJSON(message: MsgConfirmed): unknown { + const obj: any = {}; + message.txid !== undefined && + (obj.txid = base64FromBytes( + message.txid !== undefined ? message.txid : new Uint8Array(), + )); + return obj; + }, + + fromPartial, I>>( + object: I, + ): MsgConfirmed { + const message = createBaseMsgConfirmed(); + message.txid = object.txid ?? new Uint8Array(); + return message; + }, +}; function createBaseMsgReorg(): MsgReorg { - return { txid: new Uint8Array() } + return { txid: new Uint8Array() }; } export const MsgReorg = { - encode( - message: MsgReorg, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.txid.length !== 0) { - writer.uint32(10).bytes(message.txid) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgReorg { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseMsgReorg() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.txid = reader.bytes() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): MsgReorg { - return { - txid: isSet(object.txid) - ? bytesFromBase64(object.txid) - : new Uint8Array(), - } - }, - - toJSON(message: MsgReorg): unknown { - const obj: any = {} - message.txid !== undefined && - (obj.txid = base64FromBytes( - message.txid !== undefined ? message.txid : new Uint8Array(), - )) - return obj - }, - - fromPartial, I>>(object: I): MsgReorg { - const message = createBaseMsgReorg() - message.txid = object.txid ?? new Uint8Array() - return message - }, -} + encode( + message: MsgReorg, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.txid.length !== 0) { + writer.uint32(10).bytes(message.txid); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgReorg { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgReorg(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.txid = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgReorg { + return { + txid: isSet(object.txid) + ? bytesFromBase64(object.txid) + : new Uint8Array(), + }; + }, + + toJSON(message: MsgReorg): unknown { + const obj: any = {}; + message.txid !== undefined && + (obj.txid = base64FromBytes( + message.txid !== undefined ? message.txid : new Uint8Array(), + )); + return obj; + }, + + fromPartial, I>>( + object: I, + ): MsgReorg { + const message = createBaseMsgReorg(); + message.txid = object.txid ?? new Uint8Array(); + return message; + }, +}; function createBaseMsgBlockConnected(): MsgBlockConnected { - return { blockHash: new Uint8Array() } + return { blockHash: new Uint8Array() }; } export const MsgBlockConnected = { - encode( - message: MsgBlockConnected, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.blockHash.length !== 0) { - writer.uint32(10).bytes(message.blockHash) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): MsgBlockConnected { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseMsgBlockConnected() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.blockHash = reader.bytes() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): MsgBlockConnected { - return { - blockHash: isSet(object.blockHash) - ? bytesFromBase64(object.blockHash) - : new Uint8Array(), - } - }, - - toJSON(message: MsgBlockConnected): unknown { - const obj: any = {} - message.blockHash !== undefined && - (obj.blockHash = base64FromBytes( - message.blockHash !== undefined ? message.blockHash : new Uint8Array(), - )) - return obj - }, - - fromPartial, I>>( - object: I, - ): MsgBlockConnected { - const message = createBaseMsgBlockConnected() - message.blockHash = object.blockHash ?? new Uint8Array() - return message - }, -} + encode( + message: MsgBlockConnected, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.blockHash.length !== 0) { + writer.uint32(10).bytes(message.blockHash); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): MsgBlockConnected { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgBlockConnected(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.blockHash = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgBlockConnected { + return { + blockHash: isSet(object.blockHash) + ? bytesFromBase64(object.blockHash) + : new Uint8Array(), + }; + }, + + toJSON(message: MsgBlockConnected): unknown { + const obj: any = {}; + message.blockHash !== undefined && + (obj.blockHash = base64FromBytes( + message.blockHash !== undefined + ? message.blockHash + : new Uint8Array(), + )); + return obj; + }, + + fromPartial, I>>( + object: I, + ): MsgBlockConnected { + const message = createBaseMsgBlockConnected(); + message.blockHash = object.blockHash ?? new Uint8Array(); + return message; + }, +}; function createBaseMsgBlockDisconnected(): MsgBlockDisconnected { - return { blockHash: new Uint8Array() } + return { blockHash: new Uint8Array() }; } export const MsgBlockDisconnected = { - encode( - message: MsgBlockDisconnected, - writer: _m0.Writer = _m0.Writer.create(), - ): _m0.Writer { - if (message.blockHash.length !== 0) { - writer.uint32(10).bytes(message.blockHash) - } - return writer - }, - - decode( - input: _m0.Reader | Uint8Array, - length?: number, - ): MsgBlockDisconnected { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseMsgBlockDisconnected() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.blockHash = reader.bytes() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): MsgBlockDisconnected { - return { - blockHash: isSet(object.blockHash) - ? bytesFromBase64(object.blockHash) - : new Uint8Array(), - } - }, - - toJSON(message: MsgBlockDisconnected): unknown { - const obj: any = {} - message.blockHash !== undefined && - (obj.blockHash = base64FromBytes( - message.blockHash !== undefined ? message.blockHash : new Uint8Array(), - )) - return obj - }, - - fromPartial, I>>( - object: I, - ): MsgBlockDisconnected { - const message = createBaseMsgBlockDisconnected() - message.blockHash = object.blockHash ?? new Uint8Array() - return message - }, -} + encode( + message: MsgBlockDisconnected, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.blockHash.length !== 0) { + writer.uint32(10).bytes(message.blockHash); + } + return writer; + }, + + decode( + input: _m0.Reader | Uint8Array, + length?: number, + ): MsgBlockDisconnected { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseMsgBlockDisconnected(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.blockHash = reader.bytes(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): MsgBlockDisconnected { + return { + blockHash: isSet(object.blockHash) + ? bytesFromBase64(object.blockHash) + : new Uint8Array(), + }; + }, + + toJSON(message: MsgBlockDisconnected): unknown { + const obj: any = {}; + message.blockHash !== undefined && + (obj.blockHash = base64FromBytes( + message.blockHash !== undefined + ? message.blockHash + : new Uint8Array(), + )); + return obj; + }, + + fromPartial, I>>( + object: I, + ): MsgBlockDisconnected { + const message = createBaseMsgBlockDisconnected(); + message.blockHash = object.blockHash ?? new Uint8Array(); + return message; + }, +}; function createBaseError(): Error { - return { errorCode: "", msg: "", isUserError: false } + return { errorCode: '', msg: '', isUserError: false }; } export const Error = { - encode(message: Error, writer: _m0.Writer = _m0.Writer.create()): _m0.Writer { - if (message.errorCode !== "") { - writer.uint32(10).string(message.errorCode) - } - if (message.msg !== "") { - writer.uint32(18).string(message.msg) - } - if (message.isUserError === true) { - writer.uint32(24).bool(message.isUserError) - } - return writer - }, - - decode(input: _m0.Reader | Uint8Array, length?: number): Error { - const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input) - let end = length === undefined ? reader.len : reader.pos + length - const message = createBaseError() - while (reader.pos < end) { - const tag = reader.uint32() - switch (tag >>> 3) { - case 1: - message.errorCode = reader.string() - break - case 2: - message.msg = reader.string() - break - case 3: - message.isUserError = reader.bool() - break - default: - reader.skipType(tag & 7) - break - } - } - return message - }, - - fromJSON(object: any): Error { - return { - errorCode: isSet(object.errorCode) ? String(object.errorCode) : "", - msg: isSet(object.msg) ? String(object.msg) : "", - isUserError: isSet(object.isUserError) - ? Boolean(object.isUserError) - : false, - } - }, - - toJSON(message: Error): unknown { - const obj: any = {} - message.errorCode !== undefined && (obj.errorCode = message.errorCode) - message.msg !== undefined && (obj.msg = message.msg) - message.isUserError !== undefined && (obj.isUserError = message.isUserError) - return obj - }, - - fromPartial, I>>(object: I): Error { - const message = createBaseError() - message.errorCode = object.errorCode ?? "" - message.msg = object.msg ?? "" - message.isUserError = object.isUserError ?? false - return message - }, -} - -declare var self: any | undefined -declare var window: any | undefined -declare var global: any | undefined + encode( + message: Error, + writer: _m0.Writer = _m0.Writer.create(), + ): _m0.Writer { + if (message.errorCode !== '') { + writer.uint32(10).string(message.errorCode); + } + if (message.msg !== '') { + writer.uint32(18).string(message.msg); + } + if (message.isUserError === true) { + writer.uint32(24).bool(message.isUserError); + } + return writer; + }, + + decode(input: _m0.Reader | Uint8Array, length?: number): Error { + const reader = + input instanceof _m0.Reader ? input : new _m0.Reader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseError(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: + message.errorCode = reader.string(); + break; + case 2: + message.msg = reader.string(); + break; + case 3: + message.isUserError = reader.bool(); + break; + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }, + + fromJSON(object: any): Error { + return { + errorCode: isSet(object.errorCode) ? String(object.errorCode) : '', + msg: isSet(object.msg) ? String(object.msg) : '', + isUserError: isSet(object.isUserError) + ? Boolean(object.isUserError) + : false, + }; + }, + + toJSON(message: Error): unknown { + const obj: any = {}; + message.errorCode !== undefined && (obj.errorCode = message.errorCode); + message.msg !== undefined && (obj.msg = message.msg); + message.isUserError !== undefined && + (obj.isUserError = message.isUserError); + return obj; + }, + + fromPartial, I>>(object: I): Error { + const message = createBaseError(); + message.errorCode = object.errorCode ?? ''; + message.msg = object.msg ?? ''; + message.isUserError = object.isUserError ?? false; + return message; + }, +}; + +declare var self: any | undefined; +declare var window: any | undefined; +declare var global: any | undefined; var globalThis: any = (() => { - if (typeof globalThis !== "undefined") return globalThis - if (typeof self !== "undefined") return self - if (typeof window !== "undefined") return window - if (typeof global !== "undefined") return global - throw "Unable to locate global object" -})() + if (typeof globalThis !== 'undefined') return globalThis; + if (typeof self !== 'undefined') return self; + if (typeof window !== 'undefined') return window; + if (typeof global !== 'undefined') return global; + throw 'Unable to locate global object'; +})(); const atob: (b64: string) => string = - globalThis.atob || - (b64 => globalThis.Buffer.from(b64, "base64").toString("binary")) + globalThis.atob || + (b64 => globalThis.Buffer.from(b64, 'base64').toString('binary')); function bytesFromBase64(b64: string): Uint8Array { - const bin = atob(b64) - const arr = new Uint8Array(bin.length) - for (let i = 0; i < bin.length; ++i) { - arr[i] = bin.charCodeAt(i) - } - return arr + const bin = atob(b64); + const arr = new Uint8Array(bin.length); + for (let i = 0; i < bin.length; ++i) { + arr[i] = bin.charCodeAt(i); + } + return arr; } const btoa: (bin: string) => string = - globalThis.btoa || - (bin => globalThis.Buffer.from(bin, "binary").toString("base64")) + globalThis.btoa || + (bin => globalThis.Buffer.from(bin, 'binary').toString('base64')); function base64FromBytes(arr: Uint8Array): string { - const bin: string[] = [] - arr.forEach(byte => { - bin.push(String.fromCharCode(byte)) - }) - return btoa(bin.join("")) + const bin: string[] = []; + arr.forEach(byte => { + bin.push(String.fromCharCode(byte)); + }); + return btoa(bin.join('')); } type Builtin = - | Date - | Function - | Uint8Array - | string - | number - | boolean - | undefined + | Date + | Function + | Uint8Array + | string + | number + | boolean + | undefined; export type DeepPartial = T extends Builtin - ? T - : T extends Array - ? Array> - : T extends ReadonlyArray - ? ReadonlyArray> - : T extends {} - ? { [K in keyof T]?: DeepPartial } - : Partial - -type KeysOfUnion = T extends T ? keyof T : never + ? T + : T extends Array + ? Array> + : T extends ReadonlyArray + ? ReadonlyArray> + : T extends {} + ? { [K in keyof T]?: DeepPartial } + : Partial; + +type KeysOfUnion = T extends T ? keyof T : never; export type Exact = P extends Builtin - ? P - : P & { [K in keyof P]: Exact } & Record< - Exclude>, - never - > + ? P + : P & { [K in keyof P]: Exact } & Record< + Exclude>, + never + >; function longToString(long: Long) { - return long.toString() + return long.toString(); } if (_m0.util.Long !== Long) { - _m0.util.Long = Long as any - _m0.configure() + _m0.util.Long = Long as any; + _m0.configure(); } function isSet(value: any): boolean { - return value !== null && value !== undefined + return value !== null && value !== undefined; } diff --git a/modules/chronik-client/hex.ts b/modules/chronik-client/hex.ts --- a/modules/chronik-client/hex.ts +++ b/modules/chronik-client/hex.ts @@ -1,66 +1,66 @@ // Pre-Init const LUT_HEX_4b = [ - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9", - "a", - "b", - "c", - "d", - "e", - "f", -] -const LUT_HEX_8b = new Array(0x100) -const LUT_BIN_8b: { [key: string]: number } = {} + '0', + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', +]; +const LUT_HEX_8b = new Array(0x100); +const LUT_BIN_8b: { [key: string]: number } = {}; for (let n = 0; n < 0x100; n++) { - const hex = `${LUT_HEX_4b[(n >>> 4) & 0xf]}${LUT_HEX_4b[n & 0xf]}` - LUT_HEX_8b[n] = hex - LUT_BIN_8b[hex] = n + const hex = `${LUT_HEX_4b[(n >>> 4) & 0xf]}${LUT_HEX_4b[n & 0xf]}`; + LUT_HEX_8b[n] = hex; + LUT_BIN_8b[hex] = n; } // End Pre-Init export function toHex(buffer: Uint8Array): string { - let out = "" - for (let idx = 0, edx = buffer.length; idx < edx; ++idx) { - out += LUT_HEX_8b[buffer[idx]] - } - return out + let out = ''; + for (let idx = 0, edx = buffer.length; idx < edx; ++idx) { + out += LUT_HEX_8b[buffer[idx]]; + } + return out; } export function toHexRev(buffer: Uint8Array): string { - let out = "" - for (let idx = buffer.length - 1; idx >= 0; --idx) { - out += LUT_HEX_8b[buffer[idx]] - } - return out + let out = ''; + for (let idx = buffer.length - 1; idx >= 0; --idx) { + out += LUT_HEX_8b[buffer[idx]]; + } + return out; } export function fromHex(str: string): Uint8Array { - if ((str.length & 1) != 0) { - throw new Error(`Odd hex length: ${str}`) - } - const nBytes = str.length >> 1 - const array = new Uint8Array(nBytes) - for (let idx = 0; idx < str.length; idx += 2) { - const pair = str.substr(idx, 2) - const byte = LUT_BIN_8b[pair] - if (byte === undefined) { - throw new Error(`Invalid hex pair: ${pair}, at index ${idx}`) + if ((str.length & 1) != 0) { + throw new Error(`Odd hex length: ${str}`); + } + const nBytes = str.length >> 1; + const array = new Uint8Array(nBytes); + for (let idx = 0; idx < str.length; idx += 2) { + const pair = str.substr(idx, 2); + const byte = LUT_BIN_8b[pair]; + if (byte === undefined) { + throw new Error(`Invalid hex pair: ${pair}, at index ${idx}`); + } + array[idx >> 1] = byte; } - array[idx >> 1] = byte - } - return array + return array; } export function fromHexRev(str: string): Uint8Array { - const array = fromHex(str) - array.reverse() - return array + const array = fromHex(str); + array.reverse(); + return array; } diff --git a/modules/chronik-client/index.ts b/modules/chronik-client/index.ts --- a/modules/chronik-client/index.ts +++ b/modules/chronik-client/index.ts @@ -1,895 +1,913 @@ -import axios, { AxiosResponse } from "axios" -import WebSocket from "isomorphic-ws" -import * as ws from "ws" -import * as proto from "./chronik" -import { fromHex, fromHexRev, toHex, toHexRev } from "./hex" +import axios, { AxiosResponse } from 'axios'; +import WebSocket from 'isomorphic-ws'; +import * as ws from 'ws'; +import * as proto from './chronik'; +import { fromHex, fromHexRev, toHex, toHexRev } from './hex'; -type MessageEvent = ws.MessageEvent | { data: Blob } +type MessageEvent = ws.MessageEvent | { data: Blob }; /** Client to access a Chronik instance.Plain object, without any * connections. */ export class ChronikClient { - private _url: string - private _wsUrl: string - - /** - * Create a new client. This just creates an object, without any connections. - * - * @param url Url of a Chronik instance, with schema and without trailing - * slash. E.g. https://chronik.be.cash/xec. - */ - constructor(url: string) { - this._url = url - if (url.endsWith("/")) { - throw new Error("`url` cannot end with '/', got: " + url) + private _url: string; + private _wsUrl: string; + + /** + * Create a new client. This just creates an object, without any connections. + * + * @param url Url of a Chronik instance, with schema and without trailing + * slash. E.g. https://chronik.be.cash/xec. + */ + constructor(url: string) { + this._url = url; + if (url.endsWith('/')) { + throw new Error("`url` cannot end with '/', got: " + url); + } + if (url.startsWith('https://')) { + this._wsUrl = 'wss://' + url.substring('https://'.length); + } else if (url.startsWith('http://')) { + this._wsUrl = 'ws://' + url.substring('http://'.length); + } else { + throw new Error( + "`url` must start with 'https://' or 'http://', got: " + url, + ); + } } - if (url.startsWith("https://")) { - this._wsUrl = "wss://" + url.substring("https://".length) - } else if (url.startsWith("http://")) { - this._wsUrl = "ws://" + url.substring("http://".length) - } else { - throw new Error( - "`url` must start with 'https://' or 'http://', got: " + url, - ) + + /** Broadcasts the `rawTx` on the network. + * If `skipSlpCheck` is false, it will be checked that the tx doesn't burn + * any SLP tokens before broadcasting. + */ + public async broadcastTx( + rawTx: Uint8Array | string, + skipSlpCheck = false, + ): Promise<{ txid: string }> { + const request = proto.BroadcastTxRequest.encode({ + rawTx: typeof rawTx === 'string' ? fromHex(rawTx) : rawTx, + skipSlpCheck, + }).finish(); + const data = await _post(this._url, '/broadcast-tx', request); + const broadcastResponse = proto.BroadcastTxResponse.decode(data); + return { + txid: toHexRev(broadcastResponse.txid), + }; } - } - - /** Broadcasts the `rawTx` on the network. - * If `skipSlpCheck` is false, it will be checked that the tx doesn't burn - * any SLP tokens before broadcasting. - */ - public async broadcastTx( - rawTx: Uint8Array | string, - skipSlpCheck = false, - ): Promise<{ txid: string }> { - const request = proto.BroadcastTxRequest.encode({ - rawTx: typeof rawTx === "string" ? fromHex(rawTx) : rawTx, - skipSlpCheck, - }).finish() - const data = await _post(this._url, "/broadcast-tx", request) - const broadcastResponse = proto.BroadcastTxResponse.decode(data) - return { - txid: toHexRev(broadcastResponse.txid), + + /** Broadcasts the `rawTxs` on the network, only if all of them are valid. + * If `skipSlpCheck` is false, it will be checked that the txs don't burn + * any SLP tokens before broadcasting. + */ + public async broadcastTxs( + rawTxs: (Uint8Array | string)[], + skipSlpCheck = false, + ): Promise<{ txids: string[] }> { + const request = proto.BroadcastTxsRequest.encode({ + rawTxs: rawTxs.map(rawTx => + typeof rawTx === 'string' ? fromHex(rawTx) : rawTx, + ), + skipSlpCheck, + }).finish(); + const data = await _post(this._url, '/broadcast-txs', request); + const broadcastResponse = proto.BroadcastTxsResponse.decode(data); + return { + txids: broadcastResponse.txids.map(toHexRev), + }; } - } - - /** Broadcasts the `rawTxs` on the network, only if all of them are valid. - * If `skipSlpCheck` is false, it will be checked that the txs don't burn - * any SLP tokens before broadcasting. - */ - public async broadcastTxs( - rawTxs: (Uint8Array | string)[], - skipSlpCheck = false, - ): Promise<{ txids: string[] }> { - const request = proto.BroadcastTxsRequest.encode({ - rawTxs: rawTxs.map(rawTx => - typeof rawTx === "string" ? fromHex(rawTx) : rawTx, - ), - skipSlpCheck, - }).finish() - const data = await _post(this._url, "/broadcast-txs", request) - const broadcastResponse = proto.BroadcastTxsResponse.decode(data) - return { - txids: broadcastResponse.txids.map(toHexRev), + + /** Fetch current info of the blockchain, such as tip hash and height. */ + public async blockchainInfo(): Promise { + const data = await _get(this._url, `/blockchain-info`); + const blockchainInfo = proto.BlockchainInfo.decode(data); + return convertToBlockchainInfo(blockchainInfo); + } + + /** Fetch the block given hash or height. */ + public async block(hashOrHeight: string | number): Promise { + const data = await _get(this._url, `/block/${hashOrHeight}`); + const block = proto.Block.decode(data); + return convertToBlock(block); + } + + /** Fetch block info of a range of blocks. `startHeight` and `endHeight` are + * inclusive ranges. */ + public async blocks( + startHeight: number, + endHeight: number, + ): Promise { + const data = await _get( + this._url, + `/blocks/${startHeight}/${endHeight}`, + ); + const blocks = proto.Blocks.decode(data); + return blocks.blocks.map(convertToBlockInfo); + } + + /** Fetch tx details given the txid. */ + public async tx(txid: string): Promise { + const data = await _get(this._url, `/tx/${txid}`); + const tx = proto.Tx.decode(data); + return convertToTx(tx); + } + + /** Fetch token info and stats given the tokenId. */ + public async token(tokenId: string): Promise { + const data = await _get(this._url, `/token/${tokenId}`); + const token = proto.Token.decode(data); + return convertToToken(token); + } + + /** Validate the given outpoints: whether they are unspent, spent or + * never existed. */ + public async validateUtxos(outpoints: OutPoint[]): Promise { + const request = proto.ValidateUtxoRequest.encode({ + outpoints: outpoints.map(outpoint => ({ + txid: fromHexRev(outpoint.txid), + outIdx: outpoint.outIdx, + })), + }).finish(); + const data = await _post(this._url, '/validate-utxos', request); + const validationStates = proto.ValidateUtxoResponse.decode(data); + return validationStates.utxoStates.map(state => ({ + height: state.height, + isConfirmed: state.isConfirmed, + state: convertToUtxoStateVariant(state.state), + })); + } + + /** Create object that allows fetching script history or UTXOs. */ + public script( + scriptType: ScriptType, + scriptPayload: string, + ): ScriptEndpoint { + return new ScriptEndpoint(this._url, scriptType, scriptPayload); + } + + /** Open a WebSocket connection to listen for updates. */ + public ws(config: WsConfig): WsEndpoint { + return new WsEndpoint(`${this._wsUrl}/ws`, config); } - } - - /** Fetch current info of the blockchain, such as tip hash and height. */ - public async blockchainInfo(): Promise { - const data = await _get(this._url, `/blockchain-info`) - const blockchainInfo = proto.BlockchainInfo.decode(data) - return convertToBlockchainInfo(blockchainInfo) - } - - /** Fetch the block given hash or height. */ - public async block(hashOrHeight: string | number): Promise { - const data = await _get(this._url, `/block/${hashOrHeight}`) - const block = proto.Block.decode(data) - return convertToBlock(block) - } - - /** Fetch block info of a range of blocks. `startHeight` and `endHeight` are - * inclusive ranges. */ - public async blocks( - startHeight: number, - endHeight: number, - ): Promise { - const data = await _get(this._url, `/blocks/${startHeight}/${endHeight}`) - const blocks = proto.Blocks.decode(data) - return blocks.blocks.map(convertToBlockInfo) - } - - /** Fetch tx details given the txid. */ - public async tx(txid: string): Promise { - const data = await _get(this._url, `/tx/${txid}`) - const tx = proto.Tx.decode(data) - return convertToTx(tx) - } - - /** Fetch token info and stats given the tokenId. */ - public async token(tokenId: string): Promise { - const data = await _get(this._url, `/token/${tokenId}`) - const token = proto.Token.decode(data) - return convertToToken(token) - } - - /** Validate the given outpoints: whether they are unspent, spent or - * never existed. */ - public async validateUtxos(outpoints: OutPoint[]): Promise { - const request = proto.ValidateUtxoRequest.encode({ - outpoints: outpoints.map(outpoint => ({ - txid: fromHexRev(outpoint.txid), - outIdx: outpoint.outIdx, - })), - }).finish() - const data = await _post(this._url, "/validate-utxos", request) - const validationStates = proto.ValidateUtxoResponse.decode(data) - return validationStates.utxoStates.map(state => ({ - height: state.height, - isConfirmed: state.isConfirmed, - state: convertToUtxoStateVariant(state.state), - })) - } - - /** Create object that allows fetching script history or UTXOs. */ - public script(scriptType: ScriptType, scriptPayload: string): ScriptEndpoint { - return new ScriptEndpoint(this._url, scriptType, scriptPayload) - } - - /** Open a WebSocket connection to listen for updates. */ - public ws(config: WsConfig): WsEndpoint { - return new WsEndpoint(`${this._wsUrl}/ws`, config) - } } /** Allows fetching script history and UTXOs. */ export class ScriptEndpoint { - private _url: string - private _scriptType: string - private _scriptPayload: string - - constructor(url: string, scriptType: string, scriptPayload: string) { - this._url = url - this._scriptType = scriptType - this._scriptPayload = scriptPayload - } - - /** Fetches the tx history of this script, in anti-chronological order. - * This means it's ordered by first-seen first. If the tx hasn't been seen - * by the indexer before, it's ordered by the block timestamp. - * @param page Page index of the tx history. - * @param pageSize Number of txs per page. - */ - public async history( - page?: number, - pageSize?: number, - ): Promise { - const query = - page !== undefined && pageSize !== undefined - ? `?page=${page}&page_size=${pageSize}` - : page !== undefined - ? `?page=${page}` - : pageSize !== undefined - ? `?page_size=${pageSize}` - : "" - const data = await _get( - this._url, - `/script/${this._scriptType}/${this._scriptPayload}/history${query}`, - ) - const historyPage = proto.TxHistoryPage.decode(data) - return { - txs: historyPage.txs.map(convertToTx), - numPages: historyPage.numPages, + private _url: string; + private _scriptType: string; + private _scriptPayload: string; + + constructor(url: string, scriptType: string, scriptPayload: string) { + this._url = url; + this._scriptType = scriptType; + this._scriptPayload = scriptPayload; + } + + /** Fetches the tx history of this script, in anti-chronological order. + * This means it's ordered by first-seen first. If the tx hasn't been seen + * by the indexer before, it's ordered by the block timestamp. + * @param page Page index of the tx history. + * @param pageSize Number of txs per page. + */ + public async history( + page?: number, + pageSize?: number, + ): Promise { + const query = + page !== undefined && pageSize !== undefined + ? `?page=${page}&page_size=${pageSize}` + : page !== undefined + ? `?page=${page}` + : pageSize !== undefined + ? `?page_size=${pageSize}` + : ''; + const data = await _get( + this._url, + `/script/${this._scriptType}/${this._scriptPayload}/history${query}`, + ); + const historyPage = proto.TxHistoryPage.decode(data); + return { + txs: historyPage.txs.map(convertToTx), + numPages: historyPage.numPages, + }; + } + + /** Fetches the current UTXO set for this script. + * It is grouped by output script, in case a script type can match multiple + * different output scripts (e.g. Taproot on Lotus). */ + public async utxos(): Promise { + const data = await _get( + this._url, + `/script/${this._scriptType}/${this._scriptPayload}/utxos`, + ); + const utxos = proto.Utxos.decode(data); + return utxos.scriptUtxos.map(scriptUtxos => ({ + outputScript: toHex(scriptUtxos.outputScript), + utxos: scriptUtxos.utxos.map(convertToUtxo), + })); } - } - - /** Fetches the current UTXO set for this script. - * It is grouped by output script, in case a script type can match multiple - * different output scripts (e.g. Taproot on Lotus). */ - public async utxos(): Promise { - const data = await _get( - this._url, - `/script/${this._scriptType}/${this._scriptPayload}/utxos`, - ) - const utxos = proto.Utxos.decode(data) - return utxos.scriptUtxos.map(scriptUtxos => ({ - outputScript: toHex(scriptUtxos.outputScript), - utxos: scriptUtxos.utxos.map(convertToUtxo), - })) - } } /** Config for a WebSocket connection to Chronik. */ export interface WsConfig { - /** Fired when a message is sent from the WebSocket. */ - onMessage?: (msg: SubscribeMsg) => void + /** Fired when a message is sent from the WebSocket. */ + onMessage?: (msg: SubscribeMsg) => void; - /** Fired when a connection has been (re)established. */ - onConnect?: (e: ws.Event) => void + /** Fired when a connection has been (re)established. */ + onConnect?: (e: ws.Event) => void; - /** Fired after a connection has been unexpectedly closed, and before a - * reconnection attempt is made. Only fired if `autoReconnect` is true. */ - onReconnect?: (e: ws.Event) => void + /** Fired after a connection has been unexpectedly closed, and before a + * reconnection attempt is made. Only fired if `autoReconnect` is true. */ + onReconnect?: (e: ws.Event) => void; - /** Fired when an error with the WebSocket occurs. */ - onError?: (e: ws.ErrorEvent) => void + /** Fired when an error with the WebSocket occurs. */ + onError?: (e: ws.ErrorEvent) => void; - /** Fired after a connection has been manually closed, or if `autoReconnect` - * is false, if the WebSocket disconnects for any reason. */ - onEnd?: (e: ws.Event) => void + /** Fired after a connection has been manually closed, or if `autoReconnect` + * is false, if the WebSocket disconnects for any reason. */ + onEnd?: (e: ws.Event) => void; - /** Whether to automatically reconnect on disconnect, default true. */ - autoReconnect?: boolean + /** Whether to automatically reconnect on disconnect, default true. */ + autoReconnect?: boolean; } /** WebSocket connection to Chronik. */ export class WsEndpoint { - /** Fired when a message is sent from the WebSocket. */ - public onMessage?: (msg: SubscribeMsg) => void - - /** Fired when a connection has been (re)established. */ - public onConnect?: (e: ws.Event) => void - - /** Fired after a connection has been unexpectedly closed, and before a - * reconnection attempt is made. Only fired if `autoReconnect` is true. */ - public onReconnect?: (e: ws.Event) => void - - /** Fired when an error with the WebSocket occurs. */ - public onError?: (e: ws.ErrorEvent) => void - - /** Fired after a connection has been manually closed, or if `autoReconnect` - * is false, if the WebSocket disconnects for any reason. */ - public onEnd?: (e: ws.Event) => void - - /** Whether to automatically reconnect on disconnect, default true. */ - public autoReconnect: boolean - - private _ws: ws.WebSocket | undefined - private _wsUrl: string - private _connected: Promise | undefined - private _manuallyClosed: boolean - private _subs: { scriptType: ScriptType; scriptPayload: string }[] - - constructor(wsUrl: string, config: WsConfig) { - this.onMessage = config.onMessage - this.onConnect = config.onConnect - this.onReconnect = config.onReconnect - this.onEnd = config.onEnd - this.autoReconnect = - config.autoReconnect !== undefined ? config.autoReconnect : true - this._manuallyClosed = false - this._subs = [] - this._wsUrl = wsUrl - this._connect() - } - - /** Wait for the WebSocket to be connected. */ - public async waitForOpen() { - await this._connected - } - - /** Subscribe to the given script type and payload. - * For "p2pkh", `scriptPayload` is the 20 byte public key hash. */ - public subscribe(scriptType: ScriptType, scriptPayload: string) { - this._subs.push({ scriptType, scriptPayload }) - if (this._ws?.readyState === WebSocket.OPEN) { - this._subUnsub(true, scriptType, scriptPayload) + /** Fired when a message is sent from the WebSocket. */ + public onMessage?: (msg: SubscribeMsg) => void; + + /** Fired when a connection has been (re)established. */ + public onConnect?: (e: ws.Event) => void; + + /** Fired after a connection has been unexpectedly closed, and before a + * reconnection attempt is made. Only fired if `autoReconnect` is true. */ + public onReconnect?: (e: ws.Event) => void; + + /** Fired when an error with the WebSocket occurs. */ + public onError?: (e: ws.ErrorEvent) => void; + + /** Fired after a connection has been manually closed, or if `autoReconnect` + * is false, if the WebSocket disconnects for any reason. */ + public onEnd?: (e: ws.Event) => void; + + /** Whether to automatically reconnect on disconnect, default true. */ + public autoReconnect: boolean; + + private _ws: ws.WebSocket | undefined; + private _wsUrl: string; + private _connected: Promise | undefined; + private _manuallyClosed: boolean; + private _subs: { scriptType: ScriptType; scriptPayload: string }[]; + + constructor(wsUrl: string, config: WsConfig) { + this.onMessage = config.onMessage; + this.onConnect = config.onConnect; + this.onReconnect = config.onReconnect; + this.onEnd = config.onEnd; + this.autoReconnect = + config.autoReconnect !== undefined ? config.autoReconnect : true; + this._manuallyClosed = false; + this._subs = []; + this._wsUrl = wsUrl; + this._connect(); } - } - - /** Unsubscribe from the given script type and payload. */ - public unsubscribe(scriptType: ScriptType, scriptPayload: string) { - this._subs = this._subs.filter( - sub => - sub.scriptType !== scriptType || sub.scriptPayload !== scriptPayload, - ) - if (this._ws?.readyState === WebSocket.OPEN) { - this._subUnsub(false, scriptType, scriptPayload) + + /** Wait for the WebSocket to be connected. */ + public async waitForOpen() { + await this._connected; } - } - - /** Close the WebSocket connection and prevent future any reconnection - * attempts. */ - public close() { - this._manuallyClosed = true - this._ws?.close() - } - - private _connect() { - const ws: ws.WebSocket = new WebSocket(this._wsUrl) - this._ws = ws - this._connected = new Promise(resolved => { - ws.onopen = msg => { - this._subs.forEach(sub => - this._subUnsub(true, sub.scriptType, sub.scriptPayload), - ) - resolved(msg) - if (this.onConnect !== undefined) { - this.onConnect(msg) + + /** Subscribe to the given script type and payload. + * For "p2pkh", `scriptPayload` is the 20 byte public key hash. */ + public subscribe(scriptType: ScriptType, scriptPayload: string) { + this._subs.push({ scriptType, scriptPayload }); + if (this._ws?.readyState === WebSocket.OPEN) { + this._subUnsub(true, scriptType, scriptPayload); } - } - }) - ws.onmessage = e => this._handleMsg(e as MessageEvent) - ws.onerror = e => this.onError !== undefined && this.onError(e) - ws.onclose = e => { - // End if manually closed or no auto-reconnect - if (this._manuallyClosed || !this.autoReconnect) { - if (this.onEnd !== undefined) { - this.onEnd(e) + } + + /** Unsubscribe from the given script type and payload. */ + public unsubscribe(scriptType: ScriptType, scriptPayload: string) { + this._subs = this._subs.filter( + sub => + sub.scriptType !== scriptType || + sub.scriptPayload !== scriptPayload, + ); + if (this._ws?.readyState === WebSocket.OPEN) { + this._subUnsub(false, scriptType, scriptPayload); } - return - } - if (this.onReconnect !== undefined) { - this.onReconnect(e) - } - this._connect() } - } - - private _subUnsub( - isSubscribe: boolean, - scriptType: ScriptType, - scriptPayload: string, - ) { - const encodedSubscription = proto.Subscription.encode({ - isSubscribe, - scriptType, - payload: fromHex(scriptPayload), - }).finish() - if (this._ws === undefined) - throw new Error("Invalid state; _ws is undefined") - this._ws.send(encodedSubscription) - } - - private async _handleMsg(wsMsg: MessageEvent) { - if (this.onMessage === undefined) { - return + + /** Close the WebSocket connection and prevent future any reconnection + * attempts. */ + public close() { + this._manuallyClosed = true; + this._ws?.close(); + } + + private _connect() { + const ws: ws.WebSocket = new WebSocket(this._wsUrl); + this._ws = ws; + this._connected = new Promise(resolved => { + ws.onopen = msg => { + this._subs.forEach(sub => + this._subUnsub(true, sub.scriptType, sub.scriptPayload), + ); + resolved(msg); + if (this.onConnect !== undefined) { + this.onConnect(msg); + } + }; + }); + ws.onmessage = e => this._handleMsg(e as MessageEvent); + ws.onerror = e => this.onError !== undefined && this.onError(e); + ws.onclose = e => { + // End if manually closed or no auto-reconnect + if (this._manuallyClosed || !this.autoReconnect) { + if (this.onEnd !== undefined) { + this.onEnd(e); + } + return; + } + if (this.onReconnect !== undefined) { + this.onReconnect(e); + } + this._connect(); + }; } - const data = - wsMsg.data instanceof Buffer - ? (wsMsg.data as Uint8Array) - : new Uint8Array(await (wsMsg.data as Blob).arrayBuffer()) - const msg = proto.SubscribeMsg.decode(data) - if (msg.error) { - this.onMessage({ - type: "Error", - ...msg.error, - }) - } else if (msg.AddedToMempool) { - this.onMessage({ - type: "AddedToMempool", - txid: toHexRev(msg.AddedToMempool.txid), - }) - } else if (msg.RemovedFromMempool) { - this.onMessage({ - type: "RemovedFromMempool", - txid: toHexRev(msg.RemovedFromMempool.txid), - }) - } else if (msg.Confirmed) { - this.onMessage({ - type: "Confirmed", - txid: toHexRev(msg.Confirmed.txid), - }) - } else if (msg.Reorg) { - this.onMessage({ - type: "Reorg", - txid: toHexRev(msg.Reorg.txid), - }) - } else if (msg.BlockConnected) { - this.onMessage({ - type: "BlockConnected", - blockHash: toHexRev(msg.BlockConnected.blockHash), - }) - } else if (msg.BlockDisconnected) { - this.onMessage({ - type: "BlockDisconnected", - blockHash: toHexRev(msg.BlockDisconnected.blockHash), - }) - } else { - console.log("Silently ignored unknown Chronik message:", msg) + + private _subUnsub( + isSubscribe: boolean, + scriptType: ScriptType, + scriptPayload: string, + ) { + const encodedSubscription = proto.Subscription.encode({ + isSubscribe, + scriptType, + payload: fromHex(scriptPayload), + }).finish(); + if (this._ws === undefined) + throw new Error('Invalid state; _ws is undefined'); + this._ws.send(encodedSubscription); + } + + private async _handleMsg(wsMsg: MessageEvent) { + if (this.onMessage === undefined) { + return; + } + const data = + wsMsg.data instanceof Buffer + ? (wsMsg.data as Uint8Array) + : new Uint8Array(await (wsMsg.data as Blob).arrayBuffer()); + const msg = proto.SubscribeMsg.decode(data); + if (msg.error) { + this.onMessage({ + type: 'Error', + ...msg.error, + }); + } else if (msg.AddedToMempool) { + this.onMessage({ + type: 'AddedToMempool', + txid: toHexRev(msg.AddedToMempool.txid), + }); + } else if (msg.RemovedFromMempool) { + this.onMessage({ + type: 'RemovedFromMempool', + txid: toHexRev(msg.RemovedFromMempool.txid), + }); + } else if (msg.Confirmed) { + this.onMessage({ + type: 'Confirmed', + txid: toHexRev(msg.Confirmed.txid), + }); + } else if (msg.Reorg) { + this.onMessage({ + type: 'Reorg', + txid: toHexRev(msg.Reorg.txid), + }); + } else if (msg.BlockConnected) { + this.onMessage({ + type: 'BlockConnected', + blockHash: toHexRev(msg.BlockConnected.blockHash), + }); + } else if (msg.BlockDisconnected) { + this.onMessage({ + type: 'BlockDisconnected', + blockHash: toHexRev(msg.BlockDisconnected.blockHash), + }); + } else { + console.log('Silently ignored unknown Chronik message:', msg); + } } - } } async function _get(url: string, path: string): Promise { - const response = await axios.get(`${url}${path}`, { - responseType: "arraybuffer", - validateStatus: undefined, - }) - ensureResponseErrorThrown(response, path) - return new Uint8Array(response.data) + const response = await axios.get(`${url}${path}`, { + responseType: 'arraybuffer', + validateStatus: undefined, + }); + ensureResponseErrorThrown(response, path); + return new Uint8Array(response.data); } async function _post( - url: string, - path: string, - data: Uint8Array, + url: string, + path: string, + data: Uint8Array, ): Promise { - const response = await axios.post(`${url}${path}`, data, { - responseType: "arraybuffer", - validateStatus: undefined, - // Prevents Axios encoding the Uint8Array as JSON or something - transformRequest: x => x, - headers: { - "Content-Type": "application/x-protobuf", - }, - }) - ensureResponseErrorThrown(response, path) - return new Uint8Array(response.data) + const response = await axios.post(`${url}${path}`, data, { + responseType: 'arraybuffer', + validateStatus: undefined, + // Prevents Axios encoding the Uint8Array as JSON or something + transformRequest: x => x, + headers: { + 'Content-Type': 'application/x-protobuf', + }, + }); + ensureResponseErrorThrown(response, path); + return new Uint8Array(response.data); } function ensureResponseErrorThrown(response: AxiosResponse, path: string) { - if (response.status != 200) { - const error = proto.Error.decode(new Uint8Array(response.data)) - throw new Error(`Failed getting ${path} (${error.errorCode}): ${error.msg}`) - } + if (response.status != 200) { + const error = proto.Error.decode(new Uint8Array(response.data)); + throw new Error( + `Failed getting ${path} (${error.errorCode}): ${error.msg}`, + ); + } } function convertToBlockchainInfo( - blockchainInfo: proto.BlockchainInfo, + blockchainInfo: proto.BlockchainInfo, ): BlockchainInfo { - return { - tipHash: toHexRev(blockchainInfo.tipHash), - tipHeight: blockchainInfo.tipHeight, - } + return { + tipHash: toHexRev(blockchainInfo.tipHash), + tipHeight: blockchainInfo.tipHeight, + }; } function convertToBlock(block: proto.Block): Block { - if (block.blockInfo === undefined) { - throw new Error("Block has no blockInfo") - } - if (block.blockDetails === undefined) { - throw new Error("Block has no blockDetails") - } - return { - blockInfo: convertToBlockInfo(block.blockInfo), - blockDetails: convertToBlockDetails(block.blockDetails), - rawHeader: toHex(block.rawHeader), - txs: block.txs.map(convertToTx), - } + if (block.blockInfo === undefined) { + throw new Error('Block has no blockInfo'); + } + if (block.blockDetails === undefined) { + throw new Error('Block has no blockDetails'); + } + return { + blockInfo: convertToBlockInfo(block.blockInfo), + blockDetails: convertToBlockDetails(block.blockDetails), + rawHeader: toHex(block.rawHeader), + txs: block.txs.map(convertToTx), + }; } function convertToTx(tx: proto.Tx): Tx { - return { - txid: toHexRev(tx.txid), - version: tx.version, - inputs: tx.inputs.map(convertToTxInput), - outputs: tx.outputs.map(convertToTxOutput), - lockTime: tx.lockTime, - slpTxData: tx.slpTxData ? convertToSlpTxData(tx.slpTxData) : undefined, - slpErrorMsg: tx.slpErrorMsg.length !== 0 ? tx.slpErrorMsg : undefined, - block: tx.block !== undefined ? convertToBlockMeta(tx.block) : undefined, - timeFirstSeen: tx.timeFirstSeen, - size: tx.size, - isCoinbase: tx.isCoinbase, - network: convertToNetwork(tx.network), - } + return { + txid: toHexRev(tx.txid), + version: tx.version, + inputs: tx.inputs.map(convertToTxInput), + outputs: tx.outputs.map(convertToTxOutput), + lockTime: tx.lockTime, + slpTxData: tx.slpTxData ? convertToSlpTxData(tx.slpTxData) : undefined, + slpErrorMsg: tx.slpErrorMsg.length !== 0 ? tx.slpErrorMsg : undefined, + block: + tx.block !== undefined ? convertToBlockMeta(tx.block) : undefined, + timeFirstSeen: tx.timeFirstSeen, + size: tx.size, + isCoinbase: tx.isCoinbase, + network: convertToNetwork(tx.network), + }; } function convertToUtxo(utxo: proto.Utxo): Utxo { - if (utxo.outpoint === undefined) { - throw new Error("UTXO outpoint is undefined") - } - return { - outpoint: { - txid: toHexRev(utxo.outpoint.txid), - outIdx: utxo.outpoint.outIdx, - }, - blockHeight: utxo.blockHeight, - isCoinbase: utxo.isCoinbase, - value: utxo.value, - slpMeta: - utxo.slpMeta !== undefined ? convertToSlpMeta(utxo.slpMeta) : undefined, - slpToken: - utxo.slpToken !== undefined - ? convertToSlpToken(utxo.slpToken) - : undefined, - network: convertToNetwork(utxo.network), - } + if (utxo.outpoint === undefined) { + throw new Error('UTXO outpoint is undefined'); + } + return { + outpoint: { + txid: toHexRev(utxo.outpoint.txid), + outIdx: utxo.outpoint.outIdx, + }, + blockHeight: utxo.blockHeight, + isCoinbase: utxo.isCoinbase, + value: utxo.value, + slpMeta: + utxo.slpMeta !== undefined + ? convertToSlpMeta(utxo.slpMeta) + : undefined, + slpToken: + utxo.slpToken !== undefined + ? convertToSlpToken(utxo.slpToken) + : undefined, + network: convertToNetwork(utxo.network), + }; } function convertToToken(token: proto.Token): Token { - if (token.slpTxData === undefined) { - throw new Error("Invalid proto, no slpTxData") - } - if (token.tokenStats === undefined) { - throw new Error("Invalid proto, no tokenStats") - } - return { - slpTxData: convertToSlpTokenTxData(token.slpTxData), - tokenStats: token.tokenStats, - block: - token.block !== undefined ? convertToBlockMeta(token.block) : undefined, - timeFirstSeen: token.timeFirstSeen, - initialTokenQuantity: token.initialTokenQuantity, - containsBaton: token.containsBaton, - network: convertToNetwork(token.network), - } + if (token.slpTxData === undefined) { + throw new Error('Invalid proto, no slpTxData'); + } + if (token.tokenStats === undefined) { + throw new Error('Invalid proto, no tokenStats'); + } + return { + slpTxData: convertToSlpTokenTxData(token.slpTxData), + tokenStats: token.tokenStats, + block: + token.block !== undefined + ? convertToBlockMeta(token.block) + : undefined, + timeFirstSeen: token.timeFirstSeen, + initialTokenQuantity: token.initialTokenQuantity, + containsBaton: token.containsBaton, + network: convertToNetwork(token.network), + }; } function convertToTxInput(input: proto.TxInput): TxInput { - if (input.prevOut === undefined) { - throw new Error("Invalid proto, no prevOut") - } - return { - prevOut: { - txid: toHexRev(input.prevOut.txid), - outIdx: input.prevOut.outIdx, - }, - inputScript: toHex(input.inputScript), - outputScript: - input.outputScript.length > 0 ? toHex(input.outputScript) : undefined, - value: input.value, - sequenceNo: input.sequenceNo, - slpBurn: - input.slpBurn !== undefined ? convertToSlpBurn(input.slpBurn) : undefined, - slpToken: - input.slpToken !== undefined - ? convertToSlpToken(input.slpToken) - : undefined, - } + if (input.prevOut === undefined) { + throw new Error('Invalid proto, no prevOut'); + } + return { + prevOut: { + txid: toHexRev(input.prevOut.txid), + outIdx: input.prevOut.outIdx, + }, + inputScript: toHex(input.inputScript), + outputScript: + input.outputScript.length > 0 + ? toHex(input.outputScript) + : undefined, + value: input.value, + sequenceNo: input.sequenceNo, + slpBurn: + input.slpBurn !== undefined + ? convertToSlpBurn(input.slpBurn) + : undefined, + slpToken: + input.slpToken !== undefined + ? convertToSlpToken(input.slpToken) + : undefined, + }; } function convertToTxOutput(output: proto.TxOutput): TxOutput { - return { - value: output.value, - outputScript: toHex(output.outputScript), - slpToken: - output.slpToken !== undefined - ? convertToSlpToken(output.slpToken) - : undefined, - spentBy: - output.spentBy !== undefined - ? { - txid: toHexRev(output.spentBy.txid), - outIdx: output.spentBy.outIdx, - } - : undefined, - } + return { + value: output.value, + outputScript: toHex(output.outputScript), + slpToken: + output.slpToken !== undefined + ? convertToSlpToken(output.slpToken) + : undefined, + spentBy: + output.spentBy !== undefined + ? { + txid: toHexRev(output.spentBy.txid), + outIdx: output.spentBy.outIdx, + } + : undefined, + }; } function convertToSlpTxData(slpTxData: proto.SlpTxData): SlpTxData { - if (slpTxData.slpMeta === undefined) { - throw new Error("Invalid slpTxData: slpMeta is undefined") - } - return { - slpMeta: convertToSlpMeta(slpTxData.slpMeta), - genesisInfo: - slpTxData.genesisInfo !== undefined - ? convertToSlpGenesisInfo(slpTxData.genesisInfo) - : undefined, - } + if (slpTxData.slpMeta === undefined) { + throw new Error('Invalid slpTxData: slpMeta is undefined'); + } + return { + slpMeta: convertToSlpMeta(slpTxData.slpMeta), + genesisInfo: + slpTxData.genesisInfo !== undefined + ? convertToSlpGenesisInfo(slpTxData.genesisInfo) + : undefined, + }; } function convertToSlpTokenTxData(slpTxData: proto.SlpTxData): SlpTokenTxData { - if (slpTxData.slpMeta === undefined) { - throw new Error("Invalid slpTxData: slpMeta is undefined") - } - if (slpTxData.genesisInfo === undefined) { - throw new Error("Invalid slpTxData: genesisInfo is undefined") - } - return { - slpMeta: convertToSlpMeta(slpTxData.slpMeta), - genesisInfo: convertToSlpGenesisInfo(slpTxData.genesisInfo), - } + if (slpTxData.slpMeta === undefined) { + throw new Error('Invalid slpTxData: slpMeta is undefined'); + } + if (slpTxData.genesisInfo === undefined) { + throw new Error('Invalid slpTxData: genesisInfo is undefined'); + } + return { + slpMeta: convertToSlpMeta(slpTxData.slpMeta), + genesisInfo: convertToSlpGenesisInfo(slpTxData.genesisInfo), + }; } function convertToSlpMeta(slpMeta: proto.SlpMeta): SlpMeta { - let tokenType: SlpTokenType - switch (slpMeta.tokenType) { - case proto.SlpTokenType.FUNGIBLE: - tokenType = "FUNGIBLE" - break - case proto.SlpTokenType.NFT1_GROUP: - tokenType = "NFT1_GROUP" - break - case proto.SlpTokenType.NFT1_CHILD: - tokenType = "NFT1_CHILD" - break - case proto.SlpTokenType.UNKNOWN_TOKEN_TYPE: - tokenType = "UNKNOWN_TOKEN_TYPE" - break - default: - throw new Error(`Invalid token type: ${slpMeta.tokenType}`) - } - let txType: SlpTxType - switch (slpMeta.txType) { - case proto.SlpTxType.GENESIS: - txType = "GENESIS" - break - case proto.SlpTxType.SEND: - txType = "SEND" - break - case proto.SlpTxType.MINT: - txType = "MINT" - break - case proto.SlpTxType.BURN: - txType = "BURN" - break - case proto.SlpTxType.UNKNOWN_TX_TYPE: - txType = "UNKNOWN_TX_TYPE" - break - default: - throw new Error(`Invalid slp tx type: ${slpMeta.txType}`) - } - return { - tokenType, - txType, - tokenId: toHex(slpMeta.tokenId), - groupTokenId: - slpMeta.groupTokenId.length == 32 - ? toHex(slpMeta.groupTokenId) - : undefined, - } + let tokenType: SlpTokenType; + switch (slpMeta.tokenType) { + case proto.SlpTokenType.FUNGIBLE: + tokenType = 'FUNGIBLE'; + break; + case proto.SlpTokenType.NFT1_GROUP: + tokenType = 'NFT1_GROUP'; + break; + case proto.SlpTokenType.NFT1_CHILD: + tokenType = 'NFT1_CHILD'; + break; + case proto.SlpTokenType.UNKNOWN_TOKEN_TYPE: + tokenType = 'UNKNOWN_TOKEN_TYPE'; + break; + default: + throw new Error(`Invalid token type: ${slpMeta.tokenType}`); + } + let txType: SlpTxType; + switch (slpMeta.txType) { + case proto.SlpTxType.GENESIS: + txType = 'GENESIS'; + break; + case proto.SlpTxType.SEND: + txType = 'SEND'; + break; + case proto.SlpTxType.MINT: + txType = 'MINT'; + break; + case proto.SlpTxType.BURN: + txType = 'BURN'; + break; + case proto.SlpTxType.UNKNOWN_TX_TYPE: + txType = 'UNKNOWN_TX_TYPE'; + break; + default: + throw new Error(`Invalid slp tx type: ${slpMeta.txType}`); + } + return { + tokenType, + txType, + tokenId: toHex(slpMeta.tokenId), + groupTokenId: + slpMeta.groupTokenId.length == 32 + ? toHex(slpMeta.groupTokenId) + : undefined, + }; } function convertToSlpGenesisInfo(info: proto.SlpGenesisInfo): SlpGenesisInfo { - const decoder = new TextDecoder() - return { - tokenTicker: decoder.decode(info.tokenTicker), - tokenName: decoder.decode(info.tokenName), - tokenDocumentUrl: decoder.decode(info.tokenDocumentUrl), - tokenDocumentHash: toHex(info.tokenDocumentHash), - decimals: info.decimals, - } + const decoder = new TextDecoder(); + return { + tokenTicker: decoder.decode(info.tokenTicker), + tokenName: decoder.decode(info.tokenName), + tokenDocumentUrl: decoder.decode(info.tokenDocumentUrl), + tokenDocumentHash: toHex(info.tokenDocumentHash), + decimals: info.decimals, + }; } function convertToBlockMeta(block: proto.BlockMetadata): BlockMetadata { - return { - height: block.height, - hash: toHexRev(block.hash), - timestamp: block.timestamp, - } + return { + height: block.height, + hash: toHexRev(block.hash), + timestamp: block.timestamp, + }; } function convertToBlockInfo(block: proto.BlockInfo): BlockInfo { - return { - ...block, - hash: toHexRev(block.hash), - prevHash: toHexRev(block.prevHash), - } + return { + ...block, + hash: toHexRev(block.hash), + prevHash: toHexRev(block.prevHash), + }; } function convertToBlockDetails(blockDetails: proto.BlockDetails): BlockDetails { - return { - ...blockDetails, - merkleRoot: toHexRev(blockDetails.merkleRoot), - } + return { + ...blockDetails, + merkleRoot: toHexRev(blockDetails.merkleRoot), + }; } function convertToSlpBurn(burn: proto.SlpBurn): SlpBurn { - if (burn.token === undefined) { - throw new Error("Invalid burn: token is undefined") - } - return { - token: convertToSlpToken(burn.token), - tokenId: toHex(burn.tokenId), - } + if (burn.token === undefined) { + throw new Error('Invalid burn: token is undefined'); + } + return { + token: convertToSlpToken(burn.token), + tokenId: toHex(burn.tokenId), + }; } function convertToSlpToken(token: proto.SlpToken): SlpToken { - return { - amount: token.amount, - isMintBaton: token.isMintBaton, - } + return { + amount: token.amount, + isMintBaton: token.isMintBaton, + }; } function convertToNetwork(network: proto.Network): Network { - switch (network) { - case proto.Network.BCH: - return "BCH" - case proto.Network.XEC: - return "XEC" - case proto.Network.XPI: - return "XPI" - case proto.Network.XRG: - return "XRG" - default: - throw new Error(`Unknown network: ${network}`) - } + switch (network) { + case proto.Network.BCH: + return 'BCH'; + case proto.Network.XEC: + return 'XEC'; + case proto.Network.XPI: + return 'XPI'; + case proto.Network.XRG: + return 'XRG'; + default: + throw new Error(`Unknown network: ${network}`); + } } function convertToUtxoStateVariant( - variant: proto.UtxoStateVariant, + variant: proto.UtxoStateVariant, ): UtxoStateVariant { - switch (variant) { - case proto.UtxoStateVariant.UNSPENT: - return "UNSPENT" - case proto.UtxoStateVariant.SPENT: - return "SPENT" - case proto.UtxoStateVariant.NO_SUCH_TX: - return "NO_SUCH_TX" - case proto.UtxoStateVariant.NO_SUCH_OUTPUT: - return "NO_SUCH_OUTPUT" - default: - throw new Error(`Unknown UtxoStateVariant: ${variant}`) - } + switch (variant) { + case proto.UtxoStateVariant.UNSPENT: + return 'UNSPENT'; + case proto.UtxoStateVariant.SPENT: + return 'SPENT'; + case proto.UtxoStateVariant.NO_SUCH_TX: + return 'NO_SUCH_TX'; + case proto.UtxoStateVariant.NO_SUCH_OUTPUT: + return 'NO_SUCH_OUTPUT'; + default: + throw new Error(`Unknown UtxoStateVariant: ${variant}`); + } } /** Current state of the blockchain. */ export interface BlockchainInfo { - /** Block hash of the current blockchain tip */ - tipHash: string - /** Current height of the blockchain */ - tipHeight: number + /** Block hash of the current blockchain tip */ + tipHash: string; + /** Current height of the blockchain */ + tipHeight: number; } /** A transaction on the blockchain or in the mempool. */ export interface Tx { - /** Transaction ID. - * - On BCH, eCash and Ergon, this is the hash of the tx. - * - On Lotus, this is a special serialization, omitting the input scripts. - */ - txid: string - /** `version` field of the transaction. */ - version: number - /** Inputs of this transaction. */ - inputs: TxInput[] - /** Outputs of this transaction. */ - outputs: TxOutput[] - /** `locktime` field of the transaction, tx is not valid before this time. */ - lockTime: number - /** SLP data about this transaction, if valid. */ - slpTxData: SlpTxData | undefined - /** A human-readable message as to why this tx is not an SLP transaction, - * unless trivially so. */ - slpErrorMsg: string | undefined - /** Block data for this tx, or undefined if not mined yet. */ - block: BlockMetadata | undefined - /** UNIX timestamp when this tx has first been seen in the mempool. - * 0 if unknown -> make sure to check. - */ - timeFirstSeen: string - /** Serialized size of the tx. */ - size: number - /** Whether this tx is a coinbase tx. */ - isCoinbase: boolean - /** Which network this tx is on. */ - network: Network + /** Transaction ID. + * - On BCH, eCash and Ergon, this is the hash of the tx. + * - On Lotus, this is a special serialization, omitting the input scripts. + */ + txid: string; + /** `version` field of the transaction. */ + version: number; + /** Inputs of this transaction. */ + inputs: TxInput[]; + /** Outputs of this transaction. */ + outputs: TxOutput[]; + /** `locktime` field of the transaction, tx is not valid before this time. */ + lockTime: number; + /** SLP data about this transaction, if valid. */ + slpTxData: SlpTxData | undefined; + /** A human-readable message as to why this tx is not an SLP transaction, + * unless trivially so. */ + slpErrorMsg: string | undefined; + /** Block data for this tx, or undefined if not mined yet. */ + block: BlockMetadata | undefined; + /** UNIX timestamp when this tx has first been seen in the mempool. + * 0 if unknown -> make sure to check. + */ + timeFirstSeen: string; + /** Serialized size of the tx. */ + size: number; + /** Whether this tx is a coinbase tx. */ + isCoinbase: boolean; + /** Which network this tx is on. */ + network: Network; } /** An unspent transaction output (aka. UTXO, aka. "Coin") of a script. */ export interface Utxo { - /** Outpoint of the UTXO. */ - outpoint: OutPoint - /** Which block this UTXO is in, or -1 if in the mempool. */ - blockHeight: number - /** Whether this UTXO is a coinbase UTXO - * (make sure it's buried 100 blocks before spending!) */ - isCoinbase: boolean - /** Value of the UTXO in satoshis. */ - value: string - /** SLP data in this UTXO. */ - slpMeta: SlpMeta | undefined - /** SLP token of this UTXO (i.e. SLP amount + whether it's a mint baton). */ - slpToken: SlpToken | undefined - /** Which network this UTXO is on. */ - network: Network + /** Outpoint of the UTXO. */ + outpoint: OutPoint; + /** Which block this UTXO is in, or -1 if in the mempool. */ + blockHeight: number; + /** Whether this UTXO is a coinbase UTXO + * (make sure it's buried 100 blocks before spending!) */ + isCoinbase: boolean; + /** Value of the UTXO in satoshis. */ + value: string; + /** SLP data in this UTXO. */ + slpMeta: SlpMeta | undefined; + /** SLP token of this UTXO (i.e. SLP amount + whether it's a mint baton). */ + slpToken: SlpToken | undefined; + /** Which network this UTXO is on. */ + network: Network; } /** Data and stats about an SLP token. */ export interface Token { - /** SLP data of the GENESIS transaction. */ - slpTxData: SlpTokenTxData - /** Current stats about this token, e.g. minted and burned amount. */ - tokenStats: TokenStats - /** Block the GENESIS transaction has been mined in, or undefined if not mined yet. */ - block: BlockMetadata | undefined - /** UNIX timestamp when the GENESIS transaction has first been seen in the mempool. - * 0 if unknown. */ - timeFirstSeen: string - /** How many tokens have been mined in the GENESIS transaction. */ - initialTokenQuantity: string - /** Whether the GENESIS transaction created a mint baton. - * Note: This doesn't indicate whether the mint baton is still alive. */ - containsBaton: boolean - /** Which network this token is on. */ - network: Network + /** SLP data of the GENESIS transaction. */ + slpTxData: SlpTokenTxData; + /** Current stats about this token, e.g. minted and burned amount. */ + tokenStats: TokenStats; + /** Block the GENESIS transaction has been mined in, or undefined if not mined yet. */ + block: BlockMetadata | undefined; + /** UNIX timestamp when the GENESIS transaction has first been seen in the mempool. + * 0 if unknown. */ + timeFirstSeen: string; + /** How many tokens have been mined in the GENESIS transaction. */ + initialTokenQuantity: string; + /** Whether the GENESIS transaction created a mint baton. + * Note: This doesn't indicate whether the mint baton is still alive. */ + containsBaton: boolean; + /** Which network this token is on. */ + network: Network; } /** Block info about a block */ export interface BlockInfo { - /** Block hash of the block, in 'human-readable' (big-endian) hex encoding. */ - hash: string - /** Block hash of the previous block, in 'human-readable' (big-endian) hex - * encoding. */ - prevHash: string - /** Height of the block; Genesis block has height 0. */ - height: number - /** nBits field of the block, encodes the target compactly. */ - nBits: number - /** Timestamp of the block. Filled in by the miner, so might not be 100% - * precise. */ - timestamp: string - /** Block size of this block in bytes (including headers etc.). */ - blockSize: string - /** Number of txs in this block. */ - numTxs: string - /** Total number of tx inputs in block (including coinbase). */ - numInputs: string - /** Total number of tx output in block (including coinbase). */ - numOutputs: string - /** Total number of satoshis spent by tx inputs. */ - sumInputSats: string - /** Total block reward for this block. */ - sumCoinbaseOutputSats: string - /** Total number of satoshis in non-coinbase tx outputs. */ - sumNormalOutputSats: string - /** Total number of satoshis burned using OP_RETURN. */ - sumBurnedSats: string + /** Block hash of the block, in 'human-readable' (big-endian) hex encoding. */ + hash: string; + /** Block hash of the previous block, in 'human-readable' (big-endian) hex + * encoding. */ + prevHash: string; + /** Height of the block; Genesis block has height 0. */ + height: number; + /** nBits field of the block, encodes the target compactly. */ + nBits: number; + /** Timestamp of the block. Filled in by the miner, so might not be 100% + * precise. */ + timestamp: string; + /** Block size of this block in bytes (including headers etc.). */ + blockSize: string; + /** Number of txs in this block. */ + numTxs: string; + /** Total number of tx inputs in block (including coinbase). */ + numInputs: string; + /** Total number of tx output in block (including coinbase). */ + numOutputs: string; + /** Total number of satoshis spent by tx inputs. */ + sumInputSats: string; + /** Total block reward for this block. */ + sumCoinbaseOutputSats: string; + /** Total number of satoshis in non-coinbase tx outputs. */ + sumNormalOutputSats: string; + /** Total number of satoshis burned using OP_RETURN. */ + sumBurnedSats: string; } /** Additional details about a block. */ export interface BlockDetails { - /** nVersion field of the block. */ - version: number - /** Merkle root of the block. */ - merkleRoot: string - /** Nonce of the block (32-bit on XEC, 64-bit on XPI). */ - nonce: string - /** Median-time-past (MTP) of the last 11 blocks. */ - medianTimestamp: string + /** nVersion field of the block. */ + version: number; + /** Merkle root of the block. */ + merkleRoot: string; + /** Nonce of the block (32-bit on XEC, 64-bit on XPI). */ + nonce: string; + /** Median-time-past (MTP) of the last 11 blocks. */ + medianTimestamp: string; } /** Block on the blockchain. */ export interface Block { - /** Info about the block. */ - blockInfo: BlockInfo - /** Details about the block. */ - blockDetails: BlockDetails - /** Header encoded as hex. */ - rawHeader: string - /** Txs in this block, in canonical order - * (at least on all supported chains). */ - txs: Tx[] + /** Info about the block. */ + blockInfo: BlockInfo; + /** Details about the block. */ + blockDetails: BlockDetails; + /** Header encoded as hex. */ + rawHeader: string; + /** Txs in this block, in canonical order + * (at least on all supported chains). */ + txs: Tx[]; } /** Group of UTXOs by output script. */ export interface ScriptUtxos { - /** Output script in hex. */ - outputScript: string - /** UTXOs of the output script. */ - utxos: Utxo[] + /** Output script in hex. */ + outputScript: string; + /** UTXOs of the output script. */ + utxos: Utxo[]; } /** Page of the transaction history. */ export interface TxHistoryPage { - /** Txs of this page. */ - txs: Tx[] - /** Number of pages of the entire transaction history. - * This changes based on the `pageSize` provided. */ - numPages: number + /** Txs of this page. */ + txs: Tx[]; + /** Number of pages of the entire transaction history. + * This changes based on the `pageSize` provided. */ + numPages: number; } /** SLP data about an SLP transaction. */ export interface SlpTxData { - /** SLP metadata. */ - slpMeta: SlpMeta - /** Genesis info, only present for GENESIS txs. */ - genesisInfo: SlpGenesisInfo | undefined + /** SLP metadata. */ + slpMeta: SlpMeta; + /** Genesis info, only present for GENESIS txs. */ + genesisInfo: SlpGenesisInfo | undefined; } /** SLP data about an SLP transaction. */ export interface SlpTokenTxData { - /** SLP metadata. */ - slpMeta: SlpMeta - /** Genesis info of the token. */ - genesisInfo: SlpGenesisInfo + /** SLP metadata. */ + slpMeta: SlpMeta; + /** Genesis info of the token. */ + genesisInfo: SlpGenesisInfo; } /** Metadata about an SLP tx or UTXO. */ export interface SlpMeta { - /** Whether this token is a normal fungible token, or an NFT or unknown. */ - tokenType: SlpTokenType - /** Whether this tx is a GENESIS, MINT, SEND or UNKNOWN transaction. */ - txType: SlpTxType - /** Token ID of this tx/UTXO, in human-readable (big-endian) hex encoding. */ - tokenId: string - /** Group token ID of this tx/UTXO, NFT only, in human-readable - * (big-endian) hex encoding. - * This is the token ID of the token that went into the GENESIS of this token - * as first input. */ - groupTokenId: string | undefined + /** Whether this token is a normal fungible token, or an NFT or unknown. */ + tokenType: SlpTokenType; + /** Whether this tx is a GENESIS, MINT, SEND or UNKNOWN transaction. */ + txType: SlpTxType; + /** Token ID of this tx/UTXO, in human-readable (big-endian) hex encoding. */ + tokenId: string; + /** Group token ID of this tx/UTXO, NFT only, in human-readable + * (big-endian) hex encoding. + * This is the token ID of the token that went into the GENESIS of this token + * as first input. */ + groupTokenId: string | undefined; } /** @@ -899,145 +917,145 @@ * use a string with the decimal representation. */ export interface TokenStats { - /** Total number of tokens minted (including GENESIS). */ - totalMinted: string - /** Total number of tokens burned. */ - totalBurned: string + /** Total number of tokens minted (including GENESIS). */ + totalMinted: string; + /** Total number of tokens burned. */ + totalBurned: string; } /** Input of a tx, spends an output of a previous tx. */ export interface TxInput { - /** Points to an output spent by this input. */ - prevOut: OutPoint - /** Script unlocking the output, in hex encoding. - * Aka. `scriptSig` in bitcoind parlance. */ - inputScript: string - /** Script of the output, in hex encoding. - * Aka. `scriptPubKey` in bitcoind parlance. */ - outputScript: string | undefined - /** Value of the output spent by this input, in satoshis. */ - value: string - /** `sequence` field of the input; can be used for relative time locking. */ - sequenceNo: number - /** SLP tokens burned by this input, or `undefined` if no burn occured. */ - slpBurn: SlpBurn | undefined - /** SLP tokens spent by this input, or `undefined` if the tokens were burned - * or if there were no tokens in the output spent by this input. */ - slpToken: SlpToken | undefined + /** Points to an output spent by this input. */ + prevOut: OutPoint; + /** Script unlocking the output, in hex encoding. + * Aka. `scriptSig` in bitcoind parlance. */ + inputScript: string; + /** Script of the output, in hex encoding. + * Aka. `scriptPubKey` in bitcoind parlance. */ + outputScript: string | undefined; + /** Value of the output spent by this input, in satoshis. */ + value: string; + /** `sequence` field of the input; can be used for relative time locking. */ + sequenceNo: number; + /** SLP tokens burned by this input, or `undefined` if no burn occured. */ + slpBurn: SlpBurn | undefined; + /** SLP tokens spent by this input, or `undefined` if the tokens were burned + * or if there were no tokens in the output spent by this input. */ + slpToken: SlpToken | undefined; } /** Output of a tx, creates new UTXOs. */ export interface TxOutput { - /** Value of the output, in satoshis. */ - value: string - /** Script of this output, locking the coins. - * Aka. `scriptPubKey` in bitcoind parlance. */ - outputScript: string - /** SLP tokens locked up in this output, or `undefined` if no tokens were sent - * to this output. */ - slpToken: SlpToken | undefined - /** Transaction & input index spending this output, or undefined if - * unspent. */ - spentBy: OutPoint | undefined + /** Value of the output, in satoshis. */ + value: string; + /** Script of this output, locking the coins. + * Aka. `scriptPubKey` in bitcoind parlance. */ + outputScript: string; + /** SLP tokens locked up in this output, or `undefined` if no tokens were sent + * to this output. */ + slpToken: SlpToken | undefined; + /** Transaction & input index spending this output, or undefined if + * unspent. */ + spentBy: OutPoint | undefined; } /** Metadata of a block, used in transaction data. */ export interface BlockMetadata { - /** Height of the block. */ - height: number - /** Hash of the block. */ - hash: string - /** Timestamp of the block; useful if `timeFirstSeen` of a transaction is - * unknown. */ - timestamp: string + /** Height of the block. */ + height: number; + /** Hash of the block. */ + hash: string; + /** Timestamp of the block; useful if `timeFirstSeen` of a transaction is + * unknown. */ + timestamp: string; } /** Outpoint referencing an output on the blockchain (or input for field * `spentBy`). */ export interface OutPoint { - /** Transaction referenced by this outpoint. */ - txid: string - /** Index of the output in the tx referenced by this outpoint - * (or input index if used in field `spentBy`). */ - outIdx: number + /** Transaction referenced by this outpoint. */ + txid: string; + /** Index of the output in the tx referenced by this outpoint + * (or input index if used in field `spentBy`). */ + outIdx: number; } /** SLP amount or whether this is a mint baton, for inputs and outputs. */ export interface SlpToken { - /** SLP amount of the input or output, in base units. */ - amount: string - /** Whether this input/output is a mint baton. */ - isMintBaton: boolean + /** SLP amount of the input or output, in base units. */ + amount: string; + /** Whether this input/output is a mint baton. */ + isMintBaton: boolean; } /** SLP burn; indicates burn of some tokens. */ export interface SlpBurn { - /** SLP amount/mint baton burned by this burn. */ - token: SlpToken - /** Token ID of the burned SLP tokens, in human-readable (big-endian) hex - * encoding. */ - tokenId: string + /** SLP amount/mint baton burned by this burn. */ + token: SlpToken; + /** Token ID of the burned SLP tokens, in human-readable (big-endian) hex + * encoding. */ + tokenId: string; } /** SLP info about a GENESIS transaction. */ export interface SlpGenesisInfo { - /** Ticker of the token, decoded as UTF-8. */ - tokenTicker: string - /** Name of the token, decoded as UTF-8. */ - tokenName: string - /** URL of the token, decoded as UTF-8. */ - tokenDocumentUrl: string - /** Document hash of the token, encoded in hex (byte order as occuring in the - * OP_RETURN). */ - tokenDocumentHash: string - /** Number of decimals of the GENESIS transaction. */ - decimals: number + /** Ticker of the token, decoded as UTF-8. */ + tokenTicker: string; + /** Name of the token, decoded as UTF-8. */ + tokenName: string; + /** URL of the token, decoded as UTF-8. */ + tokenDocumentUrl: string; + /** Document hash of the token, encoded in hex (byte order as occuring in the + * OP_RETURN). */ + tokenDocumentHash: string; + /** Number of decimals of the GENESIS transaction. */ + decimals: number; } /** State of a UTXO (from `validateUtxos`). */ export interface UtxoState { - /** Height of the UTXO. -1 if the tx doesn't exist or is unconfirmed. - * If it's confirmed (or if the output doesn't exist but the tx does), - * it's the height of the block confirming the tx. */ - height: number - /** Whether the UTXO or the transaction queried is confirmed. */ - isConfirmed: boolean - /** State of the UTXO, can be unconfirmed, confirmed, tx doesn't exist or - * output doesn't exist. */ - state: UtxoStateVariant + /** Height of the UTXO. -1 if the tx doesn't exist or is unconfirmed. + * If it's confirmed (or if the output doesn't exist but the tx does), + * it's the height of the block confirming the tx. */ + height: number; + /** Whether the UTXO or the transaction queried is confirmed. */ + isConfirmed: boolean; + /** State of the UTXO, can be unconfirmed, confirmed, tx doesn't exist or + * output doesn't exist. */ + state: UtxoStateVariant; } /** Message returned from the WebSocket. */ export type SubscribeMsg = - | Error - | MsgAddedToMempool - | MsgRemovedFromMempool - | MsgConfirmed - | MsgReorg - | MsgBlockConnected - | MsgBlockDisconnected + | Error + | MsgAddedToMempool + | MsgRemovedFromMempool + | MsgConfirmed + | MsgReorg + | MsgBlockConnected + | MsgBlockDisconnected; /** A transaction has been added to the mempool. */ export interface MsgAddedToMempool { - type: "AddedToMempool" - /** txid of the transaction, in 'human-readable' (big-endian) hex encoding. */ - txid: string + type: 'AddedToMempool'; + /** txid of the transaction, in 'human-readable' (big-endian) hex encoding. */ + txid: string; } /** A transaction has been removed from the mempool, * but not because of a confirmation (e.g. expiry, conflict, etc.). */ export interface MsgRemovedFromMempool { - type: "RemovedFromMempool" - /** txid of the transaction, in 'human-readable' (big-endian) hex encoding. */ - txid: string + type: 'RemovedFromMempool'; + /** txid of the transaction, in 'human-readable' (big-endian) hex encoding. */ + txid: string; } /** A transaction has been confirmed in a block. */ export interface MsgConfirmed { - type: "Confirmed" - /** txid of the transaction, in 'human-readable' (big-endian) hex encoding. */ - txid: string + type: 'Confirmed'; + /** txid of the transaction, in 'human-readable' (big-endian) hex encoding. */ + txid: string; } /** A transaction used to be part of a block but now got re-orged. @@ -1045,50 +1063,55 @@ * immediately afterwards. */ export interface MsgReorg { - type: "Reorg" - /** txid of the transaction, in 'human-readable' (big-endian) hex encoding. */ - txid: string + type: 'Reorg'; + /** txid of the transaction, in 'human-readable' (big-endian) hex encoding. */ + txid: string; } /** A new block has been added to the chain. Sent regardless of subscriptions. */ export interface MsgBlockConnected { - type: "BlockConnected" - /** block hash of the block, in 'human-readable' (big-endian) hex encoding. */ - blockHash: string + type: 'BlockConnected'; + /** block hash of the block, in 'human-readable' (big-endian) hex encoding. */ + blockHash: string; } /** A block has been removed from the chain. Sent regardless of subscriptions. */ export interface MsgBlockDisconnected { - type: "BlockDisconnected" - /** block hash of the block, in 'human-readable' (big-endian) hex encoding. */ - blockHash: string + type: 'BlockDisconnected'; + /** block hash of the block, in 'human-readable' (big-endian) hex encoding. */ + blockHash: string; } /** Reports an error, e.g. when a subscription is malformed. */ export interface Error { - type: "Error" - /** Code for this error, e.g. "tx-not-found". */ - errorCode: string - /** Human-readable message for this error. */ - msg: string - /** Whether this error is presentable to an end-user. - * This is somewhat subjective, but can be used as a good heuristic. */ - isUserError: boolean + type: 'Error'; + /** Code for this error, e.g. "tx-not-found". */ + errorCode: string; + /** Human-readable message for this error. */ + msg: string; + /** Whether this error is presentable to an end-user. + * This is somewhat subjective, but can be used as a good heuristic. */ + isUserError: boolean; } /** Different networks of txs/blocks/UTXOs. * Supported are BCH, eCash, Lotus and Ergon. */ -export type Network = "BCH" | "XEC" | "XPI" | "XRG" +export type Network = 'BCH' | 'XEC' | 'XPI' | 'XRG'; /** Which SLP tx type. */ -export type SlpTxType = "GENESIS" | "SEND" | "MINT" | "BURN" | "UNKNOWN_TX_TYPE" +export type SlpTxType = + | 'GENESIS' + | 'SEND' + | 'MINT' + | 'BURN' + | 'UNKNOWN_TX_TYPE'; /** Which SLP token type (normal fungible, NFT, unknown). */ export type SlpTokenType = - | "FUNGIBLE" - | "NFT1_GROUP" - | "NFT1_CHILD" - | "UNKNOWN_TOKEN_TYPE" + | 'FUNGIBLE' + | 'NFT1_GROUP' + | 'NFT1_CHILD' + | 'UNKNOWN_TOKEN_TYPE'; /** State of a transaction output. * - `UNSPENT`: The UTXO is unspent. @@ -1097,10 +1120,10 @@ * - `NO_SUCH_OUTPUT`: The output queried does not exist, but the tx does exist. */ export type UtxoStateVariant = - | "UNSPENT" - | "SPENT" - | "NO_SUCH_TX" - | "NO_SUCH_OUTPUT" + | 'UNSPENT' + | 'SPENT' + | 'NO_SUCH_TX' + | 'NO_SUCH_OUTPUT'; /** Script type queried in the `script` method. * - `other`: Script type not covered by the standard script types; payload is @@ -1119,9 +1142,9 @@ * only on Lotus. Queries by the state. Payload is the 32 byte state. */ export type ScriptType = - | "other" - | "p2pk" - | "p2pkh" - | "p2sh" - | "p2tr-commitment" - | "p2tr-state" + | 'other' + | 'p2pk' + | 'p2pkh' + | 'p2sh' + | 'p2tr-commitment' + | 'p2tr-state'; diff --git a/modules/chronik-client/package-lock.json b/modules/chronik-client/package-lock.json --- a/modules/chronik-client/package-lock.json +++ b/modules/chronik-client/package-lock.json @@ -1,4798 +1,4798 @@ { - "name": "chronik-client", - "version": "0.8.2", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "chronik-client", - "version": "0.8.2", - "license": "MIT", - "dependencies": { - "@types/ws": "^8.2.1", - "axios": "^0.21.1", - "isomorphic-ws": "^4.0.1", - "protobufjs": "^6.8.8", - "ws": "^8.3.0" - }, - "devDependencies": { - "@types/chai": "^4.2.22", - "@types/chai-as-promised": "^7.1.4", - "@types/mocha": "^9.0.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "chai": "^4.3.4", - "chai-as-promised": "^7.1.1", - "eslint": "^8.4.0", - "eslint-config-prettier": "^8.3.0", - "mocha": "^9.1.3", - "prettier": "^2.5.1", - "prettier-plugin-organize-imports": "^2.3.4", - "ts-node": "^10.4.0", - "ts-proto": "^1.92.1", - "typedoc": "^0.22.10", - "typescript": "^4.5.2" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.1", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", - "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "node_modules/@types/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", - "dev": true - }, - "node_modules/@types/chai-as-promised": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz", - "integrity": "sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==", - "dev": true, - "dependencies": { - "@types/chai": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "node_modules/@types/mocha": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.16.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.0.tgz", - "integrity": "sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ==" - }, - "node_modules/@types/object-hash": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@types/object-hash/-/object-hash-1.3.4.tgz", - "integrity": "sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA==", - "dev": true - }, - "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, - "node_modules/@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz", - "integrity": "sha512-AVi0uazY5quFB9hlp2Xv+ogpfpk77xzsgsIEWyVS7uK/c7MZ5tw7ZPbapa0SbfkqE0fsAMkz5UwtgMLVk2BQAg==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/type-utils": "5.59.1", - "@typescript-eslint/utils": "5.59.1", - "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.1.tgz", - "integrity": "sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", - "integrity": "sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.1.tgz", - "integrity": "sha512-ZMWQ+Oh82jWqWzvM3xU+9y5U7MEMVv6GLioM3R5NJk6uvP47kZ7YvlgSHJ7ERD6bOY7Q4uxWm25c76HKEwIjZw==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.59.1", - "@typescript-eslint/utils": "5.59.1", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.1.tgz", - "integrity": "sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", - "integrity": "sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.1.tgz", - "integrity": "sha512-MkTe7FE+K1/GxZkP5gRj3rCztg45bEhsd8HYjczBuYm+qFHP5vtZmjx3B0yUCDotceQ4sHgTyz60Ycl225njmA==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", - "integrity": "sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.59.1", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/case-anything": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", - "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==", - "dev": true, - "engines": { - "node": ">=12.13" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dev": true, - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, - "dependencies": { - "check-error": "^1.0.2" - }, - "peerDependencies": { - "chai": ">= 2.1.2 < 5" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/dataloader": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz", - "integrity": "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dprint-node": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/dprint-node/-/dprint-node-1.0.7.tgz", - "integrity": "sha512-NTZOW9A7ipb0n7z7nC3wftvsbceircwVHSgzobJsEQa+7RnOMbhrfX5IflA6CtC4GA63DSAiHYXa4JKEy9F7cA==", - "dev": true, - "dependencies": { - "detect-libc": "^1.0.3" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", - "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.39.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "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/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "engines": { - "node": ">=4.x" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dev": true, - "dependencies": { - "get-func-name": "^2.0.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true, - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", - "dev": true, - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.3", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "4.2.1", - "ms": "2.1.3", - "nanoid": "3.3.1", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/mocha/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", - "dev": true, - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", - "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-plugin-organize-imports": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-2.3.4.tgz", - "integrity": "sha512-R8o23sf5iVL/U71h9SFUdhdOEPsi3nm42FD/oDYIZ2PQa4TNWWuWecxln6jlIQzpZTDMUeO1NicJP6lLn2TtRw==", - "dev": true, - "peerDependencies": { - "prettier": ">=2.0", - "typescript": ">=2.9" - } - }, - "node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shiki": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.10.1.tgz", - "integrity": "sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==", - "dev": true, - "dependencies": { - "jsonc-parser": "^3.0.0", - "vscode-oniguruma": "^1.6.1", - "vscode-textmate": "5.2.0" - } - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/ts-poet": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-6.4.1.tgz", - "integrity": "sha512-AjZEs4h2w4sDfwpHMxQKHrTlNh2wRbM5NRXmLz0RiH+yPGtSQFbe9hBpNocU8vqVNgfh0BIOiXR80xDz3kKxUQ==", - "dev": true, - "dependencies": { - "dprint-node": "^1.0.7" - } - }, - "node_modules/ts-proto": { - "version": "1.146.0", - "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.146.0.tgz", - "integrity": "sha512-OyBZRjmqqw+aatLEUbRooWO6VKTtOLJQyaQFMciigEZPNgTsWtApqHpQDtqDMQFWEXhIARqEV+B7ZJx8cljhZA==", - "dev": true, - "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", - "ts-poet": "^6.4.1", - "ts-proto-descriptors": "1.8.0" - }, - "bin": { - "protoc-gen-ts_proto": "protoc-gen-ts_proto" - } - }, - "node_modules/ts-proto-descriptors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.8.0.tgz", - "integrity": "sha512-iV20plcI8+GRkeZIAygxOOH0p2xpOsKfw9kI1W20NCwawi1/4bG/YRd9rQY9XSJP+lD9j7XbSy3tFFuikfsljw==", - "dev": true, - "dependencies": { - "long": "^4.0.0", - "protobufjs": "^6.8.8" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedoc": { - "version": "0.22.18", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.18.tgz", - "integrity": "sha512-NK9RlLhRUGMvc6Rw5USEYgT4DVAUFk7IF7Q6MYfpJ88KnTZP7EneEa4RcP+tX1auAcz7QT1Iy0bUSZBYYHdoyA==", - "dev": true, - "dependencies": { - "glob": "^8.0.3", - "lunr": "^2.3.9", - "marked": "^4.0.16", - "minimatch": "^5.1.0", - "shiki": "^0.10.1" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 12.10.0" - }, - "peerDependencies": { - "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x || 4.6.x || 4.7.x" - } - }, - "node_modules/typedoc/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/typedoc/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/typedoc/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true - }, - "node_modules/vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", - "dev": true - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - } - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - } - }, - "@eslint-community/regexpp": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", - "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", - "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.1", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@eslint/js": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", - "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", - "dev": true - }, - "@humanwhocodes/config-array": { - "version": "0.11.8", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", - "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "@types/chai": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", - "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", - "dev": true - }, - "@types/chai-as-promised": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz", - "integrity": "sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==", - "dev": true, - "requires": { - "@types/chai": "*" - } - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "@types/mocha": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", - "dev": true - }, - "@types/node": { - "version": "18.16.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.0.tgz", - "integrity": "sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ==" - }, - "@types/object-hash": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/@types/object-hash/-/object-hash-1.3.4.tgz", - "integrity": "sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA==", - "dev": true - }, - "@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, - "@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", - "requires": { - "@types/node": "*" - } - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz", - "integrity": "sha512-AVi0uazY5quFB9hlp2Xv+ogpfpk77xzsgsIEWyVS7uK/c7MZ5tw7ZPbapa0SbfkqE0fsAMkz5UwtgMLVk2BQAg==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/type-utils": "5.59.1", - "@typescript-eslint/utils": "5.59.1", - "debug": "^4.3.4", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/parser": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.1.tgz", - "integrity": "sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", - "debug": "^4.3.4" - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", - "integrity": "sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.1" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.1.tgz", - "integrity": "sha512-ZMWQ+Oh82jWqWzvM3xU+9y5U7MEMVv6GLioM3R5NJk6uvP47kZ7YvlgSHJ7ERD6bOY7Q4uxWm25c76HKEwIjZw==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "5.59.1", - "@typescript-eslint/utils": "5.59.1", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/types": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.1.tgz", - "integrity": "sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", - "integrity": "sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/visitor-keys": "5.59.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": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.1.tgz", - "integrity": "sha512-MkTe7FE+K1/GxZkP5gRj3rCztg45bEhsd8HYjczBuYm+qFHP5vtZmjx3B0yUCDotceQ4sHgTyz60Ycl225njmA==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.1", - "@typescript-eslint/types": "5.59.1", - "@typescript-eslint/typescript-estree": "5.59.1", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", - "integrity": "sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.1", - "eslint-visitor-keys": "^3.3.0" - } - }, - "@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true - }, - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true - }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "case-anything": { - "version": "2.1.10", - "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", - "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==", - "dev": true - }, - "chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, - "chai-as-promised": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", - "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true, - "requires": { - "check-error": "^1.0.2" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } + "name": "chronik-client", + "version": "0.8.2", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "chronik-client", + "version": "0.8.2", + "license": "MIT", + "dependencies": { + "@types/ws": "^8.2.1", + "axios": "^0.21.1", + "isomorphic-ws": "^4.0.1", + "protobufjs": "^6.8.8", + "ws": "^8.3.0" + }, + "devDependencies": { + "@types/chai": "^4.2.22", + "@types/chai-as-promised": "^7.1.4", + "@types/mocha": "^9.0.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "chai": "^4.3.4", + "chai-as-promised": "^7.1.1", + "eslint": "^8.4.0", + "eslint-config-prettier": "^8.3.0", + "mocha": "^9.1.3", + "prettier": "^2.5.1", + "prettier-plugin-organize-imports": "^2.3.4", + "ts-node": "^10.4.0", + "ts-proto": "^1.92.1", + "typedoc": "^0.22.10", + "typescript": "^4.5.2" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.1", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", + "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "node_modules/@types/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", + "dev": true + }, + "node_modules/@types/chai-as-promised": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz", + "integrity": "sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==", + "dev": true, + "dependencies": { + "@types/chai": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "node_modules/@types/mocha": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", + "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.16.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.0.tgz", + "integrity": "sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ==" + }, + "node_modules/@types/object-hash": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/object-hash/-/object-hash-1.3.4.tgz", + "integrity": "sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz", + "integrity": "sha512-AVi0uazY5quFB9hlp2Xv+ogpfpk77xzsgsIEWyVS7uK/c7MZ5tw7ZPbapa0SbfkqE0fsAMkz5UwtgMLVk2BQAg==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/type-utils": "5.59.1", + "@typescript-eslint/utils": "5.59.1", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.1.tgz", + "integrity": "sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/typescript-estree": "5.59.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", + "integrity": "sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.1.tgz", + "integrity": "sha512-ZMWQ+Oh82jWqWzvM3xU+9y5U7MEMVv6GLioM3R5NJk6uvP47kZ7YvlgSHJ7ERD6bOY7Q4uxWm25c76HKEwIjZw==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.59.1", + "@typescript-eslint/utils": "5.59.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.1.tgz", + "integrity": "sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", + "integrity": "sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.1.tgz", + "integrity": "sha512-MkTe7FE+K1/GxZkP5gRj3rCztg45bEhsd8HYjczBuYm+qFHP5vtZmjx3B0yUCDotceQ4sHgTyz60Ycl225njmA==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/typescript-estree": "5.59.1", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", + "integrity": "sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.59.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/case-anything": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", + "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==", + "dev": true, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dev": true, + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 5" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/dataloader": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz", + "integrity": "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dprint-node": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/dprint-node/-/dprint-node-1.0.7.tgz", + "integrity": "sha512-NTZOW9A7ipb0n7z7nC3wftvsbceircwVHSgzobJsEQa+7RnOMbhrfX5IflA6CtC4GA63DSAiHYXa4JKEy9F7cA==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", + "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.39.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", + "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/espree": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "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/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/js-sdsl": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true, + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "dev": true, + "dependencies": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.3", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "4.2.1", + "ms": "2.1.3", + "nanoid": "3.3.1", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "workerpool": "6.2.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/mocha/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-organize-imports": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-2.3.4.tgz", + "integrity": "sha512-R8o23sf5iVL/U71h9SFUdhdOEPsi3nm42FD/oDYIZ2PQa4TNWWuWecxln6jlIQzpZTDMUeO1NicJP6lLn2TtRw==", + "dev": true, + "peerDependencies": { + "prettier": ">=2.0", + "typescript": ">=2.9" + } + }, + "node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shiki": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.10.1.tgz", + "integrity": "sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.0.0", + "vscode-oniguruma": "^1.6.1", + "vscode-textmate": "5.2.0" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/ts-poet": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-6.4.1.tgz", + "integrity": "sha512-AjZEs4h2w4sDfwpHMxQKHrTlNh2wRbM5NRXmLz0RiH+yPGtSQFbe9hBpNocU8vqVNgfh0BIOiXR80xDz3kKxUQ==", + "dev": true, + "dependencies": { + "dprint-node": "^1.0.7" + } + }, + "node_modules/ts-proto": { + "version": "1.146.0", + "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.146.0.tgz", + "integrity": "sha512-OyBZRjmqqw+aatLEUbRooWO6VKTtOLJQyaQFMciigEZPNgTsWtApqHpQDtqDMQFWEXhIARqEV+B7ZJx8cljhZA==", + "dev": true, + "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", + "ts-poet": "^6.4.1", + "ts-proto-descriptors": "1.8.0" + }, + "bin": { + "protoc-gen-ts_proto": "protoc-gen-ts_proto" + } + }, + "node_modules/ts-proto-descriptors": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.8.0.tgz", + "integrity": "sha512-iV20plcI8+GRkeZIAygxOOH0p2xpOsKfw9kI1W20NCwawi1/4bG/YRd9rQY9XSJP+lD9j7XbSy3tFFuikfsljw==", + "dev": true, + "dependencies": { + "long": "^4.0.0", + "protobufjs": "^6.8.8" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedoc": { + "version": "0.22.18", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.18.tgz", + "integrity": "sha512-NK9RlLhRUGMvc6Rw5USEYgT4DVAUFk7IF7Q6MYfpJ88KnTZP7EneEa4RcP+tX1auAcz7QT1Iy0bUSZBYYHdoyA==", + "dev": true, + "dependencies": { + "glob": "^8.0.3", + "lunr": "^2.3.9", + "marked": "^4.0.16", + "minimatch": "^5.1.0", + "shiki": "^0.10.1" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 12.10.0" + }, + "peerDependencies": { + "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x || 4.6.x || 4.7.x" + } + }, + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typedoc/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/typedoc/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true + }, + "node_modules/vscode-textmate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "dev": true + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", + "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "dataloader": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz", - "integrity": "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true - }, - "deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dprint-node": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/dprint-node/-/dprint-node-1.0.7.tgz", - "integrity": "sha512-NTZOW9A7ipb0n7z7nC3wftvsbceircwVHSgzobJsEQa+7RnOMbhrfX5IflA6CtC4GA63DSAiHYXa4JKEy9F7cA==", - "dev": true, - "requires": { - "detect-libc": "^1.0.3" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint": { - "version": "8.39.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", - "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.2", - "@eslint/js": "8.39.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.0", - "espree": "^9.5.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "dependencies": { + "dependencies": { + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^3.3.0" + } + }, + "@eslint-community/regexpp": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.5.0.tgz", + "integrity": "sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.2.tgz", + "integrity": "sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.1", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@eslint/js": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.39.0.tgz", + "integrity": "sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==", + "dev": true + }, + "@humanwhocodes/config-array": { + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz", + "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "@types/chai": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.4.tgz", + "integrity": "sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==", + "dev": true + }, + "@types/chai-as-promised": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.5.tgz", + "integrity": "sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==", + "dev": true, + "requires": { + "@types/chai": "*" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "@types/mocha": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", + "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", + "dev": true + }, + "@types/node": { + "version": "18.16.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.0.tgz", + "integrity": "sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ==" + }, + "@types/object-hash": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/object-hash/-/object-hash-1.3.4.tgz", + "integrity": "sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA==", + "dev": true + }, + "@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", + "dev": true + }, + "@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "requires": { + "@types/node": "*" + } + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.59.1.tgz", + "integrity": "sha512-AVi0uazY5quFB9hlp2Xv+ogpfpk77xzsgsIEWyVS7uK/c7MZ5tw7ZPbapa0SbfkqE0fsAMkz5UwtgMLVk2BQAg==", + "dev": true, + "requires": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/type-utils": "5.59.1", + "@typescript-eslint/utils": "5.59.1", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.59.1.tgz", + "integrity": "sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/typescript-estree": "5.59.1", + "debug": "^4.3.4" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.59.1.tgz", + "integrity": "sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.1" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.59.1.tgz", + "integrity": "sha512-ZMWQ+Oh82jWqWzvM3xU+9y5U7MEMVv6GLioM3R5NJk6uvP47kZ7YvlgSHJ7ERD6bOY7Q4uxWm25c76HKEwIjZw==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.59.1", + "@typescript-eslint/utils": "5.59.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.59.1.tgz", + "integrity": "sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.59.1.tgz", + "integrity": "sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/visitor-keys": "5.59.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": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.59.1.tgz", + "integrity": "sha512-MkTe7FE+K1/GxZkP5gRj3rCztg45bEhsd8HYjczBuYm+qFHP5vtZmjx3B0yUCDotceQ4sHgTyz60Ycl225njmA==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.59.1", + "@typescript-eslint/types": "5.59.1", + "@typescript-eslint/typescript-estree": "5.59.1", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.59.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.59.1.tgz", + "integrity": "sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.59.1", + "eslint-visitor-keys": "^3.3.0" + } + }, + "@ungap/promise-all-settled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", + "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", + "dev": true + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true + }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + }, + "case-anything": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/case-anything/-/case-anything-2.1.10.tgz", + "integrity": "sha512-JczJwVrCP0jPKh05McyVsuOg6AYosrB9XWZKbQzXeDAm2ClE/PJE/BcrrQrVyGYH7Jg8V/LDupmyL4kFlVsVFQ==", + "dev": true + }, + "chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, + "chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dev": true, + "requires": { + "check-error": "^1.0.2" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "dataloader": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz", + "integrity": "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true + }, + "deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dprint-node": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/dprint-node/-/dprint-node-1.0.7.tgz", + "integrity": "sha512-NTZOW9A7ipb0n7z7nC3wftvsbceircwVHSgzobJsEQa+7RnOMbhrfX5IflA6CtC4GA63DSAiHYXa4JKEy9F7cA==", + "dev": true, + "requires": { + "detect-libc": "^1.0.3" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.39.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.39.0.tgz", + "integrity": "sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==", + "dev": true, + "requires": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.39.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.0", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "eslint-scope": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", + "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", + "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", + "dev": true, + "requires": {} + }, "eslint-scope": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.0.tgz", - "integrity": "sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", + "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", + "dev": true + }, + "espree": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", + "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.0" + } + }, + "esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "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 + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "dev": true + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", + "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "requires": {} + }, + "js-sdsl": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", + "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "jsonc-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dev": true, + "requires": { + "get-func-name": "^2.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "eslint-config-prettier": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz", - "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==", - "dev": true, - "requires": {} - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.0.tgz", - "integrity": "sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==", - "dev": true - }, - "espree": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.1.tgz", - "integrity": "sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.0" - } - }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "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 - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "dev": true - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "requires": {} - }, - "js-sdsl": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz", - "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "jsonc-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", - "dev": true - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dev": true, - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "marked": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", - "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", - "dev": true, - "requires": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.3", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "4.2.1", - "ms": "2.1.3", - "nanoid": "3.3.1", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } + "marked": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", + "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } }, "minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mocha": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", + "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", + "dev": true, + "requires": { + "@ungap/promise-all-settled": "1.1.2", + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.3", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "growl": "1.10.5", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "4.2.1", + "ms": "2.1.3", + "nanoid": "3.3.1", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "which": "2.0.2", + "workerpool": "6.2.0", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "minimatch": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", + "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } }, "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", + "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true + }, + "prettier-plugin-organize-imports": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-2.3.4.tgz", + "integrity": "sha512-R8o23sf5iVL/U71h9SFUdhdOEPsi3nm42FD/oDYIZ2PQa4TNWWuWecxln6jlIQzpZTDMUeO1NicJP6lLn2TtRw==", + "dev": true, + "requires": {} + }, + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "semver": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", + "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shiki": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.10.1.tgz", + "integrity": "sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==", + "dev": true, + "requires": { + "jsonc-parser": "^3.0.0", + "vscode-oniguruma": "^1.6.1", + "vscode-textmate": "5.2.0" + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true }, "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "object-hash": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", - "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true - }, - "prettier-plugin-organize-imports": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-2.3.4.tgz", - "integrity": "sha512-R8o23sf5iVL/U71h9SFUdhdOEPsi3nm42FD/oDYIZ2PQa4TNWWuWecxln6jlIQzpZTDMUeO1NicJP6lLn2TtRw==", - "dev": true, - "requires": {} - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "semver": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.0.tgz", - "integrity": "sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shiki": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.10.1.tgz", - "integrity": "sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==", - "dev": true, - "requires": { - "jsonc-parser": "^3.0.0", - "vscode-oniguruma": "^1.6.1", - "vscode-textmate": "5.2.0" - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "dependencies": { - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - } - } - }, - "ts-poet": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-6.4.1.tgz", - "integrity": "sha512-AjZEs4h2w4sDfwpHMxQKHrTlNh2wRbM5NRXmLz0RiH+yPGtSQFbe9hBpNocU8vqVNgfh0BIOiXR80xDz3kKxUQ==", - "dev": true, - "requires": { - "dprint-node": "^1.0.7" - } - }, - "ts-proto": { - "version": "1.146.0", - "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.146.0.tgz", - "integrity": "sha512-OyBZRjmqqw+aatLEUbRooWO6VKTtOLJQyaQFMciigEZPNgTsWtApqHpQDtqDMQFWEXhIARqEV+B7ZJx8cljhZA==", - "dev": true, - "requires": { - "@types/object-hash": "^1.3.0", - "case-anything": "^2.1.10", - "dataloader": "^1.4.0", - "object-hash": "^1.3.1", - "protobufjs": "^6.11.3", - "ts-poet": "^6.4.1", - "ts-proto-descriptors": "1.8.0" - } - }, - "ts-proto-descriptors": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.8.0.tgz", - "integrity": "sha512-iV20plcI8+GRkeZIAygxOOH0p2xpOsKfw9kI1W20NCwawi1/4bG/YRd9rQY9XSJP+lD9j7XbSy3tFFuikfsljw==", - "dev": true, - "requires": { - "long": "^4.0.0", - "protobufjs": "^6.8.8" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typedoc": { - "version": "0.22.18", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.18.tgz", - "integrity": "sha512-NK9RlLhRUGMvc6Rw5USEYgT4DVAUFk7IF7Q6MYfpJ88KnTZP7EneEa4RcP+tX1auAcz7QT1Iy0bUSZBYYHdoyA==", - "dev": true, - "requires": { - "glob": "^8.0.3", - "lunr": "^2.3.9", - "marked": "^4.0.16", - "minimatch": "^5.1.0", - "shiki": "^0.10.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "dependencies": { + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + } + } + }, + "ts-poet": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-6.4.1.tgz", + "integrity": "sha512-AjZEs4h2w4sDfwpHMxQKHrTlNh2wRbM5NRXmLz0RiH+yPGtSQFbe9hBpNocU8vqVNgfh0BIOiXR80xDz3kKxUQ==", + "dev": true, + "requires": { + "dprint-node": "^1.0.7" + } + }, + "ts-proto": { + "version": "1.146.0", + "resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.146.0.tgz", + "integrity": "sha512-OyBZRjmqqw+aatLEUbRooWO6VKTtOLJQyaQFMciigEZPNgTsWtApqHpQDtqDMQFWEXhIARqEV+B7ZJx8cljhZA==", + "dev": true, + "requires": { + "@types/object-hash": "^1.3.0", + "case-anything": "^2.1.10", + "dataloader": "^1.4.0", + "object-hash": "^1.3.1", + "protobufjs": "^6.11.3", + "ts-poet": "^6.4.1", + "ts-proto-descriptors": "1.8.0" + } + }, + "ts-proto-descriptors": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.8.0.tgz", + "integrity": "sha512-iV20plcI8+GRkeZIAygxOOH0p2xpOsKfw9kI1W20NCwawi1/4bG/YRd9rQY9XSJP+lD9j7XbSy3tFFuikfsljw==", + "dev": true, + "requires": { + "long": "^4.0.0", + "protobufjs": "^6.8.8" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typedoc": { + "version": "0.22.18", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.18.tgz", + "integrity": "sha512-NK9RlLhRUGMvc6Rw5USEYgT4DVAUFk7IF7Q6MYfpJ88KnTZP7EneEa4RcP+tX1auAcz7QT1Iy0bUSZBYYHdoyA==", + "dev": true, + "requires": { + "glob": "^8.0.3", + "lunr": "^2.3.9", + "marked": "^4.0.16", + "minimatch": "^5.1.0", + "shiki": "^0.10.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "vscode-oniguruma": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", + "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", + "dev": true + }, + "vscode-textmate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "workerpool": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", + "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "requires": {} + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } - } - }, - "typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "vscode-oniguruma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", - "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", - "dev": true - }, - "vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "requires": {} - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - } - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true } - } } diff --git a/modules/chronik-client/package.json b/modules/chronik-client/package.json --- a/modules/chronik-client/package.json +++ b/modules/chronik-client/package.json @@ -1,43 +1,43 @@ { - "name": "chronik-client", - "version": "0.8.2", - "description": "A client for accessing the Chronik Indexer API", - "main": "dist/index.js", - "types": "dist/index.d.ts", - "author": "Tobias Ruck", - "license": "MIT", - "scripts": { - "build-proto": "protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=. ../bitcoinsuite-chronik-client/proto/chronik.proto -I=../bitcoinsuite-chronik-client/proto/ --ts_proto_opt=esModuleInterop=true --ts_proto_opt=forceLong=string", - "build": "tsc", - "build-docs": "typedoc --out docs index.ts", - "test": "mocha -r ts-node/register test/test.ts", - "test-long": "mocha -r ts-node/register test/test.ts --timeout 1000000000", - "format": "prettier --write .", - "lint": "eslint . --ext .js,.jsx,.ts,.tsx && prettier --check ." - }, - "devDependencies": { - "@types/chai": "^4.2.22", - "@types/chai-as-promised": "^7.1.4", - "@types/mocha": "^9.0.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "chai": "^4.3.4", - "chai-as-promised": "^7.1.1", - "eslint": "^8.4.0", - "eslint-config-prettier": "^8.3.0", - "mocha": "^9.1.3", - "prettier": "^2.5.1", - "prettier-plugin-organize-imports": "^2.3.4", - "ts-node": "^10.4.0", - "ts-proto": "^1.92.1", - "typedoc": "^0.22.10", - "typescript": "^4.5.2" - }, - "dependencies": { - "@types/ws": "^8.2.1", - "axios": "^0.21.1", - "isomorphic-ws": "^4.0.1", - "protobufjs": "^6.8.8", - "ws": "^8.3.0" - } + "name": "chronik-client", + "version": "0.8.2", + "description": "A client for accessing the Chronik Indexer API", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "author": "Tobias Ruck", + "license": "MIT", + "scripts": { + "build-proto": "protoc --plugin=./node_modules/.bin/protoc-gen-ts_proto --ts_proto_out=. ../bitcoinsuite-chronik-client/proto/chronik.proto -I=../bitcoinsuite-chronik-client/proto/ --ts_proto_opt=esModuleInterop=true --ts_proto_opt=forceLong=string", + "build": "tsc", + "build-docs": "typedoc --out docs index.ts", + "test": "mocha -r ts-node/register test/test.ts", + "test-long": "mocha -r ts-node/register test/test.ts --timeout 1000000000", + "format": "prettier --write .", + "lint": "eslint . --ext .js,.jsx,.ts,.tsx && prettier --check ." + }, + "devDependencies": { + "@types/chai": "^4.2.22", + "@types/chai-as-promised": "^7.1.4", + "@types/mocha": "^9.0.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "chai": "^4.3.4", + "chai-as-promised": "^7.1.1", + "eslint": "^8.4.0", + "eslint-config-prettier": "^8.3.0", + "mocha": "^9.1.3", + "prettier": "^2.5.1", + "prettier-plugin-organize-imports": "^2.3.4", + "ts-node": "^10.4.0", + "ts-proto": "^1.92.1", + "typedoc": "^0.22.10", + "typescript": "^4.5.2" + }, + "dependencies": { + "@types/ws": "^8.2.1", + "axios": "^0.21.1", + "isomorphic-ws": "^4.0.1", + "protobufjs": "^6.8.8", + "ws": "^8.3.0" + } } diff --git a/modules/chronik-client/test/test.ts b/modules/chronik-client/test/test.ts --- a/modules/chronik-client/test/test.ts +++ b/modules/chronik-client/test/test.ts @@ -1,470 +1,478 @@ -import * as chai from "chai" -import chaiAsPromised from "chai-as-promised" +import * as chai from 'chai'; +import chaiAsPromised from 'chai-as-promised'; import { - BlockDetails, - BlockInfo, - ChronikClient, - SlpTokenTxData, - SubscribeMsg, - Tx, - Utxo, - UtxoState, -} from "../index" + BlockDetails, + BlockInfo, + ChronikClient, + SlpTokenTxData, + SubscribeMsg, + Tx, + Utxo, + UtxoState, +} from '../index'; -const expect = chai.expect -const assert = chai.assert -chai.use(chaiAsPromised) +const expect = chai.expect; +const assert = chai.assert; +chai.use(chaiAsPromised); -const TEST_URL = "https://chronik.be.cash/xec" +const TEST_URL = 'https://chronik.be.cash/xec'; const GENESIS_PK = - "04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc" + - "3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f" + '04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc' + + '3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f'; const GENESIS_BLOCK_INFO: BlockInfo = { - hash: "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", - prevHash: "0000000000000000000000000000000000000000000000000000000000000000", - height: 0, - nBits: 0x1d00ffff, - timestamp: "1231006505", - blockSize: "285", - numTxs: "1", - numInputs: "1", - numOutputs: "1", - sumInputSats: "0", - sumCoinbaseOutputSats: "5000000000", - sumNormalOutputSats: "0", - sumBurnedSats: "0", -} + hash: '000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f', + prevHash: + '0000000000000000000000000000000000000000000000000000000000000000', + height: 0, + nBits: 0x1d00ffff, + timestamp: '1231006505', + blockSize: '285', + numTxs: '1', + numInputs: '1', + numOutputs: '1', + sumInputSats: '0', + sumCoinbaseOutputSats: '5000000000', + sumNormalOutputSats: '0', + sumBurnedSats: '0', +}; const GENESIS_BLOCK_DETAILS: BlockDetails = { - version: 1, - merkleRoot: - "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b", - nonce: "2083236893", - medianTimestamp: "1231006505", -} + version: 1, + merkleRoot: + '4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b', + nonce: '2083236893', + medianTimestamp: '1231006505', +}; const GENESIS_TX: Tx = { - txid: "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b", - version: 1, - inputs: [ - { - prevOut: { - txid: "0000000000000000000000000000000000000000000000000000000000000000", - outIdx: 0xffffffff, - }, - inputScript: - "04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e" + - "63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420" + - "666f722062616e6b73", - outputScript: undefined, - value: "0", - sequenceNo: 0xffffffff, - slpBurn: undefined, - slpToken: undefined, - }, - ], - outputs: [ - { - value: "5000000000", - outputScript: "41" + GENESIS_PK + "ac", - slpToken: undefined, - spentBy: undefined, + txid: '4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b', + version: 1, + inputs: [ + { + prevOut: { + txid: '0000000000000000000000000000000000000000000000000000000000000000', + outIdx: 0xffffffff, + }, + inputScript: + '04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e' + + '63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420' + + '666f722062616e6b73', + outputScript: undefined, + value: '0', + sequenceNo: 0xffffffff, + slpBurn: undefined, + slpToken: undefined, + }, + ], + outputs: [ + { + value: '5000000000', + outputScript: '41' + GENESIS_PK + 'ac', + slpToken: undefined, + spentBy: undefined, + }, + ], + lockTime: 0, + slpTxData: undefined, + slpErrorMsg: undefined, + block: { + hash: '000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f', + height: 0, + timestamp: '1231006505', }, - ], - lockTime: 0, - slpTxData: undefined, - slpErrorMsg: undefined, - block: { - hash: "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", - height: 0, - timestamp: "1231006505", - }, - size: 204, - isCoinbase: true, - timeFirstSeen: "0", - network: "XEC", -} + size: 204, + isCoinbase: true, + timeFirstSeen: '0', + network: 'XEC', +}; const GENESIS_UTXO: Utxo = { - outpoint: { txid: GENESIS_TX.txid, outIdx: 0 }, - blockHeight: 0, - isCoinbase: true, - value: "5000000000", - slpMeta: undefined, - slpToken: undefined, - network: "XEC", -} + outpoint: { txid: GENESIS_TX.txid, outIdx: 0 }, + blockHeight: 0, + isCoinbase: true, + value: '5000000000', + slpMeta: undefined, + slpToken: undefined, + network: 'XEC', +}; -describe("new ChronikClient", () => { - it("throws if url ends with a slash", () => { - expect(() => new ChronikClient("https://chronik.be.cash/xec/")).to.throw( - "`url` cannot end with '/', got: https://chronik.be.cash/xec/", - ) - }) - it("throws if url has wrong schema", () => { - expect(() => new ChronikClient("soap://chronik.be.cash/xec")).to.throw( - "`url` must start with 'https://' or 'http://', got: " + - "soap://chronik.be.cash/xec", - ) - }) -}) +describe('new ChronikClient', () => { + it('throws if url ends with a slash', () => { + expect( + () => new ChronikClient('https://chronik.be.cash/xec/'), + ).to.throw( + "`url` cannot end with '/', got: https://chronik.be.cash/xec/", + ); + }); + it('throws if url has wrong schema', () => { + expect(() => new ChronikClient('soap://chronik.be.cash/xec')).to.throw( + "`url` must start with 'https://' or 'http://', got: " + + 'soap://chronik.be.cash/xec', + ); + }); +}); -describe("/broadcast-tx", () => { - const chronik = new ChronikClient(TEST_URL) - it("throws a decode error", async () => { - assert.isRejected( - chronik.broadcastTx("00000000"), - Error, - "Failed getting /broadcast-tx (invalid-tx-encoding): Invalid tx " + - "encoding: Bytes error: Index 1 is out of bounds for array with " + - "length 0", - ) - }) -}) +describe('/broadcast-tx', () => { + const chronik = new ChronikClient(TEST_URL); + it('throws a decode error', async () => { + assert.isRejected( + chronik.broadcastTx('00000000'), + Error, + 'Failed getting /broadcast-tx (invalid-tx-encoding): Invalid tx ' + + 'encoding: Bytes error: Index 1 is out of bounds for array with ' + + 'length 0', + ); + }); +}); -describe("/blockchain-info", () => { - const chronik = new ChronikClient(TEST_URL) - it("gives us the blockchain info", async () => { - const blockchainInfo = await chronik.blockchainInfo() - expect(blockchainInfo.tipHash.length).to.eql(64) - expect(blockchainInfo.tipHeight).to.gte(739039) - }) -}) +describe('/blockchain-info', () => { + const chronik = new ChronikClient(TEST_URL); + it('gives us the blockchain info', async () => { + const blockchainInfo = await chronik.blockchainInfo(); + expect(blockchainInfo.tipHash.length).to.eql(64); + expect(blockchainInfo.tipHeight).to.gte(739039); + }); +}); -describe("/block/:hash", () => { - const chronik = new ChronikClient(TEST_URL) - it("gives us the Genesis block by hash", async () => { - const block = await chronik.block( - "000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f", - ) - expect(block.blockInfo).to.eql(GENESIS_BLOCK_INFO) - expect(block.blockDetails).to.eql(GENESIS_BLOCK_DETAILS) - expect(block.txs).to.eql([GENESIS_TX]) - }) - it("gives us the Genesis block by height", async () => { - const block = await chronik.block(0) - expect(block.blockInfo).to.eql(GENESIS_BLOCK_INFO) - expect(block.blockDetails).to.eql(GENESIS_BLOCK_DETAILS) - expect(block.txs).to.eql([GENESIS_TX]) - }) -}) +describe('/block/:hash', () => { + const chronik = new ChronikClient(TEST_URL); + it('gives us the Genesis block by hash', async () => { + const block = await chronik.block( + '000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f', + ); + expect(block.blockInfo).to.eql(GENESIS_BLOCK_INFO); + expect(block.blockDetails).to.eql(GENESIS_BLOCK_DETAILS); + expect(block.txs).to.eql([GENESIS_TX]); + }); + it('gives us the Genesis block by height', async () => { + const block = await chronik.block(0); + expect(block.blockInfo).to.eql(GENESIS_BLOCK_INFO); + expect(block.blockDetails).to.eql(GENESIS_BLOCK_DETAILS); + expect(block.txs).to.eql([GENESIS_TX]); + }); +}); -describe("/blocks/:start/:end", () => { - const chronik = new ChronikClient(TEST_URL) - it("gives us the first few blocks", async () => { - const blocks = await chronik.blocks(0, 10) - expect(blocks.length).to.equal(11) - const block0: BlockInfo = GENESIS_BLOCK_INFO - expect(blocks[0]).to.eql(block0) - const block1: BlockInfo = { - ...block0, - hash: "00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048", - prevHash: block0.hash, - height: 1, - timestamp: "1231469665", - blockSize: "215", - } - expect(blocks[1]).to.eql(block1) - const block2: BlockInfo = { - ...block1, - hash: "000000006a625f06636b8bb6ac7b960a8d03705d1ace08b1a19da3fdcc99ddbd", - prevHash: block1.hash, - height: 2, - timestamp: "1231469744", - } - expect(blocks[2]).to.eql(block2) - const block3: BlockInfo = { - ...block2, - hash: "0000000082b5015589a3fdf2d4baff403e6f0be035a5d9742c1cae6295464449", - prevHash: block2.hash, - height: 3, - timestamp: "1231470173", - } - expect(blocks[3]).to.eql(block3) - }) -}) +describe('/blocks/:start/:end', () => { + const chronik = new ChronikClient(TEST_URL); + it('gives us the first few blocks', async () => { + const blocks = await chronik.blocks(0, 10); + expect(blocks.length).to.equal(11); + const block0: BlockInfo = GENESIS_BLOCK_INFO; + expect(blocks[0]).to.eql(block0); + const block1: BlockInfo = { + ...block0, + hash: '00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048', + prevHash: block0.hash, + height: 1, + timestamp: '1231469665', + blockSize: '215', + }; + expect(blocks[1]).to.eql(block1); + const block2: BlockInfo = { + ...block1, + hash: '000000006a625f06636b8bb6ac7b960a8d03705d1ace08b1a19da3fdcc99ddbd', + prevHash: block1.hash, + height: 2, + timestamp: '1231469744', + }; + expect(blocks[2]).to.eql(block2); + const block3: BlockInfo = { + ...block2, + hash: '0000000082b5015589a3fdf2d4baff403e6f0be035a5d9742c1cae6295464449', + prevHash: block2.hash, + height: 3, + timestamp: '1231470173', + }; + expect(blocks[3]).to.eql(block3); + }); +}); -describe("/tx/:txid", () => { - const chronik = new ChronikClient(TEST_URL) - it("results in Not Found", async () => { - assert.isRejected( - chronik.tx( - "0000000000000000000000000000000000000000000000000000000000000000", - ), - Error, - "Failed getting tx " + - "0000000000000000000000000000000000000000000000000000000000000000: " + - "Txid not found: " + - "0000000000000000000000000000000000000000000000000000000000000000", - ) - }) - it("results in the right tx", async () => { - const tx = await chronik.tx( - "0f3c3908a2ddec8dea91d2fe1f77295bbbb158af869bff345d44ae800f0a5498", - ) - expect(tx.txid).to.eql( - "0f3c3908a2ddec8dea91d2fe1f77295bbbb158af869bff345d44ae800f0a5498", - ) - expect(tx.version).to.eql(2) - expect(tx.inputs).to.eql([ - { - inputScript: - "473044022042349e5e9e58c4c7b1fc9cbcdd1a1c9774b2ae95b7704ce40c7058ef" + - "14ba2854022022ba0cd4ead86982e7fc090ad06569a72c165efa3634feac4e722e" + - "ee405b92674121022d577b731fb05971d54951e4cb8bd11120327eba3e0fdd5a4d" + - "18f74a882df1a4", - outputScript: "76a914d15b9793d6af77663f8acf7e2c884f114ef901da88ac", - prevOut: { - txid: "fbe9a326ea525013e11e3f6341b3e03d6ad189bac30f94d5ceaf24ef4388e069", - outIdx: 1, - }, - sequenceNo: 4294967295, - slpBurn: undefined, - slpToken: { - amount: "50000000", - isMintBaton: false, - }, - value: "546", - }, - { - inputScript: - "473044022076e0c764b7d5a5f738304fec1df97db4ba6fc35f8ccb2438de8aabff" + - "781edb5c022002016344d4432a5837569b9c764b88aa71f98dbfb76c48cbd0ad9f" + - "18dc15be0e4121022d577b731fb05971d54951e4cb8bd11120327eba3e0fdd5a4d" + - "18f74a882df1a4", - outputScript: "76a914d15b9793d6af77663f8acf7e2c884f114ef901da88ac", - prevOut: { - txid: "7ded3b52bbe20fc40d147a4e799fda91e589d29e017789ab6361e462dc972094", - outIdx: 0, - }, - sequenceNo: 4294967295, - slpBurn: undefined, - slpToken: undefined, - value: "100000", - }, - ]) - expect(tx.outputs).to.eql([ - { - outputScript: - "6a04534c500001010453454e44200daf200e3418f2df1158efef36fbb507f12928" + - "f1fdcf3543703e64e75a4a90730800000000004c4b40080000000002aea540", - slpToken: undefined, - spentBy: undefined, - value: "0", - }, - { - outputScript: "76a9149c371def7e7cf89b30a62d658147937e679a965388ac", - slpToken: { - amount: "5000000", - isMintBaton: false, - }, - spentBy: { - txid: "962ace9db1a36d06c129dffbe9a92bcf2eafe37d1a44aedfc6f957d2be69f149", - outIdx: 0, - }, - value: "546", - }, - { - outputScript: "76a914e7b4f63ec550ada1aed74960ddc4e0e107cd6cd188ac", - slpToken: { - amount: "45000000", - isMintBaton: false, - }, - spentBy: { - txid: "11ce5e4249c5b43927810129d887ce0df3bbde46d036998dff0180f94d2df6f8", - outIdx: 0, - }, - value: "546", - }, - { - outputScript: "76a914d15b9793d6af77663f8acf7e2c884f114ef901da88ac", - slpToken: undefined, - spentBy: { - txid: "11ce5e4249c5b43927810129d887ce0df3bbde46d036998dff0180f94d2df6f8", - outIdx: 1, - }, - value: "98938", - }, - ]) - expect(tx.lockTime).to.eql(0) - expect(tx.slpTxData).to.eql({ - genesisInfo: undefined, - slpMeta: { - tokenId: - "0daf200e3418f2df1158efef36fbb507f12928f1fdcf3543703e64e75a4a9073", - tokenType: "FUNGIBLE", - txType: "SEND", - groupTokenId: undefined, - }, - }) - expect(tx.slpErrorMsg).to.eql(undefined) - expect(tx.block).to.eql({ - hash: "0000000000000000452f19532a6297ea194eaacac6d3bbcbf7c08a74cad84b44", - height: 697728, - timestamp: "1627790415", - }) - expect(tx.timeFirstSeen).to.eql("0") - expect(tx.network).to.eql("XEC") - }) -}) +describe('/tx/:txid', () => { + const chronik = new ChronikClient(TEST_URL); + it('results in Not Found', async () => { + assert.isRejected( + chronik.tx( + '0000000000000000000000000000000000000000000000000000000000000000', + ), + Error, + 'Failed getting tx ' + + '0000000000000000000000000000000000000000000000000000000000000000: ' + + 'Txid not found: ' + + '0000000000000000000000000000000000000000000000000000000000000000', + ); + }); + it('results in the right tx', async () => { + const tx = await chronik.tx( + '0f3c3908a2ddec8dea91d2fe1f77295bbbb158af869bff345d44ae800f0a5498', + ); + expect(tx.txid).to.eql( + '0f3c3908a2ddec8dea91d2fe1f77295bbbb158af869bff345d44ae800f0a5498', + ); + expect(tx.version).to.eql(2); + expect(tx.inputs).to.eql([ + { + inputScript: + '473044022042349e5e9e58c4c7b1fc9cbcdd1a1c9774b2ae95b7704ce40c7058ef' + + '14ba2854022022ba0cd4ead86982e7fc090ad06569a72c165efa3634feac4e722e' + + 'ee405b92674121022d577b731fb05971d54951e4cb8bd11120327eba3e0fdd5a4d' + + '18f74a882df1a4', + outputScript: + '76a914d15b9793d6af77663f8acf7e2c884f114ef901da88ac', + prevOut: { + txid: 'fbe9a326ea525013e11e3f6341b3e03d6ad189bac30f94d5ceaf24ef4388e069', + outIdx: 1, + }, + sequenceNo: 4294967295, + slpBurn: undefined, + slpToken: { + amount: '50000000', + isMintBaton: false, + }, + value: '546', + }, + { + inputScript: + '473044022076e0c764b7d5a5f738304fec1df97db4ba6fc35f8ccb2438de8aabff' + + '781edb5c022002016344d4432a5837569b9c764b88aa71f98dbfb76c48cbd0ad9f' + + '18dc15be0e4121022d577b731fb05971d54951e4cb8bd11120327eba3e0fdd5a4d' + + '18f74a882df1a4', + outputScript: + '76a914d15b9793d6af77663f8acf7e2c884f114ef901da88ac', + prevOut: { + txid: '7ded3b52bbe20fc40d147a4e799fda91e589d29e017789ab6361e462dc972094', + outIdx: 0, + }, + sequenceNo: 4294967295, + slpBurn: undefined, + slpToken: undefined, + value: '100000', + }, + ]); + expect(tx.outputs).to.eql([ + { + outputScript: + '6a04534c500001010453454e44200daf200e3418f2df1158efef36fbb507f12928' + + 'f1fdcf3543703e64e75a4a90730800000000004c4b40080000000002aea540', + slpToken: undefined, + spentBy: undefined, + value: '0', + }, + { + outputScript: + '76a9149c371def7e7cf89b30a62d658147937e679a965388ac', + slpToken: { + amount: '5000000', + isMintBaton: false, + }, + spentBy: { + txid: '962ace9db1a36d06c129dffbe9a92bcf2eafe37d1a44aedfc6f957d2be69f149', + outIdx: 0, + }, + value: '546', + }, + { + outputScript: + '76a914e7b4f63ec550ada1aed74960ddc4e0e107cd6cd188ac', + slpToken: { + amount: '45000000', + isMintBaton: false, + }, + spentBy: { + txid: '11ce5e4249c5b43927810129d887ce0df3bbde46d036998dff0180f94d2df6f8', + outIdx: 0, + }, + value: '546', + }, + { + outputScript: + '76a914d15b9793d6af77663f8acf7e2c884f114ef901da88ac', + slpToken: undefined, + spentBy: { + txid: '11ce5e4249c5b43927810129d887ce0df3bbde46d036998dff0180f94d2df6f8', + outIdx: 1, + }, + value: '98938', + }, + ]); + expect(tx.lockTime).to.eql(0); + expect(tx.slpTxData).to.eql({ + genesisInfo: undefined, + slpMeta: { + tokenId: + '0daf200e3418f2df1158efef36fbb507f12928f1fdcf3543703e64e75a4a9073', + tokenType: 'FUNGIBLE', + txType: 'SEND', + groupTokenId: undefined, + }, + }); + expect(tx.slpErrorMsg).to.eql(undefined); + expect(tx.block).to.eql({ + hash: '0000000000000000452f19532a6297ea194eaacac6d3bbcbf7c08a74cad84b44', + height: 697728, + timestamp: '1627790415', + }); + expect(tx.timeFirstSeen).to.eql('0'); + expect(tx.network).to.eql('XEC'); + }); +}); -describe("/token/:tokenId", () => { - const chronik = new ChronikClient(TEST_URL) - it("results in Not Found", async () => { - assert.isRejected( - chronik.token( - "0000000000000000000000000000000000000000000000000000000000000000", - ), - Error, - ) - }) - it("results in Not Found", async () => { - assert.isRejected( - chronik.token( - "0f3c3908a2ddec8dea91d2fe1f77295bbbb158af869bff345d44ae800f0a5498", - ), - Error, - ) - }) - it("gives us a token", async () => { - const token = await chronik.token( - "0daf200e3418f2df1158efef36fbb507f12928f1fdcf3543703e64e75a4a9073", - ) - expect(token.slpTxData).to.eql({ - genesisInfo: { - decimals: 4, - tokenDocumentHash: "", - tokenDocumentUrl: "https://www.raiusd.co/etoken", - tokenName: "RaiUSD", - tokenTicker: "USDR", - }, - slpMeta: { - groupTokenId: undefined, - tokenId: - "0daf200e3418f2df1158efef36fbb507f12928f1fdcf3543703e64e75a4a9073", - tokenType: "FUNGIBLE", - txType: "GENESIS", - }, - } as SlpTokenTxData) - expect(token.block).to.eql({ - hash: "00000000000000002686aa5ffa8401c7ed67338fb9475561b2fa9817d6571da8", - height: 697721, - timestamp: "1627783243", - }) - expect(token.timeFirstSeen).to.eql("0") - expect(token.initialTokenQuantity).to.eql("0") - expect(token.containsBaton).to.eql(true) - expect(token.network).to.eql("XEC") - }) -}) +describe('/token/:tokenId', () => { + const chronik = new ChronikClient(TEST_URL); + it('results in Not Found', async () => { + assert.isRejected( + chronik.token( + '0000000000000000000000000000000000000000000000000000000000000000', + ), + Error, + ); + }); + it('results in Not Found', async () => { + assert.isRejected( + chronik.token( + '0f3c3908a2ddec8dea91d2fe1f77295bbbb158af869bff345d44ae800f0a5498', + ), + Error, + ); + }); + it('gives us a token', async () => { + const token = await chronik.token( + '0daf200e3418f2df1158efef36fbb507f12928f1fdcf3543703e64e75a4a9073', + ); + expect(token.slpTxData).to.eql({ + genesisInfo: { + decimals: 4, + tokenDocumentHash: '', + tokenDocumentUrl: 'https://www.raiusd.co/etoken', + tokenName: 'RaiUSD', + tokenTicker: 'USDR', + }, + slpMeta: { + groupTokenId: undefined, + tokenId: + '0daf200e3418f2df1158efef36fbb507f12928f1fdcf3543703e64e75a4a9073', + tokenType: 'FUNGIBLE', + txType: 'GENESIS', + }, + } as SlpTokenTxData); + expect(token.block).to.eql({ + hash: '00000000000000002686aa5ffa8401c7ed67338fb9475561b2fa9817d6571da8', + height: 697721, + timestamp: '1627783243', + }); + expect(token.timeFirstSeen).to.eql('0'); + expect(token.initialTokenQuantity).to.eql('0'); + expect(token.containsBaton).to.eql(true); + expect(token.network).to.eql('XEC'); + }); +}); -describe("/validate-utxos", () => { - const chronik = new ChronikClient(TEST_URL) - it("validates the UTXOs", async () => { - const validationResult = await chronik.validateUtxos([ - { - txid: "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b", - outIdx: 0, - }, - { - txid: "0f3c3908a2ddec8dea91d2fe1f77295bbbb158af869bff345d44ae800f0a5498", - outIdx: 1, - }, - { - txid: "0f3c3908a2ddec8dea91d2fe1f77295bbbb158af869bff345d44ae800f0a5498", - outIdx: 100, - }, - { - txid: "0000000000000000000000000000000000000000000000000000000000000000", - outIdx: 100, - }, - ]) - const expectedResult: UtxoState[] = [ - { - height: 0, - isConfirmed: true, - state: "UNSPENT", - }, - { - height: 697728, - isConfirmed: true, - state: "SPENT", - }, - { - height: 697728, - isConfirmed: true, - state: "NO_SUCH_OUTPUT", - }, - { - height: -1, - isConfirmed: false, - state: "NO_SUCH_TX", - }, - ] - expect(validationResult).to.eql(expectedResult) - }) -}) +describe('/validate-utxos', () => { + const chronik = new ChronikClient(TEST_URL); + it('validates the UTXOs', async () => { + const validationResult = await chronik.validateUtxos([ + { + txid: '4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b', + outIdx: 0, + }, + { + txid: '0f3c3908a2ddec8dea91d2fe1f77295bbbb158af869bff345d44ae800f0a5498', + outIdx: 1, + }, + { + txid: '0f3c3908a2ddec8dea91d2fe1f77295bbbb158af869bff345d44ae800f0a5498', + outIdx: 100, + }, + { + txid: '0000000000000000000000000000000000000000000000000000000000000000', + outIdx: 100, + }, + ]); + const expectedResult: UtxoState[] = [ + { + height: 0, + isConfirmed: true, + state: 'UNSPENT', + }, + { + height: 697728, + isConfirmed: true, + state: 'SPENT', + }, + { + height: 697728, + isConfirmed: true, + state: 'NO_SUCH_OUTPUT', + }, + { + height: -1, + isConfirmed: false, + state: 'NO_SUCH_TX', + }, + ]; + expect(validationResult).to.eql(expectedResult); + }); +}); -describe("/script/:type/:payload/history", () => { - const chronik = new ChronikClient(TEST_URL) - it("gives us the first page", async () => { - const script = chronik.script("p2pk", GENESIS_PK) - const history = await script.history() - expect(history.numPages).to.equal(1) - expect(history.txs[history.txs.length - 1]).to.eql(GENESIS_TX) - }) - it("gives us an empty page for ?page=1", async () => { - const script = chronik.script("p2pk", GENESIS_PK) - const history = await script.history(1) - expect(history.numPages).to.equal(1) - expect(history.txs).to.eql([]) - }) - it("gives us just one tx for ?page_size=1", async () => { - const script = chronik.script("p2pk", GENESIS_PK) - const history = await script.history(undefined, 1) - expect(history.numPages).to.equal(2) - expect(history.txs.length).to.equal(1) - }) - it("gives us the Genesis tx for ?page=1&page_size=1", async () => { - const script = chronik.script("p2pk", GENESIS_PK) - const history = await script.history(1, 1) - expect(history.numPages).to.equal(2) - expect(history.txs).to.eql([GENESIS_TX]) - }) -}) +describe('/script/:type/:payload/history', () => { + const chronik = new ChronikClient(TEST_URL); + it('gives us the first page', async () => { + const script = chronik.script('p2pk', GENESIS_PK); + const history = await script.history(); + expect(history.numPages).to.equal(1); + expect(history.txs[history.txs.length - 1]).to.eql(GENESIS_TX); + }); + it('gives us an empty page for ?page=1', async () => { + const script = chronik.script('p2pk', GENESIS_PK); + const history = await script.history(1); + expect(history.numPages).to.equal(1); + expect(history.txs).to.eql([]); + }); + it('gives us just one tx for ?page_size=1', async () => { + const script = chronik.script('p2pk', GENESIS_PK); + const history = await script.history(undefined, 1); + expect(history.numPages).to.equal(2); + expect(history.txs.length).to.equal(1); + }); + it('gives us the Genesis tx for ?page=1&page_size=1', async () => { + const script = chronik.script('p2pk', GENESIS_PK); + const history = await script.history(1, 1); + expect(history.numPages).to.equal(2); + expect(history.txs).to.eql([GENESIS_TX]); + }); +}); -describe("/script/:type/:payload/utxos", () => { - const chronik = new ChronikClient(TEST_URL) - it("gives us the UTXOs", async () => { - const script = chronik.script("p2pk", GENESIS_PK) - const utxos = await script.utxos() - expect(utxos.length).to.equal(1) - expect(utxos[0].outputScript).to.eql("41" + GENESIS_PK + "ac") - expect(utxos[0].utxos[0]).to.eql(GENESIS_UTXO) - }) -}) +describe('/script/:type/:payload/utxos', () => { + const chronik = new ChronikClient(TEST_URL); + it('gives us the UTXOs', async () => { + const script = chronik.script('p2pk', GENESIS_PK); + const utxos = await script.utxos(); + expect(utxos.length).to.equal(1); + expect(utxos[0].outputScript).to.eql('41' + GENESIS_PK + 'ac'); + expect(utxos[0].utxos[0]).to.eql(GENESIS_UTXO); + }); +}); -describe("/ws", () => { - const chronik = new ChronikClient("https://chronik.be.cash/xpi") - xit("gives us a confirmation", async () => { - const promise = new Promise((resolve: (msg: SubscribeMsg) => void) => { - const ws = chronik.ws({ - onMessage: msg => { - resolve(msg) - ws.close() - }, - }) - ws.subscribe("p2pkh", "b8ae1c47effb58f72f7bca819fe7fc252f9e852e") - }) - const msg = await promise - expect(msg.type).to.eql("Confirmed") - }) - it("connects to the ws", async () => { - const promise = new Promise(resolve => { - const ws = chronik.ws({}) - ws.waitForOpen().then(() => { - resolve({}) - ws.close() - }) - }) - await promise - }) -}) +describe('/ws', () => { + const chronik = new ChronikClient('https://chronik.be.cash/xpi'); + xit('gives us a confirmation', async () => { + const promise = new Promise((resolve: (msg: SubscribeMsg) => void) => { + const ws = chronik.ws({ + onMessage: msg => { + resolve(msg); + ws.close(); + }, + }); + ws.subscribe('p2pkh', 'b8ae1c47effb58f72f7bca819fe7fc252f9e852e'); + }); + const msg = await promise; + expect(msg.type).to.eql('Confirmed'); + }); + it('connects to the ws', async () => { + const promise = new Promise(resolve => { + const ws = chronik.ws({}); + ws.waitForOpen().then(() => { + resolve({}); + ws.close(); + }); + }); + await promise; + }); +}); diff --git a/modules/chronik-client/tsconfig.json b/modules/chronik-client/tsconfig.json --- a/modules/chronik-client/tsconfig.json +++ b/modules/chronik-client/tsconfig.json @@ -1,101 +1,101 @@ { - "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig.json to read more about this file */ - /* Projects */ - // "incremental": true, /* Enable incremental compilation */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + /* Projects */ + // "incremental": true, /* Enable incremental compilation */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./", /* Specify the folder for .tsbuildinfo incremental compilation files. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - /* Language and Environment */ - "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ - // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + /* Language and Environment */ + "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h' */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */ + // "reactNamespace": "", /* Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - /* Modules */ - "module": "commonjs" /* Specify what module code is generated. */, - // "rootDir": "./", /* Specify the root folder within your source files. */ - // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "resolveJsonModule": true, /* Enable importing .json files */ - // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ + /* Modules */ + "module": "commonjs" /* Specify what module code is generated. */, + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like `./node_modules/@types`. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "resolveJsonModule": true, /* Enable importing .json files */ + // "noResolve": true, /* Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project. */ - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`. */ - /* Emit */ - "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */, - "declarationMap": true /* Create sourcemaps for d.ts files. */, - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - "sourceMap": true /* Create source map files for emitted JavaScript files. */, - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ - "outDir": "./dist" /* Specify an output folder for all emitted files. */, - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + /* Emit */ + "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */, + "declarationMap": true /* Create sourcemaps for d.ts files. */, + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + "sourceMap": true /* Create source map files for emitted JavaScript files. */, + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */ + "outDir": "./dist" /* Specify an output folder for all emitted files. */, + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have `@internal` in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like `__extends` in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing `const enum` declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - /* Type Checking */ - "strict": true /* Enable all strict type-checking options. */, - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ - // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ - // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + /* Type Checking */ + "strict": true /* Enable all strict type-checking options. */, + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied `any` type.. */ + // "strictNullChecks": true, /* When type checking, take into account `null` and `undefined`. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for `bind`, `call`, and `apply` methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when `this` is given the type `any`. */ + // "useUnknownInCatchVariables": true, /* Type catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when a local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Include 'undefined' in index signature results */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - } + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + } } diff --git a/modules/chronik-client/typedoc.json b/modules/chronik-client/typedoc.json --- a/modules/chronik-client/typedoc.json +++ b/modules/chronik-client/typedoc.json @@ -1,3 +1,3 @@ { - "excludePrivate": true + "excludePrivate": true } diff --git a/modules/ecashaddrjs/.mocharc.js b/modules/ecashaddrjs/.mocharc.js --- a/modules/ecashaddrjs/.mocharc.js +++ b/modules/ecashaddrjs/.mocharc.js @@ -2,5 +2,5 @@ module.exports = { require: 'mocha-suppress-logs', - "timeout": 15000 + timeout: 15000, };