diff --git a/.github/workflows/build-and-deploy.yaml b/.github/workflows/build-and-deploy.yaml
new file mode 100644
index 0000000..ecbcd14
--- /dev/null
+++ b/.github/workflows/build-and-deploy.yaml
@@ -0,0 +1,52 @@
+name: Deploy static content to Pages
+
+on:
+ workflow_dispatch:
+
+# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+permissions:
+ contents: write
+ pages: write
+ id-token: write
+
+concurrency:
+ group: "pages"
+ cancel-in-progress: false
+
+jobs:
+ build-and-deploy:
+ environment:
+ name: github-pages
+ url: ${{ steps.deployment.outputs.page_url }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Setup Pages
+ uses: actions/configure-pages@v3
+
+ - name: Set Node.js 18.x
+ uses: actions/setup-node@v3
+ with:
+ node-version: 18.x
+
+ - name: Run install
+ uses: borales/actions-yarn@v4
+ with:
+ cmd: install # will run `yarn install` command
+
+ - name: Build production bundle
+ uses: borales/actions-yarn@v4
+ with:
+ cmd: build # will run `yarn build` command
+
+ - name: Upload artifact
+ uses: actions/upload-pages-artifact@v2
+ with:
+ path: 'build'
+
+ - name: Deploy to GitHub Pages
+ id: deployment
+ uses: actions/deploy-pages@v2
+
diff --git a/package.json b/package.json
index fc94796..596310a 100644
--- a/package.json
+++ b/package.json
@@ -12,6 +12,7 @@
"devDependencies": {
"@sveltejs/adapter-static": "^2.0.3",
"@sveltejs/kit": "^1.22.6",
+ "@sveltejs/vite-plugin-svelte": "^2.4.5",
"@typescript-eslint/eslint-plugin": "^6.5.0",
"@typescript-eslint/parser": "^6.5.0",
"eslint": "^8.48.0",
@@ -21,8 +22,7 @@
"prettier-plugin-svelte": "^3.0.3",
"svelte": "^4.2.0",
"svelte-check": "^3.5.0",
- "vite": "^4.4.9",
- "@sveltejs/vite-plugin-svelte": "^2.4.5"
+ "vite": "^4.4.9"
},
"prettier": {
"printWidth": 100,
@@ -32,6 +32,7 @@
"dependencies": {
"axios": "^1.5.0",
"moment": "^2.29.4",
+ "node-fetch": "^3.3.2",
"uikit": "^3.16.26",
"uikit-icons": "^0.5.0"
}
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index 0a43413..ec45a14 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -9,7 +9,7 @@
import AccountView from '../ui/AccountView.svelte'
import BoundaryStatus from '../ui/BoundaryStatus.svelte'
// import GovEvents from '../ui/GovEvents.svelte'
-
+ import TransactionTable from '../ui/TransactionTable.svelte'
onMount(async () => {
await initApi() // ONLY DO THIS ONCE ON LOAD
@@ -52,5 +52,7 @@
+
+
diff --git a/src/store/index.ts b/src/store/index.ts
index 9ba8d84..152f949 100644
--- a/src/store/index.ts
+++ b/src/store/index.ts
@@ -8,11 +8,13 @@ import type {
SystemInfo,
ProofOfFee,
govEventData,
+ Transaction,
} from '../types'
import * as systemPayloads from '../api/payloads/system'
import * as validatorPayloads from '../api/payloads/validators'
import * as commonPayloads from '../api/payloads/common'
import { govEvents } from '../api/payloads/events'
+import { fetchTransactions } from './transactions.js'
export interface User {
address: string
@@ -32,7 +34,7 @@ export const indexDataStore = writable()
export const valDataStore = writable()
export const selectedAccount = writable({ address: '' })
export const govStore = writable()
-
+export const transactions = writable([])
export const setAccount = (address: string) => {
selectedAccount.set({
address,
@@ -158,6 +160,7 @@ export const refresh = async () => {
getIndexData()
getSystemInfo()
getValidators()
+ fetchTransactions()
getEventList(govEvents()).then((res) => govStore.set(res))
} catch (error) {
console.error(`Failed to refresh: ${error}`)
diff --git a/src/store/transactions.js b/src/store/transactions.js
new file mode 100644
index 0000000..b9e34d2
--- /dev/null
+++ b/src/store/transactions.js
@@ -0,0 +1,86 @@
+import { transactions } from '.'
+
+async function queryTransactions(offset = 0, limit = 100) {
+ const transactions = await fetch('https://api.0l.fyi/graphql', {
+ headers: {
+ accept: '*/*',
+ 'accept-language': 'en,zh-CN;q=0.9,zh;q=0.8,eu;q=0.7',
+ 'content-type': 'application/json',
+ 'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',
+ 'sec-ch-ua-mobile': '?0',
+ 'sec-ch-ua-platform': '"macOS"',
+ 'sec-fetch-dest': 'empty',
+ 'sec-fetch-mode': 'cors',
+ 'sec-fetch-site': 'same-site',
+ },
+ mode: 'cors',
+ credentials: 'omit',
+ body: JSON.stringify({
+ operationName: 'GetUserTransactions',
+ variables: {
+ limit: limit,
+ offset: offset,
+ },
+ query:
+ 'query GetUserTransactions($limit: Int!, $offset: Int!) {\n userTransactions(limit: $limit, offset: $offset, order: "DESC") {\n size\n items {\n version\n sender\n moduleAddress\n moduleName\n functionName\n timestamp\n success\n __typename\n }\n __typename\n }\n}',
+ }),
+ method: 'POST',
+ }).then((res) => res.json())
+ return transactions.data.userTransactions
+}
+
+async function getTransactionDetail(version) {
+ const data = await fetch(`https://rpc.0l.fyi/v1/transactions/by_version/${version}`).then((res) =>
+ res.json(),
+ )
+ return data.payload.arguments
+}
+let isFetching = false;
+export async function fetchTransactions() {
+ if (isFetching) return;
+ const endTime = (Date.now() - 3 * 24 * 60 * 60 * 1000) * 1_000;
+ const minAmount = 1_000 * 1e6;
+ const limit = 200
+ let page = 0
+ const { size } = await queryTransactions(0, 1)
+ const totalPage = Math.ceil(size / limit)
+ let allTransferList = []
+ isFetching = true;
+ for (page = 0; page < totalPage; page++) {
+ try {
+ const { items } = await queryTransactions(page * limit, limit)
+ if (items[0] && items[0].timestamp < endTime) {
+ break
+ }
+ let transferList = items.filter(
+ (item) =>
+ item.functionName === 'transfer' && item.success && item.timestamp >= endTime,
+ )
+
+ const details = await Promise.all(
+ transferList.map((item) => getTransactionDetail(item.version)),
+ )
+
+ transferList = transferList.map((item, index) => {
+ const [receiver, amount] = details[index]
+ return {
+ sender: item.sender.toLowerCase(),
+ receiver: receiver.slice(2).toLowerCase(),
+ amount: amount,
+ ledger_version: item.version,
+ ledger_timestamp: item.timestamp.toString(),
+ }
+ })
+ allTransferList = allTransferList.concat(transferList.filter(t => t.amount >= minAmount));
+ console.log(`${page + 1}/${totalPage}`)
+ } catch (error) {
+ console.log('Fetch error, will retry after 3s')
+ await new Promise((resolve) => setTimeout(resolve, 3000))
+ page-- // Retry the same page
+ }
+ }
+ transactions.set(allTransferList)
+ isFetching = false
+}
+
+// fetchTransactions()
diff --git a/src/types/index.ts b/src/types/index.ts
index 09056c4..654aba9 100644
--- a/src/types/index.ts
+++ b/src/types/index.ts
@@ -40,6 +40,7 @@ export interface SlowWalletBalance {
unlocked: number
total: number
}
+
export interface UserAccount {
address: string
in_val_set?: boolean
@@ -53,6 +54,7 @@ export interface valData {
eligible_validators: string[] // Array of addresses
current_profiles: UserAccount[]
}
+
export interface govEventData {
data: {
num_votes: string
@@ -62,3 +64,11 @@ export interface govEventData {
voter: string
}
}
+
+export interface Transaction {
+ sender: string,
+ receiver: string,
+ amount: number,
+ ledger_version: number,
+ ledger_timestamp: number,
+}
diff --git a/src/ui/TransactionTable.svelte b/src/ui/TransactionTable.svelte
new file mode 100644
index 0000000..25a08ba
--- /dev/null
+++ b/src/ui/TransactionTable.svelte
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+ Sender |
+ Receiver |
+ Amount |
+ Version |
+ Timestamp |
+
+
+
+ {#if $transactions.length > 0}
+ {#each $transactions as tx}
+
+ {tx.sender} |
+ {tx.receiver} |
+ {scaleCoin(tx.amount)} |
+ {tx.ledger_version} |
+ {new Date(Math.floor(tx.ledger_timestamp / 1_000)).toLocaleString()} |
+
+ {/each}
+ {/if}
+
+
+
diff --git a/src/ui/Transactions.svelte b/src/ui/Transactions.svelte
new file mode 100644
index 0000000..25c1818
--- /dev/null
+++ b/src/ui/Transactions.svelte
@@ -0,0 +1,45 @@
+
+
+
+ {#if $valDataStore && $valDataStore.current_list}
+
+ Validator Set ({($valDataStore &&
+ $valDataStore.current_list &&
+ $valDataStore.current_list.length) ||
+ 0}):
+
+ {/if}
+
+ {#if $systemInfo}
+ Epoch Reward: {scaleCoin($systemInfo.consensus_reward)}
+ {/if}
+
+ {#if profiles && profiles.length > 0}
+
+ {:else}
+ loading ...
+ {/if}
+
diff --git a/yarn.lock b/yarn.lock
index 41c35fd..4c99e6a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -32,12 +32,12 @@
"@esbuild/darwin-arm64@0.18.16":
version "0.18.16"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.16.tgz#3c5a083e6e08a50f478fa243939989d86be1c6bf"
+ resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.16.tgz"
integrity sha512-aBxruWCII+OtluORR/KvisEw0ALuw/qDQWvkoosA+c/ngC/Kwk0lLaZ+B++LLS481/VdydB2u6tYpWxUfnLAIw==
"@esbuild/darwin-x64@0.18.16":
version "0.18.16"
- resolved "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.16.tgz"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.16.tgz#a8f3b61bee2807131cbe28eb164ad2b0333b59f5"
integrity sha512-6w4Dbue280+rp3LnkgmriS1icOUZDyPuZo/9VsuMUTns7SYEiOaJ7Ca1cbhu9KVObAWfmdjUl4gwy9TIgiO5eA==
"@esbuild/freebsd-arm64@0.18.16":
@@ -157,6 +157,11 @@
resolved "https://registry.npmjs.org/@eslint/js/-/js-8.48.0.tgz"
integrity sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==
+"@fastify/busboy@^2.0.0":
+ version "2.1.1"
+ resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz"
+ integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==
+
"@humanwhocodes/config-array@^0.11.10":
version "0.11.10"
resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.10.tgz"
@@ -258,53 +263,41 @@
integrity sha512-VUqTfXsxYGugCpMqQv1U0LIdbR3S5nBkMMDmpjGVJyM6Q2jHVMFtdWJCkeHMySc6mZxJ+0eZK3T7IgmUCDrcUQ==
"@sveltejs/kit@^1.22.6":
- version "1.22.6"
- resolved "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.22.6.tgz"
- integrity sha512-SDKxI/QpsReCwIn5czjT53fKlPBybbmMk67d317gUqfeORroBAFN1Z6s/x0E1JYi+04i7kKllS+Sz9wVfmUkAQ==
+ version "1.30.4"
+ resolved "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.30.4.tgz"
+ integrity sha512-JSQIQT6XvdchCRQEm7BABxPC56WP5RYVONAi+09S8tmzeP43fBsRlr95bFmsTQM2RHBldfgQk+jgdnsKI75daA==
dependencies:
- "@sveltejs/vite-plugin-svelte" "^2.4.1"
+ "@sveltejs/vite-plugin-svelte" "^2.5.0"
"@types/cookie" "^0.5.1"
cookie "^0.5.0"
devalue "^4.3.1"
esm-env "^1.0.0"
kleur "^4.1.5"
magic-string "^0.30.0"
- mime "^3.0.0"
+ mrmime "^1.0.1"
sade "^1.8.1"
set-cookie-parser "^2.6.0"
sirv "^2.0.2"
- undici "~5.23.0"
+ tiny-glob "^0.2.9"
+ undici "^5.28.3"
-"@sveltejs/vite-plugin-svelte-inspector@^1.0.3":
- version "1.0.3"
- resolved "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-1.0.3.tgz"
- integrity sha512-Khdl5jmmPN6SUsVuqSXatKpQTMIifoQPDanaxC84m9JxIibWvSABJyHpyys0Z+1yYrxY5TTEQm+6elh0XCMaOA==
- dependencies:
- debug "^4.3.4"
-
-"@sveltejs/vite-plugin-svelte@^2.4.1":
- version "2.4.3"
- resolved "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.3.tgz"
- integrity sha512-NY2h+B54KHZO3kDURTdARqthn6D4YSIebtfW75NvZ/fwyk4G+AJw3V/i0OBjyN4406Ht9yZcnNWMuRUFnDNNiA==
+"@sveltejs/vite-plugin-svelte-inspector@^1.0.4":
+ version "1.0.4"
+ resolved "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-1.0.4.tgz"
+ integrity sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==
dependencies:
- "@sveltejs/vite-plugin-svelte-inspector" "^1.0.3"
debug "^4.3.4"
- deepmerge "^4.3.1"
- kleur "^4.1.5"
- magic-string "^0.30.1"
- svelte-hmr "^0.15.2"
- vitefu "^0.2.4"
-"@sveltejs/vite-plugin-svelte@^2.4.5":
- version "2.4.5"
- resolved "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.5.tgz"
- integrity sha512-UJKsFNwhzCVuiZd06jM/psscyNJNDwjQC+qIeb7GBJK9iWeQCcIyfcPWDvbCudfcJggY9jtxJeeaZH7uny93FQ==
+"@sveltejs/vite-plugin-svelte@^2.4.5", "@sveltejs/vite-plugin-svelte@^2.5.0":
+ version "2.5.3"
+ resolved "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.5.3.tgz"
+ integrity sha512-erhNtXxE5/6xGZz/M9eXsmI7Pxa6MS7jyTy06zN3Ck++ldrppOnOlJwHHTsMC7DHDQdgUp4NAc4cDNQ9eGdB/w==
dependencies:
- "@sveltejs/vite-plugin-svelte-inspector" "^1.0.3"
+ "@sveltejs/vite-plugin-svelte-inspector" "^1.0.4"
debug "^4.3.4"
deepmerge "^4.3.1"
kleur "^4.1.5"
- magic-string "^0.30.2"
+ magic-string "^0.30.3"
svelte-hmr "^0.15.3"
vitefu "^0.2.4"
@@ -325,7 +318,7 @@
"@types/prop-types@*":
version "15.7.11"
- resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.11.tgz#2596fb352ee96a1379c657734d4b913a613ad563"
+ resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz"
integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==
"@types/pug@^2.0.6":
@@ -335,7 +328,7 @@
"@types/react@^16.9.11":
version "16.14.52"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.52.tgz#d6c31c3f69cf6ae10718d0a07a2ef6f2ebafc490"
+ resolved "https://registry.npmjs.org/@types/react/-/react-16.14.52.tgz"
integrity sha512-4+ZN73hgRW3Gang3QMqWjrqPPkf+lWZYiyG4uXtUbpd+7eiBDw6Gemila6rXDd8DorADupTiIERL6Mb5BQTF2w==
dependencies:
"@types/prop-types" "*"
@@ -344,7 +337,7 @@
"@types/scheduler@*":
version "0.16.8"
- resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.8.tgz#ce5ace04cfeabe7ef87c0091e50752e36707deff"
+ resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz"
integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==
"@types/semver@^7.5.0":
@@ -517,11 +510,11 @@ asynckit@^0.4.0:
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
axios@^1.5.0:
- version "1.5.0"
- resolved "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz"
- integrity sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==
+ version "1.6.7"
+ resolved "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz"
+ integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==
dependencies:
- follow-redirects "^1.15.0"
+ follow-redirects "^1.15.4"
form-data "^4.0.0"
proxy-from-env "^1.1.0"
@@ -562,13 +555,6 @@ buffer-crc32@^0.2.5:
resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz"
integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
-busboy@^1.6.0:
- version "1.6.0"
- resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz"
- integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
- dependencies:
- streamsearch "^1.1.0"
-
callsites@^3.0.0:
version "3.1.0"
resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
@@ -671,9 +657,14 @@ cssesc@^3.0.0:
csstype@^3.0.2:
version "3.1.2"
- resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
+ resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz"
integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
+data-uri-to-buffer@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz"
+ integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==
+
debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4:
version "4.3.4"
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
@@ -924,6 +915,14 @@ fastq@^1.6.0:
dependencies:
reusify "^1.0.4"
+fetch-blob@^3.1.2, fetch-blob@^3.1.4:
+ version "3.2.0"
+ resolved "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz"
+ integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==
+ dependencies:
+ node-domexception "^1.0.0"
+ web-streams-polyfill "^3.0.3"
+
file-entry-cache@^6.0.1:
version "6.0.1"
resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
@@ -991,10 +990,10 @@ flatted@^3.2.7:
resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz"
integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
-follow-redirects@^1.15.0:
- version "1.15.2"
- resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz"
- integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
+follow-redirects@^1.15.4:
+ version "1.15.5"
+ resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz"
+ integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==
form-data@^4.0.0:
version "4.0.0"
@@ -1005,6 +1004,13 @@ form-data@^4.0.0:
combined-stream "^1.0.8"
mime-types "^2.1.12"
+formdata-polyfill@^4.0.10:
+ version "4.0.10"
+ resolved "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz"
+ integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==
+ dependencies:
+ fetch-blob "^3.1.2"
+
fs-extra@^8.1.0:
version "8.1.0"
resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz"
@@ -1070,6 +1076,11 @@ globals@^13.19.0:
dependencies:
type-fest "^0.20.2"
+globalyzer@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz"
+ integrity sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==
+
globby@^11.1.0:
version "11.1.0"
resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz"
@@ -1093,6 +1104,11 @@ globby@^6.1.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"
+globrex@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz"
+ integrity sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==
+
graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
version "4.2.11"
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz"
@@ -1182,7 +1198,7 @@ isexe@^2.0.0:
"js-tokens@^3.0.0 || ^4.0.0":
version "4.0.0"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
js-yaml@^4.1.0:
@@ -1270,7 +1286,7 @@ lodash.merge@^4.6.2:
loose-envify@^1.1.0, loose-envify@^1.4.0:
version "1.4.0"
- resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
dependencies:
js-tokens "^3.0.0 || ^4.0.0"
@@ -1289,14 +1305,14 @@ magic-string@^0.27.0:
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.13"
-magic-string@^0.30.0, magic-string@^0.30.1:
+magic-string@^0.30.0:
version "0.30.1"
resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.1.tgz"
integrity sha512-mbVKXPmS0z0G4XqFDCTllmDQ6coZzn94aMlb0o/A4HEHJCKcanlDZwYJgwnkmgD3jyWhUgj9VsPrfd972yPffA==
dependencies:
"@jridgewell/sourcemap-codec" "^1.4.15"
-magic-string@^0.30.2:
+magic-string@^0.30.3:
version "0.30.3"
resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz"
integrity sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==
@@ -1340,11 +1356,6 @@ mime-types@^2.1.12:
dependencies:
mime-db "1.52.0"
-mime@^3.0.0:
- version "3.0.0"
- resolved "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz"
- integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==
-
min-indent@^1.0.0:
version "1.0.1"
resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz"
@@ -1379,7 +1390,7 @@ mri@^1.1.0:
resolved "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz"
integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==
-mrmime@^1.0.0:
+mrmime@^1.0.0, mrmime@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz"
integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==
@@ -1399,6 +1410,20 @@ natural-compare@^1.4.0:
resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
+node-domexception@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz"
+ integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==
+
+node-fetch@^3.3.2:
+ version "3.3.2"
+ resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz"
+ integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==
+ dependencies:
+ data-uri-to-buffer "^4.0.0"
+ fetch-blob "^3.1.4"
+ formdata-polyfill "^4.0.10"
+
normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
@@ -1406,7 +1431,7 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
object-assign@^4.0.1, object-assign@^4.1.1:
version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
once@^1.3.0:
@@ -1583,7 +1608,7 @@ prettier@^3.0.2:
prop-types@^15.6.2:
version "15.8.1"
- resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
+ resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
dependencies:
loose-envify "^1.4.0"
@@ -1607,12 +1632,12 @@ queue-microtask@^1.2.2:
react-is@^16.13.1:
version "16.13.1"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+ resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
react@^16.11.0:
version "16.14.0"
- resolved "https://registry.yarnpkg.com/react/-/react-16.14.0.tgz#94d776ddd0aaa37da3eda8fc5b6b18a4c9a3114d"
+ resolved "https://registry.npmjs.org/react/-/react-16.14.0.tgz"
integrity sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==
dependencies:
loose-envify "^1.1.0"
@@ -1739,11 +1764,6 @@ source-map-js@^1.0.1, source-map-js@^1.0.2:
resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
-streamsearch@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz"
- integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
-
strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
@@ -1802,11 +1822,6 @@ svelte-check@^3.5.0:
postcss "^8.4.28"
postcss-scss "^4.0.7"
-svelte-hmr@^0.15.2:
- version "0.15.2"
- resolved "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.2.tgz"
- integrity sha512-q/bAruCvFLwvNbeE1x3n37TYFb3mTBJ6TrCq6p2CoFbSTNhDE9oAtEfpy+wmc9So8AG0Tja+X0/mJzX9tSfvIg==
-
svelte-hmr@^0.15.3:
version "0.15.3"
resolved "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.3.tgz"
@@ -1847,6 +1862,14 @@ text-table@^0.2.0:
resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
+tiny-glob@^0.2.9:
+ version "0.2.9"
+ resolved "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz"
+ integrity sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==
+ dependencies:
+ globalyzer "0.1.0"
+ globrex "^0.1.2"
+
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
@@ -1890,7 +1913,7 @@ typescript@^5.0.3:
uikit-icons@^0.5.0:
version "0.5.0"
- resolved "https://registry.yarnpkg.com/uikit-icons/-/uikit-icons-0.5.0.tgz#e6bed31aac96c669943ae8a717328aa8e2a45ae3"
+ resolved "https://registry.npmjs.org/uikit-icons/-/uikit-icons-0.5.0.tgz"
integrity sha512-KOXrEp6pKp6i9GvVdsi0P0dVOxd0QddCsvWcMTezyiHe44X6V2Uwj1mU5WX5bs6balVbxSKULkXlRRngYh0DrA==
dependencies:
"@types/react" "^16.9.11"
@@ -1901,12 +1924,12 @@ uikit@^3.16.26:
resolved "https://registry.npmjs.org/uikit/-/uikit-3.16.26.tgz"
integrity sha512-5NCaHqgYIzTVDMxix9tUb4pJn478GdIxEodWuWy/eMf3mi7EWZPyVQxPEos71H0hrr7xC6i0TK6tjOSfF7gkOA==
-undici@~5.23.0:
- version "5.23.0"
- resolved "https://registry.npmjs.org/undici/-/undici-5.23.0.tgz"
- integrity sha512-1D7w+fvRsqlQ9GscLBwcAJinqcZGHUKjbOmXdlE/v8BvEGXjeWAax+341q44EuTcHXXnfyKNbKRq4Lg7OzhMmg==
+undici@^5.28.3:
+ version "5.28.3"
+ resolved "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz"
+ integrity sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==
dependencies:
- busboy "^1.6.0"
+ "@fastify/busboy" "^2.0.0"
universalify@^0.1.0:
version "0.1.2"
@@ -1926,9 +1949,9 @@ util-deprecate@^1.0.2:
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
vite@^4.4.9:
- version "4.4.9"
- resolved "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz"
- integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==
+ version "4.5.2"
+ resolved "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz"
+ integrity sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==
dependencies:
esbuild "^0.18.10"
postcss "^8.4.27"
@@ -1941,6 +1964,11 @@ vitefu@^0.2.4:
resolved "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz"
integrity sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==
+web-streams-polyfill@^3.0.3:
+ version "3.3.3"
+ resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz"
+ integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==
+
which@^2.0.1:
version "2.0.2"
resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"