├── .gitignore
├── README.md
├── docs
├── apple-touch-icon.png
├── assets
│ ├── index-5691f1c2.js
│ └── index-f6cd27ed.css
├── index.html
├── privacy-policy.txt
├── tc-verify.json
├── terms-of-use.txt
└── tonconnect-manifest.json
├── index.html
├── package-lock.json
├── package.json
├── public
├── apple-touch-icon.png
├── privacy-policy.txt
├── tc-verify.json
├── terms-of-use.txt
└── tonconnect-manifest.json
├── src
├── App.scss
├── App.tsx
├── TonProofDemoApi.ts
├── assets
│ └── react.svg
├── components
│ ├── Footer
│ │ ├── ColorsModal
│ │ │ ├── ColorsModal.tsx
│ │ │ └── style.scss
│ │ ├── ColorsSelect
│ │ │ ├── ColorsSelect.tsx
│ │ │ └── style.scss
│ │ ├── Footer.tsx
│ │ └── footer.scss
│ ├── Header
│ │ ├── Header.tsx
│ │ └── header.scss
│ ├── TonProofDemo
│ │ ├── TonProofDemo.tsx
│ │ └── style.scss
│ └── TxForm
│ │ ├── TxForm.tsx
│ │ └── style.scss
├── hooks
│ └── useInterval.ts
├── index.scss
├── main.tsx
├── patch-local-storage-for-github-pages.ts
├── trackers.ts
└── vite-env.d.ts
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 | .ssh
26 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Demo dApp with @tonconnect/ui-react
2 |
3 | This Demo dApp showcases the integration with @tonconnect/ui-react. Experience it live at [Demo dApp with Wallet](https://ton-connect.github.io/demo-dapp-with-wallet/).
4 |
5 | ## Learn More About Ton Connect
6 |
7 | To understand more about Ton Connect and how it enables blockchain functionalities in your applications, refer to the following resources:
8 | - Ton Connect Documentation: [https://docs.ton.org/develop/dapps/ton-connect/](https://docs.ton.org/develop/dapps/ton-connect/)
9 | - Ton Connect SDK and UI Library on GitHub: [https://github.com/ton-connect/sdk/tree/main/packages/ui](https://github.com/ton-connect/sdk/tree/main/packages/ui)
10 |
11 | ## Installation
12 |
13 | ### Project Dependencies
14 |
15 | Install the necessary packages for this project:
16 |
17 | ```bash
18 | npm install
19 | ```
20 |
21 | ### ngrok or localtunnel (Optional)
22 |
23 | Choose either ngrok or localtunnel to expose your local server to the internet for testing in Telegram.
24 |
25 | #### ngrok Installation
26 |
27 | ```bash
28 | npm install -g ngrok
29 | ```
30 |
31 | ngrok Documentation: [https://ngrok.com/docs](https://ngrok.com/docs)
32 |
33 | #### localtunnel Installation
34 |
35 | ```bash
36 | npm install -g localtunnel
37 | ```
38 |
39 | LocalTunnel Documentation: [https://localtunnel.github.io/www/](https://localtunnel.github.io/www/)
40 |
41 | ### Creating Telegram Mini Apps (Optional)
42 |
43 | 1. Open [@BotFather](https://t.me/BotFather) in Telegram.
44 | 2. Send the `/newbot` command to create a new bot.
45 | 3. Follow the prompts to set up your bot, providing all necessary information.
46 | 4. After the bot is created, send the `/newapp` command to BotFather.
47 | 5. Select your bot from the list.
48 | 6. Provide all the required information for your Mini App.
49 |
50 |
51 | ### Returning to the Application (Optional)
52 |
53 | To return to the application after interacting with the wallet, you must specify a `twaReturnUrl` in `src/App.tsx`.
54 |
55 | Here's a concise guide:
56 |
57 | - **twaReturnUrl**: This is the return URL used by Telegram Web Apps. Set it to redirect users back to your application after wallet interaction. Example: `'https://t.me/WebAppWalletBot/myapp'`.
58 |
59 | Here is a sample configuration for specifying a return URL:
60 |
61 | ```jsx
62 |
69 | ```
70 |
71 | ### Adding a Custom Wallet (Optional)
72 |
73 | To integrate a custom wallet into your application, adjust the `walletsListConfiguration` in `src/App.tsx`. Include your wallet details in `includeWallets` and specify `universalLink`.
74 |
75 | Here's a concise guide:
76 |
77 | - **universalLink**: This URL is used to open the wallet directly from a web link. It should link to your wallet's bot or app. Example: `'https://t.me/wallet/start'`.
78 |
79 | Here is a sample configuration for adding a custom wallet:
80 |
81 | ```jsx
82 |
102 | ```
103 |
104 | ## Running the Application
105 |
106 | ### Starting the Application
107 |
108 | To start the application, run:
109 |
110 | ```bash
111 | npm dev
112 | ```
113 |
114 | The application will be accessible at [http://localhost:5173](http://localhost:5173).
115 |
116 | ### Exposing Your Local Server (Optional)
117 |
118 | #### Using ngrok
119 |
120 | ```bash
121 | ngrok http 5173
122 | ```
123 |
124 | #### Using localtunnel
125 |
126 | ```bash
127 | lt --port 5173
128 | ```
129 |
130 | After setting up ngrok or localtunnel, update your Telegram bot's configuration with the provided URL to ensure the bot points to your local development environment.
131 |
132 | ### Updating Telegram Bot Configuration (Optional)
133 |
134 | #### Update the Menu Button URL in Telegram Bot
135 |
136 | 1. Open [@BotFather](https://t.me/BotFather) in Telegram.
137 | 2. Send the `/mybots` command and select your bot.
138 | 3. Choose "Bot Settings" then "Menu Button" and finally "Configure menu button".
139 | 4. Enter the ngrok or localtunnel URL as the new destination.
140 |
141 | #### Update Mini Apps URL in Telegram
142 |
143 | 1. Open [@BotFather](https://t.me/BotFather) in Telegram.
144 | 2. Send the `/myapps` command and select your Mini App.
145 | 3. Choose "Edit Web App URL".
146 | 4. Enter the ngrok or localtunnel URL as the new destination.
147 |
--------------------------------------------------------------------------------
/docs/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ton-connect/demo-dapp-with-wallet/71af027d55f9f5b3f7f15b4d0f6339055e148280/docs/apple-touch-icon.png
--------------------------------------------------------------------------------
/docs/assets/index-f6cd27ed.css:
--------------------------------------------------------------------------------
1 | .app{height:100%;display:flex;flex-direction:column}.app>header{margin-bottom:10px}.footer{padding:20px;display:flex;gap:20px;justify-content:flex-end;align-items:center;flex-wrap:wrap}.footer>div>label{color:#fff;margin-right:5px}.footer-checkbox-container{display:flex;flex-direction:column}.footer-checkbox-container>span{color:#fff;font-weight:700;margin-bottom:4px}.footer-checkbox-container input{margin-left:3px}.colors-container>div{margin-bottom:20px}.colors-container>div>span{margin-right:14px;font-weight:700}.colors-container>div>label{margin-right:10px}.modal{position:fixed;left:0;top:0;bottom:0;right:0;z-index:10000000;background-color:#10161f;padding:20px;color:#fff}.modal>button{float:right}.modal__toggle{display:flex;justify-content:center;gap:20px}.modal__toggle>a{color:#fff}header{display:flex;align-items:center;justify-content:space-between;padding:10px 25px}header>span{font-size:30px;line-height:34px;color:#66aaeee8;font-weight:700}@media (max-width: 525px){header{flex-direction:column;gap:10px}header>*:nth-child(2){align-self:flex-end}}.send-tx-form{flex:1;display:flex;width:100%;flex-direction:column;gap:20px;padding:20px;align-items:center}.send-tx-form h3{color:#fff;opacity:.8;font-size:28px}.send-tx-form>div:nth-child(2){width:100%}.send-tx-form>div:nth-child(2) span{word-break:break-word}.send-tx-form>button{border:none;padding:7px 15px;border-radius:15px;cursor:pointer;background-color:#66aaeee8;color:#fff;font-size:16px;line-height:20px;transition:transform .1s ease-in-out}.send-tx-form>button:hover{transform:scale(1.03)}.send-tx-form>button:active{transform:scale(.97)}html,body,#root{height:100%}body{margin:0;background-color:#10161feb;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}
2 |
--------------------------------------------------------------------------------
/docs/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Demo Dapp with @tonconnect/ui-react
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/docs/privacy-policy.txt:
--------------------------------------------------------------------------------
1 | Privacy Policy example
2 | ...
3 |
--------------------------------------------------------------------------------
/docs/tc-verify.json:
--------------------------------------------------------------------------------
1 | {
2 | "payload": "9hE-Ov4dBR8AAAAAZT_L0NIswgedrN4hc4upm0e9vASVO4nl_MP5hbybtMYIfhkZ"
3 | }
4 |
--------------------------------------------------------------------------------
/docs/terms-of-use.txt:
--------------------------------------------------------------------------------
1 | Terms of use example
2 | ...
3 |
--------------------------------------------------------------------------------
/docs/tonconnect-manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "https://ton-connect.github.io/demo-dapp-with-wallet/",
3 | "name": "Demo Dapp with wallet",
4 | "iconUrl": "https://ton-connect.github.io/demo-dapp-with-wallet/apple-touch-icon.png",
5 | "termsOfUseUrl": "https://ton-connect.github.io/demo-dapp-with-wallet/terms-of-use.txt",
6 | "privacyPolicyUrl": "https://ton-connect.github.io/demo-dapp-with-wallet/privacy-policy.txt"
7 | }
8 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | Demo Dapp with @tonconnect/ui-react
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "demo-dapp-react-ui",
3 | "version": "0.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "demo-dapp-react-ui",
9 | "version": "0.0.0",
10 | "dependencies": {
11 | "@tonconnect/ui-react": "2.1.1-beta.0",
12 | "eruda": "^2.11.2",
13 | "react": "^17.0.0",
14 | "react-dom": "^17.0.0",
15 | "react-json-view": "^1.21.3"
16 | },
17 | "devDependencies": {
18 | "@types/react": "^18.0.26",
19 | "@types/react-dom": "^18.0.9",
20 | "@vitejs/plugin-react": "^3.0.0",
21 | "sass": "^1.57.1",
22 | "typescript": "^4.9.3",
23 | "vite": "^4.0.0"
24 | }
25 | },
26 | "../tonconnect/sdk/packages/ui-react": {
27 | "name": "@tonconnect/ui-react",
28 | "version": "2.0.0-beta.0",
29 | "extraneous": true,
30 | "license": "Apache-2.0",
31 | "dependencies": {
32 | "@tonconnect/ui": "^2.0.0-beta.0"
33 | },
34 | "devDependencies": {
35 | "@types/react": "^18.0.26",
36 | "@types/react-dom": "^18.0.9",
37 | "@vitejs/plugin-react": "^3.0.0",
38 | "csstype": "^3.1.1",
39 | "eslint-plugin-react": "^7.31.11",
40 | "eslint-plugin-react-hooks": "^4.6.0",
41 | "typescript": "^4.9.3",
42 | "vite": "^4.0.0",
43 | "vite-plugin-dts": "^1.7.1"
44 | },
45 | "peerDependencies": {
46 | "react": ">=17.0.0",
47 | "react-dom": ">=17.0.0"
48 | }
49 | },
50 | "node_modules/@ampproject/remapping": {
51 | "version": "2.2.0",
52 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
53 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
54 | "dev": true,
55 | "dependencies": {
56 | "@jridgewell/gen-mapping": "^0.1.0",
57 | "@jridgewell/trace-mapping": "^0.3.9"
58 | },
59 | "engines": {
60 | "node": ">=6.0.0"
61 | }
62 | },
63 | "node_modules/@babel/code-frame": {
64 | "version": "7.21.4",
65 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
66 | "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
67 | "dev": true,
68 | "dependencies": {
69 | "@babel/highlight": "^7.18.6"
70 | },
71 | "engines": {
72 | "node": ">=6.9.0"
73 | }
74 | },
75 | "node_modules/@babel/compat-data": {
76 | "version": "7.21.4",
77 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz",
78 | "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==",
79 | "dev": true,
80 | "engines": {
81 | "node": ">=6.9.0"
82 | }
83 | },
84 | "node_modules/@babel/core": {
85 | "version": "7.21.4",
86 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz",
87 | "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==",
88 | "dev": true,
89 | "dependencies": {
90 | "@ampproject/remapping": "^2.2.0",
91 | "@babel/code-frame": "^7.21.4",
92 | "@babel/generator": "^7.21.4",
93 | "@babel/helper-compilation-targets": "^7.21.4",
94 | "@babel/helper-module-transforms": "^7.21.2",
95 | "@babel/helpers": "^7.21.0",
96 | "@babel/parser": "^7.21.4",
97 | "@babel/template": "^7.20.7",
98 | "@babel/traverse": "^7.21.4",
99 | "@babel/types": "^7.21.4",
100 | "convert-source-map": "^1.7.0",
101 | "debug": "^4.1.0",
102 | "gensync": "^1.0.0-beta.2",
103 | "json5": "^2.2.2",
104 | "semver": "^6.3.0"
105 | },
106 | "engines": {
107 | "node": ">=6.9.0"
108 | },
109 | "funding": {
110 | "type": "opencollective",
111 | "url": "https://opencollective.com/babel"
112 | }
113 | },
114 | "node_modules/@babel/generator": {
115 | "version": "7.21.4",
116 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz",
117 | "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==",
118 | "dev": true,
119 | "dependencies": {
120 | "@babel/types": "^7.21.4",
121 | "@jridgewell/gen-mapping": "^0.3.2",
122 | "@jridgewell/trace-mapping": "^0.3.17",
123 | "jsesc": "^2.5.1"
124 | },
125 | "engines": {
126 | "node": ">=6.9.0"
127 | }
128 | },
129 | "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
130 | "version": "0.3.2",
131 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
132 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
133 | "dev": true,
134 | "dependencies": {
135 | "@jridgewell/set-array": "^1.0.1",
136 | "@jridgewell/sourcemap-codec": "^1.4.10",
137 | "@jridgewell/trace-mapping": "^0.3.9"
138 | },
139 | "engines": {
140 | "node": ">=6.0.0"
141 | }
142 | },
143 | "node_modules/@babel/helper-compilation-targets": {
144 | "version": "7.21.4",
145 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz",
146 | "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==",
147 | "dev": true,
148 | "dependencies": {
149 | "@babel/compat-data": "^7.21.4",
150 | "@babel/helper-validator-option": "^7.21.0",
151 | "browserslist": "^4.21.3",
152 | "lru-cache": "^5.1.1",
153 | "semver": "^6.3.0"
154 | },
155 | "engines": {
156 | "node": ">=6.9.0"
157 | },
158 | "peerDependencies": {
159 | "@babel/core": "^7.0.0"
160 | }
161 | },
162 | "node_modules/@babel/helper-environment-visitor": {
163 | "version": "7.18.9",
164 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
165 | "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
166 | "dev": true,
167 | "engines": {
168 | "node": ">=6.9.0"
169 | }
170 | },
171 | "node_modules/@babel/helper-function-name": {
172 | "version": "7.21.0",
173 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz",
174 | "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==",
175 | "dev": true,
176 | "dependencies": {
177 | "@babel/template": "^7.20.7",
178 | "@babel/types": "^7.21.0"
179 | },
180 | "engines": {
181 | "node": ">=6.9.0"
182 | }
183 | },
184 | "node_modules/@babel/helper-hoist-variables": {
185 | "version": "7.18.6",
186 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
187 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
188 | "dev": true,
189 | "dependencies": {
190 | "@babel/types": "^7.18.6"
191 | },
192 | "engines": {
193 | "node": ">=6.9.0"
194 | }
195 | },
196 | "node_modules/@babel/helper-module-imports": {
197 | "version": "7.21.4",
198 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz",
199 | "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==",
200 | "dev": true,
201 | "dependencies": {
202 | "@babel/types": "^7.21.4"
203 | },
204 | "engines": {
205 | "node": ">=6.9.0"
206 | }
207 | },
208 | "node_modules/@babel/helper-module-transforms": {
209 | "version": "7.21.2",
210 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz",
211 | "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==",
212 | "dev": true,
213 | "dependencies": {
214 | "@babel/helper-environment-visitor": "^7.18.9",
215 | "@babel/helper-module-imports": "^7.18.6",
216 | "@babel/helper-simple-access": "^7.20.2",
217 | "@babel/helper-split-export-declaration": "^7.18.6",
218 | "@babel/helper-validator-identifier": "^7.19.1",
219 | "@babel/template": "^7.20.7",
220 | "@babel/traverse": "^7.21.2",
221 | "@babel/types": "^7.21.2"
222 | },
223 | "engines": {
224 | "node": ">=6.9.0"
225 | }
226 | },
227 | "node_modules/@babel/helper-plugin-utils": {
228 | "version": "7.20.2",
229 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
230 | "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
231 | "dev": true,
232 | "engines": {
233 | "node": ">=6.9.0"
234 | }
235 | },
236 | "node_modules/@babel/helper-simple-access": {
237 | "version": "7.20.2",
238 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
239 | "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
240 | "dev": true,
241 | "dependencies": {
242 | "@babel/types": "^7.20.2"
243 | },
244 | "engines": {
245 | "node": ">=6.9.0"
246 | }
247 | },
248 | "node_modules/@babel/helper-split-export-declaration": {
249 | "version": "7.18.6",
250 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
251 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
252 | "dev": true,
253 | "dependencies": {
254 | "@babel/types": "^7.18.6"
255 | },
256 | "engines": {
257 | "node": ">=6.9.0"
258 | }
259 | },
260 | "node_modules/@babel/helper-string-parser": {
261 | "version": "7.19.4",
262 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
263 | "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
264 | "dev": true,
265 | "engines": {
266 | "node": ">=6.9.0"
267 | }
268 | },
269 | "node_modules/@babel/helper-validator-identifier": {
270 | "version": "7.19.1",
271 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
272 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
273 | "dev": true,
274 | "engines": {
275 | "node": ">=6.9.0"
276 | }
277 | },
278 | "node_modules/@babel/helper-validator-option": {
279 | "version": "7.21.0",
280 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz",
281 | "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==",
282 | "dev": true,
283 | "engines": {
284 | "node": ">=6.9.0"
285 | }
286 | },
287 | "node_modules/@babel/helpers": {
288 | "version": "7.21.0",
289 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz",
290 | "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==",
291 | "dev": true,
292 | "dependencies": {
293 | "@babel/template": "^7.20.7",
294 | "@babel/traverse": "^7.21.0",
295 | "@babel/types": "^7.21.0"
296 | },
297 | "engines": {
298 | "node": ">=6.9.0"
299 | }
300 | },
301 | "node_modules/@babel/highlight": {
302 | "version": "7.18.6",
303 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
304 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
305 | "dev": true,
306 | "dependencies": {
307 | "@babel/helper-validator-identifier": "^7.18.6",
308 | "chalk": "^2.0.0",
309 | "js-tokens": "^4.0.0"
310 | },
311 | "engines": {
312 | "node": ">=6.9.0"
313 | }
314 | },
315 | "node_modules/@babel/parser": {
316 | "version": "7.21.4",
317 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz",
318 | "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==",
319 | "dev": true,
320 | "bin": {
321 | "parser": "bin/babel-parser.js"
322 | },
323 | "engines": {
324 | "node": ">=6.0.0"
325 | }
326 | },
327 | "node_modules/@babel/plugin-transform-react-jsx-self": {
328 | "version": "7.21.0",
329 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz",
330 | "integrity": "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==",
331 | "dev": true,
332 | "dependencies": {
333 | "@babel/helper-plugin-utils": "^7.20.2"
334 | },
335 | "engines": {
336 | "node": ">=6.9.0"
337 | },
338 | "peerDependencies": {
339 | "@babel/core": "^7.0.0-0"
340 | }
341 | },
342 | "node_modules/@babel/plugin-transform-react-jsx-source": {
343 | "version": "7.19.6",
344 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz",
345 | "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==",
346 | "dev": true,
347 | "dependencies": {
348 | "@babel/helper-plugin-utils": "^7.19.0"
349 | },
350 | "engines": {
351 | "node": ">=6.9.0"
352 | },
353 | "peerDependencies": {
354 | "@babel/core": "^7.0.0-0"
355 | }
356 | },
357 | "node_modules/@babel/runtime": {
358 | "version": "7.21.0",
359 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
360 | "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
361 | "dependencies": {
362 | "regenerator-runtime": "^0.13.11"
363 | },
364 | "engines": {
365 | "node": ">=6.9.0"
366 | }
367 | },
368 | "node_modules/@babel/template": {
369 | "version": "7.20.7",
370 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
371 | "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
372 | "dev": true,
373 | "dependencies": {
374 | "@babel/code-frame": "^7.18.6",
375 | "@babel/parser": "^7.20.7",
376 | "@babel/types": "^7.20.7"
377 | },
378 | "engines": {
379 | "node": ">=6.9.0"
380 | }
381 | },
382 | "node_modules/@babel/traverse": {
383 | "version": "7.21.4",
384 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz",
385 | "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==",
386 | "dev": true,
387 | "dependencies": {
388 | "@babel/code-frame": "^7.21.4",
389 | "@babel/generator": "^7.21.4",
390 | "@babel/helper-environment-visitor": "^7.18.9",
391 | "@babel/helper-function-name": "^7.21.0",
392 | "@babel/helper-hoist-variables": "^7.18.6",
393 | "@babel/helper-split-export-declaration": "^7.18.6",
394 | "@babel/parser": "^7.21.4",
395 | "@babel/types": "^7.21.4",
396 | "debug": "^4.1.0",
397 | "globals": "^11.1.0"
398 | },
399 | "engines": {
400 | "node": ">=6.9.0"
401 | }
402 | },
403 | "node_modules/@babel/types": {
404 | "version": "7.21.4",
405 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz",
406 | "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==",
407 | "dev": true,
408 | "dependencies": {
409 | "@babel/helper-string-parser": "^7.19.4",
410 | "@babel/helper-validator-identifier": "^7.19.1",
411 | "to-fast-properties": "^2.0.0"
412 | },
413 | "engines": {
414 | "node": ">=6.9.0"
415 | }
416 | },
417 | "node_modules/@esbuild/android-arm": {
418 | "version": "0.18.20",
419 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
420 | "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
421 | "cpu": [
422 | "arm"
423 | ],
424 | "dev": true,
425 | "optional": true,
426 | "os": [
427 | "android"
428 | ],
429 | "engines": {
430 | "node": ">=12"
431 | }
432 | },
433 | "node_modules/@esbuild/android-arm64": {
434 | "version": "0.18.20",
435 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
436 | "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
437 | "cpu": [
438 | "arm64"
439 | ],
440 | "dev": true,
441 | "optional": true,
442 | "os": [
443 | "android"
444 | ],
445 | "engines": {
446 | "node": ">=12"
447 | }
448 | },
449 | "node_modules/@esbuild/android-x64": {
450 | "version": "0.18.20",
451 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
452 | "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
453 | "cpu": [
454 | "x64"
455 | ],
456 | "dev": true,
457 | "optional": true,
458 | "os": [
459 | "android"
460 | ],
461 | "engines": {
462 | "node": ">=12"
463 | }
464 | },
465 | "node_modules/@esbuild/darwin-arm64": {
466 | "version": "0.18.20",
467 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
468 | "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
469 | "cpu": [
470 | "arm64"
471 | ],
472 | "dev": true,
473 | "optional": true,
474 | "os": [
475 | "darwin"
476 | ],
477 | "engines": {
478 | "node": ">=12"
479 | }
480 | },
481 | "node_modules/@esbuild/darwin-x64": {
482 | "version": "0.18.20",
483 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
484 | "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
485 | "cpu": [
486 | "x64"
487 | ],
488 | "dev": true,
489 | "optional": true,
490 | "os": [
491 | "darwin"
492 | ],
493 | "engines": {
494 | "node": ">=12"
495 | }
496 | },
497 | "node_modules/@esbuild/freebsd-arm64": {
498 | "version": "0.18.20",
499 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
500 | "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
501 | "cpu": [
502 | "arm64"
503 | ],
504 | "dev": true,
505 | "optional": true,
506 | "os": [
507 | "freebsd"
508 | ],
509 | "engines": {
510 | "node": ">=12"
511 | }
512 | },
513 | "node_modules/@esbuild/freebsd-x64": {
514 | "version": "0.18.20",
515 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
516 | "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
517 | "cpu": [
518 | "x64"
519 | ],
520 | "dev": true,
521 | "optional": true,
522 | "os": [
523 | "freebsd"
524 | ],
525 | "engines": {
526 | "node": ">=12"
527 | }
528 | },
529 | "node_modules/@esbuild/linux-arm": {
530 | "version": "0.18.20",
531 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
532 | "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
533 | "cpu": [
534 | "arm"
535 | ],
536 | "dev": true,
537 | "optional": true,
538 | "os": [
539 | "linux"
540 | ],
541 | "engines": {
542 | "node": ">=12"
543 | }
544 | },
545 | "node_modules/@esbuild/linux-arm64": {
546 | "version": "0.18.20",
547 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
548 | "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
549 | "cpu": [
550 | "arm64"
551 | ],
552 | "dev": true,
553 | "optional": true,
554 | "os": [
555 | "linux"
556 | ],
557 | "engines": {
558 | "node": ">=12"
559 | }
560 | },
561 | "node_modules/@esbuild/linux-ia32": {
562 | "version": "0.18.20",
563 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
564 | "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
565 | "cpu": [
566 | "ia32"
567 | ],
568 | "dev": true,
569 | "optional": true,
570 | "os": [
571 | "linux"
572 | ],
573 | "engines": {
574 | "node": ">=12"
575 | }
576 | },
577 | "node_modules/@esbuild/linux-loong64": {
578 | "version": "0.18.20",
579 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
580 | "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
581 | "cpu": [
582 | "loong64"
583 | ],
584 | "dev": true,
585 | "optional": true,
586 | "os": [
587 | "linux"
588 | ],
589 | "engines": {
590 | "node": ">=12"
591 | }
592 | },
593 | "node_modules/@esbuild/linux-mips64el": {
594 | "version": "0.18.20",
595 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
596 | "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
597 | "cpu": [
598 | "mips64el"
599 | ],
600 | "dev": true,
601 | "optional": true,
602 | "os": [
603 | "linux"
604 | ],
605 | "engines": {
606 | "node": ">=12"
607 | }
608 | },
609 | "node_modules/@esbuild/linux-ppc64": {
610 | "version": "0.18.20",
611 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
612 | "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
613 | "cpu": [
614 | "ppc64"
615 | ],
616 | "dev": true,
617 | "optional": true,
618 | "os": [
619 | "linux"
620 | ],
621 | "engines": {
622 | "node": ">=12"
623 | }
624 | },
625 | "node_modules/@esbuild/linux-riscv64": {
626 | "version": "0.18.20",
627 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
628 | "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
629 | "cpu": [
630 | "riscv64"
631 | ],
632 | "dev": true,
633 | "optional": true,
634 | "os": [
635 | "linux"
636 | ],
637 | "engines": {
638 | "node": ">=12"
639 | }
640 | },
641 | "node_modules/@esbuild/linux-s390x": {
642 | "version": "0.18.20",
643 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
644 | "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
645 | "cpu": [
646 | "s390x"
647 | ],
648 | "dev": true,
649 | "optional": true,
650 | "os": [
651 | "linux"
652 | ],
653 | "engines": {
654 | "node": ">=12"
655 | }
656 | },
657 | "node_modules/@esbuild/linux-x64": {
658 | "version": "0.18.20",
659 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
660 | "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
661 | "cpu": [
662 | "x64"
663 | ],
664 | "dev": true,
665 | "optional": true,
666 | "os": [
667 | "linux"
668 | ],
669 | "engines": {
670 | "node": ">=12"
671 | }
672 | },
673 | "node_modules/@esbuild/netbsd-x64": {
674 | "version": "0.18.20",
675 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
676 | "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
677 | "cpu": [
678 | "x64"
679 | ],
680 | "dev": true,
681 | "optional": true,
682 | "os": [
683 | "netbsd"
684 | ],
685 | "engines": {
686 | "node": ">=12"
687 | }
688 | },
689 | "node_modules/@esbuild/openbsd-x64": {
690 | "version": "0.18.20",
691 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
692 | "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
693 | "cpu": [
694 | "x64"
695 | ],
696 | "dev": true,
697 | "optional": true,
698 | "os": [
699 | "openbsd"
700 | ],
701 | "engines": {
702 | "node": ">=12"
703 | }
704 | },
705 | "node_modules/@esbuild/sunos-x64": {
706 | "version": "0.18.20",
707 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
708 | "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
709 | "cpu": [
710 | "x64"
711 | ],
712 | "dev": true,
713 | "optional": true,
714 | "os": [
715 | "sunos"
716 | ],
717 | "engines": {
718 | "node": ">=12"
719 | }
720 | },
721 | "node_modules/@esbuild/win32-arm64": {
722 | "version": "0.18.20",
723 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
724 | "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
725 | "cpu": [
726 | "arm64"
727 | ],
728 | "dev": true,
729 | "optional": true,
730 | "os": [
731 | "win32"
732 | ],
733 | "engines": {
734 | "node": ">=12"
735 | }
736 | },
737 | "node_modules/@esbuild/win32-ia32": {
738 | "version": "0.18.20",
739 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
740 | "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
741 | "cpu": [
742 | "ia32"
743 | ],
744 | "dev": true,
745 | "optional": true,
746 | "os": [
747 | "win32"
748 | ],
749 | "engines": {
750 | "node": ">=12"
751 | }
752 | },
753 | "node_modules/@esbuild/win32-x64": {
754 | "version": "0.18.20",
755 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
756 | "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
757 | "cpu": [
758 | "x64"
759 | ],
760 | "dev": true,
761 | "optional": true,
762 | "os": [
763 | "win32"
764 | ],
765 | "engines": {
766 | "node": ">=12"
767 | }
768 | },
769 | "node_modules/@jridgewell/gen-mapping": {
770 | "version": "0.1.1",
771 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
772 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
773 | "dev": true,
774 | "dependencies": {
775 | "@jridgewell/set-array": "^1.0.0",
776 | "@jridgewell/sourcemap-codec": "^1.4.10"
777 | },
778 | "engines": {
779 | "node": ">=6.0.0"
780 | }
781 | },
782 | "node_modules/@jridgewell/resolve-uri": {
783 | "version": "3.1.0",
784 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
785 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
786 | "dev": true,
787 | "engines": {
788 | "node": ">=6.0.0"
789 | }
790 | },
791 | "node_modules/@jridgewell/set-array": {
792 | "version": "1.1.2",
793 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
794 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
795 | "dev": true,
796 | "engines": {
797 | "node": ">=6.0.0"
798 | }
799 | },
800 | "node_modules/@jridgewell/sourcemap-codec": {
801 | "version": "1.4.14",
802 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
803 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
804 | "dev": true
805 | },
806 | "node_modules/@jridgewell/trace-mapping": {
807 | "version": "0.3.17",
808 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
809 | "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
810 | "dev": true,
811 | "dependencies": {
812 | "@jridgewell/resolve-uri": "3.1.0",
813 | "@jridgewell/sourcemap-codec": "1.4.14"
814 | }
815 | },
816 | "node_modules/@tonconnect/isomorphic-eventsource": {
817 | "version": "0.0.2",
818 | "resolved": "https://registry.npmjs.org/@tonconnect/isomorphic-eventsource/-/isomorphic-eventsource-0.0.2.tgz",
819 | "integrity": "sha512-B4UoIjPi0QkvIzZH5fV3BQLWrqSYABdrzZQSI9sJA9aA+iC0ohOzFwVVGXanlxeDAy1bcvPbb29f6sVUk0UnnQ==",
820 | "license": "Apache-2.0",
821 | "dependencies": {
822 | "eventsource": "^2.0.2"
823 | }
824 | },
825 | "node_modules/@tonconnect/isomorphic-fetch": {
826 | "version": "0.0.3",
827 | "resolved": "https://registry.npmjs.org/@tonconnect/isomorphic-fetch/-/isomorphic-fetch-0.0.3.tgz",
828 | "integrity": "sha512-jIg5nTrDwnite4fXao3dD83eCpTvInTjZon/rZZrIftIegh4XxyVb5G2mpMqXrVGk1e8SVXm3Kj5OtfMplQs0w==",
829 | "license": "Apache-2.0",
830 | "dependencies": {
831 | "node-fetch": "^2.6.9"
832 | }
833 | },
834 | "node_modules/@tonconnect/isomorphic-fetch/node_modules/node-fetch": {
835 | "version": "2.7.0",
836 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
837 | "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
838 | "license": "MIT",
839 | "dependencies": {
840 | "whatwg-url": "^5.0.0"
841 | },
842 | "engines": {
843 | "node": "4.x || >=6.0.0"
844 | },
845 | "peerDependencies": {
846 | "encoding": "^0.1.0"
847 | },
848 | "peerDependenciesMeta": {
849 | "encoding": {
850 | "optional": true
851 | }
852 | }
853 | },
854 | "node_modules/@tonconnect/protocol": {
855 | "version": "2.2.7",
856 | "resolved": "https://registry.npmjs.org/@tonconnect/protocol/-/protocol-2.2.7.tgz",
857 | "integrity": "sha512-mmuS5ekaRVQtXOug30znXXSnuQfuLa6kDOv17X2ttk8Al9PlTFG/AtPRkWxCp8X5BdhPzGFELTog7kypukjWnQ==",
858 | "license": "Apache-2.0",
859 | "dependencies": {
860 | "tweetnacl": "^1.0.3",
861 | "tweetnacl-util": "^0.15.1"
862 | }
863 | },
864 | "node_modules/@tonconnect/sdk": {
865 | "version": "3.1.1-beta.0",
866 | "resolved": "https://registry.npmjs.org/@tonconnect/sdk/-/sdk-3.1.1-beta.0.tgz",
867 | "integrity": "sha512-zwt8g8/oWLRTmXZeF4/dEn6lAcO7J3ynBFNbd4/Wv6X5qMKs9cGaHXOCmRW9enLrvdYa+L/8XFQUyqzMecRH9w==",
868 | "license": "Apache-2.0",
869 | "dependencies": {
870 | "@tonconnect/isomorphic-eventsource": "^0.0.2",
871 | "@tonconnect/isomorphic-fetch": "^0.0.3",
872 | "@tonconnect/protocol": "^2.2.7"
873 | }
874 | },
875 | "node_modules/@tonconnect/ui": {
876 | "version": "2.1.1-beta.0",
877 | "resolved": "https://registry.npmjs.org/@tonconnect/ui/-/ui-2.1.1-beta.0.tgz",
878 | "integrity": "sha512-5DdFbObn0oWLA4G3LlYDlsAmMOgh6ksidEa9L664ZSAScLworn/rXGjOfsLN1uGVei+gs38ivBYhxrCMyHSp/A==",
879 | "license": "Apache-2.0",
880 | "dependencies": {
881 | "@tonconnect/sdk": "3.1.1-beta.0",
882 | "classnames": "^2.3.2",
883 | "csstype": "^3.1.1",
884 | "deepmerge": "^4.2.2",
885 | "ua-parser-js": "^1.0.35"
886 | }
887 | },
888 | "node_modules/@tonconnect/ui-react": {
889 | "version": "2.1.1-beta.0",
890 | "resolved": "https://registry.npmjs.org/@tonconnect/ui-react/-/ui-react-2.1.1-beta.0.tgz",
891 | "integrity": "sha512-gD5gzUvNjMYsBr5K3ZoHxWavUIzdCSdAXNknCDNHuixoVSnmHLIktOatHx95yOfEDo0WwYX8g+mQA1oTxQx0nA==",
892 | "license": "Apache-2.0",
893 | "dependencies": {
894 | "@tonconnect/ui": "2.1.1-beta.0"
895 | },
896 | "peerDependencies": {
897 | "react": ">=17.0.0",
898 | "react-dom": ">=17.0.0"
899 | }
900 | },
901 | "node_modules/@tonconnect/ui/node_modules/ua-parser-js": {
902 | "version": "1.0.40",
903 | "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.40.tgz",
904 | "integrity": "sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==",
905 | "funding": [
906 | {
907 | "type": "opencollective",
908 | "url": "https://opencollective.com/ua-parser-js"
909 | },
910 | {
911 | "type": "paypal",
912 | "url": "https://paypal.me/faisalman"
913 | },
914 | {
915 | "type": "github",
916 | "url": "https://github.com/sponsors/faisalman"
917 | }
918 | ],
919 | "license": "MIT",
920 | "bin": {
921 | "ua-parser-js": "script/cli.js"
922 | },
923 | "engines": {
924 | "node": "*"
925 | }
926 | },
927 | "node_modules/@types/prop-types": {
928 | "version": "15.7.5",
929 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
930 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
931 | "dev": true
932 | },
933 | "node_modules/@types/react": {
934 | "version": "18.0.33",
935 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.33.tgz",
936 | "integrity": "sha512-sHxzVxeanvQyQ1lr8NSHaj0kDzcNiGpILEVt69g9S31/7PfMvNCKLKcsHw4lYKjs3cGNJjXSP4mYzX43QlnjNA==",
937 | "dev": true,
938 | "dependencies": {
939 | "@types/prop-types": "*",
940 | "@types/scheduler": "*",
941 | "csstype": "^3.0.2"
942 | }
943 | },
944 | "node_modules/@types/react-dom": {
945 | "version": "18.0.11",
946 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz",
947 | "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==",
948 | "dev": true,
949 | "dependencies": {
950 | "@types/react": "*"
951 | }
952 | },
953 | "node_modules/@types/scheduler": {
954 | "version": "0.16.3",
955 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
956 | "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==",
957 | "dev": true
958 | },
959 | "node_modules/@vitejs/plugin-react": {
960 | "version": "3.1.0",
961 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.1.0.tgz",
962 | "integrity": "sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==",
963 | "dev": true,
964 | "dependencies": {
965 | "@babel/core": "^7.20.12",
966 | "@babel/plugin-transform-react-jsx-self": "^7.18.6",
967 | "@babel/plugin-transform-react-jsx-source": "^7.19.6",
968 | "magic-string": "^0.27.0",
969 | "react-refresh": "^0.14.0"
970 | },
971 | "engines": {
972 | "node": "^14.18.0 || >=16.0.0"
973 | },
974 | "peerDependencies": {
975 | "vite": "^4.1.0-beta.0"
976 | }
977 | },
978 | "node_modules/ansi-styles": {
979 | "version": "3.2.1",
980 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
981 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
982 | "dev": true,
983 | "dependencies": {
984 | "color-convert": "^1.9.0"
985 | },
986 | "engines": {
987 | "node": ">=4"
988 | }
989 | },
990 | "node_modules/anymatch": {
991 | "version": "3.1.3",
992 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
993 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
994 | "dev": true,
995 | "dependencies": {
996 | "normalize-path": "^3.0.0",
997 | "picomatch": "^2.0.4"
998 | },
999 | "engines": {
1000 | "node": ">= 8"
1001 | }
1002 | },
1003 | "node_modules/asap": {
1004 | "version": "2.0.6",
1005 | "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
1006 | "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
1007 | },
1008 | "node_modules/base16": {
1009 | "version": "1.0.0",
1010 | "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz",
1011 | "integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ=="
1012 | },
1013 | "node_modules/binary-extensions": {
1014 | "version": "2.2.0",
1015 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
1016 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
1017 | "dev": true,
1018 | "engines": {
1019 | "node": ">=8"
1020 | }
1021 | },
1022 | "node_modules/braces": {
1023 | "version": "3.0.2",
1024 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
1025 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
1026 | "dev": true,
1027 | "dependencies": {
1028 | "fill-range": "^7.0.1"
1029 | },
1030 | "engines": {
1031 | "node": ">=8"
1032 | }
1033 | },
1034 | "node_modules/browserslist": {
1035 | "version": "4.21.5",
1036 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
1037 | "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
1038 | "dev": true,
1039 | "funding": [
1040 | {
1041 | "type": "opencollective",
1042 | "url": "https://opencollective.com/browserslist"
1043 | },
1044 | {
1045 | "type": "tidelift",
1046 | "url": "https://tidelift.com/funding/github/npm/browserslist"
1047 | }
1048 | ],
1049 | "dependencies": {
1050 | "caniuse-lite": "^1.0.30001449",
1051 | "electron-to-chromium": "^1.4.284",
1052 | "node-releases": "^2.0.8",
1053 | "update-browserslist-db": "^1.0.10"
1054 | },
1055 | "bin": {
1056 | "browserslist": "cli.js"
1057 | },
1058 | "engines": {
1059 | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
1060 | }
1061 | },
1062 | "node_modules/caniuse-lite": {
1063 | "version": "1.0.30001474",
1064 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz",
1065 | "integrity": "sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q==",
1066 | "dev": true,
1067 | "funding": [
1068 | {
1069 | "type": "opencollective",
1070 | "url": "https://opencollective.com/browserslist"
1071 | },
1072 | {
1073 | "type": "tidelift",
1074 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
1075 | },
1076 | {
1077 | "type": "github",
1078 | "url": "https://github.com/sponsors/ai"
1079 | }
1080 | ]
1081 | },
1082 | "node_modules/chalk": {
1083 | "version": "2.4.2",
1084 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
1085 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
1086 | "dev": true,
1087 | "dependencies": {
1088 | "ansi-styles": "^3.2.1",
1089 | "escape-string-regexp": "^1.0.5",
1090 | "supports-color": "^5.3.0"
1091 | },
1092 | "engines": {
1093 | "node": ">=4"
1094 | }
1095 | },
1096 | "node_modules/chokidar": {
1097 | "version": "3.5.3",
1098 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
1099 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
1100 | "dev": true,
1101 | "funding": [
1102 | {
1103 | "type": "individual",
1104 | "url": "https://paulmillr.com/funding/"
1105 | }
1106 | ],
1107 | "dependencies": {
1108 | "anymatch": "~3.1.2",
1109 | "braces": "~3.0.2",
1110 | "glob-parent": "~5.1.2",
1111 | "is-binary-path": "~2.1.0",
1112 | "is-glob": "~4.0.1",
1113 | "normalize-path": "~3.0.0",
1114 | "readdirp": "~3.6.0"
1115 | },
1116 | "engines": {
1117 | "node": ">= 8.10.0"
1118 | },
1119 | "optionalDependencies": {
1120 | "fsevents": "~2.3.2"
1121 | }
1122 | },
1123 | "node_modules/classnames": {
1124 | "version": "2.5.1",
1125 | "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
1126 | "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==",
1127 | "license": "MIT"
1128 | },
1129 | "node_modules/color-convert": {
1130 | "version": "1.9.3",
1131 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1132 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1133 | "dev": true,
1134 | "dependencies": {
1135 | "color-name": "1.1.3"
1136 | }
1137 | },
1138 | "node_modules/color-name": {
1139 | "version": "1.1.3",
1140 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1141 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
1142 | "dev": true
1143 | },
1144 | "node_modules/convert-source-map": {
1145 | "version": "1.9.0",
1146 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
1147 | "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
1148 | "dev": true
1149 | },
1150 | "node_modules/cross-fetch": {
1151 | "version": "3.1.5",
1152 | "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
1153 | "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
1154 | "dependencies": {
1155 | "node-fetch": "2.6.7"
1156 | }
1157 | },
1158 | "node_modules/csstype": {
1159 | "version": "3.1.2",
1160 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
1161 | "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
1162 | },
1163 | "node_modules/debug": {
1164 | "version": "4.3.4",
1165 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1166 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1167 | "dev": true,
1168 | "dependencies": {
1169 | "ms": "2.1.2"
1170 | },
1171 | "engines": {
1172 | "node": ">=6.0"
1173 | },
1174 | "peerDependenciesMeta": {
1175 | "supports-color": {
1176 | "optional": true
1177 | }
1178 | }
1179 | },
1180 | "node_modules/deepmerge": {
1181 | "version": "4.3.1",
1182 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
1183 | "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
1184 | "license": "MIT",
1185 | "engines": {
1186 | "node": ">=0.10.0"
1187 | }
1188 | },
1189 | "node_modules/electron-to-chromium": {
1190 | "version": "1.4.353",
1191 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.353.tgz",
1192 | "integrity": "sha512-IdJVpMHJoBT/nn0GQ02wPfbhogDVpd1ud95lP//FTf5l35wzxKJwibB4HBdY7Q+xKPA1nkZ0UDLOMyRj5U5IAQ==",
1193 | "dev": true
1194 | },
1195 | "node_modules/eruda": {
1196 | "version": "2.11.3",
1197 | "resolved": "https://registry.npmjs.org/eruda/-/eruda-2.11.3.tgz",
1198 | "integrity": "sha512-e1EqrGJvN5PSXoFCSAmRqqDfziEL5bNSdPcJbRg5QVOHtcFMcG4n/6uTOfs2FTjAhg4X4GbxhHB+l7ITu/1zmQ=="
1199 | },
1200 | "node_modules/esbuild": {
1201 | "version": "0.18.20",
1202 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
1203 | "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
1204 | "dev": true,
1205 | "hasInstallScript": true,
1206 | "bin": {
1207 | "esbuild": "bin/esbuild"
1208 | },
1209 | "engines": {
1210 | "node": ">=12"
1211 | },
1212 | "optionalDependencies": {
1213 | "@esbuild/android-arm": "0.18.20",
1214 | "@esbuild/android-arm64": "0.18.20",
1215 | "@esbuild/android-x64": "0.18.20",
1216 | "@esbuild/darwin-arm64": "0.18.20",
1217 | "@esbuild/darwin-x64": "0.18.20",
1218 | "@esbuild/freebsd-arm64": "0.18.20",
1219 | "@esbuild/freebsd-x64": "0.18.20",
1220 | "@esbuild/linux-arm": "0.18.20",
1221 | "@esbuild/linux-arm64": "0.18.20",
1222 | "@esbuild/linux-ia32": "0.18.20",
1223 | "@esbuild/linux-loong64": "0.18.20",
1224 | "@esbuild/linux-mips64el": "0.18.20",
1225 | "@esbuild/linux-ppc64": "0.18.20",
1226 | "@esbuild/linux-riscv64": "0.18.20",
1227 | "@esbuild/linux-s390x": "0.18.20",
1228 | "@esbuild/linux-x64": "0.18.20",
1229 | "@esbuild/netbsd-x64": "0.18.20",
1230 | "@esbuild/openbsd-x64": "0.18.20",
1231 | "@esbuild/sunos-x64": "0.18.20",
1232 | "@esbuild/win32-arm64": "0.18.20",
1233 | "@esbuild/win32-ia32": "0.18.20",
1234 | "@esbuild/win32-x64": "0.18.20"
1235 | }
1236 | },
1237 | "node_modules/escalade": {
1238 | "version": "3.1.1",
1239 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
1240 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
1241 | "dev": true,
1242 | "engines": {
1243 | "node": ">=6"
1244 | }
1245 | },
1246 | "node_modules/escape-string-regexp": {
1247 | "version": "1.0.5",
1248 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
1249 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
1250 | "dev": true,
1251 | "engines": {
1252 | "node": ">=0.8.0"
1253 | }
1254 | },
1255 | "node_modules/eventsource": {
1256 | "version": "2.0.2",
1257 | "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz",
1258 | "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==",
1259 | "license": "MIT",
1260 | "engines": {
1261 | "node": ">=12.0.0"
1262 | }
1263 | },
1264 | "node_modules/fbemitter": {
1265 | "version": "3.0.0",
1266 | "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz",
1267 | "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==",
1268 | "dependencies": {
1269 | "fbjs": "^3.0.0"
1270 | }
1271 | },
1272 | "node_modules/fbjs": {
1273 | "version": "3.0.4",
1274 | "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz",
1275 | "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==",
1276 | "dependencies": {
1277 | "cross-fetch": "^3.1.5",
1278 | "fbjs-css-vars": "^1.0.0",
1279 | "loose-envify": "^1.0.0",
1280 | "object-assign": "^4.1.0",
1281 | "promise": "^7.1.1",
1282 | "setimmediate": "^1.0.5",
1283 | "ua-parser-js": "^0.7.30"
1284 | }
1285 | },
1286 | "node_modules/fbjs-css-vars": {
1287 | "version": "1.0.2",
1288 | "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
1289 | "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="
1290 | },
1291 | "node_modules/fill-range": {
1292 | "version": "7.0.1",
1293 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
1294 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
1295 | "dev": true,
1296 | "dependencies": {
1297 | "to-regex-range": "^5.0.1"
1298 | },
1299 | "engines": {
1300 | "node": ">=8"
1301 | }
1302 | },
1303 | "node_modules/flux": {
1304 | "version": "4.0.4",
1305 | "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.4.tgz",
1306 | "integrity": "sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw==",
1307 | "dependencies": {
1308 | "fbemitter": "^3.0.0",
1309 | "fbjs": "^3.0.1"
1310 | },
1311 | "peerDependencies": {
1312 | "react": "^15.0.2 || ^16.0.0 || ^17.0.0"
1313 | }
1314 | },
1315 | "node_modules/fsevents": {
1316 | "version": "2.3.2",
1317 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
1318 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
1319 | "dev": true,
1320 | "hasInstallScript": true,
1321 | "optional": true,
1322 | "os": [
1323 | "darwin"
1324 | ],
1325 | "engines": {
1326 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
1327 | }
1328 | },
1329 | "node_modules/gensync": {
1330 | "version": "1.0.0-beta.2",
1331 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
1332 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
1333 | "dev": true,
1334 | "engines": {
1335 | "node": ">=6.9.0"
1336 | }
1337 | },
1338 | "node_modules/glob-parent": {
1339 | "version": "5.1.2",
1340 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
1341 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
1342 | "dev": true,
1343 | "dependencies": {
1344 | "is-glob": "^4.0.1"
1345 | },
1346 | "engines": {
1347 | "node": ">= 6"
1348 | }
1349 | },
1350 | "node_modules/globals": {
1351 | "version": "11.12.0",
1352 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
1353 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
1354 | "dev": true,
1355 | "engines": {
1356 | "node": ">=4"
1357 | }
1358 | },
1359 | "node_modules/has-flag": {
1360 | "version": "3.0.0",
1361 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
1362 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
1363 | "dev": true,
1364 | "engines": {
1365 | "node": ">=4"
1366 | }
1367 | },
1368 | "node_modules/immutable": {
1369 | "version": "4.3.0",
1370 | "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz",
1371 | "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==",
1372 | "dev": true
1373 | },
1374 | "node_modules/is-binary-path": {
1375 | "version": "2.1.0",
1376 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1377 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1378 | "dev": true,
1379 | "dependencies": {
1380 | "binary-extensions": "^2.0.0"
1381 | },
1382 | "engines": {
1383 | "node": ">=8"
1384 | }
1385 | },
1386 | "node_modules/is-extglob": {
1387 | "version": "2.1.1",
1388 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1389 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
1390 | "dev": true,
1391 | "engines": {
1392 | "node": ">=0.10.0"
1393 | }
1394 | },
1395 | "node_modules/is-glob": {
1396 | "version": "4.0.3",
1397 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1398 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1399 | "dev": true,
1400 | "dependencies": {
1401 | "is-extglob": "^2.1.1"
1402 | },
1403 | "engines": {
1404 | "node": ">=0.10.0"
1405 | }
1406 | },
1407 | "node_modules/is-number": {
1408 | "version": "7.0.0",
1409 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1410 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1411 | "dev": true,
1412 | "engines": {
1413 | "node": ">=0.12.0"
1414 | }
1415 | },
1416 | "node_modules/js-tokens": {
1417 | "version": "4.0.0",
1418 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
1419 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
1420 | },
1421 | "node_modules/jsesc": {
1422 | "version": "2.5.2",
1423 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
1424 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
1425 | "dev": true,
1426 | "bin": {
1427 | "jsesc": "bin/jsesc"
1428 | },
1429 | "engines": {
1430 | "node": ">=4"
1431 | }
1432 | },
1433 | "node_modules/json5": {
1434 | "version": "2.2.3",
1435 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
1436 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
1437 | "dev": true,
1438 | "bin": {
1439 | "json5": "lib/cli.js"
1440 | },
1441 | "engines": {
1442 | "node": ">=6"
1443 | }
1444 | },
1445 | "node_modules/lodash.curry": {
1446 | "version": "4.1.1",
1447 | "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz",
1448 | "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA=="
1449 | },
1450 | "node_modules/lodash.flow": {
1451 | "version": "3.5.0",
1452 | "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz",
1453 | "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw=="
1454 | },
1455 | "node_modules/loose-envify": {
1456 | "version": "1.4.0",
1457 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
1458 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
1459 | "dependencies": {
1460 | "js-tokens": "^3.0.0 || ^4.0.0"
1461 | },
1462 | "bin": {
1463 | "loose-envify": "cli.js"
1464 | }
1465 | },
1466 | "node_modules/lru-cache": {
1467 | "version": "5.1.1",
1468 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
1469 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
1470 | "dev": true,
1471 | "dependencies": {
1472 | "yallist": "^3.0.2"
1473 | }
1474 | },
1475 | "node_modules/magic-string": {
1476 | "version": "0.27.0",
1477 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
1478 | "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
1479 | "dev": true,
1480 | "dependencies": {
1481 | "@jridgewell/sourcemap-codec": "^1.4.13"
1482 | },
1483 | "engines": {
1484 | "node": ">=12"
1485 | }
1486 | },
1487 | "node_modules/ms": {
1488 | "version": "2.1.2",
1489 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1490 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1491 | "dev": true
1492 | },
1493 | "node_modules/nanoid": {
1494 | "version": "3.3.6",
1495 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
1496 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
1497 | "dev": true,
1498 | "funding": [
1499 | {
1500 | "type": "github",
1501 | "url": "https://github.com/sponsors/ai"
1502 | }
1503 | ],
1504 | "bin": {
1505 | "nanoid": "bin/nanoid.cjs"
1506 | },
1507 | "engines": {
1508 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1509 | }
1510 | },
1511 | "node_modules/node-fetch": {
1512 | "version": "2.6.7",
1513 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
1514 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
1515 | "dependencies": {
1516 | "whatwg-url": "^5.0.0"
1517 | },
1518 | "engines": {
1519 | "node": "4.x || >=6.0.0"
1520 | },
1521 | "peerDependencies": {
1522 | "encoding": "^0.1.0"
1523 | },
1524 | "peerDependenciesMeta": {
1525 | "encoding": {
1526 | "optional": true
1527 | }
1528 | }
1529 | },
1530 | "node_modules/node-releases": {
1531 | "version": "2.0.10",
1532 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
1533 | "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==",
1534 | "dev": true
1535 | },
1536 | "node_modules/normalize-path": {
1537 | "version": "3.0.0",
1538 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1539 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1540 | "dev": true,
1541 | "engines": {
1542 | "node": ">=0.10.0"
1543 | }
1544 | },
1545 | "node_modules/object-assign": {
1546 | "version": "4.1.1",
1547 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1548 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1549 | "engines": {
1550 | "node": ">=0.10.0"
1551 | }
1552 | },
1553 | "node_modules/picocolors": {
1554 | "version": "1.0.0",
1555 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
1556 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
1557 | "dev": true
1558 | },
1559 | "node_modules/picomatch": {
1560 | "version": "2.3.1",
1561 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1562 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1563 | "dev": true,
1564 | "engines": {
1565 | "node": ">=8.6"
1566 | },
1567 | "funding": {
1568 | "url": "https://github.com/sponsors/jonschlinkert"
1569 | }
1570 | },
1571 | "node_modules/postcss": {
1572 | "version": "8.4.29",
1573 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz",
1574 | "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==",
1575 | "dev": true,
1576 | "funding": [
1577 | {
1578 | "type": "opencollective",
1579 | "url": "https://opencollective.com/postcss/"
1580 | },
1581 | {
1582 | "type": "tidelift",
1583 | "url": "https://tidelift.com/funding/github/npm/postcss"
1584 | },
1585 | {
1586 | "type": "github",
1587 | "url": "https://github.com/sponsors/ai"
1588 | }
1589 | ],
1590 | "dependencies": {
1591 | "nanoid": "^3.3.6",
1592 | "picocolors": "^1.0.0",
1593 | "source-map-js": "^1.0.2"
1594 | },
1595 | "engines": {
1596 | "node": "^10 || ^12 || >=14"
1597 | }
1598 | },
1599 | "node_modules/promise": {
1600 | "version": "7.3.1",
1601 | "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
1602 | "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
1603 | "dependencies": {
1604 | "asap": "~2.0.3"
1605 | }
1606 | },
1607 | "node_modules/pure-color": {
1608 | "version": "1.3.0",
1609 | "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz",
1610 | "integrity": "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA=="
1611 | },
1612 | "node_modules/react": {
1613 | "version": "17.0.2",
1614 | "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
1615 | "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
1616 | "dependencies": {
1617 | "loose-envify": "^1.1.0",
1618 | "object-assign": "^4.1.1"
1619 | },
1620 | "engines": {
1621 | "node": ">=0.10.0"
1622 | }
1623 | },
1624 | "node_modules/react-base16-styling": {
1625 | "version": "0.6.0",
1626 | "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz",
1627 | "integrity": "sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==",
1628 | "dependencies": {
1629 | "base16": "^1.0.0",
1630 | "lodash.curry": "^4.0.1",
1631 | "lodash.flow": "^3.3.0",
1632 | "pure-color": "^1.2.0"
1633 | }
1634 | },
1635 | "node_modules/react-dom": {
1636 | "version": "17.0.2",
1637 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
1638 | "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
1639 | "dependencies": {
1640 | "loose-envify": "^1.1.0",
1641 | "object-assign": "^4.1.1",
1642 | "scheduler": "^0.20.2"
1643 | },
1644 | "peerDependencies": {
1645 | "react": "17.0.2"
1646 | }
1647 | },
1648 | "node_modules/react-json-view": {
1649 | "version": "1.21.3",
1650 | "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz",
1651 | "integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==",
1652 | "dependencies": {
1653 | "flux": "^4.0.1",
1654 | "react-base16-styling": "^0.6.0",
1655 | "react-lifecycles-compat": "^3.0.4",
1656 | "react-textarea-autosize": "^8.3.2"
1657 | },
1658 | "peerDependencies": {
1659 | "react": "^17.0.0 || ^16.3.0 || ^15.5.4",
1660 | "react-dom": "^17.0.0 || ^16.3.0 || ^15.5.4"
1661 | }
1662 | },
1663 | "node_modules/react-lifecycles-compat": {
1664 | "version": "3.0.4",
1665 | "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
1666 | "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
1667 | },
1668 | "node_modules/react-refresh": {
1669 | "version": "0.14.0",
1670 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz",
1671 | "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==",
1672 | "dev": true,
1673 | "engines": {
1674 | "node": ">=0.10.0"
1675 | }
1676 | },
1677 | "node_modules/react-textarea-autosize": {
1678 | "version": "8.4.1",
1679 | "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.4.1.tgz",
1680 | "integrity": "sha512-aD2C+qK6QypknC+lCMzteOdIjoMbNlgSFmJjCV+DrfTPwp59i/it9mMNf2HDzvRjQgKAyBDPyLJhcrzElf2U4Q==",
1681 | "dependencies": {
1682 | "@babel/runtime": "^7.20.13",
1683 | "use-composed-ref": "^1.3.0",
1684 | "use-latest": "^1.2.1"
1685 | },
1686 | "engines": {
1687 | "node": ">=10"
1688 | },
1689 | "peerDependencies": {
1690 | "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
1691 | }
1692 | },
1693 | "node_modules/readdirp": {
1694 | "version": "3.6.0",
1695 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1696 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1697 | "dev": true,
1698 | "dependencies": {
1699 | "picomatch": "^2.2.1"
1700 | },
1701 | "engines": {
1702 | "node": ">=8.10.0"
1703 | }
1704 | },
1705 | "node_modules/regenerator-runtime": {
1706 | "version": "0.13.11",
1707 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
1708 | "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
1709 | },
1710 | "node_modules/rollup": {
1711 | "version": "3.29.1",
1712 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.1.tgz",
1713 | "integrity": "sha512-c+ebvQz0VIH4KhhCpDsI+Bik0eT8ZFEVZEYw0cGMVqIP8zc+gnwl7iXCamTw7vzv2MeuZFZfdx5JJIq+ehzDlg==",
1714 | "dev": true,
1715 | "bin": {
1716 | "rollup": "dist/bin/rollup"
1717 | },
1718 | "engines": {
1719 | "node": ">=14.18.0",
1720 | "npm": ">=8.0.0"
1721 | },
1722 | "optionalDependencies": {
1723 | "fsevents": "~2.3.2"
1724 | }
1725 | },
1726 | "node_modules/sass": {
1727 | "version": "1.60.0",
1728 | "resolved": "https://registry.npmjs.org/sass/-/sass-1.60.0.tgz",
1729 | "integrity": "sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ==",
1730 | "dev": true,
1731 | "dependencies": {
1732 | "chokidar": ">=3.0.0 <4.0.0",
1733 | "immutable": "^4.0.0",
1734 | "source-map-js": ">=0.6.2 <2.0.0"
1735 | },
1736 | "bin": {
1737 | "sass": "sass.js"
1738 | },
1739 | "engines": {
1740 | "node": ">=12.0.0"
1741 | }
1742 | },
1743 | "node_modules/scheduler": {
1744 | "version": "0.20.2",
1745 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
1746 | "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
1747 | "dependencies": {
1748 | "loose-envify": "^1.1.0",
1749 | "object-assign": "^4.1.1"
1750 | }
1751 | },
1752 | "node_modules/semver": {
1753 | "version": "6.3.0",
1754 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
1755 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
1756 | "dev": true,
1757 | "bin": {
1758 | "semver": "bin/semver.js"
1759 | }
1760 | },
1761 | "node_modules/setimmediate": {
1762 | "version": "1.0.5",
1763 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
1764 | "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
1765 | },
1766 | "node_modules/source-map-js": {
1767 | "version": "1.0.2",
1768 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
1769 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
1770 | "dev": true,
1771 | "engines": {
1772 | "node": ">=0.10.0"
1773 | }
1774 | },
1775 | "node_modules/supports-color": {
1776 | "version": "5.5.0",
1777 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
1778 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
1779 | "dev": true,
1780 | "dependencies": {
1781 | "has-flag": "^3.0.0"
1782 | },
1783 | "engines": {
1784 | "node": ">=4"
1785 | }
1786 | },
1787 | "node_modules/to-fast-properties": {
1788 | "version": "2.0.0",
1789 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
1790 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
1791 | "dev": true,
1792 | "engines": {
1793 | "node": ">=4"
1794 | }
1795 | },
1796 | "node_modules/to-regex-range": {
1797 | "version": "5.0.1",
1798 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1799 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1800 | "dev": true,
1801 | "dependencies": {
1802 | "is-number": "^7.0.0"
1803 | },
1804 | "engines": {
1805 | "node": ">=8.0"
1806 | }
1807 | },
1808 | "node_modules/tr46": {
1809 | "version": "0.0.3",
1810 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
1811 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
1812 | },
1813 | "node_modules/tweetnacl": {
1814 | "version": "1.0.3",
1815 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
1816 | "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==",
1817 | "license": "Unlicense"
1818 | },
1819 | "node_modules/tweetnacl-util": {
1820 | "version": "0.15.1",
1821 | "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz",
1822 | "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==",
1823 | "license": "Unlicense"
1824 | },
1825 | "node_modules/typescript": {
1826 | "version": "4.9.5",
1827 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
1828 | "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
1829 | "dev": true,
1830 | "bin": {
1831 | "tsc": "bin/tsc",
1832 | "tsserver": "bin/tsserver"
1833 | },
1834 | "engines": {
1835 | "node": ">=4.2.0"
1836 | }
1837 | },
1838 | "node_modules/ua-parser-js": {
1839 | "version": "0.7.35",
1840 | "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz",
1841 | "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==",
1842 | "funding": [
1843 | {
1844 | "type": "opencollective",
1845 | "url": "https://opencollective.com/ua-parser-js"
1846 | },
1847 | {
1848 | "type": "paypal",
1849 | "url": "https://paypal.me/faisalman"
1850 | }
1851 | ],
1852 | "engines": {
1853 | "node": "*"
1854 | }
1855 | },
1856 | "node_modules/update-browserslist-db": {
1857 | "version": "1.0.10",
1858 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
1859 | "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
1860 | "dev": true,
1861 | "funding": [
1862 | {
1863 | "type": "opencollective",
1864 | "url": "https://opencollective.com/browserslist"
1865 | },
1866 | {
1867 | "type": "tidelift",
1868 | "url": "https://tidelift.com/funding/github/npm/browserslist"
1869 | }
1870 | ],
1871 | "dependencies": {
1872 | "escalade": "^3.1.1",
1873 | "picocolors": "^1.0.0"
1874 | },
1875 | "bin": {
1876 | "browserslist-lint": "cli.js"
1877 | },
1878 | "peerDependencies": {
1879 | "browserslist": ">= 4.21.0"
1880 | }
1881 | },
1882 | "node_modules/use-composed-ref": {
1883 | "version": "1.3.0",
1884 | "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz",
1885 | "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==",
1886 | "peerDependencies": {
1887 | "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
1888 | }
1889 | },
1890 | "node_modules/use-isomorphic-layout-effect": {
1891 | "version": "1.1.2",
1892 | "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz",
1893 | "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==",
1894 | "peerDependencies": {
1895 | "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
1896 | },
1897 | "peerDependenciesMeta": {
1898 | "@types/react": {
1899 | "optional": true
1900 | }
1901 | }
1902 | },
1903 | "node_modules/use-latest": {
1904 | "version": "1.2.1",
1905 | "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz",
1906 | "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==",
1907 | "dependencies": {
1908 | "use-isomorphic-layout-effect": "^1.1.1"
1909 | },
1910 | "peerDependencies": {
1911 | "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
1912 | },
1913 | "peerDependenciesMeta": {
1914 | "@types/react": {
1915 | "optional": true
1916 | }
1917 | }
1918 | },
1919 | "node_modules/vite": {
1920 | "version": "4.4.9",
1921 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz",
1922 | "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==",
1923 | "dev": true,
1924 | "dependencies": {
1925 | "esbuild": "^0.18.10",
1926 | "postcss": "^8.4.27",
1927 | "rollup": "^3.27.1"
1928 | },
1929 | "bin": {
1930 | "vite": "bin/vite.js"
1931 | },
1932 | "engines": {
1933 | "node": "^14.18.0 || >=16.0.0"
1934 | },
1935 | "funding": {
1936 | "url": "https://github.com/vitejs/vite?sponsor=1"
1937 | },
1938 | "optionalDependencies": {
1939 | "fsevents": "~2.3.2"
1940 | },
1941 | "peerDependencies": {
1942 | "@types/node": ">= 14",
1943 | "less": "*",
1944 | "lightningcss": "^1.21.0",
1945 | "sass": "*",
1946 | "stylus": "*",
1947 | "sugarss": "*",
1948 | "terser": "^5.4.0"
1949 | },
1950 | "peerDependenciesMeta": {
1951 | "@types/node": {
1952 | "optional": true
1953 | },
1954 | "less": {
1955 | "optional": true
1956 | },
1957 | "lightningcss": {
1958 | "optional": true
1959 | },
1960 | "sass": {
1961 | "optional": true
1962 | },
1963 | "stylus": {
1964 | "optional": true
1965 | },
1966 | "sugarss": {
1967 | "optional": true
1968 | },
1969 | "terser": {
1970 | "optional": true
1971 | }
1972 | }
1973 | },
1974 | "node_modules/webidl-conversions": {
1975 | "version": "3.0.1",
1976 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
1977 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
1978 | },
1979 | "node_modules/whatwg-url": {
1980 | "version": "5.0.0",
1981 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
1982 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
1983 | "dependencies": {
1984 | "tr46": "~0.0.3",
1985 | "webidl-conversions": "^3.0.0"
1986 | }
1987 | },
1988 | "node_modules/yallist": {
1989 | "version": "3.1.1",
1990 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
1991 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
1992 | "dev": true
1993 | }
1994 | },
1995 | "dependencies": {
1996 | "@ampproject/remapping": {
1997 | "version": "2.2.0",
1998 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
1999 | "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
2000 | "dev": true,
2001 | "requires": {
2002 | "@jridgewell/gen-mapping": "^0.1.0",
2003 | "@jridgewell/trace-mapping": "^0.3.9"
2004 | }
2005 | },
2006 | "@babel/code-frame": {
2007 | "version": "7.21.4",
2008 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.21.4.tgz",
2009 | "integrity": "sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==",
2010 | "dev": true,
2011 | "requires": {
2012 | "@babel/highlight": "^7.18.6"
2013 | }
2014 | },
2015 | "@babel/compat-data": {
2016 | "version": "7.21.4",
2017 | "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz",
2018 | "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==",
2019 | "dev": true
2020 | },
2021 | "@babel/core": {
2022 | "version": "7.21.4",
2023 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.4.tgz",
2024 | "integrity": "sha512-qt/YV149Jman/6AfmlxJ04LMIu8bMoyl3RB91yTFrxQmgbrSvQMy7cI8Q62FHx1t8wJ8B5fu0UDoLwHAhUo1QA==",
2025 | "dev": true,
2026 | "requires": {
2027 | "@ampproject/remapping": "^2.2.0",
2028 | "@babel/code-frame": "^7.21.4",
2029 | "@babel/generator": "^7.21.4",
2030 | "@babel/helper-compilation-targets": "^7.21.4",
2031 | "@babel/helper-module-transforms": "^7.21.2",
2032 | "@babel/helpers": "^7.21.0",
2033 | "@babel/parser": "^7.21.4",
2034 | "@babel/template": "^7.20.7",
2035 | "@babel/traverse": "^7.21.4",
2036 | "@babel/types": "^7.21.4",
2037 | "convert-source-map": "^1.7.0",
2038 | "debug": "^4.1.0",
2039 | "gensync": "^1.0.0-beta.2",
2040 | "json5": "^2.2.2",
2041 | "semver": "^6.3.0"
2042 | }
2043 | },
2044 | "@babel/generator": {
2045 | "version": "7.21.4",
2046 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz",
2047 | "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==",
2048 | "dev": true,
2049 | "requires": {
2050 | "@babel/types": "^7.21.4",
2051 | "@jridgewell/gen-mapping": "^0.3.2",
2052 | "@jridgewell/trace-mapping": "^0.3.17",
2053 | "jsesc": "^2.5.1"
2054 | },
2055 | "dependencies": {
2056 | "@jridgewell/gen-mapping": {
2057 | "version": "0.3.2",
2058 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
2059 | "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
2060 | "dev": true,
2061 | "requires": {
2062 | "@jridgewell/set-array": "^1.0.1",
2063 | "@jridgewell/sourcemap-codec": "^1.4.10",
2064 | "@jridgewell/trace-mapping": "^0.3.9"
2065 | }
2066 | }
2067 | }
2068 | },
2069 | "@babel/helper-compilation-targets": {
2070 | "version": "7.21.4",
2071 | "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz",
2072 | "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==",
2073 | "dev": true,
2074 | "requires": {
2075 | "@babel/compat-data": "^7.21.4",
2076 | "@babel/helper-validator-option": "^7.21.0",
2077 | "browserslist": "^4.21.3",
2078 | "lru-cache": "^5.1.1",
2079 | "semver": "^6.3.0"
2080 | }
2081 | },
2082 | "@babel/helper-environment-visitor": {
2083 | "version": "7.18.9",
2084 | "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
2085 | "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
2086 | "dev": true
2087 | },
2088 | "@babel/helper-function-name": {
2089 | "version": "7.21.0",
2090 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz",
2091 | "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==",
2092 | "dev": true,
2093 | "requires": {
2094 | "@babel/template": "^7.20.7",
2095 | "@babel/types": "^7.21.0"
2096 | }
2097 | },
2098 | "@babel/helper-hoist-variables": {
2099 | "version": "7.18.6",
2100 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
2101 | "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
2102 | "dev": true,
2103 | "requires": {
2104 | "@babel/types": "^7.18.6"
2105 | }
2106 | },
2107 | "@babel/helper-module-imports": {
2108 | "version": "7.21.4",
2109 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.21.4.tgz",
2110 | "integrity": "sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==",
2111 | "dev": true,
2112 | "requires": {
2113 | "@babel/types": "^7.21.4"
2114 | }
2115 | },
2116 | "@babel/helper-module-transforms": {
2117 | "version": "7.21.2",
2118 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz",
2119 | "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==",
2120 | "dev": true,
2121 | "requires": {
2122 | "@babel/helper-environment-visitor": "^7.18.9",
2123 | "@babel/helper-module-imports": "^7.18.6",
2124 | "@babel/helper-simple-access": "^7.20.2",
2125 | "@babel/helper-split-export-declaration": "^7.18.6",
2126 | "@babel/helper-validator-identifier": "^7.19.1",
2127 | "@babel/template": "^7.20.7",
2128 | "@babel/traverse": "^7.21.2",
2129 | "@babel/types": "^7.21.2"
2130 | }
2131 | },
2132 | "@babel/helper-plugin-utils": {
2133 | "version": "7.20.2",
2134 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz",
2135 | "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==",
2136 | "dev": true
2137 | },
2138 | "@babel/helper-simple-access": {
2139 | "version": "7.20.2",
2140 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz",
2141 | "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==",
2142 | "dev": true,
2143 | "requires": {
2144 | "@babel/types": "^7.20.2"
2145 | }
2146 | },
2147 | "@babel/helper-split-export-declaration": {
2148 | "version": "7.18.6",
2149 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
2150 | "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
2151 | "dev": true,
2152 | "requires": {
2153 | "@babel/types": "^7.18.6"
2154 | }
2155 | },
2156 | "@babel/helper-string-parser": {
2157 | "version": "7.19.4",
2158 | "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
2159 | "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
2160 | "dev": true
2161 | },
2162 | "@babel/helper-validator-identifier": {
2163 | "version": "7.19.1",
2164 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
2165 | "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
2166 | "dev": true
2167 | },
2168 | "@babel/helper-validator-option": {
2169 | "version": "7.21.0",
2170 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz",
2171 | "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==",
2172 | "dev": true
2173 | },
2174 | "@babel/helpers": {
2175 | "version": "7.21.0",
2176 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz",
2177 | "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==",
2178 | "dev": true,
2179 | "requires": {
2180 | "@babel/template": "^7.20.7",
2181 | "@babel/traverse": "^7.21.0",
2182 | "@babel/types": "^7.21.0"
2183 | }
2184 | },
2185 | "@babel/highlight": {
2186 | "version": "7.18.6",
2187 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
2188 | "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
2189 | "dev": true,
2190 | "requires": {
2191 | "@babel/helper-validator-identifier": "^7.18.6",
2192 | "chalk": "^2.0.0",
2193 | "js-tokens": "^4.0.0"
2194 | }
2195 | },
2196 | "@babel/parser": {
2197 | "version": "7.21.4",
2198 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz",
2199 | "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==",
2200 | "dev": true
2201 | },
2202 | "@babel/plugin-transform-react-jsx-self": {
2203 | "version": "7.21.0",
2204 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz",
2205 | "integrity": "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==",
2206 | "dev": true,
2207 | "requires": {
2208 | "@babel/helper-plugin-utils": "^7.20.2"
2209 | }
2210 | },
2211 | "@babel/plugin-transform-react-jsx-source": {
2212 | "version": "7.19.6",
2213 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz",
2214 | "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==",
2215 | "dev": true,
2216 | "requires": {
2217 | "@babel/helper-plugin-utils": "^7.19.0"
2218 | }
2219 | },
2220 | "@babel/runtime": {
2221 | "version": "7.21.0",
2222 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.0.tgz",
2223 | "integrity": "sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==",
2224 | "requires": {
2225 | "regenerator-runtime": "^0.13.11"
2226 | }
2227 | },
2228 | "@babel/template": {
2229 | "version": "7.20.7",
2230 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz",
2231 | "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==",
2232 | "dev": true,
2233 | "requires": {
2234 | "@babel/code-frame": "^7.18.6",
2235 | "@babel/parser": "^7.20.7",
2236 | "@babel/types": "^7.20.7"
2237 | }
2238 | },
2239 | "@babel/traverse": {
2240 | "version": "7.21.4",
2241 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.4.tgz",
2242 | "integrity": "sha512-eyKrRHKdyZxqDm+fV1iqL9UAHMoIg0nDaGqfIOd8rKH17m5snv7Gn4qgjBoFfLz9APvjFU/ICT00NVCv1Epp8Q==",
2243 | "dev": true,
2244 | "requires": {
2245 | "@babel/code-frame": "^7.21.4",
2246 | "@babel/generator": "^7.21.4",
2247 | "@babel/helper-environment-visitor": "^7.18.9",
2248 | "@babel/helper-function-name": "^7.21.0",
2249 | "@babel/helper-hoist-variables": "^7.18.6",
2250 | "@babel/helper-split-export-declaration": "^7.18.6",
2251 | "@babel/parser": "^7.21.4",
2252 | "@babel/types": "^7.21.4",
2253 | "debug": "^4.1.0",
2254 | "globals": "^11.1.0"
2255 | }
2256 | },
2257 | "@babel/types": {
2258 | "version": "7.21.4",
2259 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz",
2260 | "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==",
2261 | "dev": true,
2262 | "requires": {
2263 | "@babel/helper-string-parser": "^7.19.4",
2264 | "@babel/helper-validator-identifier": "^7.19.1",
2265 | "to-fast-properties": "^2.0.0"
2266 | }
2267 | },
2268 | "@esbuild/android-arm": {
2269 | "version": "0.18.20",
2270 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
2271 | "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
2272 | "dev": true,
2273 | "optional": true
2274 | },
2275 | "@esbuild/android-arm64": {
2276 | "version": "0.18.20",
2277 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
2278 | "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
2279 | "dev": true,
2280 | "optional": true
2281 | },
2282 | "@esbuild/android-x64": {
2283 | "version": "0.18.20",
2284 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
2285 | "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
2286 | "dev": true,
2287 | "optional": true
2288 | },
2289 | "@esbuild/darwin-arm64": {
2290 | "version": "0.18.20",
2291 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
2292 | "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
2293 | "dev": true,
2294 | "optional": true
2295 | },
2296 | "@esbuild/darwin-x64": {
2297 | "version": "0.18.20",
2298 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
2299 | "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
2300 | "dev": true,
2301 | "optional": true
2302 | },
2303 | "@esbuild/freebsd-arm64": {
2304 | "version": "0.18.20",
2305 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
2306 | "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
2307 | "dev": true,
2308 | "optional": true
2309 | },
2310 | "@esbuild/freebsd-x64": {
2311 | "version": "0.18.20",
2312 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
2313 | "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
2314 | "dev": true,
2315 | "optional": true
2316 | },
2317 | "@esbuild/linux-arm": {
2318 | "version": "0.18.20",
2319 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
2320 | "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
2321 | "dev": true,
2322 | "optional": true
2323 | },
2324 | "@esbuild/linux-arm64": {
2325 | "version": "0.18.20",
2326 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
2327 | "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
2328 | "dev": true,
2329 | "optional": true
2330 | },
2331 | "@esbuild/linux-ia32": {
2332 | "version": "0.18.20",
2333 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
2334 | "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
2335 | "dev": true,
2336 | "optional": true
2337 | },
2338 | "@esbuild/linux-loong64": {
2339 | "version": "0.18.20",
2340 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
2341 | "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
2342 | "dev": true,
2343 | "optional": true
2344 | },
2345 | "@esbuild/linux-mips64el": {
2346 | "version": "0.18.20",
2347 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
2348 | "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
2349 | "dev": true,
2350 | "optional": true
2351 | },
2352 | "@esbuild/linux-ppc64": {
2353 | "version": "0.18.20",
2354 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
2355 | "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
2356 | "dev": true,
2357 | "optional": true
2358 | },
2359 | "@esbuild/linux-riscv64": {
2360 | "version": "0.18.20",
2361 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
2362 | "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
2363 | "dev": true,
2364 | "optional": true
2365 | },
2366 | "@esbuild/linux-s390x": {
2367 | "version": "0.18.20",
2368 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
2369 | "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
2370 | "dev": true,
2371 | "optional": true
2372 | },
2373 | "@esbuild/linux-x64": {
2374 | "version": "0.18.20",
2375 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
2376 | "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
2377 | "dev": true,
2378 | "optional": true
2379 | },
2380 | "@esbuild/netbsd-x64": {
2381 | "version": "0.18.20",
2382 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
2383 | "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
2384 | "dev": true,
2385 | "optional": true
2386 | },
2387 | "@esbuild/openbsd-x64": {
2388 | "version": "0.18.20",
2389 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
2390 | "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
2391 | "dev": true,
2392 | "optional": true
2393 | },
2394 | "@esbuild/sunos-x64": {
2395 | "version": "0.18.20",
2396 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
2397 | "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
2398 | "dev": true,
2399 | "optional": true
2400 | },
2401 | "@esbuild/win32-arm64": {
2402 | "version": "0.18.20",
2403 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
2404 | "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
2405 | "dev": true,
2406 | "optional": true
2407 | },
2408 | "@esbuild/win32-ia32": {
2409 | "version": "0.18.20",
2410 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
2411 | "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
2412 | "dev": true,
2413 | "optional": true
2414 | },
2415 | "@esbuild/win32-x64": {
2416 | "version": "0.18.20",
2417 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
2418 | "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
2419 | "dev": true,
2420 | "optional": true
2421 | },
2422 | "@jridgewell/gen-mapping": {
2423 | "version": "0.1.1",
2424 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
2425 | "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
2426 | "dev": true,
2427 | "requires": {
2428 | "@jridgewell/set-array": "^1.0.0",
2429 | "@jridgewell/sourcemap-codec": "^1.4.10"
2430 | }
2431 | },
2432 | "@jridgewell/resolve-uri": {
2433 | "version": "3.1.0",
2434 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
2435 | "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
2436 | "dev": true
2437 | },
2438 | "@jridgewell/set-array": {
2439 | "version": "1.1.2",
2440 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
2441 | "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
2442 | "dev": true
2443 | },
2444 | "@jridgewell/sourcemap-codec": {
2445 | "version": "1.4.14",
2446 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
2447 | "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
2448 | "dev": true
2449 | },
2450 | "@jridgewell/trace-mapping": {
2451 | "version": "0.3.17",
2452 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
2453 | "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
2454 | "dev": true,
2455 | "requires": {
2456 | "@jridgewell/resolve-uri": "3.1.0",
2457 | "@jridgewell/sourcemap-codec": "1.4.14"
2458 | }
2459 | },
2460 | "@tonconnect/isomorphic-eventsource": {
2461 | "version": "0.0.2",
2462 | "resolved": "https://registry.npmjs.org/@tonconnect/isomorphic-eventsource/-/isomorphic-eventsource-0.0.2.tgz",
2463 | "integrity": "sha512-B4UoIjPi0QkvIzZH5fV3BQLWrqSYABdrzZQSI9sJA9aA+iC0ohOzFwVVGXanlxeDAy1bcvPbb29f6sVUk0UnnQ==",
2464 | "requires": {
2465 | "eventsource": "^2.0.2"
2466 | }
2467 | },
2468 | "@tonconnect/isomorphic-fetch": {
2469 | "version": "0.0.3",
2470 | "resolved": "https://registry.npmjs.org/@tonconnect/isomorphic-fetch/-/isomorphic-fetch-0.0.3.tgz",
2471 | "integrity": "sha512-jIg5nTrDwnite4fXao3dD83eCpTvInTjZon/rZZrIftIegh4XxyVb5G2mpMqXrVGk1e8SVXm3Kj5OtfMplQs0w==",
2472 | "requires": {
2473 | "node-fetch": "^2.6.9"
2474 | },
2475 | "dependencies": {
2476 | "node-fetch": {
2477 | "version": "2.7.0",
2478 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
2479 | "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
2480 | "requires": {
2481 | "whatwg-url": "^5.0.0"
2482 | }
2483 | }
2484 | }
2485 | },
2486 | "@tonconnect/protocol": {
2487 | "version": "2.2.7",
2488 | "resolved": "https://registry.npmjs.org/@tonconnect/protocol/-/protocol-2.2.7.tgz",
2489 | "integrity": "sha512-mmuS5ekaRVQtXOug30znXXSnuQfuLa6kDOv17X2ttk8Al9PlTFG/AtPRkWxCp8X5BdhPzGFELTog7kypukjWnQ==",
2490 | "requires": {
2491 | "tweetnacl": "^1.0.3",
2492 | "tweetnacl-util": "^0.15.1"
2493 | }
2494 | },
2495 | "@tonconnect/sdk": {
2496 | "version": "3.1.1-beta.0",
2497 | "resolved": "https://registry.npmjs.org/@tonconnect/sdk/-/sdk-3.1.1-beta.0.tgz",
2498 | "integrity": "sha512-zwt8g8/oWLRTmXZeF4/dEn6lAcO7J3ynBFNbd4/Wv6X5qMKs9cGaHXOCmRW9enLrvdYa+L/8XFQUyqzMecRH9w==",
2499 | "requires": {
2500 | "@tonconnect/isomorphic-eventsource": "^0.0.2",
2501 | "@tonconnect/isomorphic-fetch": "^0.0.3",
2502 | "@tonconnect/protocol": "^2.2.7"
2503 | }
2504 | },
2505 | "@tonconnect/ui": {
2506 | "version": "2.1.1-beta.0",
2507 | "resolved": "https://registry.npmjs.org/@tonconnect/ui/-/ui-2.1.1-beta.0.tgz",
2508 | "integrity": "sha512-5DdFbObn0oWLA4G3LlYDlsAmMOgh6ksidEa9L664ZSAScLworn/rXGjOfsLN1uGVei+gs38ivBYhxrCMyHSp/A==",
2509 | "requires": {
2510 | "@tonconnect/sdk": "3.1.1-beta.0",
2511 | "classnames": "^2.3.2",
2512 | "csstype": "^3.1.1",
2513 | "deepmerge": "^4.2.2",
2514 | "ua-parser-js": "^1.0.35"
2515 | },
2516 | "dependencies": {
2517 | "ua-parser-js": {
2518 | "version": "1.0.40",
2519 | "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.40.tgz",
2520 | "integrity": "sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew=="
2521 | }
2522 | }
2523 | },
2524 | "@tonconnect/ui-react": {
2525 | "version": "2.1.1-beta.0",
2526 | "resolved": "https://registry.npmjs.org/@tonconnect/ui-react/-/ui-react-2.1.1-beta.0.tgz",
2527 | "integrity": "sha512-gD5gzUvNjMYsBr5K3ZoHxWavUIzdCSdAXNknCDNHuixoVSnmHLIktOatHx95yOfEDo0WwYX8g+mQA1oTxQx0nA==",
2528 | "requires": {
2529 | "@tonconnect/ui": "2.1.1-beta.0"
2530 | }
2531 | },
2532 | "@types/prop-types": {
2533 | "version": "15.7.5",
2534 | "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
2535 | "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
2536 | "dev": true
2537 | },
2538 | "@types/react": {
2539 | "version": "18.0.33",
2540 | "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.33.tgz",
2541 | "integrity": "sha512-sHxzVxeanvQyQ1lr8NSHaj0kDzcNiGpILEVt69g9S31/7PfMvNCKLKcsHw4lYKjs3cGNJjXSP4mYzX43QlnjNA==",
2542 | "dev": true,
2543 | "requires": {
2544 | "@types/prop-types": "*",
2545 | "@types/scheduler": "*",
2546 | "csstype": "^3.0.2"
2547 | }
2548 | },
2549 | "@types/react-dom": {
2550 | "version": "18.0.11",
2551 | "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz",
2552 | "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==",
2553 | "dev": true,
2554 | "requires": {
2555 | "@types/react": "*"
2556 | }
2557 | },
2558 | "@types/scheduler": {
2559 | "version": "0.16.3",
2560 | "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.3.tgz",
2561 | "integrity": "sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==",
2562 | "dev": true
2563 | },
2564 | "@vitejs/plugin-react": {
2565 | "version": "3.1.0",
2566 | "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.1.0.tgz",
2567 | "integrity": "sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==",
2568 | "dev": true,
2569 | "requires": {
2570 | "@babel/core": "^7.20.12",
2571 | "@babel/plugin-transform-react-jsx-self": "^7.18.6",
2572 | "@babel/plugin-transform-react-jsx-source": "^7.19.6",
2573 | "magic-string": "^0.27.0",
2574 | "react-refresh": "^0.14.0"
2575 | }
2576 | },
2577 | "ansi-styles": {
2578 | "version": "3.2.1",
2579 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
2580 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
2581 | "dev": true,
2582 | "requires": {
2583 | "color-convert": "^1.9.0"
2584 | }
2585 | },
2586 | "anymatch": {
2587 | "version": "3.1.3",
2588 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
2589 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
2590 | "dev": true,
2591 | "requires": {
2592 | "normalize-path": "^3.0.0",
2593 | "picomatch": "^2.0.4"
2594 | }
2595 | },
2596 | "asap": {
2597 | "version": "2.0.6",
2598 | "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
2599 | "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
2600 | },
2601 | "base16": {
2602 | "version": "1.0.0",
2603 | "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz",
2604 | "integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ=="
2605 | },
2606 | "binary-extensions": {
2607 | "version": "2.2.0",
2608 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
2609 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
2610 | "dev": true
2611 | },
2612 | "braces": {
2613 | "version": "3.0.2",
2614 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
2615 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
2616 | "dev": true,
2617 | "requires": {
2618 | "fill-range": "^7.0.1"
2619 | }
2620 | },
2621 | "browserslist": {
2622 | "version": "4.21.5",
2623 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
2624 | "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
2625 | "dev": true,
2626 | "requires": {
2627 | "caniuse-lite": "^1.0.30001449",
2628 | "electron-to-chromium": "^1.4.284",
2629 | "node-releases": "^2.0.8",
2630 | "update-browserslist-db": "^1.0.10"
2631 | }
2632 | },
2633 | "caniuse-lite": {
2634 | "version": "1.0.30001474",
2635 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001474.tgz",
2636 | "integrity": "sha512-iaIZ8gVrWfemh5DG3T9/YqarVZoYf0r188IjaGwx68j4Pf0SGY6CQkmJUIE+NZHkkecQGohzXmBGEwWDr9aM3Q==",
2637 | "dev": true
2638 | },
2639 | "chalk": {
2640 | "version": "2.4.2",
2641 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
2642 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
2643 | "dev": true,
2644 | "requires": {
2645 | "ansi-styles": "^3.2.1",
2646 | "escape-string-regexp": "^1.0.5",
2647 | "supports-color": "^5.3.0"
2648 | }
2649 | },
2650 | "chokidar": {
2651 | "version": "3.5.3",
2652 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
2653 | "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
2654 | "dev": true,
2655 | "requires": {
2656 | "anymatch": "~3.1.2",
2657 | "braces": "~3.0.2",
2658 | "fsevents": "~2.3.2",
2659 | "glob-parent": "~5.1.2",
2660 | "is-binary-path": "~2.1.0",
2661 | "is-glob": "~4.0.1",
2662 | "normalize-path": "~3.0.0",
2663 | "readdirp": "~3.6.0"
2664 | }
2665 | },
2666 | "classnames": {
2667 | "version": "2.5.1",
2668 | "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
2669 | "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow=="
2670 | },
2671 | "color-convert": {
2672 | "version": "1.9.3",
2673 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
2674 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
2675 | "dev": true,
2676 | "requires": {
2677 | "color-name": "1.1.3"
2678 | }
2679 | },
2680 | "color-name": {
2681 | "version": "1.1.3",
2682 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
2683 | "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
2684 | "dev": true
2685 | },
2686 | "convert-source-map": {
2687 | "version": "1.9.0",
2688 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
2689 | "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
2690 | "dev": true
2691 | },
2692 | "cross-fetch": {
2693 | "version": "3.1.5",
2694 | "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
2695 | "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
2696 | "requires": {
2697 | "node-fetch": "2.6.7"
2698 | }
2699 | },
2700 | "csstype": {
2701 | "version": "3.1.2",
2702 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz",
2703 | "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
2704 | },
2705 | "debug": {
2706 | "version": "4.3.4",
2707 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
2708 | "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
2709 | "dev": true,
2710 | "requires": {
2711 | "ms": "2.1.2"
2712 | }
2713 | },
2714 | "deepmerge": {
2715 | "version": "4.3.1",
2716 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
2717 | "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="
2718 | },
2719 | "electron-to-chromium": {
2720 | "version": "1.4.353",
2721 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.353.tgz",
2722 | "integrity": "sha512-IdJVpMHJoBT/nn0GQ02wPfbhogDVpd1ud95lP//FTf5l35wzxKJwibB4HBdY7Q+xKPA1nkZ0UDLOMyRj5U5IAQ==",
2723 | "dev": true
2724 | },
2725 | "eruda": {
2726 | "version": "2.11.3",
2727 | "resolved": "https://registry.npmjs.org/eruda/-/eruda-2.11.3.tgz",
2728 | "integrity": "sha512-e1EqrGJvN5PSXoFCSAmRqqDfziEL5bNSdPcJbRg5QVOHtcFMcG4n/6uTOfs2FTjAhg4X4GbxhHB+l7ITu/1zmQ=="
2729 | },
2730 | "esbuild": {
2731 | "version": "0.18.20",
2732 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
2733 | "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
2734 | "dev": true,
2735 | "requires": {
2736 | "@esbuild/android-arm": "0.18.20",
2737 | "@esbuild/android-arm64": "0.18.20",
2738 | "@esbuild/android-x64": "0.18.20",
2739 | "@esbuild/darwin-arm64": "0.18.20",
2740 | "@esbuild/darwin-x64": "0.18.20",
2741 | "@esbuild/freebsd-arm64": "0.18.20",
2742 | "@esbuild/freebsd-x64": "0.18.20",
2743 | "@esbuild/linux-arm": "0.18.20",
2744 | "@esbuild/linux-arm64": "0.18.20",
2745 | "@esbuild/linux-ia32": "0.18.20",
2746 | "@esbuild/linux-loong64": "0.18.20",
2747 | "@esbuild/linux-mips64el": "0.18.20",
2748 | "@esbuild/linux-ppc64": "0.18.20",
2749 | "@esbuild/linux-riscv64": "0.18.20",
2750 | "@esbuild/linux-s390x": "0.18.20",
2751 | "@esbuild/linux-x64": "0.18.20",
2752 | "@esbuild/netbsd-x64": "0.18.20",
2753 | "@esbuild/openbsd-x64": "0.18.20",
2754 | "@esbuild/sunos-x64": "0.18.20",
2755 | "@esbuild/win32-arm64": "0.18.20",
2756 | "@esbuild/win32-ia32": "0.18.20",
2757 | "@esbuild/win32-x64": "0.18.20"
2758 | }
2759 | },
2760 | "escalade": {
2761 | "version": "3.1.1",
2762 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
2763 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
2764 | "dev": true
2765 | },
2766 | "escape-string-regexp": {
2767 | "version": "1.0.5",
2768 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
2769 | "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
2770 | "dev": true
2771 | },
2772 | "eventsource": {
2773 | "version": "2.0.2",
2774 | "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz",
2775 | "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA=="
2776 | },
2777 | "fbemitter": {
2778 | "version": "3.0.0",
2779 | "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz",
2780 | "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==",
2781 | "requires": {
2782 | "fbjs": "^3.0.0"
2783 | }
2784 | },
2785 | "fbjs": {
2786 | "version": "3.0.4",
2787 | "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz",
2788 | "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==",
2789 | "requires": {
2790 | "cross-fetch": "^3.1.5",
2791 | "fbjs-css-vars": "^1.0.0",
2792 | "loose-envify": "^1.0.0",
2793 | "object-assign": "^4.1.0",
2794 | "promise": "^7.1.1",
2795 | "setimmediate": "^1.0.5",
2796 | "ua-parser-js": "^0.7.30"
2797 | }
2798 | },
2799 | "fbjs-css-vars": {
2800 | "version": "1.0.2",
2801 | "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
2802 | "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="
2803 | },
2804 | "fill-range": {
2805 | "version": "7.0.1",
2806 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
2807 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
2808 | "dev": true,
2809 | "requires": {
2810 | "to-regex-range": "^5.0.1"
2811 | }
2812 | },
2813 | "flux": {
2814 | "version": "4.0.4",
2815 | "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.4.tgz",
2816 | "integrity": "sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw==",
2817 | "requires": {
2818 | "fbemitter": "^3.0.0",
2819 | "fbjs": "^3.0.1"
2820 | }
2821 | },
2822 | "fsevents": {
2823 | "version": "2.3.2",
2824 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
2825 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
2826 | "dev": true,
2827 | "optional": true
2828 | },
2829 | "gensync": {
2830 | "version": "1.0.0-beta.2",
2831 | "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
2832 | "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
2833 | "dev": true
2834 | },
2835 | "glob-parent": {
2836 | "version": "5.1.2",
2837 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
2838 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
2839 | "dev": true,
2840 | "requires": {
2841 | "is-glob": "^4.0.1"
2842 | }
2843 | },
2844 | "globals": {
2845 | "version": "11.12.0",
2846 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
2847 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
2848 | "dev": true
2849 | },
2850 | "has-flag": {
2851 | "version": "3.0.0",
2852 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
2853 | "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
2854 | "dev": true
2855 | },
2856 | "immutable": {
2857 | "version": "4.3.0",
2858 | "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz",
2859 | "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==",
2860 | "dev": true
2861 | },
2862 | "is-binary-path": {
2863 | "version": "2.1.0",
2864 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
2865 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
2866 | "dev": true,
2867 | "requires": {
2868 | "binary-extensions": "^2.0.0"
2869 | }
2870 | },
2871 | "is-extglob": {
2872 | "version": "2.1.1",
2873 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
2874 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
2875 | "dev": true
2876 | },
2877 | "is-glob": {
2878 | "version": "4.0.3",
2879 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
2880 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
2881 | "dev": true,
2882 | "requires": {
2883 | "is-extglob": "^2.1.1"
2884 | }
2885 | },
2886 | "is-number": {
2887 | "version": "7.0.0",
2888 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
2889 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
2890 | "dev": true
2891 | },
2892 | "js-tokens": {
2893 | "version": "4.0.0",
2894 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
2895 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
2896 | },
2897 | "jsesc": {
2898 | "version": "2.5.2",
2899 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
2900 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
2901 | "dev": true
2902 | },
2903 | "json5": {
2904 | "version": "2.2.3",
2905 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
2906 | "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
2907 | "dev": true
2908 | },
2909 | "lodash.curry": {
2910 | "version": "4.1.1",
2911 | "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz",
2912 | "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA=="
2913 | },
2914 | "lodash.flow": {
2915 | "version": "3.5.0",
2916 | "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz",
2917 | "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw=="
2918 | },
2919 | "loose-envify": {
2920 | "version": "1.4.0",
2921 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
2922 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
2923 | "requires": {
2924 | "js-tokens": "^3.0.0 || ^4.0.0"
2925 | }
2926 | },
2927 | "lru-cache": {
2928 | "version": "5.1.1",
2929 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
2930 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
2931 | "dev": true,
2932 | "requires": {
2933 | "yallist": "^3.0.2"
2934 | }
2935 | },
2936 | "magic-string": {
2937 | "version": "0.27.0",
2938 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
2939 | "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
2940 | "dev": true,
2941 | "requires": {
2942 | "@jridgewell/sourcemap-codec": "^1.4.13"
2943 | }
2944 | },
2945 | "ms": {
2946 | "version": "2.1.2",
2947 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
2948 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
2949 | "dev": true
2950 | },
2951 | "nanoid": {
2952 | "version": "3.3.6",
2953 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
2954 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
2955 | "dev": true
2956 | },
2957 | "node-fetch": {
2958 | "version": "2.6.7",
2959 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
2960 | "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
2961 | "requires": {
2962 | "whatwg-url": "^5.0.0"
2963 | }
2964 | },
2965 | "node-releases": {
2966 | "version": "2.0.10",
2967 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
2968 | "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==",
2969 | "dev": true
2970 | },
2971 | "normalize-path": {
2972 | "version": "3.0.0",
2973 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
2974 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
2975 | "dev": true
2976 | },
2977 | "object-assign": {
2978 | "version": "4.1.1",
2979 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
2980 | "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
2981 | },
2982 | "picocolors": {
2983 | "version": "1.0.0",
2984 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
2985 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
2986 | "dev": true
2987 | },
2988 | "picomatch": {
2989 | "version": "2.3.1",
2990 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
2991 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
2992 | "dev": true
2993 | },
2994 | "postcss": {
2995 | "version": "8.4.29",
2996 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz",
2997 | "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==",
2998 | "dev": true,
2999 | "requires": {
3000 | "nanoid": "^3.3.6",
3001 | "picocolors": "^1.0.0",
3002 | "source-map-js": "^1.0.2"
3003 | }
3004 | },
3005 | "promise": {
3006 | "version": "7.3.1",
3007 | "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
3008 | "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
3009 | "requires": {
3010 | "asap": "~2.0.3"
3011 | }
3012 | },
3013 | "pure-color": {
3014 | "version": "1.3.0",
3015 | "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz",
3016 | "integrity": "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA=="
3017 | },
3018 | "react": {
3019 | "version": "17.0.2",
3020 | "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
3021 | "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
3022 | "requires": {
3023 | "loose-envify": "^1.1.0",
3024 | "object-assign": "^4.1.1"
3025 | }
3026 | },
3027 | "react-base16-styling": {
3028 | "version": "0.6.0",
3029 | "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz",
3030 | "integrity": "sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==",
3031 | "requires": {
3032 | "base16": "^1.0.0",
3033 | "lodash.curry": "^4.0.1",
3034 | "lodash.flow": "^3.3.0",
3035 | "pure-color": "^1.2.0"
3036 | }
3037 | },
3038 | "react-dom": {
3039 | "version": "17.0.2",
3040 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
3041 | "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
3042 | "requires": {
3043 | "loose-envify": "^1.1.0",
3044 | "object-assign": "^4.1.1",
3045 | "scheduler": "^0.20.2"
3046 | }
3047 | },
3048 | "react-json-view": {
3049 | "version": "1.21.3",
3050 | "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz",
3051 | "integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==",
3052 | "requires": {
3053 | "flux": "^4.0.1",
3054 | "react-base16-styling": "^0.6.0",
3055 | "react-lifecycles-compat": "^3.0.4",
3056 | "react-textarea-autosize": "^8.3.2"
3057 | }
3058 | },
3059 | "react-lifecycles-compat": {
3060 | "version": "3.0.4",
3061 | "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
3062 | "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
3063 | },
3064 | "react-refresh": {
3065 | "version": "0.14.0",
3066 | "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz",
3067 | "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==",
3068 | "dev": true
3069 | },
3070 | "react-textarea-autosize": {
3071 | "version": "8.4.1",
3072 | "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.4.1.tgz",
3073 | "integrity": "sha512-aD2C+qK6QypknC+lCMzteOdIjoMbNlgSFmJjCV+DrfTPwp59i/it9mMNf2HDzvRjQgKAyBDPyLJhcrzElf2U4Q==",
3074 | "requires": {
3075 | "@babel/runtime": "^7.20.13",
3076 | "use-composed-ref": "^1.3.0",
3077 | "use-latest": "^1.2.1"
3078 | }
3079 | },
3080 | "readdirp": {
3081 | "version": "3.6.0",
3082 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
3083 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
3084 | "dev": true,
3085 | "requires": {
3086 | "picomatch": "^2.2.1"
3087 | }
3088 | },
3089 | "regenerator-runtime": {
3090 | "version": "0.13.11",
3091 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
3092 | "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
3093 | },
3094 | "rollup": {
3095 | "version": "3.29.1",
3096 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.1.tgz",
3097 | "integrity": "sha512-c+ebvQz0VIH4KhhCpDsI+Bik0eT8ZFEVZEYw0cGMVqIP8zc+gnwl7iXCamTw7vzv2MeuZFZfdx5JJIq+ehzDlg==",
3098 | "dev": true,
3099 | "requires": {
3100 | "fsevents": "~2.3.2"
3101 | }
3102 | },
3103 | "sass": {
3104 | "version": "1.60.0",
3105 | "resolved": "https://registry.npmjs.org/sass/-/sass-1.60.0.tgz",
3106 | "integrity": "sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ==",
3107 | "dev": true,
3108 | "requires": {
3109 | "chokidar": ">=3.0.0 <4.0.0",
3110 | "immutable": "^4.0.0",
3111 | "source-map-js": ">=0.6.2 <2.0.0"
3112 | }
3113 | },
3114 | "scheduler": {
3115 | "version": "0.20.2",
3116 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
3117 | "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
3118 | "requires": {
3119 | "loose-envify": "^1.1.0",
3120 | "object-assign": "^4.1.1"
3121 | }
3122 | },
3123 | "semver": {
3124 | "version": "6.3.0",
3125 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
3126 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
3127 | "dev": true
3128 | },
3129 | "setimmediate": {
3130 | "version": "1.0.5",
3131 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
3132 | "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
3133 | },
3134 | "source-map-js": {
3135 | "version": "1.0.2",
3136 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
3137 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
3138 | "dev": true
3139 | },
3140 | "supports-color": {
3141 | "version": "5.5.0",
3142 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
3143 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
3144 | "dev": true,
3145 | "requires": {
3146 | "has-flag": "^3.0.0"
3147 | }
3148 | },
3149 | "to-fast-properties": {
3150 | "version": "2.0.0",
3151 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
3152 | "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
3153 | "dev": true
3154 | },
3155 | "to-regex-range": {
3156 | "version": "5.0.1",
3157 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
3158 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
3159 | "dev": true,
3160 | "requires": {
3161 | "is-number": "^7.0.0"
3162 | }
3163 | },
3164 | "tr46": {
3165 | "version": "0.0.3",
3166 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
3167 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
3168 | },
3169 | "tweetnacl": {
3170 | "version": "1.0.3",
3171 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
3172 | "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
3173 | },
3174 | "tweetnacl-util": {
3175 | "version": "0.15.1",
3176 | "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz",
3177 | "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw=="
3178 | },
3179 | "typescript": {
3180 | "version": "4.9.5",
3181 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
3182 | "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
3183 | "dev": true
3184 | },
3185 | "ua-parser-js": {
3186 | "version": "0.7.35",
3187 | "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz",
3188 | "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g=="
3189 | },
3190 | "update-browserslist-db": {
3191 | "version": "1.0.10",
3192 | "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
3193 | "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
3194 | "dev": true,
3195 | "requires": {
3196 | "escalade": "^3.1.1",
3197 | "picocolors": "^1.0.0"
3198 | }
3199 | },
3200 | "use-composed-ref": {
3201 | "version": "1.3.0",
3202 | "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz",
3203 | "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==",
3204 | "requires": {}
3205 | },
3206 | "use-isomorphic-layout-effect": {
3207 | "version": "1.1.2",
3208 | "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz",
3209 | "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==",
3210 | "requires": {}
3211 | },
3212 | "use-latest": {
3213 | "version": "1.2.1",
3214 | "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz",
3215 | "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==",
3216 | "requires": {
3217 | "use-isomorphic-layout-effect": "^1.1.1"
3218 | }
3219 | },
3220 | "vite": {
3221 | "version": "4.4.9",
3222 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz",
3223 | "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==",
3224 | "dev": true,
3225 | "requires": {
3226 | "esbuild": "^0.18.10",
3227 | "fsevents": "~2.3.2",
3228 | "postcss": "^8.4.27",
3229 | "rollup": "^3.27.1"
3230 | }
3231 | },
3232 | "webidl-conversions": {
3233 | "version": "3.0.1",
3234 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
3235 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
3236 | },
3237 | "whatwg-url": {
3238 | "version": "5.0.0",
3239 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
3240 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
3241 | "requires": {
3242 | "tr46": "~0.0.3",
3243 | "webidl-conversions": "^3.0.0"
3244 | }
3245 | },
3246 | "yallist": {
3247 | "version": "3.1.1",
3248 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
3249 | "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
3250 | "dev": true
3251 | }
3252 | }
3253 | }
3254 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "demo-dapp-react-ui",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite --host --force",
8 | "build": "tsc && GH_PAGES=true vite build",
9 | "build:dev": "tsc && vite build",
10 | "preview": "vite preview"
11 | },
12 | "dependencies": {
13 | "@tonconnect/ui-react": "2.1.1-beta.0",
14 | "eruda": "^2.11.2",
15 | "react": "^17.0.0",
16 | "react-dom": "^17.0.0",
17 | "react-json-view": "^1.21.3"
18 | },
19 | "devDependencies": {
20 | "@types/react": "^18.0.26",
21 | "@types/react-dom": "^18.0.9",
22 | "@vitejs/plugin-react": "^3.0.0",
23 | "sass": "^1.57.1",
24 | "typescript": "^4.9.3",
25 | "vite": "^4.0.0"
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/public/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ton-connect/demo-dapp-with-wallet/71af027d55f9f5b3f7f15b4d0f6339055e148280/public/apple-touch-icon.png
--------------------------------------------------------------------------------
/public/privacy-policy.txt:
--------------------------------------------------------------------------------
1 | Privacy Policy example
2 | ...
3 |
--------------------------------------------------------------------------------
/public/tc-verify.json:
--------------------------------------------------------------------------------
1 | {
2 | "payload": "9hE-Ov4dBR8AAAAAZT_L0NIswgedrN4hc4upm0e9vASVO4nl_MP5hbybtMYIfhkZ"
3 | }
4 |
--------------------------------------------------------------------------------
/public/terms-of-use.txt:
--------------------------------------------------------------------------------
1 | Terms of use example
2 | ...
3 |
--------------------------------------------------------------------------------
/public/tonconnect-manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "url": "https://ton-connect.github.io/demo-dapp-with-wallet/",
3 | "name": "Demo Dapp with wallet",
4 | "iconUrl": "https://ton-connect.github.io/demo-dapp-with-wallet/apple-touch-icon.png",
5 | "termsOfUseUrl": "https://ton-connect.github.io/demo-dapp-with-wallet/terms-of-use.txt",
6 | "privacyPolicyUrl": "https://ton-connect.github.io/demo-dapp-with-wallet/privacy-policy.txt"
7 | }
8 |
--------------------------------------------------------------------------------
/src/App.scss:
--------------------------------------------------------------------------------
1 | .app {
2 | height: 100%;
3 | display: flex;
4 | flex-direction: column;
5 |
6 | > header {
7 | margin-bottom: 10px;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/src/App.tsx:
--------------------------------------------------------------------------------
1 | import './App.scss';
2 | import './trackers';
3 | import {THEME, TonConnectUIProvider} from "@tonconnect/ui-react";
4 | import {Footer} from "./components/Footer/Footer";
5 | import {Header} from "./components/Header/Header";
6 | import {TxForm} from "./components/TxForm/TxForm";
7 |
8 | function App() {
9 | return (
10 |
318 |
319 |
320 |
321 | {/**/}
322 |
323 |
324 |
325 | )
326 | }
327 |
328 | export default App
329 |
--------------------------------------------------------------------------------
/src/TonProofDemoApi.ts:
--------------------------------------------------------------------------------
1 | import {Account, ConnectAdditionalRequest, TonProofItemReplySuccess} from "@tonconnect/ui-react";
2 | import './patch-local-storage-for-github-pages';
3 |
4 | class TonProofDemoApiService {
5 | private localStorageKey = 'demo-api-access-token';
6 |
7 | private host = 'https://demo.tonconnect.dev';
8 |
9 | public accessToken: string | null = null;
10 |
11 | public readonly refreshIntervalMs = 9 * 60 * 1000;
12 |
13 | constructor() {
14 | this.accessToken = localStorage.getItem(this.localStorageKey);
15 |
16 | if (!this.accessToken) {
17 | this.generatePayload();
18 | }
19 | }
20 |
21 | async generatePayload(): Promise {
22 | try {
23 | const response = await (
24 | await fetch(`${this.host}/ton-proof/generatePayload`, {
25 | method: 'POST',
26 | })
27 | ).json();
28 | return {tonProof: response.payload as string};
29 | } catch {
30 | return null;
31 | }
32 |
33 | }
34 |
35 | async checkProof(proof: TonProofItemReplySuccess['proof'], account: Account) {
36 | try {
37 | const reqBody = {
38 | address: account.address,
39 | network: account.chain,
40 | proof: {
41 | ...proof,
42 | state_init: account.walletStateInit,
43 | },
44 | };
45 |
46 | const response = await (
47 | await fetch(`${this.host}/ton-proof/checkProof`, {
48 | method: 'POST',
49 | body: JSON.stringify(reqBody),
50 | })
51 | ).json();
52 |
53 | if (response?.token) {
54 | localStorage.setItem(this.localStorageKey, response.token);
55 | this.accessToken = response.token;
56 | }
57 | } catch (e) {
58 | console.log('checkProof error:', e);
59 | }
60 | }
61 |
62 | async getAccountInfo(account: Account) {
63 | const response = await (
64 | await fetch(`${this.host}/dapp/getAccountInfo?network=${account.chain}`, {
65 | headers: {
66 | Authorization: `Bearer ${this.accessToken}`,
67 | 'Content-Type': 'application/json',
68 | },
69 | })
70 | ).json();
71 |
72 | return response as {};
73 | }
74 |
75 | reset() {
76 | this.accessToken = null;
77 | localStorage.removeItem(this.localStorageKey);
78 | this.generatePayload();
79 | }
80 | }
81 |
82 | export const TonProofDemoApi = new TonProofDemoApiService();
83 |
--------------------------------------------------------------------------------
/src/assets/react.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/components/Footer/ColorsModal/ColorsModal.tsx:
--------------------------------------------------------------------------------
1 | import { THEME } from "@tonconnect/ui-react";
2 | import {useState} from "react";
3 | import {ColorsSelect} from "../ColorsSelect/ColorsSelect";
4 | import './style.scss';
5 |
6 | export const ColorsModal = () => {
7 | const [opened, setOpened] = useState(false);
8 | const [theme, setTheme] = useState(THEME.LIGHT);
9 |
10 | return(<>
11 |
12 | {opened &&
13 |
14 |
15 |
19 |
20 |
21 |
22 | }
23 | >
24 | )
25 | }
26 |
--------------------------------------------------------------------------------
/src/components/Footer/ColorsModal/style.scss:
--------------------------------------------------------------------------------
1 | .modal {
2 | position: fixed;
3 | left: 0;
4 | top: 0;
5 | bottom: 0;
6 | right: 0;
7 | z-index: 10000000;
8 |
9 | background-color: rgb(16, 22, 31);
10 |
11 | padding: 20px;
12 |
13 | color: white;
14 |
15 | > button {
16 | float: right;
17 | }
18 |
19 | &__toggle {
20 | display: flex;
21 | justify-content: center;
22 | gap: 20px;
23 |
24 | > a {
25 | color: white;
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/components/Footer/ColorsSelect/ColorsSelect.tsx:
--------------------------------------------------------------------------------
1 | import {ColorsSet, THEME, useTonConnectUI} from "@tonconnect/ui-react";
2 | import {FunctionComponent, useEffect, useState} from "react";
3 | import './style.scss';
4 |
5 | const defaultColors = {
6 | [THEME.LIGHT]: {
7 | constant: {
8 | black: '#000000',
9 | white: '#FFFFFF'
10 | },
11 | connectButton: {
12 | background: '#0098EA',
13 | foreground: '#FFFFFF'
14 | },
15 | accent: '#0098EA',
16 | telegramButton: '#0098EA',
17 | icon: {
18 | primary: '#0F0F0F',
19 | secondary: '#7A8999',
20 | tertiary: '#C1CAD2',
21 | success: '#29CC6A',
22 | error: '#F5A73B'
23 | },
24 | background: {
25 | primary: '#FFFFFF',
26 | secondary: '#F1F3F5',
27 | segment: '#FFFFFF',
28 | tint: '#F1F3F5',
29 | qr: '#F1F3F5'
30 | },
31 | text: {
32 | primary: '#0F0F0F',
33 | secondary: '#6A7785'
34 | }
35 | },
36 | [THEME.DARK]: {
37 | constant: {
38 | black: '#000000',
39 | white: '#FFFFFF'
40 | },
41 | connectButton: {
42 | background: '#0098EA',
43 | foreground: '#FFFFFF'
44 | },
45 | accent: '#E5E5EA',
46 | telegramButton: '#31A6F5',
47 | icon: {
48 | primary: '#E5E5EA',
49 | secondary: '#909099',
50 | tertiary: '#434347',
51 | success: '#29CC6A',
52 | error: '#F5A73B'
53 | },
54 | background: {
55 | primary: '#121214',
56 | secondary: '#18181A',
57 | segment: '#262629',
58 | tint: '#222224',
59 | qr: '#F1F3F5'
60 | },
61 | text: {
62 | primary: '#E5E5EA',
63 | secondary: '#7D7D85'
64 | }
65 | }
66 | }
67 |
68 | export interface ColorsSelectProps {
69 | theme: THEME;
70 | }
71 | export const ColorsSelect: FunctionComponent = ({ theme }) => {
72 | const [_, setOptions] = useTonConnectUI();
73 | const [colors, setColors] = useState(defaultColors[theme]);
74 |
75 | useEffect(() => {
76 | setColors(defaultColors[theme]);
77 | }, [theme]);
78 |
79 | const onChange = (value: string, property1: string, property2?: string) => {
80 | setOptions({
81 | uiPreferences: {
82 | colorsSet: {
83 | [theme]: {
84 | [property1]: property2 ? {
85 | ...(colors as any)[property1],
86 | [property2]: value
87 | } : value
88 | }
89 | }
90 | }
91 | })
92 |
93 |
94 | setColors(colors => ({
95 | ...colors,
96 | [property1]: property2 ? {
97 | ...(colors as any)[property1],
98 | [property2]: value
99 | } : value
100 | }));
101 |
102 | defaultColors[theme] = {
103 | ...defaultColors[theme],
104 | [property1]: property2 ? {
105 | ...(colors as any)[property1],
106 | [property2]: value
107 | } : value
108 | }
109 | }
110 |
111 | return
146 | }
147 |
--------------------------------------------------------------------------------
/src/components/Footer/ColorsSelect/style.scss:
--------------------------------------------------------------------------------
1 | .colors-container {
2 | > div {
3 | margin-bottom: 20px;
4 |
5 | > span {
6 | margin-right: 14px;
7 | font-weight: bold;
8 | }
9 |
10 | > label {
11 | margin-right: 10px;
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/src/components/Footer/Footer.tsx:
--------------------------------------------------------------------------------
1 | import {BorderRadius, Locales, ReturnStrategy, Theme, THEME, useTonConnectUI} from "@tonconnect/ui-react";
2 | import './footer.scss';
3 | import {useEffect, useState} from "react";
4 | import {ColorsModal} from "./ColorsModal/ColorsModal";
5 |
6 | const defaultWalletsSelectValue = '["Tonkeeper", "OpenMask"]';
7 |
8 | export const Footer = () => {
9 | const [checkboxes, setCheckboxes] = useState(
10 | [true, false, false, true, true, true]
11 | );
12 |
13 | const [returnStrategy, setReturnStrategy] = useState('back');
14 | const [skipRedirect, setSkipRedirect] = useState('ios');
15 |
16 | const [_, setOptions] = useTonConnectUI();
17 |
18 | const onLangChange = (lang: string) => {
19 | setOptions({language: lang as Locales})
20 | }
21 |
22 | const onThemeChange = (theme: string) => {
23 | setOptions({uiPreferences: {theme: theme as Theme}})
24 | }
25 |
26 | const onBordersChange = (borders: string) => {
27 | setOptions({uiPreferences: {borderRadius: borders as BorderRadius}})
28 | }
29 |
30 | const onCheckboxChange = (position: number) => {
31 | setCheckboxes(state => state.map((item, index) => index === position ? !item : item ));
32 | }
33 |
34 | const onReturnStrategyInputBlur = () => {
35 | if (!returnStrategy) {
36 | setReturnStrategy('back');
37 | return;
38 | }
39 |
40 | setOptions({ actionsConfiguration: { returnStrategy: returnStrategy as ReturnStrategy } })
41 |
42 | }
43 |
44 | const onSkipRedirectInputBlur = () => {
45 | if (!skipRedirect) {
46 | setSkipRedirect('ios');
47 | return;
48 | }
49 |
50 | setOptions({ actionsConfiguration: { skipRedirectToWallet: skipRedirect as 'ios' | 'never' | 'always' } })
51 |
52 | }
53 |
54 | useEffect(() => {
55 | const actionValues = ['before', 'success', 'error'];
56 | const modals = actionValues.map((item, index) => checkboxes[index] ? item : undefined).filter(i => i) as ("before" | "success" | "error")[];
57 | const notifications = actionValues.map((item, index) => checkboxes[index + 3] ? item : undefined).filter(i => i) as ("before" | "success" | "error")[];
58 |
59 | setOptions({ actionsConfiguration: { modals, notifications } })
60 | }, [checkboxes])
61 |
62 | return
152 | }
153 |
--------------------------------------------------------------------------------
/src/components/Footer/footer.scss:
--------------------------------------------------------------------------------
1 | .footer {
2 | padding: 20px;
3 | display: flex;
4 | gap: 20px;
5 | justify-content: flex-end;
6 | align-items: center;
7 | flex-wrap: wrap;
8 |
9 | > div > label {
10 | color: white;
11 | margin-right: 5px;
12 | }
13 | }
14 |
15 | .footer-checkbox-container {
16 | display: flex;
17 | flex-direction: column;
18 |
19 | > span {
20 | color: white;
21 | font-weight: bold;
22 | margin-bottom: 4px;
23 | }
24 |
25 | input {
26 | margin-left: 3px;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/components/Header/Header.tsx:
--------------------------------------------------------------------------------
1 | import {TonConnectButton} from "@tonconnect/ui-react";
2 | import './header.scss';
3 |
4 | export const Header = () => {
5 | return
6 | My App with React UI
7 |
8 |
9 | }
10 |
--------------------------------------------------------------------------------
/src/components/Header/header.scss:
--------------------------------------------------------------------------------
1 | header {
2 | display: flex;
3 | align-items: center;
4 | justify-content: space-between;
5 | padding: 10px 25px;
6 |
7 | > span {
8 | font-size: 30px;
9 | line-height: 34px;
10 | color: rgba(102,170,238,0.91);
11 | font-weight: bold;
12 | }
13 | }
14 |
15 | @media (max-width: 525px) {
16 | header {
17 | flex-direction: column;
18 | gap: 10px;
19 |
20 | > *:nth-child(2) {
21 | align-self: flex-end;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/components/TonProofDemo/TonProofDemo.tsx:
--------------------------------------------------------------------------------
1 | import React, {useCallback, useEffect, useRef, useState} from 'react';
2 | import ReactJson from 'react-json-view';
3 | import './style.scss';
4 | import {TonProofDemoApi} from "../../TonProofDemoApi";
5 | import {useTonConnectUI, useTonWallet} from "@tonconnect/ui-react";
6 | import {CHAIN} from "@tonconnect/ui-react";
7 | import useInterval from "../../hooks/useInterval";
8 |
9 |
10 | export const TonProofDemo = () => {
11 | const firstProofLoading = useRef(true);
12 |
13 | const [data, setData] = useState({});
14 | const wallet = useTonWallet();
15 | const [authorized, setAuthorized] = useState(false);
16 | const [tonConnectUI] = useTonConnectUI();
17 |
18 | const recreateProofPayload = useCallback(async () => {
19 | if (firstProofLoading.current) {
20 | tonConnectUI.setConnectRequestParameters({ state: 'loading' });
21 | firstProofLoading.current = false;
22 | }
23 |
24 | const payload = await TonProofDemoApi.generatePayload();
25 |
26 | if (payload) {
27 | tonConnectUI.setConnectRequestParameters({ state: 'ready', value: payload });
28 | } else {
29 | tonConnectUI.setConnectRequestParameters(null);
30 | }
31 | }, [tonConnectUI, firstProofLoading])
32 |
33 | if (firstProofLoading.current) {
34 | recreateProofPayload();
35 | }
36 |
37 | useInterval(recreateProofPayload, TonProofDemoApi.refreshIntervalMs);
38 |
39 | useEffect(() =>
40 | tonConnectUI.onStatusChange(async w => {
41 | if (!w || w.account.chain === CHAIN.TESTNET) {
42 | TonProofDemoApi.reset();
43 | setAuthorized(false);
44 | return;
45 | }
46 |
47 | if (w.connectItems?.tonProof && 'proof' in w.connectItems.tonProof) {
48 | await TonProofDemoApi.checkProof(w.connectItems.tonProof.proof, w.account);
49 | }
50 |
51 | if (!TonProofDemoApi.accessToken) {
52 | tonConnectUI.disconnect();
53 | setAuthorized(false);
54 | return;
55 | }
56 |
57 | setAuthorized(true);
58 | }), [tonConnectUI]);
59 |
60 |
61 | const handleClick = useCallback(async () => {
62 | if (!wallet) {
63 | return;
64 | }
65 | const response = await TonProofDemoApi.getAccountInfo(wallet.account);
66 |
67 | setData(response);
68 | }, [wallet]);
69 |
70 | if (!authorized) {
71 | return null;
72 | }
73 |
74 | return (
75 |
76 |
Demo backend API with ton_proof verification
77 | {authorized ? (
78 |
81 | ) : (
82 |
Connect wallet to call API
83 | )}
84 |
85 |
86 | );
87 | }
88 |
--------------------------------------------------------------------------------
/src/components/TonProofDemo/style.scss:
--------------------------------------------------------------------------------
1 | .ton-proof-demo {
2 | display: flex;
3 | width: 100%;
4 | flex-direction: column;
5 | gap: 20px;
6 | align-items: center;
7 | margin-top: 60px;
8 | padding: 20px;
9 |
10 | h3 {
11 | color: white;
12 | opacity: 0.8;
13 | }
14 |
15 | > div:nth-child(3) {
16 | width: 100%;
17 |
18 | span {
19 | word-break: break-word;
20 | }
21 | }
22 |
23 | &__error {
24 | color: rgba(102,170,238,0.91);
25 | font-size: 18px;
26 | line-height: 20px;
27 | }
28 |
29 | button {
30 | border: none;
31 | padding: 7px 15px;
32 | border-radius: 15px;
33 | cursor: pointer;
34 |
35 | background-color: rgba(102,170,238,0.91);
36 | color: white;
37 | font-size: 16px;
38 | line-height: 20px;
39 |
40 | transition: transform 0.1s ease-in-out;
41 |
42 | &:hover {
43 | transform: scale(1.03);
44 | }
45 |
46 | &:active {
47 | transform: scale(0.97);
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/components/TxForm/TxForm.tsx:
--------------------------------------------------------------------------------
1 | import React, {useCallback, useState} from 'react';
2 | import ReactJson from 'react-json-view';
3 | import './style.scss';
4 | import {SendTransactionRequest, useTonConnectUI, useTonWallet} from "@tonconnect/ui-react";
5 |
6 | // In this example, we are using a predefined smart contract state initialization (`stateInit`)
7 | // to interact with an "EchoContract". This contract is designed to send the value back to the sender,
8 | // serving as a testing tool to prevent users from accidentally spending money.
9 | const defaultTx: SendTransactionRequest = {
10 | // The transaction is valid for 10 minutes from now, in unix epoch seconds.
11 | validUntil: Math.floor(Date.now() / 1000) + 600,
12 | messages: [
13 |
14 | {
15 | // The receiver's address.
16 | address: 'EQCKWpx7cNMpvmcN5ObM5lLUZHZRFKqYA4xmw9jOry0ZsF9M',
17 | // Amount to send in nanoTON. For example, 0.005 TON is 5000000 nanoTON.
18 | amount: '5000000',
19 | // (optional) State initialization in boc base64 format.
20 | stateInit: 'te6cckEBBAEAOgACATQCAQAAART/APSkE/S88sgLAwBI0wHQ0wMBcbCRW+D6QDBwgBDIywVYzxYh+gLLagHPFsmAQPsAlxCarA==',
21 | // (optional) Payload in boc base64 format.
22 | payload: 'te6ccsEBAQEADAAMABQAAAAASGVsbG8hCaTc/g==',
23 | },
24 |
25 | // Uncomment the following message to send two messages in one transaction.
26 | /*
27 | {
28 | // Note: Funds sent to this address will not be returned back to the sender.
29 | address: 'UQAuz15H1ZHrZ_psVrAra7HealMIVeFq0wguqlmFno1f3B-m',
30 | amount: toNano('0.01').toString(),
31 | }
32 | */
33 |
34 | ],
35 | };
36 |
37 | export function TxForm() {
38 | const [tx, setTx] = useState(defaultTx);
39 | const wallet = useTonWallet();
40 | const [tonConnectUi] = useTonConnectUI();
41 |
42 | const onChange = useCallback((value: object) => setTx((value as { updated_src: typeof defaultTx }).updated_src), []);
43 |
44 | return (
45 |
46 |
Configure and send transaction
47 |
48 | {wallet ? (
49 |
52 | ) : (
53 |
54 | )}
55 |
56 | );
57 | }
58 |
--------------------------------------------------------------------------------
/src/components/TxForm/style.scss:
--------------------------------------------------------------------------------
1 | .send-tx-form {
2 | flex: 1;
3 | display: flex;
4 | width: 100%;
5 | flex-direction: column;
6 | gap: 20px;
7 | padding: 20px;
8 | align-items: center;
9 |
10 | h3 {
11 | color: white;
12 | opacity: 0.8;
13 | font-size: 28px;
14 | }
15 |
16 | > div:nth-child(2) {
17 | width: 100%;
18 |
19 | span {
20 | word-break: break-word;
21 | }
22 | }
23 |
24 | > button {
25 | border: none;
26 | padding: 7px 15px;
27 | border-radius: 15px;
28 | cursor: pointer;
29 |
30 | background-color: rgba(102,170,238,0.91);
31 | color: white;
32 | font-size: 16px;
33 | line-height: 20px;
34 |
35 | transition: transform 0.1s ease-in-out;
36 |
37 | &:hover {
38 | transform: scale(1.03);
39 | }
40 |
41 | &:active {
42 | transform: scale(0.97);
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/hooks/useInterval.ts:
--------------------------------------------------------------------------------
1 | import {useEffect, useLayoutEffect, useRef} from 'react'
2 |
3 | function useInterval(callback: () => void, delay: number | null) {
4 | const savedCallback = useRef(callback)
5 |
6 | useLayoutEffect(() => {
7 | savedCallback.current = callback
8 | }, [callback])
9 |
10 | useEffect(() => {
11 | if (!delay && delay !== 0) {
12 | return
13 | }
14 |
15 | const id = setInterval(() => savedCallback.current(), delay)
16 |
17 | return () => clearInterval(id)
18 | }, [delay])
19 | }
20 |
21 | export default useInterval
22 |
--------------------------------------------------------------------------------
/src/index.scss:
--------------------------------------------------------------------------------
1 | html, body, #root {
2 | height: 100%;
3 | }
4 |
5 | body {
6 | margin: 0;
7 | background-color: rgba(16, 22, 31, 0.92);;
8 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
9 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
10 | sans-serif;
11 | -webkit-font-smoothing: antialiased;
12 | -moz-osx-font-smoothing: grayscale;
13 | }
14 |
15 | code {
16 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
17 | monospace;
18 | }
19 |
20 | * {
21 | box-sizing: border-box;
22 | }
23 |
--------------------------------------------------------------------------------
/src/main.tsx:
--------------------------------------------------------------------------------
1 | import './patch-local-storage-for-github-pages';
2 |
3 | import React, {StrictMode} from 'react'
4 | import { render } from 'react-dom';
5 | import App from './App'
6 | import './index.scss'
7 | import eruda from "eruda";
8 |
9 | eruda.init();
10 |
11 | render(
12 |
13 |
14 | ,
15 | document.getElementById('root') as HTMLElement
16 | )
17 |
--------------------------------------------------------------------------------
/src/patch-local-storage-for-github-pages.ts:
--------------------------------------------------------------------------------
1 | const separator = window.location.pathname.replace(/\/+$/, '') + ':';
2 |
3 | const setItem = localStorage.setItem;
4 | localStorage.constructor.prototype.setItem = (key: unknown, value: string) => setItem.apply(localStorage, [separator + key, value]);
5 | localStorage.setItem = (key: unknown, value: string) => setItem.apply(localStorage, [separator + key, value]);
6 |
7 | const getItem = localStorage.getItem;
8 | localStorage.constructor.prototype.getItem = (key: unknown) => getItem.apply(localStorage, [separator + key]);
9 | localStorage.getItem = (key: unknown) => getItem.apply(localStorage, [separator + key]);
10 |
11 | const removeItem = localStorage.removeItem;
12 | localStorage.constructor.prototype.removeItem = (key: unknown) => removeItem.apply(localStorage, [separator + key]);
13 | localStorage.removeItem = (key: unknown) => removeItem.apply(localStorage, [separator + key]);
14 |
15 | export {};
16 |
--------------------------------------------------------------------------------
/src/trackers.ts:
--------------------------------------------------------------------------------
1 | import {UserActionEvent, SdkActionEvent} from "@tonconnect/ui-react";
2 |
3 | const logEvent = (scope: string): (event: Event) => void => {
4 | scope = scope.startsWith('ton-connect-ui-') ? 'TonConnectUI' : 'TonConnect';
5 |
6 | return (event: Event): void => {
7 | if (!(event instanceof CustomEvent)) {
8 | return;
9 | }
10 | const detail: UserActionEvent | SdkActionEvent = event.detail;
11 | console.log(`${scope} Event: ${detail.type}`, detail);
12 | }
13 | };
14 |
15 | const tonConnectUiPrefix = 'ton-connect-ui-';
16 | const tonConnectUiEvents = [
17 | 'request-version',
18 | 'response-version',
19 | 'connection-started',
20 | 'connection-completed',
21 | 'connection-error',
22 | 'connection-restoring-started',
23 | 'connection-restoring-completed',
24 | 'connection-restoring-error',
25 | 'transaction-sent-for-signature',
26 | 'transaction-signed',
27 | 'transaction-signing-failed',
28 | 'disconnection',
29 | ].map(event => `${tonConnectUiPrefix}${event}`)
30 |
31 | const tonConnectPrefix = 'ton-connect-';
32 | const tonConnectEvents = [
33 | 'request-version',
34 | 'response-version',
35 | 'connection-started',
36 | 'connection-completed',
37 | 'connection-error',
38 | 'connection-restoring-started',
39 | 'connection-restoring-completed',
40 | 'connection-restoring-error',
41 | 'transaction-sent-for-signature',
42 | 'transaction-signed',
43 | 'transaction-signing-failed',
44 | 'disconnection',
45 | ].map(event => `${tonConnectPrefix}${event}`)
46 |
47 | const events = [
48 | ...tonConnectUiEvents,
49 | ...tonConnectEvents
50 | ];
51 |
52 | for (const event of events) {
53 | try {
54 | window.addEventListener(`${event}`, logEvent(event));
55 | } catch (e) {}
56 | }
57 |
--------------------------------------------------------------------------------
/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ESNext",
4 | "useDefineForClassFields": true,
5 | "lib": ["DOM", "DOM.Iterable", "ESNext"],
6 | "allowJs": false,
7 | "skipLibCheck": true,
8 | "esModuleInterop": false,
9 | "allowSyntheticDefaultImports": true,
10 | "strict": true,
11 | "forceConsistentCasingInFileNames": true,
12 | "module": "ESNext",
13 | "moduleResolution": "Node",
14 | "resolveJsonModule": true,
15 | "isolatedModules": true,
16 | "noEmit": true,
17 | "jsx": "react-jsx"
18 | },
19 | "include": ["src"],
20 | "references": [{ "path": "./tsconfig.node.json" }]
21 | }
22 |
--------------------------------------------------------------------------------
/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "module": "ESNext",
5 | "moduleResolution": "Node",
6 | "allowSyntheticDefaultImports": true
7 | },
8 | "include": ["vite.config.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import react from '@vitejs/plugin-react'
3 |
4 | // https://vitejs.dev/config/
5 |
6 | export default defineConfig({
7 | plugins: [react()],
8 | build: {
9 | outDir: 'docs'
10 | },
11 | // @ts-ignore
12 | base: process.env.GH_PAGES ? '/demo-dapp-with-wallet/' : './',
13 | server: {
14 | fs: {
15 | allow: ['../sdk', './'],
16 | },
17 | },
18 | })
19 |
--------------------------------------------------------------------------------