update decode proto
This commit is contained in:
parent
6325ff7497
commit
953fd5cd9c
@ -13,12 +13,13 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@chenfengyuan/vue-countdown": "2",
|
||||
"@cosmjs/tendermint-rpc": "^0.32.2",
|
||||
"cosmjs-types": "^0.9.0",
|
||||
"@cosmjs/stargate": "^0.32.2",
|
||||
"@cosmjs/crypto": "^0.32.2",
|
||||
"@cosmjs/encoding": "^0.32.2",
|
||||
"@cosmjs/stargate": "^0.32.2",
|
||||
"@cosmjs/tendermint-rpc": "^0.32.2",
|
||||
"@iconify/vue": "^4.1.0",
|
||||
"@injectivelabs/core-proto-ts": "^0.0.21",
|
||||
"@injectivelabs/ts-types": "^1.14.5",
|
||||
"@intlify/unplugin-vue-i18n": "^0.8.2",
|
||||
"@leapwallet/cosmos-snap-provider": "^0.1.20",
|
||||
"@leapwallet/name-matcha": "^1.1.0",
|
||||
@ -33,6 +34,7 @@
|
||||
"axios": "^1.3.2",
|
||||
"buffer": "^6.0.3",
|
||||
"build": "^0.1.4",
|
||||
"cosmjs-types": "^0.9.0",
|
||||
"cross-fetch": "^3.1.5",
|
||||
"daisyui": "^3.1.0",
|
||||
"dayjs": "^1.11.7",
|
||||
|
||||
@ -10,6 +10,7 @@ import type { PaginatedProposals } from '@/types';
|
||||
import ProposalProcess from './ProposalProcess.vue';
|
||||
import type { PropType } from 'vue';
|
||||
import { computed, ref } from 'vue';
|
||||
import { fromTimestamp } from 'cosmjs-types/helpers';
|
||||
import type { QueryProposalsResponse } from 'cosmjs-types/cosmos/gov/v1beta1/query';
|
||||
const dialog = useTxDialog();
|
||||
defineProps({
|
||||
@ -118,7 +119,7 @@ function metaItem(metadata: string | undefined): {
|
||||
>
|
||||
{{
|
||||
format.toDay(
|
||||
Number(item.votingEndTime.seconds) * 1000,
|
||||
fromTimestamp(item.votingEndTime.seconds),
|
||||
'from'
|
||||
)
|
||||
}}
|
||||
@ -189,9 +190,7 @@ function metaItem(metadata: string | undefined): {
|
||||
<div
|
||||
class="truncate text-xs text-gray-500 dark:text-gray-400 flex items-center justify-end"
|
||||
>
|
||||
{{
|
||||
format.toDay(Number(item.votingEndTime.seconds) * 1000, 'from')
|
||||
}}
|
||||
{{ format.toDay(fromTimestamp(item.votingEndTime), 'from') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
import ApexCharts from 'vue3-apexcharts';
|
||||
import { computed, type PropType } from 'vue';
|
||||
import { useFormatter } from '@/stores';
|
||||
import { fromTimestamp } from 'cosmjs-types/helpers';
|
||||
import type { CommissionRate } from '@/types';
|
||||
|
||||
const props = defineProps({
|
||||
@ -128,7 +129,7 @@ const chartConfig = computed(() => {
|
||||
<div class="text-sm text-gray-500 dark:text-gray-400">
|
||||
{{
|
||||
`Updated at ${format.toDay(
|
||||
Number(props.commission?.updateTime.seconds) * 1000,
|
||||
fromTimestamp(props.commission?.updateTime),
|
||||
'short'
|
||||
)}`
|
||||
}}
|
||||
|
||||
@ -1,7 +1,10 @@
|
||||
<script lang="ts" setup>
|
||||
import { select } from './index';
|
||||
import { select, decodeProto } from './index';
|
||||
|
||||
const props = defineProps(['value', 'direct']);
|
||||
if (props.value.typeUrl) {
|
||||
props.value.value = decodeProto(props.value);
|
||||
}
|
||||
</script>
|
||||
<template>
|
||||
<Component :is="select(value, direct)" :value="value"></Component>
|
||||
|
||||
@ -8,13 +8,11 @@ const props = defineProps(['value']);
|
||||
<table class="table table-compact w-full text-sm">
|
||||
<tbody>
|
||||
<tr v-for="(v, k) of value">
|
||||
<td
|
||||
class="capitalize whitespace-break-spaces min-w-max"
|
||||
>
|
||||
<td class="capitalize whitespace-break-spaces min-w-max">
|
||||
{{ String(k).replaceAll('_', ' ') }}
|
||||
</td>
|
||||
<td class="w-4/5">
|
||||
<div class="overflow-hidden w-auto whitespace-normal" >
|
||||
<div class="overflow-hidden w-auto whitespace-normal">
|
||||
<Component
|
||||
v-if="v"
|
||||
:is="select(v, 'horizontal')"
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
import DynamicComponent from './DynamicComponent.vue';
|
||||
import { ref } from 'vue';
|
||||
const props = defineProps(['value']);
|
||||
|
||||
const tab = ref(Object.keys(props.value)[0] || '');
|
||||
|
||||
const changeTab = (val: string) => {
|
||||
|
||||
@ -1,19 +1,55 @@
|
||||
<script lang="ts" setup>
|
||||
import { toBase64, toHex } from '@cosmjs/encoding';
|
||||
import { fromAscii, toBase64, toHex } from '@cosmjs/encoding';
|
||||
import { computed } from '@vue/reactivity';
|
||||
import { ref } from 'vue';
|
||||
|
||||
const props = defineProps(['value']);
|
||||
const format = ref('base64');
|
||||
const text = computed(() => {
|
||||
return format.value === 'hex' ? toHex(props.value) : toBase64(props.value);
|
||||
switch (format.value) {
|
||||
case 'hex':
|
||||
return toHex(props.value);
|
||||
case 'base64':
|
||||
return toBase64(props.value);
|
||||
default:
|
||||
return fromAscii(props.value);
|
||||
}
|
||||
});
|
||||
function change() {
|
||||
format.value = format.value === 'hex' ? 'base64' : 'hex';
|
||||
function change(value: string) {
|
||||
format.value = value;
|
||||
}
|
||||
function getClass(value: string) {
|
||||
return value === format.value ? 'btn-primary' : '';
|
||||
}
|
||||
</script>
|
||||
<template>
|
||||
<span
|
||||
>{{ text }} <VIcon size="12" icon="mdi-cached" @click="change()"
|
||||
/></span>
|
||||
<div>
|
||||
<div>{{ text }}</div>
|
||||
<div class="btn-group mt-4" role="group">
|
||||
<button
|
||||
type="button"
|
||||
v-bind:class="getClass('utf8')"
|
||||
class="btn btn-sm"
|
||||
@click="change('utf8')"
|
||||
>
|
||||
Utf8
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
v-bind:class="getClass('base64')"
|
||||
class="btn btn-sm"
|
||||
@click="change('base64')"
|
||||
>
|
||||
Base64
|
||||
</button>
|
||||
<button
|
||||
type="button"
|
||||
v-bind:class="getClass('hex')"
|
||||
class="btn btn-sm"
|
||||
@click="change('hex')"
|
||||
>
|
||||
Hex
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -1,3 +1,6 @@
|
||||
import * as injProto from '@injectivelabs/core-proto-ts';
|
||||
import { MsgType } from '@injectivelabs/ts-types';
|
||||
|
||||
import ObjectElement from './ObjectElement.vue';
|
||||
import TextElement from './TextElement.vue';
|
||||
import ArrayElement from './ArrayElement.vue';
|
||||
@ -11,6 +14,7 @@ export function select(v: any, direct?: string) {
|
||||
// if(k === 'txs' && v) {
|
||||
// return TxsElement
|
||||
// } else {
|
||||
|
||||
const type = typeof v;
|
||||
switch (type) {
|
||||
case 'object':
|
||||
@ -31,7 +35,9 @@ function selectObject(v: Object, direct?: string) {
|
||||
return UInt8Array;
|
||||
case Array.isArray(v):
|
||||
return ArrayElement;
|
||||
case v && Object.keys(v).includes('amount') && Object.keys(v).includes('denom'): {
|
||||
case v &&
|
||||
Object.keys(v).includes('amount') &&
|
||||
Object.keys(v).includes('denom'): {
|
||||
return TokenElement;
|
||||
}
|
||||
case direct === 'horizontal':
|
||||
@ -40,3 +46,33 @@ function selectObject(v: Object, direct?: string) {
|
||||
return ObjectElement;
|
||||
}
|
||||
}
|
||||
|
||||
const typeMap = Object.fromEntries(
|
||||
Object.entries(MsgType).map(([k, v]) => ['/' + v, k])
|
||||
);
|
||||
|
||||
type TxType = keyof typeof MsgType;
|
||||
|
||||
const findType = (obj: any, type: string): any => {
|
||||
if (typeof obj !== 'object') return;
|
||||
const msg = obj[type];
|
||||
if (msg && msg.decode) return msg;
|
||||
for (const subObj of Object.values(obj)) {
|
||||
const find = findType(subObj, type);
|
||||
if (find) return find;
|
||||
}
|
||||
};
|
||||
|
||||
export const decodeProto = (msg: { typeUrl: string; value: Uint8Array }) => {
|
||||
const type = typeMap[msg.typeUrl];
|
||||
if (type) {
|
||||
const obj = findType(injProto, type);
|
||||
if (obj) {
|
||||
const res = obj.decode(msg.value);
|
||||
if (res.msgs) {
|
||||
res.msgs = res.msgs.map(decodeProto);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -25,7 +25,10 @@ const isFutureBlock = computed({
|
||||
get: () => {
|
||||
const latest = store.latest?.block?.header.height
|
||||
const isFuture = latest ? target.value > Number(latest) : true
|
||||
if (!isFuture && !current.value.blockId) store.fetchBlock(target.value).then(x => current.value = x)
|
||||
if (!isFuture && !current.value.blockId) store.fetchBlock(target.value).then(x => {
|
||||
current.value = x;
|
||||
console.log('fetchBlock',x.block.txs);
|
||||
})
|
||||
return isFuture
|
||||
},
|
||||
set: val => {
|
||||
@ -56,7 +59,10 @@ function updateTarget() {
|
||||
|
||||
onBeforeRouteUpdate(async (to, from, next) => {
|
||||
if (from.path !== to.path) {
|
||||
store.fetchBlock(String(to.params.height)).then(x => current.value = x);
|
||||
store.fetchBlock(String(to.params.height)).then(x => {
|
||||
current.value = x;
|
||||
console.log('fetchBlock',x.block.txs);
|
||||
});
|
||||
next();
|
||||
}
|
||||
});
|
||||
|
||||
@ -50,6 +50,7 @@ export const useIBCModule = defineStore('module-ibc', {
|
||||
load() {
|
||||
const client = new ChainRegistryClient();
|
||||
client.fetchIBCPaths().then((res) => {
|
||||
console.log('fetchIBCPaths', res);
|
||||
this.paths = res;
|
||||
});
|
||||
},
|
||||
|
||||
@ -26,6 +26,7 @@ import PaginationBar from '@/components/PaginationBar.vue';
|
||||
import { fromBase64, toBase64 } from '@cosmjs/encoding';
|
||||
import { stringToUint8Array, uint8ArrayToString } from '@/libs/utils';
|
||||
import type { TxSearchResponse } from '@cosmjs/tendermint-rpc';
|
||||
import { fromTimestamp } from 'cosmjs-types/helpers';
|
||||
import type {
|
||||
DelegationResponse,
|
||||
Validator,
|
||||
@ -513,14 +514,12 @@ function mapDelegators(messages: any[]) {
|
||||
<h4
|
||||
v-if="
|
||||
v.unbondingTime &&
|
||||
!new Date(Number(v.unbondingTime.seconds) * 1000)
|
||||
!fromTimestamp(v.unbondingTime)
|
||||
.toString()
|
||||
.startsWith('1970')
|
||||
"
|
||||
>
|
||||
{{
|
||||
format.toDay(Number(v.unbondingTime.seconds) * 1000, 'from')
|
||||
}}
|
||||
{{ format.toDay(fromTimestamp(v.unbondingTime), 'from') }}
|
||||
</h4>
|
||||
<h4 v-else>-</h4>
|
||||
<span class="text-sm">{{ $t('staking.unbonding_time') }}</span>
|
||||
|
||||
@ -2,113 +2,132 @@
|
||||
import { useBaseStore, useBlockchain, useFormatter } from '@/stores';
|
||||
import DynamicComponent from '@/components/dynamic/DynamicComponent.vue';
|
||||
import { computed, ref } from '@vue/reactivity';
|
||||
import type { Tx, TxResponse } from '@/types';
|
||||
import type { GetTxResponse } from 'cosmjs-types/cosmos/tx/v1beta1/service';
|
||||
|
||||
import { JsonViewer } from "vue3-json-viewer"
|
||||
import { JsonViewer } from 'vue3-json-viewer';
|
||||
// if you used v1.0.5 or latster ,you should add import "vue3-json-viewer/dist/index.css"
|
||||
import "vue3-json-viewer/dist/index.css";
|
||||
import 'vue3-json-viewer/dist/index.css';
|
||||
|
||||
const props = defineProps(['hash', 'chain']);
|
||||
|
||||
const blockchain = useBlockchain();
|
||||
const baseStore = useBaseStore();
|
||||
const format = useFormatter();
|
||||
const tx = ref(
|
||||
{} as {
|
||||
tx: Tx;
|
||||
tx_response: TxResponse;
|
||||
}
|
||||
);
|
||||
const tx = ref({} as GetTxResponse);
|
||||
if (props.hash) {
|
||||
blockchain.rpc.getTx(props.hash).then((x) => (tx.value = x));
|
||||
blockchain.rpc.getTx(props.hash).then((x) => (tx.value = x));
|
||||
}
|
||||
const messages = computed(() => {
|
||||
return tx.value.tx?.body?.messages || [];
|
||||
return tx.value.tx?.body?.messages || [];
|
||||
});
|
||||
</script>
|
||||
<template>
|
||||
<div>
|
||||
<div v-if="tx.tx_response" class="bg-base-100 px-4 pt-3 pb-4 rounded shadow mb-4">
|
||||
<h2 class="card-title truncate mb-2">{{ $t('tx.title') }}</h2>
|
||||
<div class="overflow-auto-x">
|
||||
<table class="table text-sm">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{ $t('tx.tx_hash') }}</td>
|
||||
<td>{{ tx.tx_response.txhash }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $t('account.height') }}</td>
|
||||
<td>
|
||||
<RouterLink :to="`/${props.chain}/block/${tx.tx_response.height}`" class="text-primary dark:invert">{{ tx.tx_response.height
|
||||
}}
|
||||
</RouterLink>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $t('staking.status') }}</td>
|
||||
<td>
|
||||
<span class="text-xs truncate relative py-2 px-4 w-fit mr-2 rounded" :class="`text-${tx.tx_response.code === 0 ? 'success' : 'error'
|
||||
}`">
|
||||
<span class="inset-x-0 inset-y-0 opacity-10 absolute" :class="`bg-${tx.tx_response.code === 0 ? 'success' : 'error'
|
||||
}`"></span>
|
||||
{{ tx.tx_response.code === 0 ? 'Success' : 'Failed' }}
|
||||
</span>
|
||||
<span>
|
||||
{{ tx.tx_response.code === 0 ? '' : tx?.tx_response?.raw_log }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $t('account.time') }}</td>
|
||||
<td>
|
||||
{{ format.toLocaleDate(tx.tx_response.timestamp) }} ({{
|
||||
format.toDay(tx.tx_response.timestamp, 'from')
|
||||
}})
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $t('tx.gas') }}</td>
|
||||
<td>
|
||||
{{ tx.tx_response.gas_used }} / {{ tx.tx_response.gas_wanted }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $t('tx.fee') }}</td>
|
||||
<td>
|
||||
{{
|
||||
format.formatTokens(
|
||||
tx.tx?.auth_info?.fee?.amount,
|
||||
true,
|
||||
'0,0.[00]'
|
||||
)
|
||||
}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $t('tx.memo') }}</td>
|
||||
<td>{{ tx.tx.body.memo }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="tx.tx_response" class="bg-base-100 px-4 pt-3 pb-4 rounded shadow mb-4">
|
||||
<h2 class="card-title truncate mb-2">
|
||||
{{ $t('account.messages') }}: ({{ messages.length }})
|
||||
</h2>
|
||||
<div v-for="(msg, i) in messages">
|
||||
<div class="border border-slate-400 rounded-md mt-4">
|
||||
<DynamicComponent :value="msg" />
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="messages.length === 0">{{ $t('tx.no_messages') }}</div>
|
||||
</div>
|
||||
|
||||
<div v-if="tx.tx_response" class="bg-base-100 px-4 pt-3 pb-4 rounded shadow">
|
||||
<h2 class="card-title truncate mb-2">JSON</h2>
|
||||
<JsonViewer :value="tx" :theme="baseStore.theme" style="background: transparent;" copyable boxed sort expand-depth="5"/>
|
||||
</div>
|
||||
<div>
|
||||
<div
|
||||
v-if="tx.txResponse"
|
||||
class="bg-base-100 px-4 pt-3 pb-4 rounded shadow mb-4"
|
||||
>
|
||||
<h2 class="card-title truncate mb-2">{{ $t('tx.title') }}</h2>
|
||||
<div class="overflow-auto-x">
|
||||
<table class="table text-sm">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{ $t('tx.tx_hash') }}</td>
|
||||
<td>{{ tx.txResponse.txhash }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $t('account.height') }}</td>
|
||||
<td>
|
||||
<RouterLink
|
||||
:to="`/${props.chain}/block/${tx.txResponse.height}`"
|
||||
class="text-primary dark:invert"
|
||||
>{{ tx.txResponse.height }}
|
||||
</RouterLink>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $t('staking.status') }}</td>
|
||||
<td>
|
||||
<span
|
||||
class="text-xs truncate relative py-2 px-4 w-fit mr-2 rounded"
|
||||
:class="`text-${
|
||||
tx.txResponse.code === 0 ? 'success' : 'error'
|
||||
}`"
|
||||
>
|
||||
<span
|
||||
class="inset-x-0 inset-y-0 opacity-10 absolute"
|
||||
:class="`bg-${
|
||||
tx.txResponse.code === 0 ? 'success' : 'error'
|
||||
}`"
|
||||
></span>
|
||||
{{ tx.txResponse.code === 0 ? 'Success' : 'Failed' }}
|
||||
</span>
|
||||
<span>
|
||||
{{ tx.txResponse.code === 0 ? '' : tx?.txResponse?.rawLog }}
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $t('account.time') }}</td>
|
||||
<td>
|
||||
{{ format.toLocaleDate(tx.txResponse.timestamp) }} ({{
|
||||
format.toDay(tx.txResponse.timestamp, 'from')
|
||||
}})
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $t('tx.gas') }}</td>
|
||||
<td>
|
||||
{{ tx.txResponse.gasUsed }} / {{ tx.txResponse.gasWanted }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $t('tx.fee') }}</td>
|
||||
<td>
|
||||
{{
|
||||
format.formatTokens(
|
||||
tx.tx?.authInfo?.fee?.amount,
|
||||
true,
|
||||
'0,0.[00]'
|
||||
)
|
||||
}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $t('tx.memo') }}</td>
|
||||
<td>{{ tx.tx?.body?.memo }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="tx.txResponse"
|
||||
class="bg-base-100 px-4 pt-3 pb-4 rounded shadow mb-4"
|
||||
>
|
||||
<h2 class="card-title truncate mb-2">
|
||||
{{ $t('account.messages') }}: ({{ messages.length }})
|
||||
</h2>
|
||||
<div v-for="(msg, i) in messages">
|
||||
<div class="border border-slate-400 rounded-md mt-4">
|
||||
<DynamicComponent :value="msg" />
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="messages.length === 0">{{ $t('tx.no_messages') }}</div>
|
||||
</div>
|
||||
|
||||
<div v-if="tx.txResponse" class="bg-base-100 px-4 pt-3 pb-4 rounded shadow">
|
||||
<h2 class="card-title truncate mb-2">JSON</h2>
|
||||
<JsonViewer
|
||||
:value="tx"
|
||||
:theme="baseStore.theme"
|
||||
style="background: transparent"
|
||||
copyable
|
||||
boxed
|
||||
sort
|
||||
expand-depth="5"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
86
yarn.lock
86
yarn.lock
@ -1833,6 +1833,31 @@
|
||||
dependencies:
|
||||
"@iconify/types" "^2.0.0"
|
||||
|
||||
"@injectivelabs/core-proto-ts@^0.0.21":
|
||||
version "0.0.21"
|
||||
resolved "https://registry.yarnpkg.com/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.21.tgz#b52d4bee7556ce57c7c7e2c1ec7f6b920b4c2ffd"
|
||||
integrity sha512-RBxSkRBCty60R/l55/D1jsSW0Aof5dyGFhCFdN3A010KjMv/SzZGGr+6DZPY/hflyFeaJzDv/VTopCymKNRBvQ==
|
||||
dependencies:
|
||||
"@injectivelabs/grpc-web" "^0.0.1"
|
||||
google-protobuf "^3.14.0"
|
||||
protobufjs "^7.0.0"
|
||||
rxjs "^7.4.0"
|
||||
|
||||
"@injectivelabs/grpc-web@^0.0.1":
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz#24c028f6db50e589e30505efd2077110c8b492ba"
|
||||
integrity sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==
|
||||
dependencies:
|
||||
browser-headers "^0.4.1"
|
||||
|
||||
"@injectivelabs/ts-types@^1.14.5":
|
||||
version "1.14.5"
|
||||
resolved "https://registry.yarnpkg.com/@injectivelabs/ts-types/-/ts-types-1.14.5.tgz#e7ed5fa87052b0763908bd77b132775aa37a097c"
|
||||
integrity sha512-dwmEJE90vMr1zkQhz5lX2280sBMe2GvAj98vOHoL2RLTo0OQkJZrirUHwsTkexJf7sFZIT2PlmLCfix9Ulcp5A==
|
||||
dependencies:
|
||||
link-module-alias "^1.2.0"
|
||||
shx "^0.3.2"
|
||||
|
||||
"@intlify/bundle-utils@^4.0.0":
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@intlify/bundle-utils/-/bundle-utils-4.0.0.tgz#29c1d602c7e4e33b516581496a7c6740ed7e2585"
|
||||
@ -3013,6 +3038,11 @@ brorand@^1.1.0:
|
||||
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
|
||||
integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
|
||||
|
||||
browser-headers@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.1.tgz#4308a7ad3b240f4203dbb45acedb38dc2d65dd02"
|
||||
integrity sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==
|
||||
|
||||
browserslist@^4.0.0, browserslist@^4.21.10, browserslist@^4.21.4, browserslist@^4.21.9:
|
||||
version "4.21.10"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0"
|
||||
@ -4241,6 +4271,11 @@ good-listener@^1.2.2:
|
||||
dependencies:
|
||||
delegate "^3.1.2"
|
||||
|
||||
google-protobuf@^3.14.0:
|
||||
version "3.21.2"
|
||||
resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4"
|
||||
integrity sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==
|
||||
|
||||
gopd@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
|
||||
@ -4870,6 +4905,13 @@ lines-and-columns@^1.1.6:
|
||||
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
|
||||
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
|
||||
|
||||
link-module-alias@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/link-module-alias/-/link-module-alias-1.2.0.tgz#6a3b7b014cfe18b2759a1222fffce6a40fc120e4"
|
||||
integrity sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw==
|
||||
dependencies:
|
||||
chalk "^2.4.1"
|
||||
|
||||
load-json-file@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
|
||||
@ -4929,7 +4971,7 @@ long@^4.0.0:
|
||||
resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28"
|
||||
integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==
|
||||
|
||||
long@^5.2.0, long@^5.2.1, long@^5.2.3:
|
||||
long@^5.0.0, long@^5.2.0, long@^5.2.1, long@^5.2.3:
|
||||
version "5.2.3"
|
||||
resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1"
|
||||
integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==
|
||||
@ -5098,7 +5140,7 @@ minimist@1.2.6:
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
|
||||
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
|
||||
|
||||
minimist@^1.2.6:
|
||||
minimist@^1.2.3, minimist@^1.2.6:
|
||||
version "1.2.8"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
|
||||
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
|
||||
@ -5809,6 +5851,24 @@ protobufjs@^6.11.3, protobufjs@^6.8.8, protobufjs@~6.11.2, protobufjs@~6.11.3:
|
||||
"@types/node" ">=13.7.0"
|
||||
long "^4.0.0"
|
||||
|
||||
protobufjs@^7.0.0:
|
||||
version "7.2.6"
|
||||
resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.6.tgz#4a0ccd79eb292717aacf07530a07e0ed20278215"
|
||||
integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw==
|
||||
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/node" ">=13.7.0"
|
||||
long "^5.0.0"
|
||||
|
||||
proxy-from-env@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
|
||||
@ -6034,6 +6094,13 @@ rxjs@^6.4.0:
|
||||
dependencies:
|
||||
tslib "^1.9.0"
|
||||
|
||||
rxjs@^7.4.0:
|
||||
version "7.8.1"
|
||||
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543"
|
||||
integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==
|
||||
dependencies:
|
||||
tslib "^2.1.0"
|
||||
|
||||
safe-array-concat@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c"
|
||||
@ -6131,7 +6198,7 @@ shell-quote@^1.6.1:
|
||||
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680"
|
||||
integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==
|
||||
|
||||
shelljs@0.8.5:
|
||||
shelljs@0.8.5, shelljs@^0.8.5:
|
||||
version "0.8.5"
|
||||
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c"
|
||||
integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==
|
||||
@ -6140,6 +6207,14 @@ shelljs@0.8.5:
|
||||
interpret "^1.0.0"
|
||||
rechoir "^0.6.2"
|
||||
|
||||
shx@^0.3.2:
|
||||
version "0.3.4"
|
||||
resolved "https://registry.yarnpkg.com/shx/-/shx-0.3.4.tgz#74289230b4b663979167f94e1935901406e40f02"
|
||||
integrity sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==
|
||||
dependencies:
|
||||
minimist "^1.2.3"
|
||||
shelljs "^0.8.5"
|
||||
|
||||
side-channel@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
|
||||
@ -6616,6 +6691,11 @@ tslib@^1.9.0:
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||
|
||||
tslib@^2.1.0:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
|
||||
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
|
||||
|
||||
type@^1.0.1:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user